Changeset View
Changeset View
Standalone View
Standalone View
dialogs/imagelib/transforms/kpTransformPreviewDialog.cpp
Show First 20 Lines • Show All 72 Lines • ▼ Show 20 Line(s) | 71 | { | |||
---|---|---|---|---|---|
73 | QDialogButtonBox *buttons = new QDialogButtonBox (QDialogButtonBox::Ok | | 73 | QDialogButtonBox *buttons = new QDialogButtonBox (QDialogButtonBox::Ok | | ||
74 | QDialogButtonBox::Cancel, this); | 74 | QDialogButtonBox::Cancel, this); | ||
75 | connect (buttons, &QDialogButtonBox::accepted, this, &kpTransformPreviewDialog::accept); | 75 | connect (buttons, &QDialogButtonBox::accepted, this, &kpTransformPreviewDialog::accept); | ||
76 | connect (buttons, &QDialogButtonBox::rejected, this, &kpTransformPreviewDialog::reject); | 76 | connect (buttons, &QDialogButtonBox::rejected, this, &kpTransformPreviewDialog::reject); | ||
77 | 77 | | |||
78 | QWidget *baseWidget = new QWidget (this); | 78 | QWidget *baseWidget = new QWidget (this); | ||
79 | m_mainWidget = baseWidget; | 79 | m_mainWidget = baseWidget; | ||
80 | 80 | | |||
81 | QVBoxLayout *dialogLayout = new QVBoxLayout (this); | 81 | auto *dialogLayout = new QVBoxLayout (this); | ||
82 | dialogLayout->addWidget (baseWidget); | 82 | dialogLayout->addWidget (baseWidget); | ||
83 | dialogLayout->addWidget (buttons); | 83 | dialogLayout->addWidget (buttons); | ||
84 | 84 | | |||
85 | 85 | | |||
86 | if (document ()) | 86 | if (document ()) | ||
87 | { | 87 | { | ||
88 | m_oldWidth = document ()->width (actOnSelection); | 88 | m_oldWidth = document ()->width (actOnSelection); | ||
89 | m_oldHeight = document ()->height (actOnSelection); | 89 | m_oldHeight = document ()->height (actOnSelection); | ||
90 | } | 90 | } | ||
91 | else | 91 | else | ||
92 | { | 92 | { | ||
93 | m_oldWidth = m_oldHeight = 1; | 93 | m_oldWidth = m_oldHeight = 1; | ||
94 | } | 94 | } | ||
95 | 95 | | |||
96 | 96 | | |||
97 | if (features & Dimensions) | 97 | if (features & Dimensions) { | ||
98 | createDimensionsGroupBox (); | 98 | createDimensionsGroupBox (); | ||
99 | } | ||||
99 | 100 | | |||
100 | if (features & Preview) | 101 | if (features & Preview) { | ||
101 | createPreviewGroupBox (); | 102 | createPreviewGroupBox (); | ||
103 | } | ||||
102 | 104 | | |||
103 | 105 | | |||
104 | m_gridLayout = new QGridLayout (baseWidget ); | 106 | m_gridLayout = new QGridLayout (baseWidget ); | ||
105 | m_gridLayout->setContentsMargins(0, 0, 0, 0); | 107 | m_gridLayout->setContentsMargins(0, 0, 0, 0); | ||
106 | m_gridNumRows = reserveTopRow ? 1 : 0; | 108 | m_gridNumRows = reserveTopRow ? 1 : 0; | ||
107 | if (m_dimensionsGroupBox || m_previewGroupBox) | 109 | if (m_dimensionsGroupBox || m_previewGroupBox) | ||
108 | { | 110 | { | ||
109 | if (m_dimensionsGroupBox && m_previewGroupBox) | 111 | if (m_dimensionsGroupBox && m_previewGroupBox) | ||
Show All 10 Lines | |||||
120 | } | 122 | } | ||
121 | else if (m_previewGroupBox) | 123 | else if (m_previewGroupBox) | ||
122 | { | 124 | { | ||
123 | m_gridLayout->addWidget (m_previewGroupBox, | 125 | m_gridLayout->addWidget (m_previewGroupBox, | ||
124 | m_gridNumRows, 0, 1, 2); | 126 | m_gridNumRows, 0, 1, 2); | ||
125 | } | 127 | } | ||
126 | 128 | | |||
127 | m_gridLayout->setRowStretch (m_gridNumRows, 1); | 129 | m_gridLayout->setRowStretch (m_gridNumRows, 1); | ||
128 | m_gridNumRows++;; | 130 | m_gridNumRows++; | ||
129 | } | 131 | } | ||
130 | } | 132 | } | ||
131 | 133 | | |||
132 | kpTransformPreviewDialog::~kpTransformPreviewDialog () | 134 | kpTransformPreviewDialog::~kpTransformPreviewDialog () = default; | ||
133 | { | | |||
134 | } | | |||
135 | 135 | | |||
136 | 136 | | |||
137 | // private | 137 | // private | ||
138 | void kpTransformPreviewDialog::createDimensionsGroupBox () | 138 | void kpTransformPreviewDialog::createDimensionsGroupBox () | ||
139 | { | 139 | { | ||
140 | m_dimensionsGroupBox = new QGroupBox (i18n ("Dimensions"), mainWidget ()); | 140 | m_dimensionsGroupBox = new QGroupBox (i18n ("Dimensions"), mainWidget ()); | ||
141 | 141 | | |||
142 | QLabel *originalLabel = new QLabel (i18n ("Original:"), m_dimensionsGroupBox); | 142 | auto *originalLabel = new QLabel (i18n ("Original:"), m_dimensionsGroupBox); | ||
143 | QString originalDimensions; | 143 | QString originalDimensions; | ||
144 | if (document ()) | 144 | if (document ()) | ||
145 | { | 145 | { | ||
146 | originalDimensions = i18n ("%1 x %2", | 146 | originalDimensions = i18n ("%1 x %2", | ||
147 | m_oldWidth, | 147 | m_oldWidth, | ||
148 | m_oldHeight); | 148 | m_oldHeight); | ||
149 | 149 | | |||
150 | // Stop the Dimensions Group Box from resizing so often | 150 | // Stop the Dimensions Group Box from resizing so often | ||
151 | const QString minimumLengthString ("100000 x 100000"); | 151 | const QString minimumLengthString ("100000 x 100000"); | ||
152 | const int padLength = minimumLengthString.length (); | 152 | const int padLength = minimumLengthString.length (); | ||
153 | for (int i = originalDimensions.length (); i < padLength; i++) | 153 | for (int i = originalDimensions.length (); i < padLength; i++) { | ||
154 | originalDimensions += ' '; | 154 | originalDimensions += ' '; | ||
155 | } | 155 | } | ||
156 | QLabel *originalDimensionsLabel = new QLabel (originalDimensions, m_dimensionsGroupBox); | 156 | } | ||
157 | auto *originalDimensionsLabel = new QLabel (originalDimensions, m_dimensionsGroupBox); | ||||
157 | 158 | | |||
158 | QLabel *afterTransformLabel = new QLabel (m_afterActionText, m_dimensionsGroupBox); | 159 | auto *afterTransformLabel = new QLabel (m_afterActionText, m_dimensionsGroupBox); | ||
159 | m_afterTransformDimensionsLabel = new QLabel (m_dimensionsGroupBox); | 160 | m_afterTransformDimensionsLabel = new QLabel (m_dimensionsGroupBox); | ||
160 | 161 | | |||
161 | 162 | | |||
162 | QGridLayout *dimensionsLayout = new QGridLayout (m_dimensionsGroupBox ); | 163 | auto *dimensionsLayout = new QGridLayout (m_dimensionsGroupBox ); | ||
163 | dimensionsLayout->addWidget (originalLabel, 0, 0, Qt::AlignBottom); | 164 | dimensionsLayout->addWidget (originalLabel, 0, 0, Qt::AlignBottom); | ||
164 | dimensionsLayout->addWidget (originalDimensionsLabel, 0, 1, Qt::AlignBottom); | 165 | dimensionsLayout->addWidget (originalDimensionsLabel, 0, 1, Qt::AlignBottom); | ||
165 | dimensionsLayout->addWidget (afterTransformLabel, 1, 0, Qt::AlignTop); | 166 | dimensionsLayout->addWidget (afterTransformLabel, 1, 0, Qt::AlignTop); | ||
166 | dimensionsLayout->addWidget (m_afterTransformDimensionsLabel, 1, 1, Qt::AlignTop); | 167 | dimensionsLayout->addWidget (m_afterTransformDimensionsLabel, 1, 1, Qt::AlignTop); | ||
167 | } | 168 | } | ||
168 | 169 | | |||
169 | // private | 170 | // private | ||
170 | void kpTransformPreviewDialog::createPreviewGroupBox () | 171 | void kpTransformPreviewDialog::createPreviewGroupBox () | ||
171 | { | 172 | { | ||
172 | m_previewGroupBox = new QGroupBox (i18n ("Preview"), mainWidget ()); | 173 | m_previewGroupBox = new QGroupBox (i18n ("Preview"), mainWidget ()); | ||
173 | 174 | | |||
174 | m_previewPixmapLabel = new kpResizeSignallingLabel (m_previewGroupBox); | 175 | m_previewPixmapLabel = new kpResizeSignallingLabel (m_previewGroupBox); | ||
175 | m_previewPixmapLabel->setMinimumSize (150, 110); | 176 | m_previewPixmapLabel->setMinimumSize (150, 110); | ||
176 | connect (m_previewPixmapLabel, &kpResizeSignallingLabel::resized, | 177 | connect (m_previewPixmapLabel, &kpResizeSignallingLabel::resized, | ||
177 | this, &kpTransformPreviewDialog::updatePreview); | 178 | this, &kpTransformPreviewDialog::updatePreview); | ||
178 | 179 | | |||
179 | QPushButton *updatePushButton = new QPushButton (i18n ("&Update"), | 180 | QPushButton *updatePushButton = new QPushButton (i18n ("&Update"), | ||
180 | m_previewGroupBox); | 181 | m_previewGroupBox); | ||
181 | connect (updatePushButton, &QPushButton::clicked, | 182 | connect (updatePushButton, &QPushButton::clicked, | ||
182 | this, &kpTransformPreviewDialog::slotUpdateWithWaitCursor); | 183 | this, &kpTransformPreviewDialog::slotUpdateWithWaitCursor); | ||
183 | 184 | | |||
184 | 185 | | |||
185 | QVBoxLayout *previewLayout = new QVBoxLayout (m_previewGroupBox); | 186 | auto *previewLayout = new QVBoxLayout (m_previewGroupBox); | ||
186 | previewLayout->addWidget (m_previewPixmapLabel, 1/*stretch*/); | 187 | previewLayout->addWidget (m_previewPixmapLabel, 1/*stretch*/); | ||
187 | previewLayout->addWidget (updatePushButton, 0/*stretch*/, Qt::AlignHCenter); | 188 | previewLayout->addWidget (updatePushButton, 0/*stretch*/, Qt::AlignHCenter); | ||
188 | } | 189 | } | ||
189 | 190 | | |||
190 | 191 | | |||
191 | // protected | 192 | // protected | ||
192 | kpDocument *kpTransformPreviewDialog::document () const | 193 | kpDocument *kpTransformPreviewDialog::document () const | ||
193 | { | 194 | { | ||
Show All 20 Lines | |||||
214 | } | 215 | } | ||
215 | 216 | | |||
216 | 217 | | |||
217 | // public override [base QWidget] | 218 | // public override [base QWidget] | ||
218 | void kpTransformPreviewDialog::setUpdatesEnabled (bool enable) | 219 | void kpTransformPreviewDialog::setUpdatesEnabled (bool enable) | ||
219 | { | 220 | { | ||
220 | QDialog::setUpdatesEnabled (enable); | 221 | QDialog::setUpdatesEnabled (enable); | ||
221 | 222 | | |||
222 | if (enable) | 223 | if (enable) { | ||
223 | slotUpdateWithWaitCursor (); | 224 | slotUpdateWithWaitCursor (); | ||
224 | } | 225 | } | ||
226 | } | ||||
225 | 227 | | |||
226 | 228 | | |||
227 | // private | 229 | // private | ||
228 | void kpTransformPreviewDialog::updateDimensions () | 230 | void kpTransformPreviewDialog::updateDimensions () | ||
229 | { | 231 | { | ||
230 | if (!m_dimensionsGroupBox) | 232 | if (!m_dimensionsGroupBox) { | ||
231 | return; | 233 | return; | ||
234 | } | ||||
232 | 235 | | |||
233 | kpDocument *doc = document (); | 236 | kpDocument *doc = document (); | ||
234 | if (!doc) | 237 | if (!doc) { | ||
235 | return; | 238 | return; | ||
239 | } | ||||
236 | 240 | | |||
237 | if (!updatesEnabled ()) | 241 | if (!updatesEnabled ()) | ||
238 | { | 242 | { | ||
239 | qCDebug(kpLogDialogs) << "updates not enabled - aborting"; | 243 | qCDebug(kpLogDialogs) << "updates not enabled - aborting"; | ||
240 | return; | 244 | return; | ||
241 | } | 245 | } | ||
242 | 246 | | |||
243 | QSize newDim = newDimensions (); | 247 | QSize newDim = newDimensions (); | ||
Show All 32 Lines | 279 | { | |||
276 | qCDebug(kpLogDialogs) << "kpTransformPreviewDialog::updateShrunkenDocumentPixmap()" | 280 | qCDebug(kpLogDialogs) << "kpTransformPreviewDialog::updateShrunkenDocumentPixmap()" | ||
277 | << " shrunkenDocPixmap.size=" | 281 | << " shrunkenDocPixmap.size=" | ||
278 | << m_shrunkenDocumentPixmap.size () | 282 | << m_shrunkenDocumentPixmap.size () | ||
279 | << " previewPixmapLabelSizeWhenUpdatedPixmap=" | 283 | << " previewPixmapLabelSizeWhenUpdatedPixmap=" | ||
280 | << m_previewPixmapLabelSizeWhenUpdatedPixmap | 284 | << m_previewPixmapLabelSizeWhenUpdatedPixmap | ||
281 | << " previewPixmapLabel.size=" | 285 | << " previewPixmapLabel.size=" | ||
282 | << m_previewPixmapLabel->size (); | 286 | << m_previewPixmapLabel->size (); | ||
283 | 287 | | |||
284 | if (!m_previewGroupBox) | 288 | if (!m_previewGroupBox) { | ||
285 | return; | 289 | return; | ||
290 | } | ||||
286 | 291 | | |||
287 | 292 | | |||
288 | kpDocument *doc = document (); | 293 | kpDocument *doc = document (); | ||
289 | Q_ASSERT (doc && !doc->image ().isNull ()); | 294 | Q_ASSERT (doc && !doc->image ().isNull ()); | ||
290 | 295 | | |||
291 | if (m_shrunkenDocumentPixmap.isNull () || | 296 | if (m_shrunkenDocumentPixmap.isNull () || | ||
292 | m_previewPixmapLabel->size () != m_previewPixmapLabelSizeWhenUpdatedPixmap) | 297 | m_previewPixmapLabel->size () != m_previewPixmapLabelSizeWhenUpdatedPixmap) | ||
293 | { | 298 | { | ||
294 | qCDebug(kpLogDialogs) << "\tupdating shrunkenDocPixmap"; | 299 | qCDebug(kpLogDialogs) << "\tupdating shrunkenDocPixmap"; | ||
295 | 300 | | |||
296 | // TODO: Why the need to keep aspect ratio here? | 301 | // TODO: Why the need to keep aspect ratio here? | ||
297 | // Isn't scaling the skewed result maintaining aspect enough? | 302 | // Isn't scaling the skewed result maintaining aspect enough? | ||
298 | double keepsAspectScale = aspectScale (m_previewPixmapLabel->width (), | 303 | double keepsAspectScale = aspectScale (m_previewPixmapLabel->width (), | ||
299 | m_previewPixmapLabel->height (), | 304 | m_previewPixmapLabel->height (), | ||
300 | m_oldWidth, | 305 | m_oldWidth, | ||
301 | m_oldHeight); | 306 | m_oldHeight); | ||
302 | 307 | | |||
303 | kpImage image; | 308 | kpImage image; | ||
304 | 309 | | |||
305 | if (m_actOnSelection) | 310 | if (m_actOnSelection) | ||
306 | { | 311 | { | ||
307 | kpAbstractImageSelection *sel = doc->imageSelection ()->clone (); | 312 | kpAbstractImageSelection *sel = doc->imageSelection ()->clone (); | ||
308 | if (!sel->hasContent ()) | 313 | if (!sel->hasContent ()) { | ||
309 | sel->setBaseImage (doc->getSelectedBaseImage ()); | 314 | sel->setBaseImage (doc->getSelectedBaseImage ()); | ||
315 | } | ||||
310 | 316 | | |||
311 | image = sel->transparentImage (); | 317 | image = sel->transparentImage (); | ||
312 | delete sel; | 318 | delete sel; | ||
313 | } | 319 | } | ||
314 | else | 320 | else | ||
315 | { | 321 | { | ||
316 | image = doc->image (); | 322 | image = doc->image (); | ||
317 | } | 323 | } | ||
Show All 12 Lines | |||||
330 | } | 336 | } | ||
331 | 337 | | |||
332 | 338 | | |||
333 | // private | 339 | // private | ||
334 | void kpTransformPreviewDialog::updatePreview () | 340 | void kpTransformPreviewDialog::updatePreview () | ||
335 | { | 341 | { | ||
336 | qCDebug(kpLogDialogs) << "kpTransformPreviewDialog::updatePreview()"; | 342 | qCDebug(kpLogDialogs) << "kpTransformPreviewDialog::updatePreview()"; | ||
337 | 343 | | |||
338 | if (!m_previewGroupBox) | 344 | if (!m_previewGroupBox) { | ||
339 | return; | 345 | return; | ||
346 | } | ||||
340 | 347 | | |||
341 | 348 | | |||
342 | kpDocument *doc = document (); | 349 | kpDocument *doc = document (); | ||
343 | if (!doc) | 350 | if (!doc) { | ||
344 | return; | 351 | return; | ||
352 | } | ||||
345 | 353 | | |||
346 | 354 | | |||
347 | if (!updatesEnabled ()) | 355 | if (!updatesEnabled ()) | ||
348 | { | 356 | { | ||
349 | qCDebug(kpLogDialogs) << "updates not enabled - aborting"; | 357 | qCDebug(kpLogDialogs) << "updates not enabled - aborting"; | ||
350 | return; | 358 | return; | ||
351 | } | 359 | } | ||
352 | 360 | | |||
▲ Show 20 Lines • Show All 80 Lines • Show Last 20 Lines |