Download src/Gui/PreferencePages/DlgSettingsDocumentImp.cpp from AbdulElahGwaith/FreeCAD: direct link, hf CLI and curl.
- Browser
- Download file 6.84 kB
-
https://huggingface.co/AbdulElahGwaith/FreeCAD/resolve/main/src/Gui/PreferencePages/DlgSettingsDocumentImp.cpp
- Command line
-
hf download hf://AbdulElahGwaith/FreeCAD/src/Gui/PreferencePages/DlgSettingsDocumentImp.cpp
-
curl -L -o DlgSettingsDocumentImp.cpp https://huggingface.co/AbdulElahGwaith/FreeCAD/resolve/main/src/Gui/PreferencePages/DlgSettingsDocumentImp.cpp
6.84 kB
| /*************************************************************************** | |
| * Copyright (c) 2002 Jürgen Riegel <juergen.riegel@web.de> * | |
| * * | |
| * This file is part of the FreeCAD CAx development system. * | |
| * * | |
| * This library is free software; you can redistribute it and/or * | |
| * modify it under the terms of the GNU Library General Public * | |
| * License as published by the Free Software Foundation; either * | |
| * version 2 of the License, or (at your option) any later version. * | |
| * * | |
| * This library is distributed in the hope that it will be useful, * | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
| * GNU Library General Public License for more details. * | |
| * * | |
| * You should have received a copy of the GNU Library General Public * | |
| * License along with this library; see the file COPYING.LIB. If not, * | |
| * write to the Free Software Foundation, Inc., 59 Temple Place, * | |
| * Suite 330, Boston, MA 02111-1307, USA * | |
| * * | |
| ***************************************************************************/ | |
| using namespace Gui::Dialog; | |
| /* TRANSLATOR Gui::Dialog::DlgSettingsDocumentImp */ | |
| /** | |
| * Constructs a DlgSettingsDocumentImp which is a child of 'parent', with the | |
| * name 'name' and widget flags set to 'f' | |
| */ | |
| 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 | |
| ); | |
| } | |
| /** | |
| * Destroys the object and frees any allocated resources | |
| */ | |
| 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(); | |
| } | |
| /** | |
| * Sets the strings of the subwidgets using the current language. | |
| */ | |
| 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"); | |
| } | |
| /** | |
| * Fix Url according to changed type | |
| */ | |
| void DlgSettingsDocumentImp::onLicenseTypeChanged(int index) | |
| { | |
| if (index >= 0 && index < App::countOfLicenses) { | |
| // existing license | |
| const char* url {App::licenseItems.at(index).at(App::posnOfUrl)}; | |
| ui->prefLicenseUrl->setText(QString::fromLatin1(url)); | |
| ui->prefLicenseUrl->setReadOnly(true); | |
| } | |
| else { | |
| // Other | |
| ui->prefLicenseUrl->clear(); | |
| ui->prefLicenseUrl->setReadOnly(false); | |
| } | |
| } | |