6 #include <QDialogButtonBox>
7 #include <QModelIndexList>
9 #include <QStringListModel>
11 #include "ui_applicationclosedialog.h"
21 using namespace swift::core::context;
25 CApplicationCloseDialog::CApplicationCloseDialog(QWidget *parent)
28 Q_ASSERT_X(
sGui, Q_FUNC_INFO,
"Need sGui");
31 this->setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
32 this->initSettingsView();
33 ui->bb_ApplicationCloseDialog->button(QDialogButtonBox::Save)->setDefault(
true);
35 connect(
this, &CApplicationCloseDialog::accepted,
this, &CApplicationCloseDialog::onAccepted);
36 connect(
this, &CApplicationCloseDialog::rejected,
this, &CApplicationCloseDialog::onRejected);
37 connect(ui->bb_ApplicationCloseDialog, &QDialogButtonBox::clicked,
this,
38 &CApplicationCloseDialog::buttonClicked);
43 void CApplicationCloseDialog::onAccepted()
45 const QModelIndexList indexes = ui->lv_UnsavedSettings->selectionModel()->selectedIndexes();
46 if (indexes.isEmpty()) {
return; }
51 const QString description = m_settingsDescriptions[r];
52 const QString key = m_settingsDictionary.
key(description);
53 if (!key.isEmpty()) { saveKeys.append(key); }
55 if (saveKeys.isEmpty()) {
return; }
57 if (msg.
isFailure()) { CLogMessage::preformatted(msg); }
60 void CApplicationCloseDialog::onRejected()
65 void CApplicationCloseDialog::buttonClicked(QAbstractButton *button)
67 if (button == ui->bb_ApplicationCloseDialog->button(QDialogButtonBox::Discard))
69 ui->lv_UnsavedSettings->clearSelection();
74 void CApplicationCloseDialog::initSettingsView()
77 QStringList descriptions = settingsDictionary.values();
79 QStringListModel *model =
new QStringListModel(descriptions,
this);
80 ui->lv_UnsavedSettings->setModel(model);
81 ui->lv_UnsavedSettings->selectAll();
83 m_settingsDictionary = settingsDictionary;
84 m_settingsDescriptions = descriptions;
SWIFT_CORE_EXPORT swift::core::CApplication * sApp
Single instance of application object.
const context::IContextApplication * getIContextApplication() const
Direct access to contexts if a CCoreFacade has been initialized.
swift::misc::CStatusMessage saveSettingsByKey(const QStringList &keys)
Save all settings.
virtual CSettingsDictionary getUnsavedSettingsKeysDescribed() const =0
Get keys and descriptions of all unsaved settings currently in core settings cache.
static QList< int > indexToUniqueRows(const QModelIndexList &indexes)
Only the row part and unique (so no rows is twice in the list)
Close dialog for application.
virtual ~CApplicationCloseDialog()
Destructor.
const Key key(const Value &value) const
Return key assigned to value.
Streamable status message, e.g.
bool isFailure() const
Operation considered unsuccessful.
SWIFT_GUI_EXPORT swift::gui::CGuiApplication * sGui
Single instance of GUI application object.
High level reusable GUI components.
Free functions in swift::misc.