added sharex like systemtray clicks

This commit is contained in:
Niklas 2019-05-16 18:41:44 +02:00
parent 963b22d0dc
commit 7025ba138a

View File

@ -27,8 +27,11 @@
#include <monospacetextdialog.hpp> #include <monospacetextdialog.hpp>
#include <clipboard/clipboardcopy.hpp> #include <clipboard/clipboardcopy.hpp>
#include <logs/screenshotfile.h> #include <logs/screenshotfile.h>
#include <QDateTime>
MainWindow *MainWindow::instance; MainWindow *MainWindow::instance;
qint8 trayIconClicks = 0;
bool wasDoubleCLick = false;
using requestlogging::LoggedRequest; using requestlogging::LoggedRequest;
@ -100,8 +103,39 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
connect(shtoggle, &QAction::triggered, this, &MainWindow::toggleVisible); connect(shtoggle, &QAction::triggered, this, &MainWindow::toggleVisible);
connect(picker, &QAction::triggered, [] { ColorPickerScene::showPicker(); }); connect(picker, &QAction::triggered, [] { ColorPickerScene::showPicker(); });
connect(tray, &QSystemTrayIcon::messageClicked, this, &QWidget::show); connect(tray, &QSystemTrayIcon::messageClicked, this, &QWidget::show);
connect(tray, &QSystemTrayIcon::activated, this, [this](QSystemTrayIcon::ActivationReason reason) { connect(tray, &QSystemTrayIcon::activated, this, [this](QSystemTrayIcon::ActivationReason reason) {
if (reason == QSystemTrayIcon::DoubleClick) toggleVisible(); if (reason == QSystemTrayIcon::MiddleClick) {
screenshotter::fullscreenDelayed();
return;
}
if (reason == QSystemTrayIcon::DoubleClick) {
wasDoubleCLick = true;
toggleVisible();
return;
}
if (reason != QSystemTrayIcon::Trigger) return;
trayIconClicks++;
if (trayIconClicks == 1) {
QTimer::singleShot(QApplication::doubleClickInterval(), [this] {
if(wasDoubleCLick) {
wasDoubleCLick = false;
return;
}
if(trayIconClicks == 1) {
// Single Click
screenshotter::areaDelayed();
} else {
// Double Click
toggleVisible();
}
trayIconClicks = 0;
});
}
}); });
connect(fullscreen, &QAction::triggered, this, [] { screenshotter::fullscreenDelayed(); }); connect(fullscreen, &QAction::triggered, this, [] { screenshotter::fullscreenDelayed(); });
connect(area, &QAction::triggered, this, [] { screenshotter::areaDelayed(); }); connect(area, &QAction::triggered, this, [] { screenshotter::areaDelayed(); });