-
Notifications
You must be signed in to change notification settings - Fork 358
/
mainwindow.h
136 lines (114 loc) · 3.64 KB
/
mainwindow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/*
* Copyright (C) 2009, 2010, 2011 Nicolas Bonnefon and other contributors
*
* This file is part of glogg.
*
* glogg is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* glogg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with glogg. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "crawlerwidget.h"
#include "infoline.h"
class QAction;
class RecentFiles;
// Main window of the application, creates menus, toolbar and
// the CrawlerWidget
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
// Loads the initial file (parameter passed or from config file)
void loadInitialFile( QString fileName );
protected:
void closeEvent( QCloseEvent* event );
// Drag and drop support
void dragEnterEvent( QDragEnterEvent* event );
void dropEvent( QDropEvent* event );
private slots:
void open();
void openRecentFile();
void copy();
void find();
void reload();
void stop();
void filters();
void options();
void about();
void aboutQt();
// Change the view settings
void toggleOverviewVisibility( bool isVisible );
// Disable the follow mode checkbox and send the followSet signal down
void disableFollow();
// Update the line number displayed in the status bar.
// Must be passed as the internal (starts at 0) line number.
void lineNumberHandler( int line );
// Instructs the widget to update the loading progress gauge
void updateLoadingProgress( int progress );
// Instructs the widget to display the 'normal' status bar,
// without the progress gauge and with file info
void displayNormalStatus( bool success );
signals:
// Is emitted when new settings must be used
void optionsChanged();
// Is emitted when the 'follow' option is enabled/disabled
void followSet( bool checked );
private:
void createActions();
void createMenus();
void createContextMenu();
void createToolBars();
void createStatusBar();
void createCrawler();
void readSettings();
void writeSettings();
bool loadFile( const QString& fileName );
void setCurrentFile( const QString& fileName );
void updateRecentFileActions();
QString strippedName( const QString& fullFileName ) const;
// Returns the size in human readable format
QString readableSize( qint64 size ) const;
SavedSearches *savedSearches;
CrawlerWidget *crawlerWidget;
RecentFiles& recentFiles;
QString loadingFileName;
QString currentFile;
QString previousFile;
enum { MaxRecentFiles = 5 };
QAction *recentFileActions[MaxRecentFiles];
QAction *separatorAction;
QMenu *fileMenu;
QMenu *editMenu;
QMenu *viewMenu;
QMenu *toolsMenu;
QMenu *helpMenu;
InfoLine *infoLine;
QLabel* lineNbField;
QToolBar *toolBar;
QAction *openAction;
QAction *exitAction;
QAction *copyAction;
QAction *findAction;
QAction *overviewVisibleAction;
QAction *followAction;
QAction *reloadAction;
QAction *stopAction;
QAction *filtersAction;
QAction *optionsAction;
QAction *aboutAction;
QAction *aboutQtAction;
QIcon mainIcon_;
};
#endif