From cd2eac44f1166ef23babf38a15e1ae934e15e031 Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Thu, 2 Jul 2026 15:09:54 +0800 Subject: [PATCH] revert: revert feature about saving image as new file with different format. This reverts commit 5b2255e903000a8b76606bdceee45b22fb01f95c. The feature about saving image as new file with different format is not the goal of an image viewer. There is no need to keep feature diversity in this fork. So I simply remove it. --- app/actionmanager.cpp | 3 -- app/actionmanager.h | 1 - app/mainwindow.cpp | 71 ------------------------------------------- app/mainwindow.h | 1 - 4 files changed, 76 deletions(-) diff --git a/app/actionmanager.cpp b/app/actionmanager.cpp index eaa882a..f1ea52e 100644 --- a/app/actionmanager.cpp +++ b/app/actionmanager.cpp @@ -55,7 +55,6 @@ void ActionManager::setupAction(MainWindow *mainWindow) CREATE_NEW_ACTION(mainWindow, actionAnimationNextFrame); CREATE_NEW_THEMEICON_ACTION(mainWindow, actionOpen, document-open); - CREATE_NEW_THEMEICON_ACTION(mainWindow, actionSaveAs, document-save-as); CREATE_NEW_ACTION(mainWindow, actionHorizontalFlip); CREATE_NEW_ACTION(mainWindow, actionFitInView); CREATE_NEW_ACTION(mainWindow, actionFitByWidth); @@ -85,7 +84,6 @@ void ActionManager::retranslateUi(MainWindow *mainWindow) Q_UNUSED(mainWindow); actionOpen->setText(QCoreApplication::translate("MainWindow", "&Open...", nullptr)); - actionSaveAs->setText(QCoreApplication::translate("MainWindow", "Save &As...", nullptr)); actionActualSize->setText(QCoreApplication::translate("MainWindow", "Actual size", nullptr)); actionToggleMaximize->setText(QCoreApplication::translate("MainWindow", "Toggle maximize", nullptr)); @@ -131,7 +129,6 @@ void ActionManager::retranslateUi(MainWindow *mainWindow) void ActionManager::setupShortcuts() { actionOpen->setShortcut(QKeySequence::Open); - actionSaveAs->setShortcut(QKeySequence::SaveAs); actionActualSize->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_0)); actionZoomIn->setShortcut(QKeySequence::ZoomIn); actionZoomOut->setShortcut(QKeySequence::ZoomOut); diff --git a/app/actionmanager.h b/app/actionmanager.h index 98eec59..27ee8cd 100644 --- a/app/actionmanager.h +++ b/app/actionmanager.h @@ -23,7 +23,6 @@ public: public: QAction *actionOpen; - QAction *actionSaveAs; QAction *actionActualSize; QAction *actionToggleMaximize; diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp index 3de7a9b..c5c29dd 100644 --- a/app/mainwindow.cpp +++ b/app/mainwindow.cpp @@ -38,7 +38,6 @@ #include #include #include -#include #ifdef HAVE_QTDBUS #include @@ -506,12 +505,6 @@ void MainWindow::contextMenuEvent(QContextMenuEvent *event) menu->addAction(paste); } -#if 0 - if (currentFileUrl.isValid()) { - menu->addAction(m_am->actionSaveAs); - } -#endif // 0 - menu->addSeparator(); menu->addAction(m_am->actionHorizontalFlip); @@ -704,70 +697,6 @@ void MainWindow::on_actionOpen_triggered() } } -void MainWindow::on_actionSaveAs_triggered() -{ - QUrl currentFileUrl = currentImageFileUrl(); - if (!currentFileUrl.isValid()) { - QMessageBox::warning(this, tr("Save As"), tr("No image is currently open.")); - return; - } - - QStringList supportedFormats; - QStringList nameFilters; - - const QList imageFormats = QImageWriter::supportedImageFormats(); - for (const QByteArray &format : imageFormats) { - QString formatStr = QString::fromLatin1(format).toLower(); - if (!formatStr.isEmpty()) { - supportedFormats << formatStr; - nameFilters << tr("%1 Image (*.%2)").arg(formatStr.toUpper(), formatStr); - } - } - - if (imageFormats.isEmpty()) { - QMessageBox::warning(this, tr("Save As"), - tr("No supported image formats are available.")); - return; - } - - QString selectedFilter; - QString saveFilePath = QFileDialog::getSaveFileName(this, - tr("Save As"), - QStandardPaths::writableLocation(QStandardPaths::PicturesLocation), - nameFilters.join(";;"), - &selectedFilter); - - if (saveFilePath.isEmpty()) { - return; // User cancelled - } - - // Ensure the file has the correct extension - QString expectedExtension; - - const int filterIndex = nameFilters.indexOf(selectedFilter); - if (filterIndex != -1) { - expectedExtension = supportedFormats.at(filterIndex); - } - - if (!expectedExtension.isEmpty() && !saveFilePath.endsWith('.' + expectedExtension, Qt::CaseInsensitive)) { - saveFilePath += '.' + expectedExtension; - } - - // Save the image - QImageReader imageReader(currentFileUrl.toLocalFile()); - imageReader.setAutoTransform(true); - imageReader.setDecideFormatFromContent(true); - imageReader.setAllocationLimit(0); - QImage img(imageReader.read()); - QImageWriter writer(saveFilePath); - writer.setFormat(expectedExtension.toLatin1()); - if (!writer.write(img)) { - QMessageBox::warning(this, tr("Save As"), - tr("Failed to save image: %1").arg(writer.errorString())); - return; - } -} - void MainWindow::on_actionActualSize_triggered() { m_graphicsView->resetScale(); diff --git a/app/mainwindow.h b/app/mainwindow.h index 71833f8..7241697 100644 --- a/app/mainwindow.h +++ b/app/mainwindow.h @@ -75,7 +75,6 @@ protected: private slots: void on_actionOpen_triggered(); - void on_actionSaveAs_triggered(); void on_actionActualSize_triggered(); void on_actionToggleMaximize_triggered();