source: s10k/Vago/preferences.cpp@ 1094

Last change on this file since 1094 was 1093, checked in by s10k, 7 years ago

Vago 1.4

File size: 4.1 KB
Line 
1#include "preferences.h"
2#include "ui_preferences.h"
3
4Preferences::Preferences(QWidget *parent, QSettings *vagoSettings) :
5 QDialog(parent),
6 ui(new Ui::Preferences)
7{
8 ui->setupUi(this);
9 this->setAttribute(Qt::WA_DeleteOnClose,true ); //destroy itself once finished.
10
11 this->vagoSettings=vagoSettings;
12
13 ui->leAEfolder->setText(this->vagoSettings->value("AeFolder").toString());
14 ui->leWorkspace->setText(this->vagoSettings->value("Workspace").toString());
15 ui->leWidth->setText(this->vagoSettings->value("WindowWidth").toString());
16 ui->leHeight->setText(this->vagoSettings->value("WindowHeight").toString());
17 ui->cbOniWindow->setChecked(this->vagoSettings->value("OniWindow").toBool());
18 ui->cbSeparate->setChecked(this->vagoSettings->value("SeparateInWorkspace").toBool());
19 ui->cbAskSaveProject->setChecked(this->vagoSettings->value("AskSaveProject").toBool());
20 ui->cbAskOpenLastProject->setChecked(this->vagoSettings->value("AskToOpenLastProject").toBool());
21#ifdef Q_OS_MAC
22 ui->cbUseYesAsDefaultWhenRemovingItems->setChecked(this->vagoSettings->value("useYesAsDefaultWhenRemovingItems").toBool());
23#endif
24
25#ifdef Q_OS_WIN
26 ui->cbUseYesAsDefaultWhenRemovingItems->hide(); // don't display this mac os only option in windows
27#endif
28
29}
30
31Preferences::~Preferences()
32{
33 delete ui;
34}
35
36// Need to override to do the verification
37// http://stackoverflow.com/questions/3261676/how-to-make-qdialogbuttonbox-not-close-its-parent-qdialog
38void Preferences::accept (){
39 QStringList options;
40 QRect screenRes = Util::System::getScreenResolution();
41
42 options << ui->leAEfolder->text() << ui->leWorkspace->text() << ui->leWidth->text() << ui->leHeight->text();
43
44 if(Util::Validation::checkEmptySpaces(options)){
45 Util::Dialogs::showError("Setting not saved! There are empty settings.");
46 return;
47 }
48
49 if(Util::Validation::checkIfIntegers(QStringList() << ui->leWidth->text() << ui->leHeight->text() )){
50 Util::Dialogs::showError("Setting not saved! Width and Height must be numbers.");
51 return;
52 }
53
54 if(ui->leWidth->text().toInt() > screenRes.width() || ui->leHeight->text().toInt() > screenRes.height()){
55 Util::Dialogs::showError("Setting not saved! Width or Height specified are greater than actual screen resolution.");
56 return;
57 }
58
59 if(ui->leWidth->text().toInt() <= 0 || ui->leHeight->text().toInt() <= 0 ){
60 Util::Dialogs::showError("Settings not saved! Width and Height must be greater than 0.");
61 return;
62 }
63
64 this->vagoSettings->setValue("AeFolder",ui->leAEfolder->text());
65 this->vagoSettings->setValue("Workspace",ui->leWorkspace->text());
66 this->vagoSettings->setValue("WindowWidth",ui->leWidth->text());
67 this->vagoSettings->setValue("WindowHeight",ui->leHeight->text());
68 this->vagoSettings->setValue("OniWindow",ui->cbOniWindow->isChecked());
69 this->vagoSettings->setValue("SeparateInWorkspace",ui->cbSeparate->isChecked());
70 this->vagoSettings->setValue("AskSaveProject",ui->cbAskSaveProject->isChecked());
71 this->vagoSettings->setValue("AskToOpenLastProject",ui->cbAskOpenLastProject->isChecked());
72#ifdef Q_OS_MAC
73 this->vagoSettings->setValue("useYesAsDefaultWhenRemovingItems",ui->cbUseYesAsDefaultWhenRemovingItems->isChecked());
74#endif
75
76 Util::Dialogs::showInfo("You need to restart the application to all changes take effect.");
77
78 QDialog::accept();
79}
80
81void Preferences::on_pbChooseWorkspace_clicked()
82{
83 QString newDir=QFileDialog::getExistingDirectory(this,"Choose workspace folder...");
84 newDir=Util::FileSystem::normalizePath(newDir);
85
86 if(!newDir.isEmpty()){
87 ui->leWorkspace->setText(newDir);
88 }
89}
90
91void Preferences::on_pbChooseAE_clicked()
92{
93 QString newDir=QFileDialog::getExistingDirectory(this,"Choose AE folder...");
94 newDir=Util::FileSystem::normalizePath(newDir);
95
96 if(!newDir.isEmpty()){
97 ui->leAEfolder->setText(newDir);
98 }
99}
100
101void Preferences::on_buttonBox_rejected()
102{
103 this->destroy(true,true);
104}
105
Note: See TracBrowser for help on using the repository browser.