-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmainwindow.h
185 lines (158 loc) · 4.76 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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QStringList>
#include <QList>
#include <QToolButton>
#include <QDir>
#include <QFile>
#include <QTextStream>
#include <QProcess>
#include <QTimer>
#include <QtGui>
#include <QAction>
#include <QMenu>
#include <QTextEdit>
#include <QListWidget>
#include <QListWidgetItem>
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <QHeaderView>
#include <QToolBar>
#include <QLineEdit>
#include <QFileDialog>
#include <QMenuBar>
#include <QStatusBar>
#include <QDockWidget>
#include <QInputDialog>
#include <QSystemTrayIcon>
#include <QApplication>
#include <QDesktopWidget>
#include "weburl.h"
#include "addurl.h"
#include "optionsdialog.h"
#include "linkstructure.h"
#include "urlitemdelegate.h"
#include "consts.h"
struct Settings {
QString strDefBrowser;
QString strPathToDB;
bool boolMonitoringClipboard = false;
int autosaveInterval = 0;
QRect windowPosition = QRect(-1, -1, -1, -1);
bool windowVisible = false;
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
~MainWindow();
QTreeWidgetItem *getRoot() const;
void setRoot(QTreeWidgetItem *value);
protected:
void closeEvent(QCloseEvent *event);
void changeEvent(QEvent* e);
private slots:
void About();
void execAddUrl();
void getInfo(QListWidgetItem *item);
void selectByTag(QTreeWidgetItem *treeItem, int column);
void delUrl();
void gotoUrl();
void Options();
void setSearchFocus();
void showFavorites();
void searchInDB(const QString text);
void initApp();
void createDatabase();
void clipboardChanged();
void renameTag();
void deleteTag();
void customMenuRequested(QPoint pos);
void openApp();
void quitApp();
void exitApp();
void autosaveDB();
void saveAll();
void copyLinkToClipboard();
void setFavoriteLink();
void editLink();
void deleteLink();
private:
QMenu *menuUrl;
QAction *actNewDatabase;
QAction *actOpenUrl;
QAction *actOpenUrlWith;
QAction *actAddUrl;
QAction *actEditUrl;
QAction *actDelUrl;
QAction *actSaveAll;
QAction *actExit;
QMenu *menuProgram;
QAction *actOptions;
QMenu *menuHelp;
QAction *actAbout;
QToolBar *mainToolBar;
QAction *actToolAddUrl;
QAction *actToolEditUrl;
QAction *actToolDelUrl;
QAction *actToolGoToUrl;
QAction *actSearchUrl;
QAction *actToolFavorite;
QListWidget *urlListWidget; // список с ссылками
QTreeWidget *tagListWidget; // список тэгов
QTextEdit *urlInfo; // в нем показывается инфа о ссылке
QLineEdit *search; // строка ввода поиска
QMenu *popupMenuTags;
QMenu *popupMenuUrlList;
QAction *actPopupIsFavorite;
QLabel *labelTags;
QSystemTrayIcon *systemTrayIcon;
void createLockFile();
void removeLockFile();
void createMenu();
void createActions();
void createStatusBar();
void createToolBar();
void createDocWindows();
void createTagsPopupMenu();
void createUrlListPopupMenu();
void createTrayMenu();
bool readSettings();
void saveSettings();
void restartAutosaveTimer();
bool loadDB();
void saveDB();
void addNewUrlDialog();
void addUrlItem(weburl *url);
void addTagWidgetItem(const QString &tag);
void addWidgetItem(/*bool favorite, QString text*/weburl *url);
void editUrlDialog();
void clearUrlList();
void selectBrowser(QStringList args);
void resetList();
// void setItemFavorite(bool favorite, QListWidgetItem *newItem);
void initMonitoringClipboard();
void addRootTreeItem();
void clearAllTags();
bool treeContainTag(const QString &tag);
void updateTags(weburl *url);
void updateWindowsTitle();
LinkStructure *linkStructure = nullptr;
// Options
Settings settings;
QTimer *autosaveTimer = nullptr;
QClipboard *board = nullptr;
QString oldClipboard;
QString homeDir;
bool dataEdited;
bool isSearching = false;
QTreeWidgetItem *selectedTagItem;
QListWidgetItem *selectedUrlItem;
int selectedTagIndex = -1;
int selectedUrlIndex = -1;
QTreeWidgetItem *rootTagsItem = nullptr;
QFile *lockFile = nullptr;
};
#endif