context menu using options button on libraries

This commit is contained in:
Luis Ángel San Martín 2013-06-15 23:19:17 +02:00
parent 338eac7d55
commit 350afa3240
4 changed files with 11 additions and 1 deletions

View File

@ -26,6 +26,7 @@ YACReaderLibraryItemWidget::YACReaderLibraryItemWidget(QString n/*ame*/, QString
options->setFixedWidth(18); options->setFixedWidth(18);
options->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Minimum); options->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Minimum);
options->setStyleSheet("QToolButton {border:none;}"); options->setStyleSheet("QToolButton {border:none;}");
connect(options,SIGNAL(pressed()),this,SIGNAL(showOptions()));
/*up = new QToolButton(this); /*up = new QToolButton(this);
up->setIcon(QIcon(":/images/libraryUp.png")); up->setIcon(QIcon(":/images/libraryUp.png"));
up->setHidden(true); up->setHidden(true);

View File

@ -19,6 +19,7 @@ public:
signals: signals:
void selected(QString,QString); void selected(QString,QString);
void showOptions();
public slots: public slots:
void showUpDownButtons(bool show); void showUpDownButtons(bool show);

View File

@ -3,6 +3,7 @@
#include "yacreader_library_item_widget.h" #include "yacreader_library_item_widget.h"
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QMouseEvent> #include <QMouseEvent>
#include <QMenu>
YACReaderLibraryListWidget::YACReaderLibraryListWidget(QWidget *parent) : YACReaderLibraryListWidget::YACReaderLibraryListWidget(QWidget *parent) :
QWidget(parent),currentLibraryIndex(0) QWidget(parent),currentLibraryIndex(0)
@ -19,6 +20,7 @@ void YACReaderLibraryListWidget::addItem(QString name, QString path)
QVBoxLayout * mainLayout = dynamic_cast<QVBoxLayout *>(layout()); QVBoxLayout * mainLayout = dynamic_cast<QVBoxLayout *>(layout());
YACReaderLibraryItemWidget * library = new YACReaderLibraryItemWidget(name,path,this); YACReaderLibraryItemWidget * library = new YACReaderLibraryItemWidget(name,path,this);
connect(library,SIGNAL(showOptions()),this,SLOT(showContextMenu()));
librariesList.append(library); librariesList.append(library);
connect(library,SIGNAL(selected(QString,QString)),this,SIGNAL(librarySelected(QString,QString))); connect(library,SIGNAL(selected(QString,QString)),this,SIGNAL(librarySelected(QString,QString)));
@ -82,7 +84,6 @@ void YACReaderLibraryListWidget::mousePressEvent ( QMouseEvent * event )
//deselectAllBut(item); //deselectAllBut(item);
setCurrentIndex(item); setCurrentIndex(item);
emit currentIndexChanged(librariesList.at(item)->name); emit currentIndexChanged(librariesList.at(item)->name);
} }
} }
@ -95,3 +96,9 @@ void YACReaderLibraryListWidget::deselectAllBut(int index)
librariesList.at(i)->deselect(); librariesList.at(i)->deselect();
} }
} }
void YACReaderLibraryListWidget::showContextMenu()
{
YACReaderLibraryItemWidget * itemWidget = librariesList.at(currentLibraryIndex);
QMenu::exec(actions(),itemWidget->mapToGlobal(QPoint(itemWidget->width()-8,itemWidget->height()/2)));
}

View File

@ -22,6 +22,7 @@ public slots:
void addItem(QString name, QString path); void addItem(QString name, QString path);
int currentIndex(); int currentIndex();
void removeItem(int index); void removeItem(int index);
void showContextMenu();
protected: protected:
void mousePressEvent ( QMouseEvent * event ); void mousePressEvent ( QMouseEvent * event );
private: private: