This commit is contained in:
Martin Rotter 2016-04-14 12:35:26 +02:00
parent 755eda6eff
commit df79fc1a8a
4 changed files with 20 additions and 5 deletions

View File

@ -492,6 +492,10 @@ void FormMain::backupDatabaseSettings() {
void FormMain::restoreDatabaseSettings() {
QScopedPointer<FormRestoreDatabaseSettings> form(new FormRestoreDatabaseSettings(this));
form->exec();
if (form->shouldRestart()) {
qApp->restart();
}
}
void FormMain::changeEvent(QEvent *event) {

View File

@ -26,7 +26,7 @@
FormRestoreDatabaseSettings::FormRestoreDatabaseSettings(QWidget *parent)
: QDialog(parent), m_ui(new Ui::FormRestoreDatabaseSettings) {
: QDialog(parent), m_ui(new Ui::FormRestoreDatabaseSettings), m_shouldRestart(false) {
m_ui->setupUi(this);
m_btnRestart = m_ui->m_buttonBox->addButton(tr("Restart"), QDialogButtonBox::ActionRole);
@ -35,7 +35,10 @@ FormRestoreDatabaseSettings::FormRestoreDatabaseSettings(QWidget *parent)
setWindowIcon(qApp->icons()->fromTheme(QSL("document-import")));
setWindowFlags(Qt::MSWindowsFixedSizeDialogHint | Qt::Dialog | Qt::WindowSystemMenuHint);
connect(m_btnRestart, SIGNAL(clicked()), qApp, SLOT(restart()));
connect(m_btnRestart, &QPushButton::clicked, this, [=]() {
m_shouldRestart = true;
close();
});
connect(m_ui->m_btnSelectFolder, SIGNAL(clicked()), this, SLOT(selectFolder()));
connect(m_ui->m_groupDatabase, SIGNAL(toggled(bool)), this, SLOT(checkOkButton()));
connect(m_ui->m_groupSettings, SIGNAL(toggled(bool)), this, SLOT(checkOkButton()));
@ -93,11 +96,13 @@ void FormRestoreDatabaseSettings::selectFolder(QString folder) {
}
const QDir selected_folder(folder);
const QFileInfoList available_databases = selected_folder.entryInfoList(QStringList() << QString("*") + BACKUP_SUFFIX_DATABASE ,
const QFileInfoList available_databases = selected_folder.entryInfoList(QStringList()
<< QString("*") + BACKUP_SUFFIX_DATABASE ,
QDir::Files | QDir::NoDotAndDotDot | QDir::Readable |
QDir::CaseSensitive | QDir::NoSymLinks,
QDir::Name);
const QFileInfoList available_settings = selected_folder.entryInfoList(QStringList() << QString("*") + BACKUP_SUFFIX_SETTINGS ,
const QFileInfoList available_settings = selected_folder.entryInfoList(QStringList()
<< QString("*") + BACKUP_SUFFIX_SETTINGS ,
QDir::Files | QDir::NoDotAndDotDot | QDir::Readable |
QDir::CaseSensitive | QDir::NoSymLinks,
QDir::Name);

View File

@ -35,6 +35,10 @@ class FormRestoreDatabaseSettings : public QDialog {
explicit FormRestoreDatabaseSettings(QWidget *parent = 0);
virtual ~FormRestoreDatabaseSettings();
bool shouldRestart() const {
return m_shouldRestart;
}
private slots:
void performRestoration();
void checkOkButton();
@ -43,6 +47,8 @@ class FormRestoreDatabaseSettings : public QDialog {
private:
QScopedPointer<Ui::FormRestoreDatabaseSettings> m_ui;
QPushButton *m_btnRestart;
bool m_shouldRestart;
};
#endif // FORMRESTOREDATABASESETTINGS_H

View File

@ -35,7 +35,7 @@ TrayIconMenu::~TrayIconMenu() {
}
bool TrayIconMenu::event(QEvent *event) {
if (Application::activeModalWidget() != NULL && event->type() == QEvent::Show) {
if (event->type() == QEvent::Show && Application::activeModalWidget() != NULL) {
QTimer::singleShot(0, this, SLOT(hide()));
qApp->showGuiMessage(QSL(APP_LONG_NAME),
tr("Close opened modal dialogs first."),