Changeset View
Changeset View
Standalone View
Standalone View
src/QuickEditor/QuickEditor.cpp
Show All 17 Lines | |||||
18 | */ | 18 | */ | ||
19 | 19 | | |||
20 | #include <KLocalizedString> | 20 | #include <KLocalizedString> | ||
21 | #include <QGuiApplication> | 21 | #include <QGuiApplication> | ||
22 | #include <QScreen> | 22 | #include <QScreen> | ||
23 | #include <QtCore/qmath.h> | 23 | #include <QtCore/qmath.h> | ||
24 | 24 | | |||
25 | #include "QuickEditor.h" | 25 | #include "QuickEditor.h" | ||
26 | #include "SpectacleConfig.h" | 26 | #include "settings.h" | ||
27 | 27 | | |||
28 | const int QuickEditor::handleRadiusMouse = 9; | 28 | const int QuickEditor::handleRadiusMouse = 9; | ||
29 | const int QuickEditor::handleRadiusTouch = 12; | 29 | const int QuickEditor::handleRadiusTouch = 12; | ||
30 | const qreal QuickEditor::increaseDragAreaFactor = 2.0; | 30 | const qreal QuickEditor::increaseDragAreaFactor = 2.0; | ||
31 | const int QuickEditor::minSpacingBetweenHandles = 20; | 31 | const int QuickEditor::minSpacingBetweenHandles = 20; | ||
32 | const int QuickEditor::borderDragAreaSize = 10; | 32 | const int QuickEditor::borderDragAreaSize = 10; | ||
33 | 33 | | |||
34 | const int QuickEditor::selectionSizeThreshold = 100; | 34 | const int QuickEditor::selectionSizeThreshold = 100; | ||
Show All 29 Lines | 53 | QuickEditor::QuickEditor(const QPixmap& thePixmap, QWidget *parent) : | |||
64 | mLabelForegroundColor(palette().windowText().color()), | 64 | mLabelForegroundColor(palette().windowText().color()), | ||
65 | mMidHelpText(i18n("Click and drag to draw a selection rectangle,\nor press Esc to quit")), | 65 | mMidHelpText(i18n("Click and drag to draw a selection rectangle,\nor press Esc to quit")), | ||
66 | mMidHelpTextFont(font()), | 66 | mMidHelpTextFont(font()), | ||
67 | mBottomHelpTextFont(font()), | 67 | mBottomHelpTextFont(font()), | ||
68 | mBottomHelpGridLeftWidth(0), | 68 | mBottomHelpGridLeftWidth(0), | ||
69 | mMouseDragState(MouseState::None), | 69 | mMouseDragState(MouseState::None), | ||
70 | mPixmap(thePixmap), | 70 | mPixmap(thePixmap), | ||
71 | mMagnifierAllowed(false), | 71 | mMagnifierAllowed(false), | ||
72 | mShowMagnifier(SpectacleConfig::instance()->showMagnifierChecked()), | 72 | mShowMagnifier(Settings::showMagnifier()), | ||
73 | mToggleMagnifier(false), | 73 | mToggleMagnifier(false), | ||
74 | mReleaseToCapture(SpectacleConfig::instance()->useReleaseToCapture()), | 74 | mReleaseToCapture(Settings::useReleaseToCapture()), | ||
75 | mRememberRegion(SpectacleConfig::instance()->alwaysRememberRegion() || SpectacleConfig::instance()->rememberLastRectangularRegion()), | 75 | mRememberRegion(Settings::alwaysRememberRegion() || Settings::rememberLastRectangularRegion()), | ||
76 | mDisableArrowKeys(false), | 76 | mDisableArrowKeys(false), | ||
77 | mPrimaryScreenGeo(QGuiApplication::primaryScreen()->geometry()), | 77 | mPrimaryScreenGeo(QGuiApplication::primaryScreen()->geometry()), | ||
78 | mbottomHelpLength(bottomHelpMaxLength), | 78 | mbottomHelpLength(bottomHelpMaxLength), | ||
79 | mHandleRadius(handleRadiusMouse) | 79 | mHandleRadius(handleRadiusMouse) | ||
80 | { | 80 | { | ||
81 | SpectacleConfig *config = SpectacleConfig::instance(); | 81 | if (Settings::useLightMaskColour()) { | ||
82 | if (config->useLightRegionMaskColour()) { | | |||
83 | mMaskColor = QColor(255, 255, 255, 100); | 82 | mMaskColor = QColor(255, 255, 255, 100); | ||
84 | } | 83 | } | ||
85 | 84 | | |||
86 | setMouseTracking(true); | 85 | setMouseTracking(true); | ||
87 | setAttribute(Qt::WA_StaticContents); | 86 | setAttribute(Qt::WA_StaticContents); | ||
88 | setWindowFlags(Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint | Qt::Popup | Qt::WindowStaysOnTopHint); | 87 | setWindowFlags(Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint | Qt::Popup | Qt::WindowStaysOnTopHint); | ||
89 | 88 | | |||
90 | dprI = 1.0 / devicePixelRatioF(); | 89 | dprI = 1.0 / devicePixelRatioF(); | ||
91 | setGeometry(0, 0, static_cast<int>(mPixmap.width() * dprI), static_cast<int>(mPixmap.height() * dprI)); | 90 | setGeometry(0, 0, static_cast<int>(mPixmap.width() * dprI), static_cast<int>(mPixmap.height() * dprI)); | ||
92 | 91 | | |||
93 | if (config->rememberLastRectangularRegion()) { | 92 | if (Settings::rememberLastRectangularRegion() || Settings::alwaysRememberRegion()) { | ||
94 | QRect cropRegion = config->cropRegion(); | 93 | auto savedRect = Settings::cropRegion(); | ||
94 | QRect cropRegion = QRect(savedRect[0], savedRect[1], savedRect[2], savedRect[3]); | ||||
95 | if (!cropRegion.isEmpty()) { | 95 | if (!cropRegion.isEmpty()) { | ||
96 | mSelection = QRectF( | 96 | mSelection = QRectF( | ||
97 | cropRegion.x() * dprI, | 97 | cropRegion.x() * dprI, | ||
98 | cropRegion.y() * dprI, | 98 | cropRegion.y() * dprI, | ||
99 | cropRegion.width() * dprI, | 99 | cropRegion.width() * dprI, | ||
100 | cropRegion.height() * dprI | 100 | cropRegion.height() * dprI | ||
101 | ).intersected(geometry()); | 101 | ).intersected(geometry()); | ||
102 | } | 102 | } | ||
Show All 27 Lines | 129 | { | |||
130 | if (!mSelection.isEmpty()) { | 130 | if (!mSelection.isEmpty()) { | ||
131 | const qreal dpr = devicePixelRatioF(); | 131 | const qreal dpr = devicePixelRatioF(); | ||
132 | QRect scaledCropRegion = QRect( | 132 | QRect scaledCropRegion = QRect( | ||
133 | qRound(mSelection.x() * dpr), | 133 | qRound(mSelection.x() * dpr), | ||
134 | qRound(mSelection.y() * dpr), | 134 | qRound(mSelection.y() * dpr), | ||
135 | qRound(mSelection.width() * dpr), | 135 | qRound(mSelection.width() * dpr), | ||
136 | qRound(mSelection.height() * dpr) | 136 | qRound(mSelection.height() * dpr) | ||
137 | ); | 137 | ); | ||
138 | SpectacleConfig::instance()->setCropRegion(scaledCropRegion); | 138 | Settings::setCropRegion({scaledCropRegion.x(), scaledCropRegion.y(), scaledCropRegion.width(), scaledCropRegion.height()}); | ||
139 | emit grabDone(mPixmap.copy(scaledCropRegion)); | 139 | emit grabDone(mPixmap.copy(scaledCropRegion)); | ||
140 | } | 140 | } | ||
141 | } | 141 | } | ||
142 | 142 | | |||
143 | void QuickEditor::keyPressEvent(QKeyEvent* event) | 143 | void QuickEditor::keyPressEvent(QKeyEvent* event) | ||
144 | { | 144 | { | ||
145 | const auto modifiers = event->modifiers(); | 145 | const auto modifiers = event->modifiers(); | ||
146 | const bool shiftPressed = modifiers & Qt::ShiftModifier; | 146 | const bool shiftPressed = modifiers & Qt::ShiftModifier; | ||
▲ Show 20 Lines • Show All 736 Lines • Show Last 20 Lines |