EntryPushButton: Begin menus for deletion/favourites
Αυτή η υποβολή περιλαμβάνεται σε:
γονέας
2a9292958b
υποβολή
e2c80b665e
@ -39,6 +39,9 @@ EntryPushButton::EntryPushButton(const EntryConfig &config) : QPushButton()
|
||||
}
|
||||
this->config = config;
|
||||
connect(this, SIGNAL(clicked()), this, SLOT(emitOwnClicked()));
|
||||
|
||||
systemEntryMenu.addAction("Add to favorites", [&] { emit addToFavourites(this->config); });
|
||||
userEntryMenu.addAction("Delete", [&] { emit deleteRequested(this->config); });
|
||||
}
|
||||
|
||||
void EntryPushButton::emitOwnClicked()
|
||||
@ -72,12 +75,23 @@ void EntryPushButton::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
dragStartPosition = event->pos();
|
||||
}
|
||||
if(event->button() == Qt::RightButton)
|
||||
{
|
||||
if(this->config.userEntry)
|
||||
{
|
||||
this->userEntryMenu.exec(QCursor::pos());
|
||||
}
|
||||
else
|
||||
{
|
||||
this->systemEntryMenu.exec(QCursor::pos());
|
||||
}
|
||||
}
|
||||
return QPushButton::mousePressEvent(event);
|
||||
}
|
||||
|
||||
void EntryPushButton::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
if(! this->config.userEntry)
|
||||
if(!this->config.userEntry)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -19,6 +19,8 @@
|
||||
#include <QWidget>
|
||||
#include <QPushButton>
|
||||
#include <QMouseEvent>
|
||||
#include <QMenu>
|
||||
|
||||
#include "entryprovider.h"
|
||||
|
||||
#define ENTRYBUTTON_MIME_TYPE_STR "application/x-qsrun-entrypushbutton"
|
||||
@ -27,6 +29,8 @@ class EntryPushButton : public QPushButton
|
||||
{
|
||||
Q_OBJECT
|
||||
private:
|
||||
QMenu systemEntryMenu;
|
||||
QMenu userEntryMenu;
|
||||
EntryConfig config;
|
||||
QPoint dragStartPosition;
|
||||
|
||||
@ -35,6 +39,8 @@ class EntryPushButton : public QPushButton
|
||||
|
||||
signals:
|
||||
void clicked(const EntryConfig &config);
|
||||
void deleteRequested(const EntryConfig &config);
|
||||
void addToFavourites(const EntryConfig &config);
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
|
Φόρτωση…
Αναφορά σε νέο ζήτημα
Block a user