Skip to content

Commit

Permalink
feat: new action for open a dialog to select image files
Browse files Browse the repository at this point in the history
  • Loading branch information
BLumia committed Nov 25, 2021
1 parent 560ece0 commit f202bb5
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 0 deletions.
4 changes: 4 additions & 0 deletions app/actionmanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ void ActionManager::setupAction(MainWindow *mainWindow)
CREATE_NEW_ACTION(mainWindow, actionPrevPicture);
CREATE_NEW_ACTION(mainWindow, actionNextPicture);

CREATE_NEW_ACTION(mainWindow, actionOpen);
CREATE_NEW_ACTION(mainWindow, actionHorizontalFlip);
CREATE_NEW_ACTION(mainWindow, actionFitInView);
CREATE_NEW_ACTION(mainWindow, actionFitByWidth);
Expand All @@ -63,6 +64,8 @@ void ActionManager::retranslateUi(MainWindow *mainWindow)
{
Q_UNUSED(mainWindow);

actionOpen->setText(QCoreApplication::translate("MainWindow", "&Open...", nullptr));

actionActualSize->setText(QCoreApplication::translate("MainWindow", "Actual size", nullptr));
actionToggleMaximize->setText(QCoreApplication::translate("MainWindow", "Toggle maximize", nullptr));
actionZoomIn->setText(QCoreApplication::translate("MainWindow", "Zoom in", nullptr));
Expand All @@ -89,6 +92,7 @@ void ActionManager::retranslateUi(MainWindow *mainWindow)

void ActionManager::setupShortcuts()
{
actionOpen->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_O));
actionActualSize->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_0));
actionZoomIn->setShortcut(QKeySequence(QKeySequence::ZoomIn));
actionZoomOut->setShortcut(QKeySequence(QKeySequence::ZoomOut));
Expand Down
2 changes: 2 additions & 0 deletions app/actionmanager.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ class ActionManager
void setupShortcuts();

public:
QAction *actionOpen;

QAction *actionActualSize;
QAction *actionToggleMaximize;
QAction *actionZoomIn;
Expand Down
15 changes: 15 additions & 0 deletions app/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
#include <QWindow>
#include <QFile>
#include <QTimer>
#include <QFileDialog>
#include <QStandardPaths>

MainWindow::MainWindow(QWidget *parent)
: FramelessWindow(parent)
Expand Down Expand Up @@ -406,6 +408,8 @@ void MainWindow::contextMenuEvent(QContextMenuEvent *event)
QAction * helpAction = m_am->actionHelp;
QAction * propertiesAction = m_am->actionProperties;

menu->addAction(m_am->actionOpen);

if (copyMenu->actions().count() == 1) {
menu->addActions(copyMenu->actions());
} else {
Expand Down Expand Up @@ -540,6 +544,17 @@ QSize MainWindow::sizeHint() const
return QSize(710, 530);
}

void MainWindow::on_actionOpen_triggered()
{
QStringList picturesLocations = QStandardPaths::standardLocations(QStandardPaths::PicturesLocation);
QUrl pictureUrl = picturesLocations.isEmpty() ? QUrl::fromLocalFile(picturesLocations.first())
: QUrl::fromLocalFile(QDir::homePath());
QList<QUrl> urls(QFileDialog::getOpenFileUrls(this, QString(), pictureUrl));
if (!urls.isEmpty()) {
showUrls(urls);
}
}

void MainWindow::on_actionActualSize_triggered()
{
m_graphicsView->resetScale();
Expand Down
2 changes: 2 additions & 0 deletions app/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@ protected slots:
QSize sizeHint() const override;

private slots:
void on_actionOpen_triggered();

void on_actionActualSize_triggered();
void on_actionToggleMaximize_triggered();
void on_actionZoomIn_triggered();
Expand Down

0 comments on commit f202bb5

Please sign in to comment.