LeechCraft 0.6.70-17609-g3dde4097dd
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
backendselector.cpp
Go to the documentation of this file.
1/**********************************************************************
2 * LeechCraft - modular cross-platform feature rich internet client.
3 * Copyright (C) 2006-2014 Georg Rudoy
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7 **********************************************************************/
8
9#include "backendselector.h"
10#include <QSqlDatabase>
11#include "ui_backendselector.h"
12#include "../xmlsettingsdialog/basesettingsmanager.h"
13
14namespace LC::Util
15{
16 BackendSelector::BackendSelector (BaseSettingsManager *m, QWidget *parent)
17 : QWidget { parent }
18 , Ui_ { std::make_unique<Ui::BackendSelector> () }
19 , Manager_ { m }
20 {
21 Ui_->setupUi (this);
22
23 FillUI ();
24
25 // We should check from last to first
26 if (!QSqlDatabase::isDriverAvailable (QStringLiteral ("QMYSQL")))
27 {
28 Ui_->MySQLSettings_->setEnabled (false);
29 Ui_->StorageType_->removeItem (2);
30 }
31 if (!QSqlDatabase::isDriverAvailable (QStringLiteral ("QPSQL")))
32 {
33 Ui_->PostgreSQLSettings_->setEnabled (false);
34 Ui_->StorageType_->removeItem (1);
35 }
36 }
37
39
40 void BackendSelector::FillUI ()
41 {
42 int index = Ui_->StorageType_->findText (Manager_->Property ("StorageType", "SQLite").toString ());
43 Ui_->StorageType_->setCurrentIndex (index);
44 Ui_->Settings_->setCurrentIndex (index);
45
46 const auto defaultPgPort = 5432;
47 Ui_->PostgresHostname_->setText (Manager_->Property ("PostgresHostname", "localhost").toString ());
48 Ui_->PostgresPort_->setValue (Manager_->Property ("PostgresPort", defaultPgPort).toInt ());
49 Ui_->PostgresDBName_->setText (Manager_->Property ("PostgresDBName", "").toString ());
50 Ui_->PostgresUsername_->setText (Manager_->Property ("PostgresUsername", "").toString ());
51 Ui_->PostgresPassword_->setText (Manager_->Property ("PostgresPassword", "").toString ());
52
53 const auto defaultMysqlPort = 3306;
54 Ui_->MysqlHostname_->setText (Manager_->Property ("MysqlHostname", "localhost").toString ());
55 Ui_->MysqlPort_->setValue (Manager_->Property ("MysqlPort", defaultMysqlPort).toInt ());
56 Ui_->MysqlDBName_->setText (Manager_->Property ("MysqlDBName", "").toString ());
57 Ui_->MysqlUsername_->setText (Manager_->Property ("MysqlUsername", "").toString ());
58 Ui_->MysqlPassword_->setText (Manager_->Property ("MysqlPassword", "").toString ());
59 }
60
62 {
63 Manager_->setProperty ("StorageType", Ui_->StorageType_->currentText ());
64
65 Manager_->setProperty ("PostgresHostname", Ui_->PostgresHostname_->text ());
66 Manager_->setProperty ("PostgresPort", Ui_->PostgresPort_->value ());
67 Manager_->setProperty ("PostgresDBName", Ui_->PostgresDBName_->text ());
68 Manager_->setProperty ("PostgresUsername", Ui_->PostgresUsername_->text ());
69 Manager_->setProperty ("PostgresPassword", Ui_->PostgresPassword_->text ());
70
71 Manager_->setProperty ("MysqlHostname", Ui_->MysqlHostname_->text ());
72 Manager_->setProperty ("MysqlPort", Ui_->MysqlPort_->value ());
73 Manager_->setProperty ("MysqlDBName", Ui_->MysqlDBName_->text ());
74 Manager_->setProperty ("MysqlUsername", Ui_->MysqlUsername_->text ());
75 Manager_->setProperty ("MysqlPassword", Ui_->MysqlPassword_->text ());
76 }
77
79 {
80 FillUI ();
81 }
82}
void accept()
Updates the settings manager.
BackendSelector(BaseSettingsManager *manager, QWidget *parent=nullptr)
Constructs the BackendSelector.
void reject()
Restores the settings in UI.