From 41c80d040f200856fe9efce4ba5209605e6825f3 Mon Sep 17 00:00:00 2001 From: dismine Date: Fri, 21 Feb 2014 16:55:48 +0200 Subject: [PATCH] Almost implemented dialog standard measurements. --HG-- branch : feature --- .../app/dialogstandardmeasurements.cpp | 97 ++++++++++++++++++- src/dialogs/app/dialogstandardmeasurements.h | 11 ++- src/dialogs/app/dialogstandardmeasurements.ui | 4 +- 3 files changed, 106 insertions(+), 6 deletions(-) diff --git a/src/dialogs/app/dialogstandardmeasurements.cpp b/src/dialogs/app/dialogstandardmeasurements.cpp index c5d7c5091..d42aa12d9 100644 --- a/src/dialogs/app/dialogstandardmeasurements.cpp +++ b/src/dialogs/app/dialogstandardmeasurements.cpp @@ -28,15 +28,108 @@ #include "dialogstandardmeasurements.h" #include "ui_dialogstandardmeasurements.h" +#include DialogStandardMeasurements::DialogStandardMeasurements(QWidget *parent) : - QDialog(parent), - ui(new Ui::DialogStandardMeasurements) + QDialog(parent), ui(new Ui::DialogStandardMeasurements), _name(QString()), _tablePath(QString()) { ui->setupUi(this); + + { + const QPushButton *bOk = ui->buttonBox->button(QDialogButtonBox::Ok); + Q_CHECK_PTR(bOk); + connect(bOk, &QPushButton::clicked, this, &DialogStandardMeasurements::Accepted); + } + { + const QPushButton *bCansel = ui->buttonBox->button(QDialogButtonBox::Cancel); + Q_CHECK_PTR(bCansel); + connect(bCansel, &QPushButton::clicked, this, &DialogStandardMeasurements::Rejected); + } + + LoadStandardTables(); + + CheckState(); } DialogStandardMeasurements::~DialogStandardMeasurements() { delete ui; } + +QString DialogStandardMeasurements::name() const +{ + return _name; +} + +QString DialogStandardMeasurements::tablePath() const +{ + return _tablePath; +} + +void DialogStandardMeasurements::Accepted() +{ + _name = ui->lineEditName->text(); + _tablePath = "path"; + accept(); +} + +void DialogStandardMeasurements::Rejected() +{ + _name = ""; + _tablePath = ""; + reject(); +} + +void DialogStandardMeasurements::CheckState() +{ + bool flagName = false; + if (ui->lineEditName->text().isEmpty() == false) + { + flagName = true; + } + + bool flagTable = false; + { + const QComboBox *box = ui->comboBoxTables; + Q_CHECK_PTR(box); + if (box->count() > 0 && box->currentIndex() != -1) + { + flagTable = true; + } + } + + QPushButton *bOk = ui->buttonBox->button(QDialogButtonBox::Ok); + Q_CHECK_PTR(bOk); + bOk->setEnabled(flagTable && flagName); +} + +void DialogStandardMeasurements::LoadStandardTables() +{ +#ifdef Q_OS_WIN32 + const QString pathToTables = QString("/standard_tables"); +#else + #ifdef QT_DEBUG + const QString pathToTables = QString("/standard_tables"); + #else + const QString pathToTables = QString("/usr/share/valentina/standard_tables"); + #endif +#endif + QDir tablesDir(pathToTables); + { + QStringList filters; + filters << "*.cpp"; + tablesDir.setNameFilters(filters); + } + const QStringList allFiles = tablesDir.entryList(QDir::NoDotAndDotDot | QDir::Files); + if (allFiles.isEmpty() == true) + { + ui->comboBoxTables->clear(); + CheckState(); + return; + } + + for (int i = 0; i < allFiles.size(); ++i) + { + + } +} diff --git a/src/dialogs/app/dialogstandardmeasurements.h b/src/dialogs/app/dialogstandardmeasurements.h index deb50e5b4..357ca732e 100644 --- a/src/dialogs/app/dialogstandardmeasurements.h +++ b/src/dialogs/app/dialogstandardmeasurements.h @@ -38,13 +38,20 @@ class DialogStandardMeasurements; class DialogStandardMeasurements : public QDialog { Q_OBJECT - public: explicit DialogStandardMeasurements(QWidget *parent = 0); ~DialogStandardMeasurements(); - + QString name() const; + QString tablePath() const; private: + Q_DISABLE_COPY(DialogStandardMeasurements) Ui::DialogStandardMeasurements *ui; + QString _name; + QString _tablePath; + void Accepted(); + void Rejected(); + void CheckState(); + void LoadStandardTables(); }; #endif // DIALOGSTANDARDMEASUREMENTS_H diff --git a/src/dialogs/app/dialogstandardmeasurements.ui b/src/dialogs/app/dialogstandardmeasurements.ui index e424e6311..241c84fb2 100644 --- a/src/dialogs/app/dialogstandardmeasurements.ui +++ b/src/dialogs/app/dialogstandardmeasurements.ui @@ -33,7 +33,7 @@ - + @@ -53,7 +53,7 @@ - +