Changeset View
Changeset View
Standalone View
Standalone View
app/gvcore.cpp
Show All 25 Lines | |||||
26 | #include <QApplication> | 26 | #include <QApplication> | ||
27 | #include <QUrl> | 27 | #include <QUrl> | ||
28 | #include <QImageWriter> | 28 | #include <QImageWriter> | ||
29 | #include <QMimeDatabase> | 29 | #include <QMimeDatabase> | ||
30 | 30 | | |||
31 | // KDE | 31 | // KDE | ||
32 | #include <QFileDialog> | 32 | #include <QFileDialog> | ||
33 | #include <KColorScheme> | 33 | #include <KColorScheme> | ||
34 | #include <KIO/StatJob> | | |||
35 | #include <KJobWidgets> | | |||
36 | #include <KLocalizedString> | 34 | #include <KLocalizedString> | ||
37 | #include <KMessageBox> | 35 | #include <KMessageBox> | ||
38 | 36 | | |||
39 | // Local | 37 | // Local | ||
40 | #include <lib/binder.h> | 38 | #include <lib/binder.h> | ||
41 | #include <lib/document/documentfactory.h> | 39 | #include <lib/document/documentfactory.h> | ||
42 | #include <lib/document/documentjob.h> | 40 | #include <lib/document/documentjob.h> | ||
43 | #include <lib/document/savejob.h> | 41 | #include <lib/document/savejob.h> | ||
▲ Show 20 Lines • Show All 310 Lines • ▼ Show 20 Line(s) | |||||
354 | void GvCore::saveAs(const QUrl &url) | 352 | void GvCore::saveAs(const QUrl &url) | ||
355 | { | 353 | { | ||
356 | QByteArray format; | 354 | QByteArray format; | ||
357 | QUrl saveAsUrl; | 355 | QUrl saveAsUrl; | ||
358 | if (!d->showSaveAsDialog(url, &saveAsUrl, &format)) { | 356 | if (!d->showSaveAsDialog(url, &saveAsUrl, &format)) { | ||
359 | return; | 357 | return; | ||
360 | } | 358 | } | ||
361 | 359 | | |||
362 | // Check for overwrite | | |||
363 | KIO::StatJob *statJob = KIO::stat(saveAsUrl, KIO::StatJob::DestinationSide, 0); | | |||
364 | KJobWidgets::setWindow(statJob, d->mMainWindow); | | |||
365 | if (statJob->exec()) { | | |||
366 | int answer = KMessageBox::warningContinueCancel( | | |||
367 | d->mMainWindow, | | |||
368 | xi18nc("@info", | | |||
369 | "A file named <filename>%1</filename> already exists.\n" | | |||
370 | "Are you sure you want to overwrite it?", | | |||
371 | saveAsUrl.fileName()), | | |||
372 | QString(), | | |||
373 | KStandardGuiItem::overwrite()); | | |||
374 | if (answer == KMessageBox::Cancel) { | | |||
375 | return; | | |||
376 | } | | |||
377 | } | | |||
378 | | ||||
379 | // Start save | 360 | // Start save | ||
380 | Document::Ptr doc = DocumentFactory::instance()->load(url); | 361 | Document::Ptr doc = DocumentFactory::instance()->load(url); | ||
381 | KJob* job = doc->save(saveAsUrl, format.data()); | 362 | KJob* job = doc->save(saveAsUrl, format.data()); | ||
382 | if (!job) { | 363 | if (!job) { | ||
383 | const QString name = saveAsUrl.fileName().isEmpty() ? saveAsUrl.toDisplayString() : saveAsUrl.fileName(); | 364 | const QString name = saveAsUrl.fileName().isEmpty() ? saveAsUrl.toDisplayString() : saveAsUrl.fileName(); | ||
384 | const QString msg = xi18nc("@info", "<b>Saving <filename>%1</filename> failed:</b><br />%2", | 365 | const QString msg = xi18nc("@info", "<b>Saving <filename>%1</filename> failed:</b><br />%2", | ||
385 | name, doc->errorString()); | 366 | name, doc->errorString()); | ||
386 | KMessageBox::sorry(QApplication::activeWindow(), msg); | 367 | KMessageBox::sorry(QApplication::activeWindow(), msg); | ||
▲ Show 20 Lines • Show All 103 Lines • Show Last 20 Lines |