Compare commits

...
2 Commits
Author SHA1 Message Date
yyc12345 a01d640c27 refactor: remove frameless window
remove frameless window and merge it into mainwindow. because we do not need frameless and transparent window, so most of its functions are removed in previous commits.
2026-07-13 15:59:39 +08:00
yyc12345 16800df138 refactor: remove useless function in main window 2026-07-13 15:50:30 +08:00
5 changed files with 18 additions and 94 deletions
-2
View File
@@ -39,7 +39,6 @@ endif ()
set (PPIC_CPP_FILES set (PPIC_CPP_FILES
app/main.cpp app/main.cpp
app/framelesswindow.cpp
app/mainwindow.cpp app/mainwindow.cpp
app/actionmanager.cpp app/actionmanager.cpp
app/graphicsview.cpp app/graphicsview.cpp
@@ -57,7 +56,6 @@ set (PPIC_CPP_FILES
) )
set (PPIC_HEADER_FILES set (PPIC_HEADER_FILES
app/framelesswindow.h
app/mainwindow.h app/mainwindow.h
app/actionmanager.h app/actionmanager.h
app/graphicsview.h app/graphicsview.h
-36
View File
@@ -1,36 +0,0 @@
// SPDX-FileCopyrightText: 2022 Gary Wang <wzc782970009@gmail.com>
// SPDX-FileCopyrightText: 2023 Tad Young <yyc12321@outlook.com>
//
// SPDX-License-Identifier: MIT
#include "framelesswindow.h"
#include <QMouseEvent>
#include <QHoverEvent>
#include <QApplication>
#include <QVBoxLayout>
#include <QWindow>
FramelessWindow::FramelessWindow(QWidget *parent)
: QWidget(parent)
, m_centralLayout(new QVBoxLayout(this))
{
this->setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
// YYC MARK:
// 72 px is the height of Windows Photo Viewer's bottom line.
// TODO: This value may be declared as a constant.
m_centralLayout->setContentsMargins(QMargins(0, 0, 0, 72));
}
void FramelessWindow::setCentralWidget(QWidget *widget)
{
if (m_centralWidget) {
m_centralLayout->removeWidget(m_centralWidget);
m_centralWidget->deleteLater();
}
m_centralLayout->addWidget(widget);
m_centralWidget = widget;
}
-27
View File
@@ -1,27 +0,0 @@
// SPDX-FileCopyrightText: 2022 Gary Wang <wzc782970009@gmail.com>
//
// SPDX-License-Identifier: MIT
#ifndef FRAMELESSWINDOW_H
#define FRAMELESSWINDOW_H
#include <QWidget>
QT_BEGIN_NAMESPACE
class QVBoxLayout;
QT_END_NAMESPACE
class FramelessWindow : public QWidget
{
Q_OBJECT
public:
explicit FramelessWindow(QWidget *parent = nullptr);
void setCentralWidget(QWidget * widget);
private:
QVBoxLayout * m_centralLayout = nullptr;
QWidget * m_centralWidget = nullptr; // just a pointer, doesn't take the ownership.
};
#endif // FRAMELESSWINDOW_H
+15 -23
View File
@@ -37,6 +37,7 @@
#include <QProcess> #include <QProcess>
#include <QDesktopServices> #include <QDesktopServices>
#include <QMessageBox> #include <QMessageBox>
#include <QVBoxLayout>
#ifdef HAVE_QTDBUS #ifdef HAVE_QTDBUS
#include <QDBusInterface> #include <QDBusInterface>
@@ -46,11 +47,17 @@
using namespace Qt::Literals::StringLiterals; using namespace Qt::Literals::StringLiterals;
MainWindow::MainWindow(QWidget *parent) MainWindow::MainWindow(QWidget *parent)
: FramelessWindow(parent) : QWidget(parent)
, m_am(new ActionManager) , m_am(new ActionManager)
, m_pm(new PlaylistManager(this)) , m_pm(new PlaylistManager(this))
, m_fileSystemWatcher(new QFileSystemWatcher(this)) , m_fileSystemWatcher(new QFileSystemWatcher(this))
{ {
this->setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
m_centralLayout = new QVBoxLayout(this);
// YYC MARK:
// 72 px is the height of Windows Photo Viewer's bottom line.
m_centralLayout->setContentsMargins(QMargins(0, 0, 0, 72)); // TODO: This value may be declared as a constant.
// YYC MARK: // YYC MARK:
// Blumis set original value is 350 x 330. // Blumis set original value is 350 x 330.
// It is too small for modern device, // It is too small for modern device,
@@ -65,7 +72,7 @@ MainWindow::MainWindow(QWidget *parent)
m_gv = new GraphicsView(this); m_gv = new GraphicsView(this);
m_gv->setScene(scene); m_gv->setScene(scene);
this->setCentralWidget(m_gv); m_centralLayout->addWidget(m_gv);
m_nav = new NavigatorView(this); m_nav = new NavigatorView(this);
// YYC MARK: // YYC MARK:
@@ -299,17 +306,7 @@ void MainWindow::showEvent(QShowEvent *event)
{ {
updateWidgetsPosition(); updateWidgetsPosition();
return FramelessWindow::showEvent(event); return QWidget::showEvent(event);
}
void MainWindow::enterEvent(QEnterEvent *event)
{
return FramelessWindow::enterEvent(event);
}
void MainWindow::leaveEvent(QEvent *event)
{
return FramelessWindow::leaveEvent(event);
} }
void MainWindow::mouseDoubleClickEvent(QMouseEvent *event) void MainWindow::mouseDoubleClickEvent(QMouseEvent *event)
@@ -322,7 +319,7 @@ void MainWindow::mouseDoubleClickEvent(QMouseEvent *event)
switch (Settings::instance()->doubleClickBehavior()) { switch (Settings::instance()->doubleClickBehavior()) {
case Settings::DoubleClickBehavior::Close: case Settings::DoubleClickBehavior::Close:
quitAppAction(); closeWindow();
event->accept(); event->accept();
break; break;
case Settings::DoubleClickBehavior::Maximize: case Settings::DoubleClickBehavior::Maximize:
@@ -374,7 +371,7 @@ void MainWindow::wheelEvent(QWheelEvent *event)
} }
event->accept(); event->accept();
} else { } else {
FramelessWindow::wheelEvent(event); QWidget::wheelEvent(event);
} }
} }
@@ -382,14 +379,14 @@ void MainWindow::resizeEvent(QResizeEvent *event)
{ {
updateWidgetsPosition(); updateWidgetsPosition();
return FramelessWindow::resizeEvent(event); return QWidget::resizeEvent(event);
} }
void MainWindow::contextMenuEvent(QContextMenuEvent *event) void MainWindow::contextMenuEvent(QContextMenuEvent *event)
{ {
m_menu->exec(mapToGlobal(event->pos())); m_menu->exec(mapToGlobal(event->pos()));
return FramelessWindow::contextMenuEvent(event); return QWidget::contextMenuEvent(event);
} }
void MainWindow::dragEnterEvent(QDragEnterEvent *event) void MainWindow::dragEnterEvent(QDragEnterEvent *event)
@@ -400,7 +397,7 @@ void MainWindow::dragEnterEvent(QDragEnterEvent *event)
event->ignore(); event->ignore();
} }
return FramelessWindow::dragEnterEvent(event); return QWidget::dragEnterEvent(event);
} }
void MainWindow::dragMoveEvent(QDragMoveEvent *event) void MainWindow::dragMoveEvent(QDragMoveEvent *event)
@@ -448,11 +445,6 @@ void MainWindow::toggleAvoidResetTransform()
m_gv->setAvoidResetTransform(!m_gv->isAvoidResetTransform()); m_gv->setAvoidResetTransform(!m_gv->isAvoidResetTransform());
} }
void MainWindow::quitAppAction(bool force)
{
closeWindow();
}
void MainWindow::toggleFullscreen() void MainWindow::toggleFullscreen()
{ {
if (isFullScreen()) { if (isFullScreen()) {
+3 -6
View File
@@ -5,14 +5,13 @@
#ifndef MAINWINDOW_H #ifndef MAINWINDOW_H
#define MAINWINDOW_H #define MAINWINDOW_H
#include "framelesswindow.h"
#include <QParallelAnimationGroup> #include <QParallelAnimationGroup>
#include <QPropertyAnimation> #include <QPropertyAnimation>
#include <QPushButton> #include <QPushButton>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class QMenu; class QMenu;
class QVBoxLayout;
class QGraphicsView; class QGraphicsView;
class QFileSystemWatcher; class QFileSystemWatcher;
QT_END_NAMESPACE QT_END_NAMESPACE
@@ -22,7 +21,7 @@ class PlaylistManager;
class GraphicsView; class GraphicsView;
class NavigatorView; class NavigatorView;
class BottomButtonGroup; class BottomButtonGroup;
class MainWindow : public FramelessWindow class MainWindow : public QWidget
{ {
Q_OBJECT Q_OBJECT
@@ -44,8 +43,6 @@ public:
protected slots: protected slots:
void showEvent(QShowEvent *event) override; void showEvent(QShowEvent *event) override;
void enterEvent(QEnterEvent *event) override;
void leaveEvent(QEvent *event) override;
void mouseDoubleClickEvent(QMouseEvent *event) override; void mouseDoubleClickEvent(QMouseEvent *event) override;
void wheelEvent(QWheelEvent *event) override; void wheelEvent(QWheelEvent *event) override;
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;
@@ -58,7 +55,6 @@ protected slots:
void closeWindow(); void closeWindow();
void updateWidgetsPosition(); void updateWidgetsPosition();
void toggleAvoidResetTransform(); void toggleAvoidResetTransform();
void quitAppAction(bool force = false);
void toggleFullscreen(); void toggleFullscreen();
void toggleMaximize(); void toggleMaximize();
@@ -107,6 +103,7 @@ private:
NavigatorView *m_nav; NavigatorView *m_nav;
QMenu *m_menu; QMenu *m_menu;
QVBoxLayout * m_centralLayout = nullptr;
QFileSystemWatcher *m_fileSystemWatcher; QFileSystemWatcher *m_fileSystemWatcher;
BottomButtonGroup *m_bottomButtonGroup; BottomButtonGroup *m_bottomButtonGroup;
}; };