00001 #ifndef MAINWINDOW_H 00002 #define MAINWINDOW_H 00003 00004 #include <QDialog> 00005 #include <QMainWindow> 00006 #include <QWidget> 00007 #include <QTextListFormat> 00008 #include <QTextBlockFormat> 00009 00010 #include <QtXml> 00011 #include <QtGui> 00012 #include <QXmlSimpleReader> 00013 #include <QXmlInputSource> 00014 00015 #include <QStandardItemModel> 00016 #include <QAbstractItemModel> 00017 #include <QAbstractListModel> 00018 #include <QItemSelectionModel> 00019 00020 #include <QAction> 00021 #include <QApplication> 00022 #include <QClipboard> 00023 #include <QColorDialog> 00024 #include <QComboBox> 00025 #include <QFontComboBox> 00026 #include <QFile> 00027 #include <QFileDialog> 00028 #include <QFileInfo> 00029 #include <QFontDatabase> 00030 #include <QMenu> 00031 #include <QMenuBar> 00032 #include <QPrintDialog> 00033 #include <QPrinter> 00034 #include <QTextCodec> 00035 #include <QTextEdit> 00036 #include <QToolBar> 00037 #include <QTextCursor> 00038 #include <QTextList> 00039 #include <QtDebug> 00040 #include <QCloseEvent> 00041 #include <QMessageBox> 00042 #include <QList> 00043 #include <QHBoxLayout> 00044 #include <QSplitter> 00045 #include <QSystemTrayIcon> 00046 00047 #include <QTreeView> 00048 #include <QListView> 00049 #include <QStatusBar> 00050 00051 #include "main.h" 00052 #include "xmltree.h" 00053 #include "treemodel.h" 00054 #include "knowtreemodel.h" 00055 #include "treescreen.h" 00056 #include "editor.h" 00057 #include "metaeditor.h" 00058 #include "recordtablescreen.h" 00059 00060 #include "treeitem.h" 00061 #include "appconfig.h" 00062 #include "addnewrecord.h" 00063 #include "editrecord.h" 00064 #include "findscreen.h" 00065 00066 #define ADD_NEW_RECORD_TO_END 0 00067 #define ADD_NEW_RECORD_BEFORE 1 00068 #define ADD_NEW_RECORD_AFTER 2 00069 00070 00071 class mainwindow : public QMainWindow 00072 { 00073 Q_OBJECT 00074 00075 public: 00076 mainwindow(); 00077 ~mainwindow(); 00078 00079 treescreen *treeview; 00080 recordtablescreen *recordtableview; 00081 metaeditor *editorview; 00082 findscreen *findscreendisp; 00083 QStatusBar *statbar; 00084 00085 void save_current_record_text(void); 00086 00087 void restore_geometry(void); 00088 void restore_tree_position(void); 00089 void restore_recordtable_position(void); 00090 void restore_findonbase_visible(void); 00091 00092 void set_tree_position(QStringList path); 00093 00094 void set_recordtable_position(int n); 00095 00096 private slots: 00097 void fileNew(void); 00098 void fileOpen(void); 00099 bool fileSave(void); 00100 bool fileSaveAs(void); 00101 void filePrint(void); 00102 void filePrintPreview(void); 00103 void filePrintPdf(void); 00104 00105 void icon_activated(QSystemTrayIcon::ActivationReason reason); 00106 void application_exit(void); 00107 00108 private: 00109 00110 void setup_ui(void); 00111 void setup_signals(void); 00112 void assembly(void); 00113 00114 void initFileActions(void); 00115 void initRecordTableActions(void); 00116 00117 void setup_icon_actions(void); 00118 void create_tray_icon(void); 00119 void set_icon(void); 00120 00121 void save_geometry(void); 00122 void save_tree_position(void); 00123 void save_recordtable_position(void); 00124 00125 QAction *tray_restore_action; 00126 QAction *tray_maximize_action; 00127 QAction *tray_minimize_action; 00128 QAction *tray_quit_action; 00129 00130 QSystemTrayIcon *tray_icon; 00131 QMenu *tray_icon_menu; 00132 00133 QSplitter *vspl; 00134 QSplitter *hspl; 00135 QSplitter *findsplitter; 00136 00137 protected: 00138 00139 void closeEvent(QCloseEvent *event); 00140 00141 00142 }; 00143 #endif