From f28bbc6acdca7ffc3591fda404a6e3bc75827741 Mon Sep 17 00:00:00 2001 From: dismine Date: Sun, 8 Jun 2014 13:59:39 +0300 Subject: [PATCH] Scene antialiasing. --HG-- branch : feature --- src/app/dialogs/app/pages.cpp | 30 ++++++++++++++++++----- src/app/mainwindow.cpp | 16 +++++++++--- src/app/widgets/vapplication.cpp | 9 +------ src/app/widgets/vapplication.h | 42 ++++++++++++++++++++++++++++++++ 4 files changed, 79 insertions(+), 18 deletions(-) diff --git a/src/app/dialogs/app/pages.cpp b/src/app/dialogs/app/pages.cpp index 1e17fd272..b85c78518 100644 --- a/src/app/dialogs/app/pages.cpp +++ b/src/app/dialogs/app/pages.cpp @@ -51,7 +51,21 @@ void ConfigurationPage::Apply() QApplication::applicationName()); settings.setValue("configuration/autosave/state", autoSaveCheck->isChecked()); settings.setValue("configuration/autosave/time", autoTime->value()); + + QTimer *autoSaveTimer = qApp->getAutoSaveTimer(); + SCASSERT(autoSaveTimer); + + if (autoSaveCheck->isChecked()) + { + autoSaveTimer->start(autoTime->value()*60000); + } + else + { + autoSaveTimer->stop(); + } + settings.setValue("configuration/osSeparator", osOptionCheck->isChecked()); + if (langChanged) { QString locale = qvariant_cast(langCombo->itemData(langCombo->currentIndex())); @@ -194,7 +208,12 @@ void PatternPage::Apply() QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), QApplication::applicationName()); settings.setValue("pattern/user", userName->text()); - //settings.setValue("pattern/graphicalOutput", graphOutputCheck->isChecked()); + + // Scene antialiasing + settings.setValue("pattern/graphicalOutput", graphOutputCheck->isChecked()); + qApp->getSceneView()->setRenderHint(QPainter::Antialiasing, graphOutputCheck->isChecked()); + qApp->getSceneView()->setRenderHint(QPainter::SmoothPixmapTransform, graphOutputCheck->isChecked()); + settings.setValue("pattern/undone", undoneCount->value()); } @@ -228,15 +247,14 @@ QGroupBox *PatternPage::UserGroup() //--------------------------------------------------------------------------------------------------------------------- QGroupBox *PatternPage::GraphOutputGroup() { -// QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), -// QApplication::applicationName()); + QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), + QApplication::applicationName()); QGroupBox *graphOutputGroup = new QGroupBox(tr("Graphical output")); graphOutputCheck = new QCheckBox(tr("Use antialiasing")); - //bool graphOutputValue = settings.value("pattern/graphicalOutput", 1).toBool(); - //graphOutputCheck->setChecked(graphOutputValue); - graphOutputCheck->setEnabled(false); + bool graphOutputValue = settings.value("pattern/graphicalOutput", 1).toBool(); + graphOutputCheck->setChecked(graphOutputValue); QHBoxLayout *graphLayout = new QHBoxLayout; graphLayout->addWidget(graphOutputCheck); diff --git a/src/app/mainwindow.cpp b/src/app/mainwindow.cpp index 02565d3dc..273a5674f 100644 --- a/src/app/mainwindow.cpp +++ b/src/app/mainwindow.cpp @@ -83,6 +83,7 @@ MainWindow::MainWindow(QWidget *parent) QSizePolicy policy(QSizePolicy::Expanding, QSizePolicy::Expanding); policy.setHorizontalStretch(12); view->setSizePolicy(policy); + qApp->setSceneView(view); helpLabel = new QLabel(QObject::tr("Create new pattern piece to start working.")); ui->statusBar->addWidget(helpLabel); @@ -1724,6 +1725,10 @@ void MainWindow::ReadSettings() QSize size = settings.value("size", QSize(1000, 800)).toSize(); resize(size); move(pos); + + bool graphOutputValue = settings.value("pattern/graphicalOutput", 1).toBool(); + view->setRenderHint(QPainter::Antialiasing, graphOutputValue); + view->setRenderHint(QPainter::SmoothPixmapTransform, graphOutputValue); } //--------------------------------------------------------------------------------------------------------------------- @@ -1853,6 +1858,11 @@ void MainWindow::InitAutoSave() delete autoSaveTimer; autoSaveTimer = nullptr; + autoSaveTimer = new QTimer(this); + autoSaveTimer->setTimerType(Qt::VeryCoarseTimer); + connect(autoSaveTimer, &QTimer::timeout, this, &MainWindow::AutoSavePattern); + autoSaveTimer->stop(); + QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), QApplication::applicationName()); bool autoSave = settings.value("configuration/autosave/state", 1).toBool(); @@ -1864,12 +1874,10 @@ void MainWindow::InitAutoSave() { autoTime = 5; } - - autoSaveTimer = new QTimer(this); - autoSaveTimer->setTimerType(Qt::VeryCoarseTimer); - connect(autoSaveTimer, &QTimer::timeout, this, &MainWindow::AutoSavePattern); autoSaveTimer->start(autoTime*60000); + } + qApp->setAutoSaveTimer(autoSaveTimer); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/widgets/vapplication.cpp b/src/app/widgets/vapplication.cpp index bb8dc49e8..7e5e11a96 100644 --- a/src/app/widgets/vapplication.cpp +++ b/src/app/widgets/vapplication.cpp @@ -51,7 +51,7 @@ VApplication::VApplication(int &argc, char **argv) _widthMainLine(DefWidth), _widthHairLine(DefWidth/3.0), measurements(QMap()), guiTexts(QMap()), descriptions(QMap()), variables(QMap()), functions(QMap()), - postfixOperators(QMap()), undoStack(nullptr) + postfixOperators(QMap()), undoStack(nullptr), sceneView(nullptr), autoSaveTimer(nullptr) { undoStack = new QUndoStack(this); @@ -1937,10 +1937,3 @@ QString VApplication::FormulaToUser(const QString &formula) return newFormula; } - -//--------------------------------------------------------------------------------------------------------------------- -QUndoStack *VApplication::getUndoStack() const -{ - return undoStack; -} - diff --git a/src/app/widgets/vapplication.h b/src/app/widgets/vapplication.h index e4583a74b..07d6ccd3d 100644 --- a/src/app/widgets/vapplication.h +++ b/src/app/widgets/vapplication.h @@ -32,6 +32,7 @@ #include #include #include "../options.h" +#include "vmaingraphicsview.h" #include "vtranslation.h" class VApplication; @@ -83,6 +84,10 @@ public: QString FormulaFromUser(const QString &formula); QString FormulaToUser(const QString &formula); QUndoStack *getUndoStack() const; + VMainGraphicsView *getSceneView() const; + void setSceneView(VMainGraphicsView *value); + QTimer *getAutoSaveTimer() const; + void setAutoSaveTimer(QTimer *value); private: Q_DISABLE_COPY(VApplication) Valentina::Units _patternUnit; @@ -96,6 +101,8 @@ private: QMap functions; QMap postfixOperators; QUndoStack *undoStack; + VMainGraphicsView *sceneView; + QTimer *autoSaveTimer; void InitLineWidth(); void InitMeasurements(); void InitVariables(); @@ -113,29 +120,64 @@ private: void BiasTokens(int position, int bias, QMap &tokens) const; }; +//--------------------------------------------------------------------------------------------------------------------- inline Valentina::Units VApplication::patternUnit() const { return _patternUnit; } +//--------------------------------------------------------------------------------------------------------------------- inline Pattern::Measurements VApplication::patternType() const { return _patternType; } +//--------------------------------------------------------------------------------------------------------------------- inline void VApplication::setPatternType(const Pattern::Measurements &patternType) { _patternType = patternType; } +//--------------------------------------------------------------------------------------------------------------------- inline qreal VApplication::widthMainLine() const { return _widthMainLine; } +//--------------------------------------------------------------------------------------------------------------------- inline qreal VApplication::widthHairLine() const { return _widthHairLine; } +//--------------------------------------------------------------------------------------------------------------------- +inline QUndoStack *VApplication::getUndoStack() const +{ + return undoStack; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline VMainGraphicsView *VApplication::getSceneView() const +{ + return sceneView; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline void VApplication::setSceneView(VMainGraphicsView *value) +{ + sceneView = value; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline QTimer *VApplication::getAutoSaveTimer() const +{ + return autoSaveTimer; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline void VApplication::setAutoSaveTimer(QTimer *value) +{ + autoSaveTimer = value; +} + #endif // VAPPLICATION_H