mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-21 12:55:31 +08:00
refs #741, allow to discard settings
(not saving, but continue closing)
This commit is contained in:
committed by
Mathew Sutcliffe
parent
8b1bdbdcf8
commit
231bfea566
@@ -182,7 +182,7 @@ namespace BlackCore
|
|||||||
//! Automatically and always save settings
|
//! Automatically and always save settings
|
||||||
void setSettingsAutoSave(bool autoSave);
|
void setSettingsAutoSave(bool autoSave);
|
||||||
|
|
||||||
//! All unsave settings
|
//! All unsaved settings
|
||||||
QStringList getAllUnsavedSettings() const;
|
QStringList getAllUnsavedSettings() const;
|
||||||
|
|
||||||
//! Save all settings
|
//! Save all settings
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
#include "blackmisc/logmessage.h"
|
#include "blackmisc/logmessage.h"
|
||||||
#include <QStringListModel>
|
#include <QStringListModel>
|
||||||
#include <QModelIndexList>
|
#include <QModelIndexList>
|
||||||
|
#include <QDialogButtonBox>
|
||||||
|
#include <QPushButton>
|
||||||
|
|
||||||
using namespace BlackMisc;
|
using namespace BlackMisc;
|
||||||
using namespace BlackGui;
|
using namespace BlackGui;
|
||||||
@@ -30,7 +32,11 @@ namespace BlackGui
|
|||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
this->setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
this->setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||||
this->initSettingsView();
|
this->initSettingsView();
|
||||||
|
ui->bb_ApplicationCloseDialog->button(QDialogButtonBox::Save)->setDefault(true);
|
||||||
|
|
||||||
connect(this, &CApplicationCloseDialog::accepted, this, &CApplicationCloseDialog::ps_onAccepted);
|
connect(this, &CApplicationCloseDialog::accepted, this, &CApplicationCloseDialog::ps_onAccepted);
|
||||||
|
connect(this, &CApplicationCloseDialog::rejected, this, &CApplicationCloseDialog::ps_onRejected);
|
||||||
|
connect(ui->bb_ApplicationCloseDialog, &QDialogButtonBox::clicked, this, &CApplicationCloseDialog::ps_buttonClicked);
|
||||||
}
|
}
|
||||||
|
|
||||||
CApplicationCloseDialog::~CApplicationCloseDialog()
|
CApplicationCloseDialog::~CApplicationCloseDialog()
|
||||||
@@ -38,7 +44,7 @@ namespace BlackGui
|
|||||||
|
|
||||||
void CApplicationCloseDialog::ps_onAccepted()
|
void CApplicationCloseDialog::ps_onAccepted()
|
||||||
{
|
{
|
||||||
QModelIndexList indexes = ui->lv_UnsavedSettings->selectionModel()->selectedIndexes();
|
const QModelIndexList indexes = ui->lv_UnsavedSettings->selectionModel()->selectedIndexes();
|
||||||
if (indexes.isEmpty()) { return; }
|
if (indexes.isEmpty()) { return; }
|
||||||
const QList<int> rows = CGuiUtility::indexToUniqueRows(indexes);
|
const QList<int> rows = CGuiUtility::indexToUniqueRows(indexes);
|
||||||
QStringList saveKeys;
|
QStringList saveKeys;
|
||||||
@@ -51,6 +57,20 @@ namespace BlackGui
|
|||||||
if (msg.isFailure()) { CLogMessage::preformatted(msg); }
|
if (msg.isFailure()) { CLogMessage::preformatted(msg); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CApplicationCloseDialog::ps_onRejected()
|
||||||
|
{
|
||||||
|
// void
|
||||||
|
}
|
||||||
|
|
||||||
|
void CApplicationCloseDialog::ps_buttonClicked(QAbstractButton *button)
|
||||||
|
{
|
||||||
|
if (button == ui->bb_ApplicationCloseDialog->button(QDialogButtonBox::Discard))
|
||||||
|
{
|
||||||
|
ui->lv_UnsavedSettings->clearSelection();
|
||||||
|
this->accept(); // fake accept with unselected items
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CApplicationCloseDialog::initSettingsView()
|
void CApplicationCloseDialog::initSettingsView()
|
||||||
{
|
{
|
||||||
QStringList settings(CSettingsCache::instance()->getAllUnsavedKeys());
|
QStringList settings(CSettingsCache::instance()->getAllUnsavedKeys());
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QScopedPointer>
|
#include <QScopedPointer>
|
||||||
|
#include <QAbstractButton>
|
||||||
|
|
||||||
namespace Ui { class CApplicationCloseDialog; }
|
namespace Ui { class CApplicationCloseDialog; }
|
||||||
namespace BlackGui
|
namespace BlackGui
|
||||||
@@ -38,6 +39,12 @@ namespace BlackGui
|
|||||||
//! Accepted
|
//! Accepted
|
||||||
void ps_onAccepted();
|
void ps_onAccepted();
|
||||||
|
|
||||||
|
//! Rejected
|
||||||
|
void ps_onRejected();
|
||||||
|
|
||||||
|
//! Button pressed
|
||||||
|
void ps_buttonClicked(QAbstractButton *button);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QScopedPointer<Ui::CApplicationCloseDialog> ui;
|
QScopedPointer<Ui::CApplicationCloseDialog> ui;
|
||||||
QStringList m_settingskeys;
|
QStringList m_settingskeys;
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="standardButtons">
|
<property name="standardButtons">
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
<set>QDialogButtonBox::Abort|QDialogButtonBox::Discard|QDialogButtonBox::Save</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
Reference in New Issue
Block a user