EntryPushButton: Begin menus for deletion/favourites
This commit is contained in:
		| @@ -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); | ||||
|   | ||||
		Fai riferimento in un nuovo problema
	
	Block a user