-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathviews_handler.h
More file actions
150 lines (137 loc) · 4.77 KB
/
views_handler.h
File metadata and controls
150 lines (137 loc) · 4.77 KB
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
#ifndef VIEWS_HANDLER_H
#define VIEWS_HANDLER_H
#include <MkTextDocument.h>
#include <QSharedPointer>
#include <QTreeWidgetItem>
#include <QMessageBox>
#include <QMutex>
#include <QThread>
#include <QSettings>
#include <mkedit.h>
#include <navigationview.h>
#include <navigationmodel.h>
#include <startupText.h>
#include "textsearchworker.h"
#include "ui_mainwindow.h"
#include "recentfilesdialog.h"
#include "settingsdialog.h"
#include "togglebutton.h"
#define NAVIGATION_RATIO 100
#define EDITOR_RAIO 200
class ViewsHandler: public QObject
{
Q_OBJECT
public:
ViewsHandler(QWidget *parent, ViewsHandler &other) = delete;
void operator=(const ViewsHandler&) = delete;
enum DOCUMENT_STATUS{
NEW_DOCUMENT,
OLD_DOCUMENT,
NOT_DOCUMENT,
};
static QSharedPointer<ViewsHandler> getInstance(QWidget *parent,Ui::MainWindow &ui)
{
static QSharedPointer<ViewsHandler> handle{new ViewsHandler(parent,ui) };
return handle;
}
~ViewsHandler(){
}
public slots:
void openRecentFilesDialogHandle(bool show);
void startTextSearchInAllFilesHandle();
void startFileSearchHandle();
void sendFocusToNavigationViewHandler();
void editLockHandle();
private:
ViewsHandler(QWidget*parent,Ui::MainWindow &ui){
firstDirectoryLoad = true;
ui.uiFrameSearchTree->hide();
this->parent = parent;
recentFilesList = new QListWidget(this->parent);
recentFilesView = new RecentFilesDialog(this->parent,recentFilesList);
settingsDialog = new SettingsDialog(this->parent);
initViews(ui);
initConnection();
textSearchWorker.moveToThread(&searchThread);
QCoreApplication::setApplicationName("Remini");
QSettings settings("Remini","Remini");
markdown = settings.value("markdown",true).toBool();
viewText->setMkState(markdown);
viewTitle->setText("Startup Tips");
viewText->setReadOnly(true);
}
QWidget *parent;
QThread searchThread;
RecentFilesDialog *recentFilesView;
QListWidget *recentFilesList;
QFrame *viewLeftFrame;
QFrame *viewRightFrame;
TextSearchWorker textSearchWorker;
QFileSystemModel modelTree;
NavigationProxyModel proxyModel;
MkEdit* viewText;
QLabel* viewTitle;
QToolButton * viewSettingBtn;
SettingsDialog * settingsDialog;
QLineEdit* viewSearch;
NavigationView* viewTree;
QFileInfo fileInfo;
QDialog fileDeleteConfirm;
QFrame *frameSearchTextTree;
QFrame *frameSearchFileTree;
QLineEdit *viewTextSearchEdit;
NavigationView *viewTextSearchTree;
QLabel *viewTextSearchCount;
ToggleButton *viewToggleBtnEdit ;
QFont fontBase;
QString getVaultPath();
void setVaultPath(QString& path);
void initViews(Ui::MainWindow &ui);
bool initTreeView(QString path = NULL);
void initFontDefault();
void initConnection();
void connectDocument();
void disconnectDocument();
QString getFileContent(QFile& file);
DOCUMENT_STATUS setCurrentDocument(const QFileInfo &fileInfo);
MkTextDocument mkGuiDocument;
Highlighter highlighter;
QString searchedFilename;
QMutex fileSearchMutex;
bool firstDirectoryLoad;
QMap<QString, QPair<int,int>> recentFileCursorMap;
QSharedPointer<MkTextDocument> currentDocument;
QMap<QString, QSharedPointer<MkTextDocument>> recentFileDocumentMap;
QString currentFilePath;
QString vaultPath;
bool markdown;
bool lineWrap;
signals:
void load_text(QString text);
void clear_text();
void fileDelete(QModelIndex& index);
void fileDeletePath(const QString& path);
void updateRecentFile(const QString &relativePath);
private slots:
void fileDisplay(const QModelIndex& index);
void updateUiSettingsHandler(const QFont &font);
void fileSaveRawHandle();
void fileDeleteDialogue(QModelIndex& index);
void searchFileHandle(const QString &filename);
void navigationAllPathLoaded(QString path);
void navigationViewExpandedFilenameFilter();
void doSearchWork(QString &text);
void displayTextSearchedFilePosition(QString &filePath,int searchTextLength,int blockNumber, int positionInBlock);
void showSettingsBtn();
void fileRenamedHandler(const QString& newName, const QString& oldName, const QModelIndex& index);
QString setVaultPathHandler();
void checkIfCursorInBlockHandler(bool &isBlock, QTextCursor &cursor);
void textSearchChangedHandler(const QString &text);
void updateTextSearchViewHandler(QStandardItemModel *model, int matchCount);
void textSearchResultPositionSelected(const QModelIndex &index);
void sendFocusToSearchHandler(QWidget * view);
void textSearchReturnPressedHandler();
void fileSearchReturnPressedHandler();
void emptySearchHandler();
};
#endif // VIEWS_HANDLER_H