From ed25d04e5e78b2fe4f419d47ca102c0828717989 Mon Sep 17 00:00:00 2001 From: dismine Date: Sun, 22 Jun 2014 19:46:47 +0300 Subject: [PATCH] Fixed issue #148. Fixed issue #149. --HG-- branch : develop --- src/app/dialogs/app/configdialog.cpp | 46 +++-- src/app/dialogs/app/configdialog.h | 2 + src/app/dialogs/app/configpages/pages.h | 1 + src/app/dialogs/app/configpages/pathpage.cpp | 162 ++++++++++++++++++ src/app/dialogs/app/configpages/pathpage.h | 58 +++++++ .../app/dialogindividualmeasurements.cpp | 8 +- src/app/dialogs/dialogs.pri | 6 +- src/app/mainwindow.cpp | 5 +- src/app/share/resources/icon.qrc | 1 + src/app/share/resources/icon/path_config.png | Bin 0 -> 18914 bytes 10 files changed, 266 insertions(+), 23 deletions(-) create mode 100644 src/app/dialogs/app/configpages/pathpage.cpp create mode 100644 src/app/dialogs/app/configpages/pathpage.h create mode 100644 src/app/share/resources/icon/path_config.png diff --git a/src/app/dialogs/app/configdialog.cpp b/src/app/dialogs/app/configdialog.cpp index c684f3629..05d34ad67 100644 --- a/src/app/dialogs/app/configdialog.cpp +++ b/src/app/dialogs/app/configdialog.cpp @@ -36,24 +36,30 @@ //--------------------------------------------------------------------------------------------------------------------- ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent), contentsWidget(nullptr), pagesWidget(nullptr), configurationPage(nullptr), patternPage(nullptr), - communityPage(nullptr) + communityPage(nullptr), pathPage(nullptr) { contentsWidget = new QListWidget; contentsWidget->setViewMode(QListView::IconMode); contentsWidget->setIconSize(QSize(96, 84)); contentsWidget->setMovement(QListView::Static); contentsWidget->setMaximumWidth(128); - contentsWidget->setMinimumHeight(250); + contentsWidget->setMinimumHeight(500); contentsWidget->setSpacing(12); pagesWidget = new QStackedWidget; + configurationPage = new ConfigurationPage(); pagesWidget->addWidget(configurationPage); + patternPage = new PatternPage(); pagesWidget->addWidget(patternPage); + communityPage = new CommunityPage(); pagesWidget->addWidget(communityPage); + pathPage = new PathPage(); + pagesWidget->addWidget(pathPage); + QPushButton *applyButton = new QPushButton(tr("Apply")); QPushButton *canselButton = new QPushButton(tr("&Cancel")); QPushButton *okButton = new QPushButton(tr("&Ok")); @@ -83,6 +89,8 @@ ConfigDialog::ConfigDialog(QWidget *parent) : setLayout(mainLayout); setWindowTitle(tr("Config Dialog")); + + this->setFixedSize(QSize(750, 550)); } //--------------------------------------------------------------------------------------------------------------------- @@ -108,27 +116,24 @@ void ConfigDialog::closeEvent(QCloseEvent *event) //--------------------------------------------------------------------------------------------------------------------- void ConfigDialog::createIcons() { - QListWidgetItem *configButton = new QListWidgetItem(contentsWidget); - configButton->setIcon(QIcon("://icon/config.png")); - configButton->setText(tr("Configuration")); - configButton->setTextAlignment(Qt::AlignHCenter); - configButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - - QListWidgetItem *patternButton = new QListWidgetItem(contentsWidget); - patternButton->setIcon(QIcon("://icon/pattern_config.png")); - patternButton->setText(tr("Pattern")); - patternButton->setTextAlignment(Qt::AlignHCenter); - patternButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - - QListWidgetItem *communityButton = new QListWidgetItem(contentsWidget); - communityButton->setIcon(QIcon("://icon/community_config.png")); - communityButton->setText(tr("Community")); - communityButton->setTextAlignment(Qt::AlignHCenter); - communityButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); + createIcon("://icon/config.png", tr("Configuration")); + createIcon("://icon/pattern_config.png", tr("Pattern")); + createIcon("://icon/community_config.png", tr("Community")); + createIcon("://icon/path_config.png", tr("Paths")); connect(contentsWidget, &QListWidget::currentItemChanged, this, &ConfigDialog::changePage); } +//--------------------------------------------------------------------------------------------------------------------- +void ConfigDialog::createIcon(const QString &icon, const QString &text) +{ + QListWidgetItem *button = new QListWidgetItem(contentsWidget); + button->setIcon(QIcon(icon)); + button->setText(text); + button->setTextAlignment(Qt::AlignHCenter); + button->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); +} + //--------------------------------------------------------------------------------------------------------------------- void ConfigDialog::Apply() { @@ -143,6 +148,9 @@ void ConfigDialog::Apply() case (2): communityPage->Apply(); break; + case (3): + pathPage->Apply(); + break; default: break; } diff --git a/src/app/dialogs/app/configdialog.h b/src/app/dialogs/app/configdialog.h index 7832ebd4d..8045a33d2 100644 --- a/src/app/dialogs/app/configdialog.h +++ b/src/app/dialogs/app/configdialog.h @@ -52,7 +52,9 @@ private: ConfigurationPage *configurationPage; PatternPage *patternPage; CommunityPage *communityPage; + PathPage *pathPage; void createIcons(); + void createIcon(const QString &icon, const QString &text); void Apply(); void Ok(); }; diff --git a/src/app/dialogs/app/configpages/pages.h b/src/app/dialogs/app/configpages/pages.h index e2d8c836c..271a48c3f 100644 --- a/src/app/dialogs/app/configpages/pages.h +++ b/src/app/dialogs/app/configpages/pages.h @@ -32,5 +32,6 @@ #include "configurationpage.h" #include "patternpage.h" #include "communitypage.h" +#include "pathpage.h" #endif // PAGES_H diff --git a/src/app/dialogs/app/configpages/pathpage.cpp b/src/app/dialogs/app/configpages/pathpage.cpp new file mode 100644 index 000000000..af7a27ff2 --- /dev/null +++ b/src/app/dialogs/app/configpages/pathpage.cpp @@ -0,0 +1,162 @@ +/************************************************************************ + ** + ** @file pathpage.cpp + ** @author Roman Telezhynskyi + ** @date 21 6, 2014 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2014 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ + +#include "pathpage.h" +#include "../../../options.h" +#include "../../../widgets/vapplication.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//--------------------------------------------------------------------------------------------------------------------- +PathPage::PathPage(QWidget *parent) + : QWidget(parent), defaultButton(nullptr), editButton(nullptr), pathTable(nullptr) +{ + QGroupBox *pathGroup = PathGroup(); + SCASSERT(pathGroup != nullptr); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(pathGroup); + mainLayout->addStretch(1); + setLayout(mainLayout); +} + +//--------------------------------------------------------------------------------------------------------------------- +void PathPage::Apply() +{ + QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), + QApplication::applicationName()); + + settings.setValue("paths/individual_measurements", pathTable->item(0, 1)->text()); + settings.setValue("paths/pattern", pathTable->item(1, 1)->text()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void PathPage::TableActivated() +{ + defaultButton->setEnabled(true); + defaultButton->setDefault(false); + + editButton->setEnabled(true); + editButton->setDefault(true); +} + +//--------------------------------------------------------------------------------------------------------------------- +void PathPage::DefaultPath() +{ + QTableWidgetItem *item = pathTable->item(pathTable->currentRow(), 1); + SCASSERT(item != nullptr); + item->setText(QDir::homePath()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void PathPage::EditPath() +{ + QTableWidgetItem *item = pathTable->item(pathTable->currentRow(), 1); + SCASSERT(item != nullptr); + QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), QDir::homePath(), + QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); + if (dir.isEmpty()) + { + dir = QDir::homePath(); + } + + item->setText(dir); +} + +//--------------------------------------------------------------------------------------------------------------------- +QGroupBox *PathPage::PathGroup() +{ + QGroupBox *pathGroup = new QGroupBox(tr("Path that use Valentina")); + InitTable(); + + defaultButton = new QPushButton(tr("Default")); + defaultButton->setEnabled(false); + connect(defaultButton, &QPushButton::clicked, this, &PathPage::DefaultPath); + + editButton = new QPushButton(tr("Edit")); + editButton->setEnabled(false); + connect(editButton, &QPushButton::clicked, this, &PathPage::EditPath); + + QHBoxLayout *buttonsLayout = new QHBoxLayout; + buttonsLayout->addWidget(defaultButton); + buttonsLayout->addWidget(editButton); + + QVBoxLayout *pathLayout = new QVBoxLayout; + pathLayout->addWidget(pathTable); + pathLayout->addLayout(buttonsLayout); + + pathGroup->setLayout(pathLayout); + return pathGroup; +} + +void PathPage::InitTable() +{ + pathTable = new QTableWidget(); + pathTable->setRowCount(2); + pathTable->setColumnCount(2); + pathTable->verticalHeader()->setVisible(false); + pathTable->setEditTriggers(QAbstractItemView::NoEditTriggers); + pathTable->setSelectionBehavior(QAbstractItemView::SelectRows); + pathTable->setSelectionMode(QAbstractItemView::SingleSelection); + pathTable->setShowGrid(false); + + QStringList tableHeader{tr("Type"), tr("Path")}; + pathTable->setHorizontalHeaderLabels(tableHeader); + + QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), + QApplication::applicationName()); + + QString path; + + pathTable->setItem(0, 0, new QTableWidgetItem(tr("Individual measurements"))); + path = settings.value("paths/individual_measurements", QDir::homePath()).toString(); + pathTable->setItem(0, 1, new QTableWidgetItem(path)); + + pathTable->setItem(1, 0, new QTableWidgetItem(tr("Patterns"))); + path = settings.value("paths/pattern", QDir::homePath()).toString(); + pathTable->setItem(1, 1, new QTableWidgetItem(path)); + + pathTable->verticalHeader()->setDefaultSectionSize(20); + pathTable->resizeColumnsToContents(); + pathTable->resizeRowsToContents(); + pathTable->horizontalHeader()->setStretchLastSection(true); + + connect(pathTable, &QTableWidget::itemSelectionChanged, this, &PathPage::TableActivated); +} diff --git a/src/app/dialogs/app/configpages/pathpage.h b/src/app/dialogs/app/configpages/pathpage.h new file mode 100644 index 000000000..f51b83da0 --- /dev/null +++ b/src/app/dialogs/app/configpages/pathpage.h @@ -0,0 +1,58 @@ +/************************************************************************ + ** + ** @file pathpage.h + ** @author Roman Telezhynskyi + ** @date 21 6, 2014 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2014 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina 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 General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ + +#ifndef PATHPAGE_H +#define PATHPAGE_H + +#include +#include + +class QGroupBox; +class QPushButton; +class QTableWidget; + +class PathPage : public QWidget +{ + Q_OBJECT +public: + PathPage(QWidget *parent = nullptr); + void Apply(); +public slots: + void TableActivated(); + void DefaultPath(); + void EditPath(); +private: + Q_DISABLE_COPY(PathPage) + QPushButton *defaultButton; + QPushButton *editButton; + QTableWidget *pathTable; + QGroupBox *PathGroup(); + void InitTable(); +}; + +#endif // PATHPAGE_H diff --git a/src/app/dialogs/app/dialogindividualmeasurements.cpp b/src/app/dialogs/app/dialogindividualmeasurements.cpp index a9c2e8b34..6432244fb 100644 --- a/src/app/dialogs/app/dialogindividualmeasurements.cpp +++ b/src/app/dialogs/app/dialogindividualmeasurements.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include "../../widgets/vapplication.h" #include "../../container/vcontainer.h" @@ -187,7 +188,12 @@ void DialogIndividualMeasurements::CheckState() void DialogIndividualMeasurements::OpenTable() { const QString filter(tr("Individual measurements (*.vit)")); - QString fileName = QFileDialog::getOpenFileName(this, tr("Open file"), QDir::homePath(), filter); + + QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), + QApplication::applicationName()); + QString path = settings.value("paths/individual_measurements", QDir::homePath()).toString(); + + QString fileName = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter); if (fileName.isEmpty()) { return; diff --git a/src/app/dialogs/dialogs.pri b/src/app/dialogs/dialogs.pri index 225479f43..2a2deb89a 100644 --- a/src/app/dialogs/dialogs.pri +++ b/src/app/dialogs/dialogs.pri @@ -34,7 +34,8 @@ HEADERS += \ dialogs/app/dialogpatternxmledit.h \ dialogs/app/configpages/configurationpage.h \ dialogs/app/configpages/patternpage.h \ - dialogs/app/configpages/communitypage.h + dialogs/app/configpages/communitypage.h \ + dialogs/app/configpages/pathpage.h SOURCES += \ dialogs/tools/dialogtriangle.cpp \ @@ -70,7 +71,8 @@ SOURCES += \ dialogs/tools/dialogeditwrongformula.cpp \ dialogs/app/configpages/configurationpage.cpp \ dialogs/app/configpages/patternpage.cpp \ - dialogs/app/configpages/communitypage.cpp + dialogs/app/configpages/communitypage.cpp \ + dialogs/app/configpages/pathpage.cpp FORMS += \ dialogs/tools/dialogtriangle.ui \ diff --git a/src/app/mainwindow.cpp b/src/app/mainwindow.cpp index 02b2fafa2..0d6e92e5a 100644 --- a/src/app/mainwindow.cpp +++ b/src/app/mainwindow.cpp @@ -1393,10 +1393,13 @@ void MainWindow::ActionDetails(bool checked) bool MainWindow::SaveAs() { QString filters(tr("Pattern files (*.val)")); + QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), + QApplication::applicationName()); + QString path = settings.value("paths/pattern", QDir::homePath()).toString(); QString dir; if (curFile.isEmpty()) { - dir = QDir::homePath() + tr("/pattern.val"); + dir = path + "/" + tr("pattern") + ".val"; } else { diff --git a/src/app/share/resources/icon.qrc b/src/app/share/resources/icon.qrc index e127d2f36..6b66c2418 100644 --- a/src/app/share/resources/icon.qrc +++ b/src/app/share/resources/icon.qrc @@ -55,5 +55,6 @@ icon/32x32/arrowUp.png icon/32x32/arrowLeftUp.png icon/32x32/putHereLeft.png + icon/path_config.png diff --git a/src/app/share/resources/icon/path_config.png b/src/app/share/resources/icon/path_config.png new file mode 100644 index 0000000000000000000000000000000000000000..a1a9e0e458552ba63fc183ae84a643c978c543f8 GIT binary patch literal 18914 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 B+EV}k literal 0 HcmV?d00001