| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| #include <limits> |
|
|
| #include <zlib.h> |
| #include <App/License.h> |
| #include <Gui/AutoSaver.h> |
|
|
| #include "DlgSettingsDocumentImp.h" |
| #include "ui_DlgSettingsDocument.h" |
|
|
|
|
| using namespace Gui::Dialog; |
|
|
| |
|
|
| |
| |
| |
| |
| DlgSettingsDocumentImp::DlgSettingsDocumentImp(QWidget* parent) |
| : PreferencePage(parent) |
| , ui(new Ui_DlgSettingsDocument) |
| { |
| ui->setupUi(this); |
| addLicenseTypes(); |
|
|
| ui->prefSaveTransaction->hide(); |
| ui->prefDiscardTransaction->hide(); |
|
|
| QString tip = QStringLiteral( |
| "<html><head/><body><p>%1</p>" |
| "<p>%2: %Y%m%d-%H%M%S</p>" |
| "</p></body></html>" |
| ) |
| .arg(tr("The format of the date to use."), tr("Default")); |
| QString link = QString::fromLatin1( |
| "<html><head/><body>" |
| "<a href=\"http://www.cplusplus.com/reference/ctime/strftime/\">%1</a>" |
| "</body></html>" |
| ) |
| .arg(tr("Show format documentation")); |
| ui->prefSaveBackupDateFormat->setToolTip(tip); |
| ui->FormatTimeDocsLabel->setText(link); |
|
|
| ui->prefCountBackupFiles->setMaximum(std::numeric_limits<int>::max()); |
| ui->prefCompression->setMinimum(Z_NO_COMPRESSION); |
| ui->prefCompression->setMaximum(Z_BEST_COMPRESSION); |
| connect( |
| ui->prefLicenseType, |
| qOverload<int>(&QComboBox::currentIndexChanged), |
| this, |
| &DlgSettingsDocumentImp::onLicenseTypeChanged |
| ); |
| } |
|
|
| |
| |
| |
| DlgSettingsDocumentImp::~DlgSettingsDocumentImp() = default; |
|
|
| void DlgSettingsDocumentImp::saveSettings() |
| { |
| ui->prefCheckNewDoc->onSave(); |
| ui->prefCompression->onSave(); |
|
|
| ui->prefUndoRedo->onSave(); |
| ui->prefUndoRedoSize->onSave(); |
| ui->prefSaveTransaction->onSave(); |
| ui->prefDiscardTransaction->onSave(); |
| ui->prefSaveThumbnail->onSave(); |
| ui->prefThumbnailSize->onSave(); |
| ui->prefAddLogo->onSave(); |
| ui->prefSaveBackupFiles->onSave(); |
| ui->prefCountBackupFiles->onSave(); |
| ui->prefSaveBackupExtension->onSave(); |
| ui->prefSaveBackupDateFormat->onSave(); |
| ui->prefDuplicateLabel->onSave(); |
| ui->prefPartialLoading->onSave(); |
| ui->prefLicenseType->onSave(); |
| ui->prefLicenseUrl->onSave(); |
| ui->prefAuthor->onSave(); |
| ui->prefSetAuthorOnSave->onSave(); |
| ui->prefCompany->onSave(); |
| ui->prefRecovery->onSave(); |
| ui->prefAutoSaveEnabled->onSave(); |
| ui->prefAutoSaveTimeout->onSave(); |
| ui->prefCanAbortRecompute->onSave(); |
|
|
| int timeout = ui->prefAutoSaveTimeout->value(); |
| if (!ui->prefAutoSaveEnabled->isChecked()) { |
| timeout = 0; |
| } |
| AutoSaver::instance()->setTimeout(timeout * 60000); |
| } |
|
|
| void DlgSettingsDocumentImp::loadSettings() |
| { |
| ui->prefCheckNewDoc->onRestore(); |
| ui->prefCompression->onRestore(); |
|
|
| ui->prefUndoRedo->onRestore(); |
| ui->prefUndoRedoSize->onRestore(); |
| ui->prefSaveTransaction->onRestore(); |
| ui->prefDiscardTransaction->onRestore(); |
| ui->prefSaveThumbnail->onRestore(); |
| ui->prefThumbnailSize->onRestore(); |
| ui->prefAddLogo->onRestore(); |
| ui->prefSaveBackupFiles->onRestore(); |
| ui->prefCountBackupFiles->onRestore(); |
| ui->prefSaveBackupExtension->onRestore(); |
| ui->prefSaveBackupDateFormat->onRestore(); |
| ui->prefDuplicateLabel->onRestore(); |
| ui->prefPartialLoading->onRestore(); |
| ui->prefLicenseType->onRestore(); |
| ui->prefLicenseUrl->onRestore(); |
| ui->prefAuthor->onRestore(); |
| ui->prefSetAuthorOnSave->onRestore(); |
| ui->prefCompany->onRestore(); |
| ui->prefRecovery->onRestore(); |
| ui->prefAutoSaveEnabled->onRestore(); |
| ui->prefAutoSaveTimeout->onRestore(); |
| ui->prefCanAbortRecompute->onRestore(); |
| } |
|
|
| |
| |
| |
| void DlgSettingsDocumentImp::changeEvent(QEvent* e) |
| { |
| if (e->type() == QEvent::LanguageChange) { |
| ui->retranslateUi(this); |
| int index = ui->prefLicenseType->currentIndex(); |
| addLicenseTypes(); |
| ui->prefLicenseType->setCurrentIndex(index); |
| } |
| else { |
| QWidget::changeEvent(e); |
| } |
| } |
|
|
| void DlgSettingsDocumentImp::addLicenseTypes() |
| { |
| auto add = [&](const char* what) { |
| ui->prefLicenseType->addItem(QApplication::translate("Gui::Dialog::DlgSettingsDocument", what)); |
| }; |
|
|
| ui->prefLicenseType->clear(); |
| for (const auto& licenseItem : App::licenseItems) { |
| add(licenseItem.at(App::posnOfFullName)); |
| } |
| add("Other"); |
| } |
|
|
| |
| |
| |
| void DlgSettingsDocumentImp::onLicenseTypeChanged(int index) |
| { |
| if (index >= 0 && index < App::countOfLicenses) { |
| |
| const char* url {App::licenseItems.at(index).at(App::posnOfUrl)}; |
| ui->prefLicenseUrl->setText(QString::fromLatin1(url)); |
| ui->prefLicenseUrl->setReadOnly(true); |
| } |
| else { |
| |
| ui->prefLicenseUrl->clear(); |
| ui->prefLicenseUrl->setReadOnly(false); |
| } |
| } |
|
|
| #include "moc_DlgSettingsDocumentImp.cpp" |
|
|