📄 dviexport.h
字号:
// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; c-brace-offset: 0; -*-/** * \file dviexport.h * Distributed under the GNU GPL version 2 or (at your option) * any later version. See accompanying file COPYING or copy at * http://www.gnu.org/copyleft/gpl.html * * \author Angus Leeming * \author Stefan Kebekus * * Classes DVIExportToPDF and DVIExportToPS control the export * of a DVI file to PDF or PostScript format, respectively. * Common functionality is factored out into a common base class, * DVIExport which itself derives from KShared allowing easy, * polymorphic storage of multiple KSharedPtr<DVIExport> variables * in a container of all exported processes. */#ifndef DVIEXPORT_H#define DVIEXPORT_H#include <ksharedptr.h>#include <QObject>#include <QString>class dviRenderer;class fontProgressDialog;class KPrinter;class KProcess;class QStringList;class DVIExport: public QObject, public KShared{ Q_OBJECTpublic: virtual ~DVIExport(); /** @c started() Flags whether or not the external process was * spawned successfully. * Can be used to decide whether to discard the DVIExport variable, * or to store it and await notification that the external process * has finished. */ bool started() const { return started_; }protected: /** @param parent is stored internally in order to inform the parent * that the external process has finished and that this variable * can be removed from any stores. * @param parent_widget is parent's (otherwise private) parentWidget. */ DVIExport(dviRenderer& parent, QWidget* parent_widget); /** A wrapper around fontProgressDialog, also connecting some signals/slots. */ void initialise_progress_dialog(int total_steps, const QString& label_text, const QString& whats_this_text, const QString& tooltip_text, const QString& caption); /** Spawns the external process having connected slots to the child * process's stdin and stdout streams. */ void start(const QString& command, const QStringList& args, const QString& working_directory, const QString& error_message); /** The real implementation of the abort_process() slot that is * called when the fontProcessDialog is closed by the user, * indicating that the export should be halted. */ virtual void abort_process_impl(); /** The real implementation of the finished() slot that is called * when the external process finishes. * @param exit_code the exit code retuned by the external process. */ //virtual void finished_impl(int exit_code); virtual void finished_impl();private slots: /// Calls an impl() inline so that derived classes don't need slots. void abort_process() { abort_process_impl(); } //void finished(int exit_code) { finished_impl(exit_code); } void finished(KProcess*) { finished_impl(); } /** This slot receives all output from the child process's stdin * and stdout streams. */ //void output_receiver(); void output_receiver(KProcess *, char *, int);private: QString error_message_; bool started_; KProcess* process_; fontProgressDialog* progress_; dviRenderer* parent_; QWidget* parent_widget_;};class DVIExportToPDF : public DVIExport{public: /** @param parent is stored internally in order to inform the parent * that the external process has finished. * @param parent_widget is passed to all Qt widgets. */ DVIExportToPDF(dviRenderer& parent, QWidget* parent_widget);};class DVIExportToPS : public DVIExport{public: /** @param parent is stored internally in order to inform the parent * that the external process has finished. * @param parent_widget is passed to all Qt widgets. * @param output_name is the name of the PostScript file that is * to contain the exported data. If this variable is empty, the * user will be asked to supply a file name. * @param options extra command line arguments that are to be * passed to the external process's argv command line. * @param printer having generated the PostScript file, it is passed * to @c printer (if not null). */ DVIExportToPS(dviRenderer& parent, QWidget* parent_widget, const QString& output_name, const QStringList& options, KPrinter* printer);private: virtual void abort_process_impl(); //virtual void finished_impl(int exit_code); virtual void finished_impl(); KPrinter* printer_; QString output_name_; QString tmpfile_name_;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -