Skip to content

Commit ddf5117

Browse files
committed
dbhub: Refactor networking code
This splits up the RemoteDatabase class into two classes, RemoteDatabase and RemoteNetwork. The first is for managing the directory of cloned databases while the second is for network handling only. Moving the network code into a separate class requires some rewriting but should make the code easier to maintain and extend.
1 parent ab5b633 commit ddf5117

17 files changed

Lines changed: 949 additions & 879 deletions

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ set(SQLB_MOC_HDR
173173
src/ImageViewer.h
174174
src/RemoteLocalFilesModel.h
175175
src/RemoteCommitsModel.h
176+
src/RemoteNetwork.h
176177
)
177178

178179
set(SQLB_SRC
@@ -234,6 +235,7 @@ set(SQLB_SRC
234235
src/ImageViewer.cpp
235236
src/RemoteLocalFilesModel.cpp
236237
src/RemoteCommitsModel.cpp
238+
src/RemoteNetwork.cpp
237239
)
238240

239241
set(SQLB_FORMS

src/Application.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
#include "Application.h"
1111
#include "MainWindow.h"
12+
#include "RemoteNetwork.h"
1213
#include "Settings.h"
1314
#include "version.h"
1415

@@ -215,6 +216,10 @@ QString Application::versionString()
215216

216217
void Application::reloadSettings()
217218
{
219+
// Network settings
220+
RemoteNetwork::get().reloadSettings();
221+
222+
// Font settings
218223
QFont f = font();
219224
f.setPointSize(Settings::getValue("General", "fontsize").toInt());
220225
setFont(f);

src/MainWindow.cpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
#include "FileDialog.h"
2323
#include "FilterTableHeader.h"
2424
#include "RemoteDock.h"
25-
#include "RemoteDatabase.h"
2625
#include "FindReplaceDialog.h"
2726
#include "RunSql.h"
2827
#include "ExtendedTableWidget.h"
@@ -62,7 +61,6 @@ MainWindow::MainWindow(QWidget* parent)
6261
: QMainWindow(parent),
6362
ui(new Ui::MainWindow),
6463
db(),
65-
m_remoteDb(new RemoteDatabase),
6664
editDock(new EditDialog(this)),
6765
plotDock(new PlotDock(this)),
6866
remoteDock(new RemoteDock(this)),
@@ -79,7 +77,6 @@ MainWindow::MainWindow(QWidget* parent)
7977

8078
MainWindow::~MainWindow()
8179
{
82-
delete m_remoteDb;
8380
delete ui;
8481
}
8582

@@ -99,10 +96,10 @@ void MainWindow::init()
9996

10097
// Automatic update check
10198
#ifdef CHECKNEWVERSION
102-
connect(m_remoteDb, &RemoteDatabase::networkReady, [this]() {
99+
connect(&RemoteNetwork::get(), &RemoteNetwork::networkReady, []() {
103100
// Check for a new version if automatic update check aren't disabled in the settings dialog
104101
if(Settings::getValue("checkversion", "enabled").toBool())
105-
m_remoteDb->fetch(QUrl("https://download.sqlitebrowser.org/currentrelease"), RemoteDatabase::RequestTypeNewVersionCheck);
102+
RemoteNetwork::get().fetch(QUrl("https://download.sqlitebrowser.org/currentrelease"), RemoteNetwork::RequestTypeNewVersionCheck);
106103
});
107104
#endif
108105

@@ -389,7 +386,7 @@ void MainWindow::init()
389386
connect(ui->dbTreeWidget->selectionModel(), &QItemSelectionModel::currentChanged, this, &MainWindow::changeTreeSelection);
390387
connect(ui->dockEdit, &QDockWidget::visibilityChanged, this, &MainWindow::toggleEditDock);
391388
connect(remoteDock, SIGNAL(openFile(QString)), this, SLOT(fileOpen(QString)));
392-
connect(m_remoteDb, &RemoteDatabase::gotCurrentVersion, this, &MainWindow::checkNewVersion);
389+
connect(&RemoteNetwork::get(), &RemoteNetwork::gotCurrentVersion, this, &MainWindow::checkNewVersion);
393390
connect(ui->actionDropQualifiedCheck, &QAction::toggled, dbStructureModel, &DbStructureModel::setDropQualifiedNames);
394391
connect(ui->actionEnquoteNamesCheck, &QAction::toggled, dbStructureModel, &DbStructureModel::setDropEnquotedNames);
395392
connect(&db, &DBBrowserDB::databaseInUseChanged, this, &MainWindow::updateDatabaseBusyStatus);
@@ -2138,9 +2135,6 @@ void MainWindow::reloadSettings()
21382135
if(!showRemoteActions)
21392136
ui->dockRemote->setHidden(true);
21402137

2141-
// Update the remote database connection settings
2142-
m_remoteDb->reloadSettings();
2143-
21442138
// Reload remote dock settings
21452139
remoteDock->reloadSettings();
21462140

src/MainWindow.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ class EditDialog;
1212
class ExtendedTableWidget;
1313
class FindReplaceDialog;
1414
class PlotDock;
15-
class RemoteDatabase;
1615
class RemoteDock;
1716
class RunSql;
1817
class SqliteTableModel;
@@ -36,7 +35,6 @@ class MainWindow : public QMainWindow
3635
~MainWindow() override;
3736

3837
DBBrowserDB& getDb() { return db; }
39-
RemoteDatabase& getRemote() { return *m_remoteDb; }
4038

4139
private:
4240
struct PragmaValues
@@ -86,8 +84,6 @@ class MainWindow : public QMainWindow
8684
QAction *recentFileActs[MaxRecentFiles];
8785
QAction *recentSeparatorAct;
8886

89-
RemoteDatabase* m_remoteDb;
90-
9187
EditDialog* editDock;
9288
PlotDock* plotDock;
9389
RemoteDock* remoteDock;

src/PreferencesDialog.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include "Settings.h"
55
#include "Application.h"
66
#include "MainWindow.h"
7-
#include "RemoteDatabase.h"
7+
#include "RemoteNetwork.h"
88
#include "FileExtensionManager.h"
99
#include "ProxyDialog.h"
1010

@@ -139,7 +139,7 @@ void PreferencesDialog::loadSettings()
139139
// Remote settings
140140
ui->checkUseRemotes->setChecked(Settings::getValue("remote", "active").toBool());
141141
{
142-
auto ca_certs = static_cast<Application*>(qApp)->mainWindow()->getRemote().caCertificates();
142+
auto ca_certs = RemoteNetwork::get().caCertificates();
143143
ui->tableCaCerts->setRowCount(ca_certs.size());
144144
for(int i=0;i<ca_certs.size();i++)
145145
{

0 commit comments

Comments
 (0)