-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbrowserview.h
More file actions
146 lines (123 loc) · 4.62 KB
/
browserview.h
File metadata and controls
146 lines (123 loc) · 4.62 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
// Copyright (c) 2021-2025, K9spud LLC.
//
// This program 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 2
// of the License, or (at your option) any later version.
//
// This program 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 this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#ifndef BROWSERVIEW_H
#define BROWSERVIEW_H
#include "history.h"
#include <QTextEdit>
#include <QStringList>
#include <QHash>
#include <QVector>
#include <QVariant>
#include <QRegularExpression>
#include <QIcon>
#include <QPointF>
#include <QTimer>
#include <QProcess>
class QLabel;
class QMenu;
class QContextMenuEvent;
class QSqlQuery;
class BrowserWindow;
class CompositeView;
class BrowserView : public QTextEdit
{
Q_OBJECT
public:
explicit BrowserView(QWidget *parent = nullptr);
QString currentUrl;
QPoint scrollPosition();
void setScrollPosition(const QPoint& pos);
QPoint saveScrollPosition();
CompositeView* composite;
bool find(const QString &text, QTextDocument::FindFlags options = QTextDocument::FindFlags());
QString appNoVersion(QString app);
QString appVersion(QString app);
void contextMenuUninstallLink(QMenu* menu, QString urlPath);
void contextMenuInstallLink(QMenu* menu, QString urlPath);
void contextMenuAppLink(QMenu* menu, QString urlPath);
void contextMenuAppWhitespace(QMenu* menu);
signals:
void urlChanged(const QUrl& url);
void titleChanged(const QString& title);
void loadProgress(int percent);
void loadFinished();
void openInNewTab(const QString& url);
void appendHistory(const History::State& state);
void updateState(const History::State& state);
public slots:
void navigateTo(QString text, bool changeHistory = true, bool feelingLucky = false);
void jumpTo(const History::State& s);
void setUrl(const QUrl& url);
void error(QString text);
void reload(bool hardReload = true);
void stop();
void viewAbout();
void reloadingDatabase();
void viewFile(QString fileName);
void viewFolder(QString folderPath);
void viewApp(const QUrl& url);
void viewProcess(QString cmd, QStringList options);
void viewUseFlag(const QUrl& url);
void viewAppFiles(const QUrl& url);
void viewUpdates(QString action, QString filter);
void reloadApp(const QUrl& url);
void searchApps(QString search, bool feelingLucky = false);
void whatsNew(QString search, bool feelingLucky = false);
protected slots:
void swipeUpdate(void);
void longPressTimeout();
void copyAvailableEvent(bool yes);
void quseProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);
void qlistProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);
void reloadProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);
void processFinished(int exitCode, QProcess::ExitStatus exitStatus);
void processReadStandardError(void);
void processReadStandardOutput(void);
protected:
void processReadOutput(bool readLast, int exitCode, QProcess::ExitStatus exitStatus);
void mousePressEvent(QMouseEvent* event) override;
void mouseMoveEvent(QMouseEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override;
virtual void keyPressEvent(QKeyEvent *event) override;
bool scrollGrabbed;
bool swiping;
bool selecting;
int oldScrollValue;
int oldY;
int dy;
QTimer animationTimer;
QTimer longPressTimer;
QPoint startPress;
QPoint startLongPress;
QPoint startLongPressGlobalPosition;
bool eatPress;
virtual void contextMenuEvent(QContextMenuEvent *event) override;
QString lastSearch;
QString oldLink;
QString context;
QString useApp;
QString markdown;
bool isWorld;
void fetch(QSqlQuery* query);
void upgrade(QSqlQuery* query);
void showUpdates(QSqlQuery* query, QString header, QString filter);
void showQueryResult(QSqlQuery* query, QString header, QString search, bool feelingLucky = false);
void printApp(QString& result, QString& app, QString& description, QString& latestVersion, QStringList& installedVersions, QStringList& obsoletedVersions);
QProcess* process;
bool processReadFirst;
QString oldTitle;
};
#endif // BROWSERVIEW_H