diff options
author | Eike Ziller <[email protected]> | 2022-09-14 16:31:30 +0200 |
---|---|---|
committer | Eike Ziller <[email protected]> | 2022-09-15 11:28:41 +0000 |
commit | e57b797342e24bf2edf3f67411863bc1f8bc284d (patch) | |
tree | 7c1508d06b1ac16932b309422d524ed5a4f5f239 /src/plugins/imageviewer/imageview.cpp | |
parent | e7ddd8a5b7f7d0d540de5811b5ea9eaabbdc2c0b (diff) |
ImageViewer: Add button for saving current view settings as default
Fixes: QTCREATORBUG-27816
Change-Id: I85806634ea9f10761d281ab8c8cf892dd1b65145
Reviewed-by: David Schulz <[email protected]>
Diffstat (limited to 'src/plugins/imageviewer/imageview.cpp')
-rw-r--r-- | src/plugins/imageviewer/imageview.cpp | 51 |
1 files changed, 42 insertions, 9 deletions
diff --git a/src/plugins/imageviewer/imageview.cpp b/src/plugins/imageviewer/imageview.cpp index 984ad0fd793..3f670d9e5cd 100644 --- a/src/plugins/imageviewer/imageview.cpp +++ b/src/plugins/imageviewer/imageview.cpp @@ -14,6 +14,7 @@ #include <utils/fileutils.h> #include <utils/qtcassert.h> +#include <utils/qtcsettings.h> #include <QClipboard> #include <QDir> @@ -34,6 +35,11 @@ #include <QSvgRenderer> #endif +const char kSettingsGroup[] = "ImageViewer"; +const char kSettingsBackground[] = "ShowBackground"; +const char kSettingsOutline[] = "ShowOutline"; +const char kSettingsFitToScreen[] = "FitToScreen"; + namespace ImageViewer { namespace Constants { const qreal DEFAULT_SCALE_FACTOR = 1.2; @@ -105,7 +111,7 @@ void ImageView::createScene() m_backgroundItem = new QGraphicsRectItem(m_imageItem->boundingRect()); m_backgroundItem->setBrush(Qt::white); m_backgroundItem->setPen(Qt::NoPen); - m_backgroundItem->setVisible(m_showBackground); + m_backgroundItem->setVisible(m_settings.showBackground); m_backgroundItem->setZValue(-1); // outline @@ -114,7 +120,7 @@ void ImageView::createScene() outline.setCosmetic(true); m_outlineItem->setPen(outline); m_outlineItem->setBrush(Qt::NoBrush); - m_outlineItem->setVisible(m_showOutline); + m_outlineItem->setVisible(m_settings.showOutline); m_outlineItem->setZValue(1); QGraphicsScene *s = scene(); @@ -242,14 +248,14 @@ void ImageView::copyDataUrl() void ImageView::setViewBackground(bool enable) { - m_showBackground = enable; + m_settings.showBackground = enable; if (m_backgroundItem) m_backgroundItem->setVisible(enable); } void ImageView::setViewOutline(bool enable) { - m_showOutline = enable; + m_settings.showOutline = enable; if (m_outlineItem) m_outlineItem->setVisible(enable); } @@ -276,7 +282,7 @@ void ImageView::wheelEvent(QWheelEvent *event) void ImageView::resizeEvent(QResizeEvent *event) { QGraphicsView::resizeEvent(event); - if (m_fitToScreen) + if (m_settings.fitToScreen) doFitToScreen(); } @@ -305,12 +311,39 @@ void ImageView::resetToOriginalSize() void ImageView::setFitToScreen(bool fit) { - if (fit == m_fitToScreen) + if (fit == m_settings.fitToScreen) return; - m_fitToScreen = fit; - if (m_fitToScreen) + m_settings.fitToScreen = fit; + if (m_settings.fitToScreen) doFitToScreen(); - emit fitToScreenChanged(m_fitToScreen); + emit fitToScreenChanged(m_settings.fitToScreen); +} + +void ImageView::readSettings(Utils::QtcSettings *settings) +{ + const Settings def; + settings->beginGroup(kSettingsGroup); + m_settings.showBackground = settings->value(kSettingsBackground, def.showBackground).toBool(); + m_settings.showOutline = settings->value(kSettingsOutline, def.showOutline).toBool(); + m_settings.fitToScreen = settings->value(kSettingsFitToScreen, def.fitToScreen).toBool(); + settings->endGroup(); +} + +void ImageView::writeSettings(Utils::QtcSettings *settings) const +{ + const Settings def; + settings->beginGroup(kSettingsGroup); + settings->setValueWithDefault(kSettingsBackground, + m_settings.showBackground, + def.showBackground); + settings->setValueWithDefault(kSettingsOutline, m_settings.showOutline, def.showOutline); + settings->setValueWithDefault(kSettingsFitToScreen, m_settings.fitToScreen, def.fitToScreen); + settings->endGroup(); +} + +ImageView::Settings ImageView::settings() const +{ + return m_settings; } void ImageView::doFitToScreen() |