LeechCraft  0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
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 
14 namespace 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 
38  BackendSelector::~BackendSelector () = default;
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 
61  void BackendSelector::accept ()
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 
78  void BackendSelector::reject ()
79  {
80  FillUI ();
81  }
82 }
LC::Util::BackendSelector::BackendSelector
BackendSelector(BaseSettingsManager *manager, QWidget *parent=nullptr)
Constructs the BackendSelector.
Definition: backendselector.cpp:22
LC::Util
Definition: icoreproxy.h:33
backendselector.h