示例#1
0
// Метод должен возвращать уровень сложности сделанных изменений
// 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;
}
示例#2
0
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() );
 }

}