Changeset View
Changeset View
Standalone View
Standalone View
app/imgsaver.cpp
Show First 20 Lines • Show All 166 Lines • ▼ Show 20 Line(s) | 166 | { | |||
---|---|---|---|---|---|
167 | if (info == nullptr) return (ImgSaver::SaveStatusParam); | 167 | if (info == nullptr) return (ImgSaver::SaveStatusParam); | ||
168 | return (getFilenameAndFormat(info->getImageType())); | 168 | return (getFilenameAndFormat(info->getImageType())); | ||
169 | } | 169 | } | ||
170 | 170 | | |||
171 | ImgSaver::ImageSaveStatus ImgSaver::saveImage(const QImage *image) | 171 | ImgSaver::ImageSaveStatus ImgSaver::saveImage(const QImage *image) | ||
172 | { | 172 | { | ||
173 | if (image == nullptr) return (ImgSaver::SaveStatusParam); | 173 | if (image == nullptr) return (ImgSaver::SaveStatusParam); | ||
174 | 174 | | |||
175 | if (!mSaveFormat.isValid()) { // see if have this already | 175 | if (!mSaveFormat.isValid()) // see if have this already | ||
176 | { | ||||
176 | // if not, get from image now | 177 | // if not, get from image now | ||
177 | //qDebug() << "format not resolved yet"; | 178 | //qDebug() << "format not resolved yet"; | ||
178 | ImgSaver::ImageSaveStatus stat = getFilenameAndFormat(ImageMetaInfo::findImageType(image)); | 179 | ImgSaver::ImageSaveStatus stat = getFilenameAndFormat(ImageMetaInfo::findImageType(image)); | ||
179 | if (stat != ImgSaver::SaveStatusOk) return (stat); | 180 | if (stat != ImgSaver::SaveStatusOk) return (stat); | ||
180 | } | 181 | } | ||
181 | 182 | | |||
182 | if (!mSaveUrl.isValid() || !mSaveFormat.isValid()) { // must have these now | 183 | if (!mSaveUrl.isValid() || !mSaveFormat.isValid()) // must have these now | ||
184 | { | ||||
183 | //qDebug() << "format not resolved!"; | 185 | //qDebug() << "format not resolved!"; | ||
184 | return (ImgSaver::SaveStatusParam); | 186 | return (ImgSaver::SaveStatusParam); | ||
185 | } | 187 | } | ||
186 | // save image to file | 188 | // save image to file | ||
187 | return (saveImage(image, mSaveUrl, mSaveFormat, mSaveSubformat)); | 189 | return (saveImage(image, mSaveUrl, mSaveFormat, mSaveSubformat)); | ||
188 | } | 190 | } | ||
189 | 191 | | |||
190 | ImgSaver::ImageSaveStatus ImgSaver::saveImage(const QImage *image, | 192 | ImgSaver::ImageSaveStatus ImgSaver::saveImage(const QImage *image, | ||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Line(s) | |||||
239 | 241 | | |||
240 | /** | 242 | /** | ||
241 | * Find the next filename to use for the image to save. | 243 | * Find the next filename to use for the image to save. | ||
242 | * This is done by enumerating and checking against all existing files, | 244 | * This is done by enumerating and checking against all existing files, | ||
243 | * regardless of format - because we have not resolved the format yet. | 245 | * regardless of format - because we have not resolved the format yet. | ||
244 | **/ | 246 | **/ | ||
245 | QString ImgSaver::createFilename() | 247 | QString ImgSaver::createFilename() | ||
246 | { | 248 | { | ||
247 | if (!m_saveDirectory.isLocalFile()) return (QString::null); | 249 | if (!m_saveDirectory.isLocalFile()) return (QString()); | ||
248 | // TODO: allow non-local files | 250 | // TODO: allow non-local files | ||
249 | QDir files(m_saveDirectory.path(), "kscan_[0-9][0-9][0-9][0-9].*"); | 251 | QDir files(m_saveDirectory.path(), "kscan_[0-9][0-9][0-9][0-9].*"); | ||
250 | QStringList l(files.entryList()); | 252 | QStringList l(files.entryList()); | ||
251 | l.replaceInStrings(QRegExp("\\..*$"), ""); | 253 | l.replaceInStrings(QRegExp("\\..*$"), ""); | ||
252 | 254 | | |||
253 | QString fname; | 255 | QString fname; | ||
254 | for (int c = 1; c <= l.count() + 1; ++c) { // that must be the upper bound | 256 | for (int c = 1; c <= l.count() + 1; ++c) { // that must be the upper bound | ||
255 | fname = "kscan_" + QString::number(c).rightJustified(4, '0'); | 257 | fname = "kscan_" + QString::number(c).rightJustified(4, '0'); | ||
▲ Show 20 Lines • Show All 99 Lines • ▼ Show 20 Line(s) | 343 | { | |||
355 | Q_ASSERT(ski!=nullptr); | 357 | Q_ASSERT(ski!=nullptr); | ||
356 | ski->setValue(format.name()); | 358 | ski->setValue(format.name()); | ||
357 | KookaSettings::self()->save(); | 359 | KookaSettings::self()->save(); | ||
358 | } | 360 | } | ||
359 | 361 | | |||
360 | QString ImgSaver::findSubFormat(const ImageFormat &format) | 362 | QString ImgSaver::findSubFormat(const ImageFormat &format) | ||
361 | { | 363 | { | ||
362 | //qDebug() << "for" << format; | 364 | //qDebug() << "for" << format; | ||
363 | return (QString::null); // no subformats currently used | 365 | return (QString()); // no subformats currently used | ||
364 | } | 366 | } | ||
365 | 367 | | |||
366 | QString ImgSaver::errorString(ImgSaver::ImageSaveStatus status) const | 368 | QString ImgSaver::errorString(ImgSaver::ImageSaveStatus status) const | ||
367 | { | 369 | { | ||
368 | QString re; | 370 | QString re; | ||
369 | switch (status) { | 371 | switch (status) { | ||
370 | case ImgSaver::SaveStatusOk: | 372 | case ImgSaver::SaveStatusOk: | ||
371 | re = i18n("Save OK"); break; | 373 | re = i18n("Save OK"); break; | ||
372 | case ImgSaver::SaveStatusPermission: | 374 | case ImgSaver::SaveStatusPermission: | ||
373 | re = i18n("Permission denied"); break; | 375 | re = i18n("Permission denied"); break; | ||
374 | case ImgSaver::SaveStatusBadFilename: // never used | 376 | case ImgSaver::SaveStatusBadFilename: // never used | ||
375 | re = i18n("Bad file name"); break; | 377 | re = i18n("Bad file name"); break; | ||
376 | case ImgSaver::SaveStatusNoSpace: // never used | 378 | case ImgSaver::SaveStatusNoSpace: // never used | ||
377 | re = i18n("No space left on device"); break; | 379 | re = i18n("No space left on device"); break; | ||
378 | case ImgSaver::SaveStatusFormatNoWrite: | 380 | case ImgSaver::SaveStatusFormatNoWrite: | ||
379 | re = i18n("Cannot write image format '%1'", mLastFormat.constData()); break; | 381 | re = i18n("Cannot write image format '%1'", mLastFormat.constData()); break; | ||
380 | case ImgSaver::SaveStatusProtocol: | 382 | case ImgSaver::SaveStatusProtocol: | ||
381 | re = i18n("Cannot write using protocol '%1'", mLastUrl.scheme()); break; | 383 | re = i18n("Cannot write using protocol '%1'", mLastUrl.scheme()); break; | ||
382 | case ImgSaver::SaveStatusCanceled: | 384 | case ImgSaver::SaveStatusCanceled: | ||
383 | re = i18n("User cancelled saving"); break; | 385 | re = i18n("User cancelled saving"); break; | ||
384 | case ImgSaver::SaveStatusMkdir: | 386 | case ImgSaver::SaveStatusMkdir: | ||
385 | re = i18n("Cannot create directory"); break; | 387 | re = i18n("Cannot create directory"); break; | ||
386 | case ImgSaver::SaveStatusFailed: | 388 | case ImgSaver::SaveStatusFailed: | ||
387 | re = i18n("Save failed"); break; | 389 | re = i18n("Save failed"); break; | ||
388 | case ImgSaver::SaveStatusParam: | 390 | case ImgSaver::SaveStatusParam: | ||
389 | re = i18n("Bad parameter"); break; | 391 | re = i18n("Bad parameter"); break; | ||
390 | default: | 392 | default: | ||
391 | re = i18n("Unknown status %1", status); break; | 393 | re = i18n("Unknown status %1", status); break; | ||
392 | } | 394 | } | ||
393 | return (re); | 395 | return (re); | ||
394 | } | 396 | } | ||
395 | 397 | | |||
396 | 398 | | |||
397 | bool copyRenameImage(bool isCopying, const QUrl &fromUrl, const QUrl &toUrl, bool askExt, QWidget *overWidget) | 399 | bool copyRenameImage(bool isCopying, const QUrl &fromUrl, const QUrl &toUrl, bool askExt, QWidget *overWidget) | ||
398 | { | 400 | { | ||
399 | QString errorString = QString::null; | 401 | QString errorString; | ||
400 | 402 | | |||
401 | /* Check if the provided filename has a extension */ | 403 | /* Check if the provided filename has a extension */ | ||
402 | QString extFrom = extension(fromUrl); | 404 | QString extFrom = extension(fromUrl); | ||
403 | QString extTo = extension(toUrl); | 405 | QString extTo = extension(toUrl); | ||
404 | 406 | | |||
405 | QUrl targetUrl(toUrl); | 407 | QUrl targetUrl(toUrl); | ||
406 | if (extTo.isEmpty() && !extFrom.isEmpty()) | 408 | if (extTo.isEmpty() && !extFrom.isEmpty()) | ||
407 | { // ask if the extension should be added | 409 | { // ask if the extension should be added | ||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Line(s) | 459 | { | |||
460 | QString title = (isCopying ? i18n("Error copying file") : | 462 | QString title = (isCopying ? i18n("Error copying file") : | ||
461 | i18n("Error renaming file")); | 463 | i18n("Error renaming file")); | ||
462 | KMessageBox::sorry(overWidget, xi18nc("@info", "%1 <filename>%3</filename><nl/>%2", | 464 | KMessageBox::sorry(overWidget, xi18nc("@info", "%1 <filename>%3</filename><nl/>%2", | ||
463 | msg, errorString, | 465 | msg, errorString, | ||
464 | fromUrl.url(QUrl::PreferLocalFile)), title); | 466 | fromUrl.url(QUrl::PreferLocalFile)), title); | ||
465 | return (false); | 467 | return (false); | ||
466 | } | 468 | } | ||
467 | 469 | | |||
468 | return (true); // file operation succeeded | 470 | return (true); // file operation succeeded | ||
469 | } | 471 | } | ||
470 | 472 | | |||
471 | bool ImgSaver::renameImage(const QUrl &fromUrl, const QUrl &toUrl, bool askExt, QWidget *overWidget) | 473 | bool ImgSaver::renameImage(const QUrl &fromUrl, const QUrl &toUrl, bool askExt, QWidget *overWidget) | ||
472 | { | 474 | { | ||
473 | return (copyRenameImage(false, fromUrl, toUrl, askExt, overWidget)); | 475 | return (copyRenameImage(false, fromUrl, toUrl, askExt, overWidget)); | ||
474 | } | 476 | } | ||
475 | 477 | | |||
476 | bool ImgSaver::copyImage(const QUrl &fromUrl, const QUrl &toUrl, QWidget *overWidget) | 478 | bool ImgSaver::copyImage(const QUrl &fromUrl, const QUrl &toUrl, QWidget *overWidget) | ||
477 | { | 479 | { | ||
478 | return (copyRenameImage(true, fromUrl, toUrl, true, overWidget)); | 480 | return (copyRenameImage(true, fromUrl, toUrl, true, overWidget)); | ||
479 | } | 481 | } |