Currently shows everything in a plain line edit, including the password.
tabs/databaselogtab.cpp \
tabs/clientlogtab.cpp \
fonts.cpp \
- aniaddsyntaxhighlighter.cpp
+ aniaddsyntaxhighlighter.cpp \
+ settingsdialog.cpp
HEADERS += mainwindow.h \
databaseconnectiondialog.h \
tabs/databaselogtab.h \
tabs/clientlogtab.h \
fonts.h \
- aniaddsyntaxhighlighter.h
+ aniaddsyntaxhighlighter.h \
+ settingsdialog.h
FORMS += mainwindow.ui \
databaseconnectiondialog.ui \
+ settingsdialog.ui \
tabs/mylisttab.ui \
tabs/searchtab.ui \
tabs/reportstab.ui \
#include "addrelatedepisodestask.h"
#include "filelocationchecktask.h"
#include "reportengine.h"
+#include "settingsdialog.h"
#ifndef LOCALMYLIST_NO_ANIDBUDPCLIENT
# include "renamesettingsdialog.h"
#endif
if (!d.exec())
return;
}
+
+void MainWindow::on_actionSettings_triggered()
+{
+ SettingsDialog d;
+
+ if (!d.exec())
+ return;
+
+ d.apply();
+}
void on_actionConnection_triggered();
+ void on_actionSettings_triggered();
+
protected:
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
<property name="title">
<string>Settings</string>
</property>
+ <addaction name="actionSettings"/>
<addaction name="actionConnection"/>
+ <addaction name="separator"/>
<addaction name="actionRenameScript"/>
</widget>
<widget class="QMenu" name="menu_Actions">
<string>Clear Selection</string>
</property>
</action>
+ <action name="actionSettings">
+ <property name="text">
+ <string>Settings...</string>
+ </property>
+ </action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
--- /dev/null
+#include "settingsdialog.h"
+#include "ui_settingsdialog.h"
+
+#include <QFormLayout>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+
+#include "mylist.h"
+#include "settings.h"
+
+SettingsDialog::SettingsDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::SettingsDialog)
+{
+ ui->setupUi(this);
+
+ QPushButton *button = ui->buttonBox->button(QDialogButtonBox::Reset);
+ connect(button, SIGNAL(clicked()), this, SLOT(reset()));
+
+ button = ui->buttonBox->button(QDialogButtonBox::Apply);
+ connect(button, SIGNAL(clicked()), this, SLOT(apply()));
+
+ settings = LocalMyList::instance()->settings()->availableSettings();
+ generateSettings();
+}
+
+SettingsDialog::~SettingsDialog()
+{
+ delete ui;
+}
+
+void SettingsDialog::reset()
+{
+ for (auto it = editors.begin(); it != editors.end(); ++it)
+ {
+ it.value()->setText(LocalMyList::instance()->settings()->get(it.key()).toString());
+ }
+}
+
+void SettingsDialog::apply()
+{
+ LocalMyList::Settings *s = LocalMyList::instance()->settings();
+ for (auto it = editors.begin(); it != editors.end(); ++it)
+ {
+ if (it.value()->text() != s->get(it.key()).toString())
+ s->set(it.key(), it.value()->text());
+ }
+ s->commit();
+}
+
+void SettingsDialog::generateSettings()
+{
+ editors.clear();
+ qDeleteAll(ui->settingsBox->children());
+
+ QFormLayout *layout = new QFormLayout(ui->settingsBox);
+
+ for (const QString &setting : settings)
+ {
+ QLabel *label = new QLabel(ui->settingsBox);
+ QLineEdit *lineEdit = new QLineEdit(ui->settingsBox);
+
+ label->setText(setting);
+ label->setBuddy(lineEdit);
+
+ lineEdit->setText(LocalMyList::instance()->settings()->get(setting).toString());
+
+ layout->addRow(label, lineEdit);
+
+ editors.insert(setting, lineEdit);
+ }
+}
--- /dev/null
+#ifndef SETTINGSDIALOG_H
+#define SETTINGSDIALOG_H
+
+#include <QDialog>
+#include <QMap>
+#include <QStringList>
+
+class QLineEdit;
+
+namespace Ui {
+class SettingsDialog;
+}
+
+class SettingsDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit SettingsDialog(QWidget *parent = 0);
+ ~SettingsDialog();
+
+public slots:
+ void reset();
+ void apply();
+
+private:
+ void generateSettings();
+
+ Ui::SettingsDialog *ui;
+
+ QStringList settings;
+ QMap<QString, QLineEdit *> editors;
+};
+
+#endif // SETTINGSDIALOG_H
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SettingsDialog</class>
+ <widget class="QDialog" name="SettingsDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Settings</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QGroupBox" name="settingsBox">
+ <property name="title">
+ <string>Settings</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Reset</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>SettingsDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>SettingsDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>