// Метод должен возвращать уровень сложности сделанных изменений // 0 - изменения не требуют перезапуска программы // 1 - изменения требуют перезапуска программы int AppConfigPage_Main::applyChanges(void) { qDebug() << "Apply changes main"; int difficultChanges=0; // Если был изменен путь к базе, он запоминается в конфигфайл if(mytetraConfig.get_tetradir()!=tetradirInput->text()) { QDir dir(tetradirInput->text()); // Проверяется, допустимо ли имя директории if(dir.isReadable()==false || dir.exists()==false) QMessageBox::warning(this, tr("Warning"), tr("The data directory does not exists or unavailable for reading."), QMessageBox::Ok); else { // Новое имя запоминается в конфиг mytetraConfig.set_tetradir(tetradirInput->text()); difficultChanges=1; } } // Если был изменен путь к корзине, он запоминается в конфигфайл if(mytetraConfig.get_trashdir()!=trashdirInput->text()) { QDir dir(trashdirInput->text()); // Проверяется, допустимо ли имя директории if(dir.isReadable()==false || dir.exists()==false) QMessageBox::warning(this, tr("Warning"), tr("The trash directory does not exists or unavailable for reading."), QMessageBox::Ok); else { // Новое имя запоминается в конфиг mytetraConfig.set_trashdir(trashdirInput->text()); } } // Если был изменен размер корзины if( (int)mytetraConfig.get_trashsize() != (int)trashsizeInput->text().toInt() ) { mytetraConfig.set_trashsize(trashsizeInput->text().toInt()); } // Если было изменено максимально возможное количество файлов в корзине if(mytetraConfig.get_trashmaxfilecount()!=trashmaxfilecountInput->text().toInt()) { mytetraConfig.set_trashmaxfilecount(trashmaxfilecountInput->text().toInt()); } // Если было изменено использование пользовательского формата даты и времени if(mytetraConfig.getEnableCustomDateTimeFormat()!=enableCustomDateTimeFormat->isChecked()) { mytetraConfig.setEnableCustomDateTimeFormat(enableCustomDateTimeFormat->isChecked()); } // Если было изменен пользовательский формат даты и времени if(mytetraConfig.getCustomDateTimeFormat()!=customDateTimeFormat->text()) { mytetraConfig.setCustomDateTimeFormat(customDateTimeFormat->text()); } // Если был изменен язык if(mytetraConfig.get_interfacelanguage()!=interfaceLanguage->currentText()) { mytetraConfig.set_interfacelanguage(interfaceLanguage->currentText()); difficultChanges=1; } return difficultChanges; }
void AppConfigPage_Main::setupUi(void) { qDebug() << "Create main config page"; // Блок работы с путем до каталога данных tetradirLabel=new QLabel(this); tetradirLabel->setText(tr("Data directory")); tetradirInput=new QLineEdit(this); tetradirInput->setMinimumWidth(50); tetradirInput->setText(mytetraConfig.get_tetradir()); tetradirButton=new QToolButton(this); tetradirButton->setText(tr("...")); // Блок работы с путем до корзины trashdirLabel=new QLabel(this); trashdirLabel->setText(tr("Trash directory")); trashdirInput=new QLineEdit(this); trashdirInput->setMinimumWidth(50); trashdirInput->setText(mytetraConfig.get_trashdir()); trashdirButton=new QToolButton(this); trashdirButton->setText(tr("...")); // Блок работы с размером корзины trashsizeLabel=new QLabel(this); trashsizeLabel->setText(tr("Trash size")); trashsizeInput=new QSpinBox(this); trashsizeInput->setRange(1,1000); trashsizeInput->setValue(mytetraConfig.get_trashsize()); trashsizeFlexion=new QLabel(this); trashsizeFlexion->setText(tr("Mb")); // Блок работы с максимальным количеством файлов в корзине trashmaxfilecountLabel=new QLabel(this); trashmaxfilecountLabel->setText(tr("Maximum files in trash")); trashmaxfilecountInput=new QSpinBox(this); trashmaxfilecountInput->setRange(1,3000); trashmaxfilecountInput->setValue(mytetraConfig.get_trashmaxfilecount()); trashmaxfilecountFlexion=new QLabel(this); trashmaxfilecountFlexion->setText(tr("files")); // Блок работы с выбором языка интерфейса interfaceLanguageLabel=new QLabel(this); interfaceLanguageLabel->setText(tr("Language")); interfaceLanguage=new MtComboBox(this); interfaceLanguage->setMinimumContentsLength(2); interfaceLanguage->addItem("en"); interfaceLanguage->addItem("ru"); interfaceLanguage->setCurrentIndex(interfaceLanguage->findText(mytetraConfig.get_interfacelanguage(), Qt::MatchCaseSensitive)); // Блок работы с отображением даты и времени dateTimeFormatBox=new QGroupBox(this); dateTimeFormatBox->setTitle(tr("Displaying date and time format")); disableCustomDateTimeFormat=new QRadioButton(tr("Locale settings")); enableCustomDateTimeFormat=new QRadioButton(tr("Custom format")); customDateTimeFormat=new QLineEdit(); dateTimeFormatHelpButton=new QToolButton(); QCommonStyle styleHelp; dateTimeFormatHelpButton->setIcon( styleHelp.standardIcon(QStyle::SP_MessageBoxQuestion) ); // Точка устанавливается возле того пункта, который настроен в конфиге if(mytetraConfig.getEnableCustomDateTimeFormat()==false) { disableCustomDateTimeFormat->setChecked(true); enableCustomDateTimeFormat->setChecked(false); customDateTimeFormat->setEnabled(false); } else { // Если разрешен пользовательский формат даты и времени disableCustomDateTimeFormat->setChecked(false); enableCustomDateTimeFormat->setChecked(true); customDateTimeFormat->setEnabled(true); customDateTimeFormat->setText( mytetraConfig.getCustomDateTimeFormat() ); } }