From 3258062d16f11efb6854ce219aa0d18763e73ec5 Mon Sep 17 00:00:00 2001 From: lupoDharkael Date: Thu, 28 Dec 2017 18:18:14 +0100 Subject: [PATCH] Windows fixes and adaptation Binary will have icon Start capture with Print key Fix .rc generation --- flameshot.pro | 12 +++++-- img/flameshot.ico | Bin 0 -> 121819 bytes src/core/controller.cpp | 17 +++++++--- src/core/globalshortcutfilter.cpp | 50 ++++++++++++++++++++++++++++++ src/core/globalshortcutfilter.h | 25 +++++++++++++++ 5 files changed, 98 insertions(+), 6 deletions(-) create mode 100644 img/flameshot.ico create mode 100644 src/core/globalshortcutfilter.cpp create mode 100644 src/core/globalshortcutfilter.h diff --git a/flameshot.pro b/flameshot.pro index c4f21c94..3ebba2cb 100644 --- a/flameshot.pro +++ b/flameshot.pro @@ -4,8 +4,8 @@ # #------------------------------------------------- -VERSION = $$system(git --git-dir $$PWD/.git --work-tree $$PWD describe --always --tags) -DEFINES += APP_VERSION=\\\"$$VERSION\\\" +APP_VERSION = $$system(git --git-dir $$PWD/.git --work-tree $$PWD describe --always --tags) +DEFINES += APP_VERSION QT += core gui @@ -23,6 +23,8 @@ CONFIG += link_pkgconfig TARGET = flameshot TEMPLATE = app +win32:RC_ICONS += img/flameshot.ico + #release: DESTDIR = build/release #debug: DESTDIR = build/debug @@ -183,6 +185,12 @@ unix:!macx { src/utils/dbusutils.h } +win32 { + SOURCES += src/core/globalshortcutfilter.cpp + + HEADERS += src/core/globalshortcutfilter.h +} + RESOURCES += \ graphics.qrc diff --git a/img/flameshot.ico b/img/flameshot.ico new file mode 100644 index 0000000000000000000000000000000000000000..6d3a1d9337961e8d2a452f45dda077816c13c18a GIT binary patch literal 121819 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 literal 0 HcmV?d00001 diff --git a/src/core/controller.cpp b/src/core/controller.cpp index e10625fa..b99bc963 100644 --- a/src/core/controller.cpp +++ b/src/core/controller.cpp @@ -27,6 +27,10 @@ #include #include +#ifdef Q_OS_WIN +#include "src/core/globalshortcutfilter.h" +#endif + // Controller is the core component of Flameshot, creates the trayIcon and // launches the capture widget @@ -34,16 +38,21 @@ Controller::Controller() : m_captureWindow(nullptr) { qApp->setQuitOnLastWindowClosed(false); + initDefaults(); + // init tray icon -#ifdef Q_OS_LINUX +#if defined(Q_OS_LINUX) if (!ConfigHandler().disabledTrayIconValue()) { enableTrayIcon(); } -#else +#elif defined(Q_OS_WIN) enableTrayIcon(); -#endif - initDefaults(); + GlobalShortcutFilter *nativeFilter = new GlobalShortcutFilter(this); + qApp->installNativeEventFilter(nativeFilter); + connect(nativeFilter, &GlobalShortcutFilter::printPressed, + this, [this](){ this->createVisualCapture(); }); +#endif QString StyleSheet = CaptureButton::globalStyleSheet(); qApp->setStyleSheet(StyleSheet); diff --git a/src/core/globalshortcutfilter.cpp b/src/core/globalshortcutfilter.cpp new file mode 100644 index 00000000..534c642d --- /dev/null +++ b/src/core/globalshortcutfilter.cpp @@ -0,0 +1,50 @@ +// Copyright 2017 Alejandro Sirgo Rica +// +// This file is part of Flameshot. +// +// Flameshot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Flameshot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Flameshot. If not, see . + +#include "globalshortcutfilter.h" +#include "src/core/controller.h" +#include + +GlobalShortcutFilter::GlobalShortcutFilter(QObject *parent) : + QObject(parent) +{ + // Forced Print Screen + if (RegisterHotKey(NULL, 1, 0, VK_SNAPSHOT)) { + // ok + } +} + +bool GlobalShortcutFilter::nativeEventFilter( + const QByteArray &eventType, + void *message, + long *result) +{ + Q_UNUSED(eventType); + Q_UNUSED(result); + + MSG* msg = static_cast(message); + if (msg->message == WM_HOTKEY) { + //const quint32 keycode = HIWORD(msg->lParam); + //const quint32 modifiers = LOWORD(msg->lParam); + + // TODO: this is just a temporal workwrround, proper global + // support would need custom shortcuts defined by the user. + Controller::getInstance()->createVisualCapture(); + return true; + } + return false; +} diff --git a/src/core/globalshortcutfilter.h b/src/core/globalshortcutfilter.h new file mode 100644 index 00000000..2709e8a9 --- /dev/null +++ b/src/core/globalshortcutfilter.h @@ -0,0 +1,25 @@ +#ifndef GLOBALSHORTCUTFILTER_H +#define GLOBALSHORTCUTFILTER_H + +#include +#include + +class GlobalShortcutFilter : public QObject, public QAbstractNativeEventFilter { + Q_OBJECT +public: + explicit GlobalShortcutFilter(QObject *parent = 0); + + bool nativeEventFilter(const QByteArray &eventType, void *message, long *result); + +signals: + void printPressed(); + +private: + quint32 getNativeModifier(Qt::KeyboardModifiers modifiers); + quint32 nativeKeycode(Qt::Key key); + bool registerShortcut(quint32 nativeKey, quint32 nativeMods); + bool unregisterShortcut(quint32 nativeKey, quint32 nativeMods); + +}; + +#endif // GLOBALSHORTCUTFILTER_H