From 350afa324021cb257cebe0bbbdcc07dd5cc5e4cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 15 Jun 2013 23:19:17 +0200 Subject: [PATCH] context menu using options button on libraries --- custom_widgets/yacreader_library_item_widget.cpp | 1 + custom_widgets/yacreader_library_item_widget.h | 1 + custom_widgets/yacreader_library_list_widget.cpp | 9 ++++++++- custom_widgets/yacreader_library_list_widget.h | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/custom_widgets/yacreader_library_item_widget.cpp b/custom_widgets/yacreader_library_item_widget.cpp index f1f9358d..a4b40407 100644 --- a/custom_widgets/yacreader_library_item_widget.cpp +++ b/custom_widgets/yacreader_library_item_widget.cpp @@ -26,6 +26,7 @@ YACReaderLibraryItemWidget::YACReaderLibraryItemWidget(QString n/*ame*/, QString options->setFixedWidth(18); options->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Minimum); options->setStyleSheet("QToolButton {border:none;}"); + connect(options,SIGNAL(pressed()),this,SIGNAL(showOptions())); /*up = new QToolButton(this); up->setIcon(QIcon(":/images/libraryUp.png")); up->setHidden(true); diff --git a/custom_widgets/yacreader_library_item_widget.h b/custom_widgets/yacreader_library_item_widget.h index eee15a13..72e37530 100644 --- a/custom_widgets/yacreader_library_item_widget.h +++ b/custom_widgets/yacreader_library_item_widget.h @@ -19,6 +19,7 @@ public: signals: void selected(QString,QString); + void showOptions(); public slots: void showUpDownButtons(bool show); diff --git a/custom_widgets/yacreader_library_list_widget.cpp b/custom_widgets/yacreader_library_list_widget.cpp index 2ad0f7ed..8aa233cc 100644 --- a/custom_widgets/yacreader_library_list_widget.cpp +++ b/custom_widgets/yacreader_library_list_widget.cpp @@ -3,6 +3,7 @@ #include "yacreader_library_item_widget.h" #include #include +#include YACReaderLibraryListWidget::YACReaderLibraryListWidget(QWidget *parent) : QWidget(parent),currentLibraryIndex(0) @@ -19,6 +20,7 @@ void YACReaderLibraryListWidget::addItem(QString name, QString path) QVBoxLayout * mainLayout = dynamic_cast(layout()); YACReaderLibraryItemWidget * library = new YACReaderLibraryItemWidget(name,path,this); + connect(library,SIGNAL(showOptions()),this,SLOT(showContextMenu())); librariesList.append(library); connect(library,SIGNAL(selected(QString,QString)),this,SIGNAL(librarySelected(QString,QString))); @@ -82,7 +84,6 @@ void YACReaderLibraryListWidget::mousePressEvent ( QMouseEvent * event ) //deselectAllBut(item); setCurrentIndex(item); emit currentIndexChanged(librariesList.at(item)->name); - } } @@ -94,4 +95,10 @@ void YACReaderLibraryListWidget::deselectAllBut(int index) if(i!=index) librariesList.at(i)->deselect(); } +} + +void YACReaderLibraryListWidget::showContextMenu() +{ + YACReaderLibraryItemWidget * itemWidget = librariesList.at(currentLibraryIndex); + QMenu::exec(actions(),itemWidget->mapToGlobal(QPoint(itemWidget->width()-8,itemWidget->height()/2))); } \ No newline at end of file diff --git a/custom_widgets/yacreader_library_list_widget.h b/custom_widgets/yacreader_library_list_widget.h index 550cc8c5..2347488d 100644 --- a/custom_widgets/yacreader_library_list_widget.h +++ b/custom_widgets/yacreader_library_list_widget.h @@ -22,6 +22,7 @@ public slots: void addItem(QString name, QString path); int currentIndex(); void removeItem(int index); + void showContextMenu(); protected: void mousePressEvent ( QMouseEvent * event ); private: