VHISTlib
1.84.0.3018
|
00001 /* $HEADERS 00002 $Id: argfile.h 2179 2011-06-24 09:03:24Z ahuesgen $ 00003 */ 00004 00005 #ifndef ARGFILE_INCLUDED 00006 #define ARGFILE_INCLUDED 00007 00008 #include "../shared/misc_defines.h" 00009 #include "wsfile.h" 00010 00011 #include <QString> 00012 #include <QHash> 00013 #include <QList> 00014 00015 namespace vhist 00016 { 00017 00018 typedef QPair<QString, QString> UserAttribute; 00019 00029 class VHIST_EXTERN ArgFile 00030 { 00031 public: 00036 enum Verbosity 00037 { 00039 QUIET, 00041 NORMAL, 00043 VERBOSE 00044 }; 00045 00046 public: // construction, destruction 00047 ArgFile(); 00048 ArgFile(const QString& outVhistfile, const QString& rootfile = QString()); 00049 ArgFile(const ArgFile& rhs); 00050 ~ArgFile(); 00051 00052 public: // main functionality 00053 QString toCommandline(bool supportVariables = true) const; 00054 00055 public: // getter and setter 00056 void setPretend(bool pretend); 00057 bool pretend() const; 00058 void setDebugMode(bool debug); 00059 bool debugMode() const; 00060 void setVerbosity(Verbosity verbosity); 00061 Verbosity verbosity() const; 00062 void setShowHelp(bool showHelp); 00063 bool showHelp() const; 00064 void setShowVersion(bool showVersion); 00065 bool showVersion() const; 00066 00067 void setRootfile(const QString& rootfile); 00068 QString rootfile() const; 00069 void setRootIsOptional(bool optional); 00070 bool rootIsOptional() const; 00071 00072 void setTitle(const QString& title); 00073 QString title() const; 00074 void setDescription(const QString& description); 00075 QString description() const; 00076 void setComment(const QString& comment); 00077 QString comment() const; 00078 void setTool(const QString& tool); 00079 QString tool() const; 00080 void setToolpath(const QString& toolpath); 00081 QString toolpath() const; 00082 void setHost(const QString& host); 00083 QString host() const; 00084 void setUser(const QString& user); 00085 QString user() const; 00086 void setCommand(const QString& command); 00087 QString command() const; 00088 00089 void setPdfTitle(const QString& pdfTitle); 00090 QString pdfTitle() const; 00091 void setPdfProducer(const QString& pdfProducer); 00092 QString pdfProducer() const; 00093 void setPdfCreator(const QString& pdfCreator); 00094 QString pdfCreator() const; 00095 void setPdfAuthor(const QString& pdfAuthor); 00096 QString pdfAuthor() const; 00097 void setPdfKeywords(const QString& pdfKeywords); 00098 QString pdfKeywords() const; 00099 void setPdfSubject(const QString& pdfSubject); 00100 QString pdfSubject() const; 00101 00102 void setReadme(const QString& readmeFile); 00103 QString readme() const; 00104 void setFirstpage(const QString& firstPageFile); 00105 QString firstpage() const; 00106 00107 void clearVariables(); 00108 void clearRootVhistfiles(); 00109 00110 public: // in-/outfile methods 00111 WSFile* lastFile(); 00112 WSFile* addFile(const WSFile& file); 00113 int numFiles() const; 00114 WSFile* getFile(int index); 00115 WSFile getConstFile(int index) const; 00116 void clearFilelist(); 00117 void removeFile(int index); 00118 00119 public: // user attribute methods 00120 void addUserAttribute(const QString& key, const QString& value); 00121 void clearUserAttributes(); 00122 QStringList userAttributeKeys() const; 00123 QString userAttribute(const QString& key) const; 00124 00125 public: // output vhistfile methods 00126 void addOutputVhistfile(const QString& filename); 00127 void clearOutputVhistfiles(); 00128 int numOutputVhistfiles() const; 00129 QString outputVhistfile(int index) const; 00130 QString getUndoWorkflowStep() const; 00131 00132 private: // list/hash options 00133 QHash<QString, QString> m_userAttributes; 00134 QStringList m_userAttributesOrder; 00135 QList<WSFile> m_files; 00136 QStringList m_outVhistfiles; 00137 00138 private: // misc options 00139 Verbosity m_verbosity; 00140 bool m_rootIsOptional; 00141 bool m_pretend; 00142 bool m_debugMode; 00143 bool m_showHelp; 00144 bool m_showVersion; 00145 00146 QString m_firstpage; 00147 QString m_readme; 00148 00149 QString m_rootfile; 00150 00151 private: // -s options 00152 QString m_title; 00153 QString m_description; 00154 QString m_comment; 00155 QString m_tool; 00156 QString m_toolpath; 00157 QString m_host; 00158 QString m_user; 00159 QString m_command; 00160 00161 private: // -d options 00162 QString m_pdfTitle; 00163 QString m_pdfProducer; 00164 QString m_pdfCreator; 00165 QString m_pdfAuthor; 00166 QString m_pdfKeywords; 00167 QString m_pdfSubject; 00168 }; 00169 00170 } // namespace 00171 00172 #endif // ARGFILE_INCLUDED 00173