From 466f739b3a9dde8c07ab843b5a71e434a1454bd1 Mon Sep 17 00:00:00 2001 From: Rafael Date: Sun, 3 Apr 2016 05:25:54 +0200 Subject: [PATCH] highlight hovered widgets at the ProfileInterface --- SavegameWidget.cpp | 58 ++++++++++++--- SavegameWidget.h | 4 + SavegameWidget.ui | 135 +++++++++++++++++++-------------- SnapmaticWidget.cpp | 35 +++++++++ SnapmaticWidget.h | 4 + SnapmaticWidget.ui | 177 +++++++++++++++++++++++++------------------- 6 files changed, 275 insertions(+), 138 deletions(-) diff --git a/SavegameWidget.cpp b/SavegameWidget.cpp index f996a30..a129bde 100755 --- a/SavegameWidget.cpp +++ b/SavegameWidget.cpp @@ -27,6 +27,10 @@ #include #include #include +#include +#include +#include +#include #include #include #include @@ -40,6 +44,13 @@ SavegameWidget::SavegameWidget(QWidget *parent) : ui->cmdView->setVisible(false); ui->cmdDelete->setVisible(false); ui->cbSelected->setVisible(false); + + QPalette palette; + QColor highlightBackColor = palette.highlight().color(); + QColor highlightTextColor = palette.highlightedText().color(); + setStyleSheet(QString("QFrame:hover#SavegameFrame{background-color: rgb(%1, %2, %3); color: rgb(%4, %5, %6)}").arg(QString::number(highlightBackColor.red()), QString::number(highlightBackColor.green()), QString::number(highlightBackColor.blue()), QString::number(highlightTextColor.red()), QString::number(highlightTextColor.green()), QString::number(highlightTextColor.blue()))); + + clkIssued = 0; sgdPath = ""; sgdStr = ""; sgdata = 0; @@ -95,15 +106,6 @@ void SavegameWidget::on_cmdView_clicked() delete savegameDialog; } -void SavegameWidget::mouseDoubleClickEvent(QMouseEvent *ev) -{ - QWidget::mouseDoubleClickEvent(ev); - - if (ev->button() == Qt::LeftButton) - { - on_cmdView_clicked(); - } -} void SavegameWidget::setChecked(bool isChecked) { @@ -115,6 +117,44 @@ void SavegameWidget::on_savegameSelected() setChecked(true); } +void SavegameWidget::mousePressEvent(QMouseEvent *ev) +{ + ProfileWidget::mouseReleaseEvent(ev); + clkIssued = true; +} + +void SavegameWidget::mouseReleaseEvent(QMouseEvent *ev) +{ + ProfileWidget::mouseReleaseEvent(ev); + if (ui->cbSelected->isVisible()) + { + if (rect().contains(ev->pos()) && ev->button() == Qt::LeftButton) + { + clkIssued = false; + QTimer::singleShot(QApplication::doubleClickInterval(), this, SLOT(changeCheckedState())); + } + } +} + +void SavegameWidget::mouseDoubleClickEvent(QMouseEvent *ev) +{ + QWidget::mouseDoubleClickEvent(ev); + + if (ev->button() == Qt::LeftButton) + { + clkIssued = true; + on_cmdView_clicked(); + } +} + +void SavegameWidget::changeCheckedState() +{ + if (!clkIssued) + { + ui->cbSelected->setChecked(!ui->cbSelected->isChecked()); + } +} + void SavegameWidget::contextMenuEvent(QContextMenuEvent *ev) { QMenu contextMenu(this); diff --git a/SavegameWidget.h b/SavegameWidget.h index 277d109..553bceb 100755 --- a/SavegameWidget.h +++ b/SavegameWidget.h @@ -48,9 +48,12 @@ private slots: void on_cmdDelete_clicked(); void on_savegameSelected(); void on_cbSelected_stateChanged(int arg1); + void changeCheckedState(); protected: void mouseDoubleClickEvent(QMouseEvent *ev); + void mouseReleaseEvent(QMouseEvent *ev); + void mousePressEvent(QMouseEvent *ev); void contextMenuEvent(QContextMenuEvent *ev); private: @@ -58,6 +61,7 @@ private: SavegameData *sgdata; QString sgdPath; QString sgdStr; + bool clkIssued; signals: void savegameDeleted(); diff --git a/SavegameWidget.ui b/SavegameWidget.ui index f8ea666..125540c 100755 --- a/SavegameWidget.ui +++ b/SavegameWidget.ui @@ -14,64 +14,91 @@ Savegame Widget + + 0 + + + 0 + + + 0 + + + 0 + - - - + + + QFrame::NoFrame - - - - - - + + QFrame::Plain - - :/img/savegame.png - - - - - - - - 0 - 0 - - - - The Third Way (100%) - 00/00/00 00:00:00 - - - true - - - - - - - View - - - - - - - Copy - - - true - - - - - - - Delete - - - true + + 0 + + + + + + + + + + + + + + + :/img/savegame.png + + + + + + + + 0 + 0 + + + + The Third Way (100%) - 00/00/00 00:00:00 + + + true + + + + + + + View + + + + + + + Copy + + + true + + + + + + + Delete + + + true + + + + diff --git a/SnapmaticWidget.cpp b/SnapmaticWidget.cpp index 1688be3..7262ccc 100755 --- a/SnapmaticWidget.cpp +++ b/SnapmaticWidget.cpp @@ -25,6 +25,7 @@ #include "PictureCopy.h" #include #include +#include #include #include #include @@ -39,6 +40,13 @@ SnapmaticWidget::SnapmaticWidget(ProfileDatabase *profileDB, DatabaseThread *thr ui->cmdExport->setVisible(false); ui->cmdDelete->setVisible(false); ui->cbSelected->setVisible(false); + + QPalette palette; + QColor highlightBackColor = palette.highlight().color(); + QColor highlightTextColor = palette.highlightedText().color(); + setStyleSheet(QString("QFrame:hover#SnapmaticFrame{background-color: rgb(%1, %2, %3); color: rgb(%4, %5, %6)}").arg(QString::number(highlightBackColor.red()), QString::number(highlightBackColor.green()), QString::number(highlightBackColor.blue()), QString::number(highlightTextColor.red()), QString::number(highlightTextColor.green()), QString::number(highlightTextColor.blue()))); + + clkIssued = 0; picPath = ""; picStr = ""; smpic = 0; @@ -108,16 +116,43 @@ void SnapmaticWidget::on_cmdDelete_clicked() } } +void SnapmaticWidget::mousePressEvent(QMouseEvent *ev) +{ + ProfileWidget::mousePressEvent(ev); +} + +void SnapmaticWidget::mouseReleaseEvent(QMouseEvent *ev) +{ + ProfileWidget::mouseReleaseEvent(ev); + if (ui->cbSelected->isVisible()) + { + if (rect().contains(ev->pos()) && ev->button() == Qt::LeftButton) + { + clkIssued = false; + QTimer::singleShot(QApplication::doubleClickInterval(), this, SLOT(changeCheckedState())); + } + } +} + void SnapmaticWidget::mouseDoubleClickEvent(QMouseEvent *ev) { QWidget::mouseDoubleClickEvent(ev); if (ev->button() == Qt::LeftButton) { + clkIssued = true; on_cmdView_clicked(); } } +void SnapmaticWidget::changeCheckedState() +{ + if (!clkIssued) + { + ui->cbSelected->setChecked(!ui->cbSelected->isChecked()); + } +} + void SnapmaticWidget::setChecked(bool isChecked) { ui->cbSelected->setChecked(isChecked); diff --git a/SnapmaticWidget.h b/SnapmaticWidget.h index fe5b064..6bfa7d4 100755 --- a/SnapmaticWidget.h +++ b/SnapmaticWidget.h @@ -51,9 +51,12 @@ private slots: void on_cmdDelete_clicked(); void on_pictureSelected(); void on_cbSelected_stateChanged(int arg1); + void changeCheckedState(); protected: void mouseDoubleClickEvent(QMouseEvent *ev); + void mouseReleaseEvent(QMouseEvent *ev); + void mousePressEvent(QMouseEvent *ev); void contextMenuEvent(QContextMenuEvent *ev); private: @@ -64,6 +67,7 @@ private: QAction *actSelectPic; QString picPath; QString picStr; + bool clkIssued; signals: void pictureDeleted(); diff --git a/SnapmaticWidget.ui b/SnapmaticWidget.ui index 5d2d22e..cd81558 100755 --- a/SnapmaticWidget.ui +++ b/SnapmaticWidget.ui @@ -13,87 +13,114 @@ Snapmatic Widget - + + + 0 + + + 0 + + + 0 + + + 0 + - - - + + + QFrame::NoFrame - - - - - - - 48 - 27 - - - - - 48 - 27 - + + QFrame::Plain 0 - - - - - true - - - - - - - - 0 - 0 - - - - PHOTO - 00/00/00 00:00:00 - - - true - - - - - - - View - - - true - - - - - - - Copy - - - - - - - Export - - - - - - - Delete - - - true - + + + + + + + + + + + + + 48 + 27 + + + + + 48 + 27 + + + + 0 + + + + + + true + + + + + + + + 0 + 0 + + + + PHOTO - 00/00/00 00:00:00 + + + true + + + + + + + View + + + true + + + + + + + Copy + + + + + + + Export + + + + + + + Delete + + + true + + + +