From 41f6dbe0537cd9efc7065ab58806345434eff860 Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Sun, 30 Apr 2017 03:47:12 +0300 Subject: [PATCH 1/4] Close fullscreen overlay with out of contents click --- src/ImageOverlayDialog.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ImageOverlayDialog.cc b/src/ImageOverlayDialog.cc index 0fe1c0e4..04bda711 100644 --- a/src/ImageOverlayDialog.cc +++ b/src/ImageOverlayDialog.cc @@ -113,4 +113,6 @@ void ImageOverlayDialog::mousePressEvent(QMouseEvent *event) // FIXME: The main window needs double click to regain focus. if (close_button_.contains(event->pos())) close(); + else if (!content_.contains(event->pos())) + close(); } From e6fd80f87f31d15c2a1ec73a22ba3e76647151f0 Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Sun, 30 Apr 2017 13:00:11 +0300 Subject: [PATCH 2/4] Fix MainWindow being out of focus when the fullscreen overlay is closed That was probably a Linux specific issue or my mouse is buggy. --- include/ImageOverlayDialog.h | 6 ++++++ src/ImageOverlayDialog.cc | 13 ++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/include/ImageOverlayDialog.h b/include/ImageOverlayDialog.h index 21f59d12..e9eed0c1 100644 --- a/include/ImageOverlayDialog.h +++ b/include/ImageOverlayDialog.h @@ -32,6 +32,12 @@ protected: void mousePressEvent(QMouseEvent *event) override; void paintEvent(QPaintEvent *event) override; +signals: + void closing(); + +private slots: + void closeDialog(); + private: void scaleImage(int width, int height); diff --git a/src/ImageOverlayDialog.cc b/src/ImageOverlayDialog.cc index 04bda711..55e0df00 100644 --- a/src/ImageOverlayDialog.cc +++ b/src/ImageOverlayDialog.cc @@ -17,6 +17,7 @@ #include #include +#include #include "ImageOverlayDialog.h" @@ -36,6 +37,13 @@ ImageOverlayDialog::ImageOverlayDialog(QPixmap image, QWidget *parent) setWindowState(Qt::WindowFullScreen); raise(); + + connect(this, SIGNAL(closing()), this, SLOT(closeDialog())); +} + +void ImageOverlayDialog::closeDialog() +{ + QTimer::singleShot(100, this, &ImageOverlayDialog::reject); } // TODO: Move this into Utils @@ -110,9 +118,8 @@ void ImageOverlayDialog::mousePressEvent(QMouseEvent *event) if (event->button() != Qt::LeftButton) return; - // FIXME: The main window needs double click to regain focus. if (close_button_.contains(event->pos())) - close(); + emit closing(); else if (!content_.contains(event->pos())) - close(); + emit closing(); } From 4a7b005c6420adef50e4321f8ca5d11bc07763ce Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Sun, 30 Apr 2017 15:10:59 +0300 Subject: [PATCH 3/4] Add lint rule --- Makefile | 5 +++++ include/Sync.h | 2 +- include/TimelineItem.h | 2 +- include/TimelineViewManager.h | 2 +- src/Deserializable.cc | 3 ++- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 97431093..8bf98a4b 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +SRC := $(shell find include src -type f -type f \( -iname "*.cc" -o -iname "*.h" \)) + debug: @cmake -H. -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Debug @cmake --build build @@ -9,6 +11,9 @@ release-debug: run: @./build/nheko +lint: + @clang-format -i $(SRC) + clean: rm -rf build diff --git a/include/Sync.h b/include/Sync.h index 1db52209..6a227bcf 100644 --- a/include/Sync.h +++ b/include/Sync.h @@ -177,7 +177,7 @@ inline QMap Rooms::join() const class SyncResponse : public Deserializable { public: - void deserialize(const QJsonDocument &data) override; + void deserialize(const QJsonDocument &data) override; inline QString nextBatch() const; inline Rooms rooms() const; diff --git a/include/TimelineItem.h b/include/TimelineItem.h index 626687ac..e9f18f20 100644 --- a/include/TimelineItem.h +++ b/include/TimelineItem.h @@ -22,8 +22,8 @@ #include #include -#include "Sync.h" #include "ImageItem.h" +#include "Sync.h" class TimelineItem : public QWidget { diff --git a/include/TimelineViewManager.h b/include/TimelineViewManager.h index 1985a9a0..bb4351c4 100644 --- a/include/TimelineViewManager.h +++ b/include/TimelineViewManager.h @@ -23,10 +23,10 @@ #include #include -#include "TimelineView.h" #include "MatrixClient.h" #include "RoomInfo.h" #include "Sync.h" +#include "TimelineView.h" class TimelineViewManager : public QStackedWidget { diff --git a/src/Deserializable.cc b/src/Deserializable.cc index d9cdaf0d..09d0184d 100644 --- a/src/Deserializable.cc +++ b/src/Deserializable.cc @@ -21,7 +21,8 @@ #include "Deserializable.h" -DeserializationException::DeserializationException(const std::string &msg) : msg_(msg) +DeserializationException::DeserializationException(const std::string &msg) + : msg_(msg) { } From e3acb533ad25dee44d6b2b46f8fe183602bf54ee Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Mon, 1 May 2017 16:03:42 +0300 Subject: [PATCH 4/4] Enable high dpi --- src/main.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.cc b/src/main.cc index af1a7f9a..85e5f545 100644 --- a/src/main.cc +++ b/src/main.cc @@ -28,6 +28,8 @@ int main(int argc, char *argv[]) QCoreApplication::setApplicationName("nheko"); QCoreApplication::setApplicationVersion("Ωμέγa"); QCoreApplication::setOrganizationName("Nheko"); + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QFontDatabase::addApplicationFont(":/fonts/fonts/OpenSans/OpenSans-Regular.ttf"); QFontDatabase::addApplicationFont(":/fonts/fonts/OpenSans/OpenSans-Italic.ttf");