logviewer.qo.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef LOGVIEWER_H
00029 #define LOGVIEWER_H
00030
00031 #if ! defined(__APPLE__) || defined(__USE_WS_X11__)
00032 #include <graphics/X11/X_enter.h>
00033 #endif
00034
00035 #include <fstream>
00036 #include <QMainWindow>
00037 #include <QMap>
00038 #include <QModelIndex>
00039 #include <QPointer>
00040 #include <QMutex>
00041 #include <QTime>
00042 #include <QFileSystemWatcher>
00043 #include <QTextStream>
00044
00045
00046 class QAction;
00047 class QComboBox;
00048 class QLineEdit;
00049 class QTreeView;
00050 class QTreeWidget;
00051 class QMenu;
00052 class QFile;
00053 class QSortFilterProxyModel;
00054 class QCheckBox;
00055 class QLabel;
00056
00057 #if ! defined(__APPLE__) || defined(__USE_WS_X11__)
00058 #include <graphics/X11/X_exit.h>
00059 #endif
00060
00061 namespace casa {
00062
00063 class LogModel;
00064 class FileWatcher;
00065
00066 class LogViewer : public QMainWindow
00067 {
00068 Q_OBJECT
00069
00070 public:
00071 LogViewer(QString logger = 0, QWidget *parent = 0);
00072
00073 protected:
00074 virtual void closeEvent(QCloseEvent *e);
00075 virtual void moveEvent(QMoveEvent *e);
00076
00077 private:
00078 void setupFileActions();
00079 void setupEditActions();
00080 void setupInsertActions();
00081 void updateMenus();
00082 bool load(const QString &f);
00083 bool maybeSave();
00084
00085 private slots:
00086 void fileOpen();
00087 bool fileSave();
00088 bool fileSaveAs();
00089 void filePrint();
00090 void filePrintPdf();
00091 void fileChanged(const QString&);
00092 void logOpen();
00093
00094 void search();
00095 void findNext();
00096 void remove();
00097 void purge();
00098 void copy();
00099 void insert();
00100 void changeFilterText();
00101 void changeFilterColumn(int);
00102 void doFilter();
00103 void refresh();
00104 void reload();
00105 void hide();
00106 void changeFont();
00107
00108 void clicked(const QModelIndex &index);
00109
00110 virtual QSize sizeHint () const;
00111
00112 private:
00113
00114 QAction *actionOpen,
00115 *actionSave,
00116 *actionSaveAs,
00117 *actionSearch,
00118 *actionNext,
00119 *actionFilter,
00120 *actionInsert,
00121 *actionCopy,
00122 *actionDelete,
00123 *actionDeleteAll,
00124 *actionPrint,
00125 *actionPdf,
00126 *actionHideDate,
00127 *actionHidePrio,
00128 *actionHideFrom,
00129 *actionWrite,
00130 *actionRefresh,
00131 *actionReload,
00132 *actionLarge,
00133 *actionSmall;
00134
00135 QLineEdit *searchText,
00136 *insertText,
00137 *filterText;
00138
00139 QComboBox *filterColumn;
00140
00141 QToolBar *tb;
00142 QLabel *searchLabel;
00143 QLabel *filterLabel;
00144 QLabel *insertLabel;
00145
00146 int currentColumn;
00147 QModelIndex currentLogRow;
00148 QString currentFilter;
00149 QString currentSearch;
00150 int nextRow;
00151
00152 QString fileName;
00153
00154
00155
00156
00157
00158 std::ifstream *logStream;
00159
00160 QTreeView *logView;
00161 LogModel *logModel;
00162 QSortFilterProxyModel *proxyModel;
00163 QFileSystemWatcher *logWatcher;
00164 qint64 logPos;
00165 bool canClose;
00166 QCheckBox* lockScroll;
00167
00168 QMutex mutex;
00169 };
00170
00171 }
00172 #endif