Changeset 278bc7818f in tspsg for src/settingsdialog.cpp


Ignore:
Timestamp:
Feb 27, 2010, 2:13:50 PM (14 years ago)
Author:
Oleksii Serdiuk
Branches:
0.1.3.145-beta1-symbian, 0.1.4.170-beta2-bb10, appveyor, imgbot, master, readme
Children:
162d5c5f94
Parents:
b2bf8e3b6b
Message:

+ Added Symmetric mode: in this mode the cost of travel from city 1 to city 2 and vice versa is the same.
+ Added the ability to reset all settings to their defaults: hold Shift while clicking Save button in Settings Dialog.

  • Better SIP show/hide handling under wince: no need to resize the Main Window, when it isn't active.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/settingsdialog.cpp

    rb2bf8e3b6b r278bc7818f  
    5454        scrollArea->setWidgetResizable(true);
    5555        scrollArea->setWidget(bgWhite);
     56#else
     57        buttons->insertStretch(buttons->indexOf(buttonHelp) + 1);
    5658#endif // Q_OS_WINCE
    5759
     
    146148
    147149#ifdef Q_OS_WINCE
    148         currentGeometry = QApplication::desktop()->availableGeometry(0);
    149150        // We need to react to SIP show/hide and resize the window appropriately
    150151        connect(QApplication::desktop(), SIGNAL(workAreaResized(int)), SLOT(desktopResized(int)));
     
    153154        connect(buttonFont,SIGNAL(clicked()),this,SLOT(buttonFontClicked()));
    154155        connect(buttonColor,SIGNAL(clicked()),this,SLOT(buttonColorClicked()));
    155 //      setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::MSWindowsFixedSizeDialogHint);
    156156        setWindowFlags(windowFlags() ^ Qt::WindowContextHelpButtonHint);
    157157#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
     
    161161
    162162        settings = new QSettings(QSettings::IniFormat, QSettings::UserScope, "TSPSG", "tspsg", this);
     163        settings->remove("SettingsReset");
    163164
    164165        cbAutosize->setChecked(settings->value("Autosize", DEF_AUTOSIZE).toBool());
     
    173174
    174175        settings->beginGroup("Task");
     176        cbSymmetricMode->setChecked(settings->value("SymmetricMode", DEF_SYMMETRIC_MODE).toBool());
    175177        spinFractionalAccuracy->setValue(settings->value("FractionalAccuracy", DEF_FRACTIONAL_ACCURACY).toInt());
    176178        spinRandMin->setMaximum(MAX_RAND_VALUE);
     
    194196        settings->endGroup();
    195197
     198#ifndef Q_OS_WINCE
    196199        adjustSize();
     200#endif // Q_OS_WINCE
    197201}
    198202
     
    230234void SettingsDialog::accept()
    231235{
     236        if (QApplication::keyboardModifiers() & Qt::ShiftModifier) {
     237                if (QMessageBox::question(this, tr("Settings Reset"), tr("Do you really want to <b>reset all application settings to their defaults</b>?"), QMessageBox::RestoreDefaults | QMessageBox::Cancel) == QMessageBox::RestoreDefaults) {
     238                        _newFont = (font != QFont(DEF_FONT_FAMILY, DEF_FONT_SIZE));
     239                        _newColor = (color != DEF_FONT_COLOR);
     240                        settings->remove("");
     241                        settings->setValue("SettingsReset", true);
     242                        QDialog::accept();
     243                        QMessageBox::information(this, tr("Settings Reset"), tr("All settings where successfully reset to their defaults.\nIt is recommended to restart the application now."));
     244                        return;
     245                } else
     246                        return;
     247        }
    232248#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
    233249        settings->setValue("SavePos", cbSaveState->isChecked());
     
    246262
    247263        settings->beginGroup("Task");
     264        settings->setValue("SymmetricMode", cbSymmetricMode->isChecked());
    248265        settings->setValue("FractionalAccuracy", spinFractionalAccuracy->value());
    249266        settings->setValue("RandMin", spinRandMin->value());
     
    293310QRect availableGeometry = QApplication::desktop()->availableGeometry(0);
    294311        if (currentGeometry != availableGeometry) {
     312                QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
    295313                /*!
    296314                 * \hack HACK: This hack checks whether \link QDesktopWidget::availableGeometry() availableGeometry()\endlink's \c top + \c hegiht = \link QDesktopWidget::screenGeometry() screenGeometry()\endlink's \c height.
     
    305323                        setGeometry(availableGeometry);
    306324                }
    307         }
    308         currentGeometry = availableGeometry;
     325                currentGeometry = availableGeometry;
     326                QApplication::restoreOverrideCursor();
     327        }
     328}
     329
     330void SettingsDialog::showEvent(QShowEvent *ev)
     331{
     332        desktopResized(0);
     333
     334        QWidget::showEvent(ev);
    309335}
    310336#endif // Q_OS_WINCE
Note: See TracChangeset for help on using the changeset viewer.