From 3b5bfc6e3c723c9988deae1acfd1b27ab43411f3 Mon Sep 17 00:00:00 2001 From: Francois Cartegnie Date: Mon, 20 Feb 2012 18:09:31 +0100 Subject: [PATCH] Qt: plugins: activate buttons contextually --- modules/gui/qt4/dialogs/plugins.cpp | 24 +++++++++++++----------- modules/gui/qt4/dialogs/plugins.hpp | 1 + 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/modules/gui/qt4/dialogs/plugins.cpp b/modules/gui/qt4/dialogs/plugins.cpp index d84878e61e..bd37b610d4 100644 --- a/modules/gui/qt4/dialogs/plugins.cpp +++ b/modules/gui/qt4/dialogs/plugins.cpp @@ -227,8 +227,7 @@ ExtensionTab::ExtensionTab( intf_thread_t *p_intf ) butMoreInfo = new QPushButton( QIcon( ":/menu/info" ), qtr( "More information..." ), this ); - CONNECT( butMoreInfo, clicked(), - this, moreInformation() ); + CONNECT( butMoreInfo, clicked(), this, moreInformation() ); hbox->addWidget( butMoreInfo ); // Reload button @@ -236,18 +235,28 @@ ExtensionTab::ExtensionTab( intf_thread_t *p_intf ) QPushButton *reload = new QPushButton( QIcon( ":/update" ), qtr( "Reload extensions" ), this ); - CONNECT( reload, clicked(), - EM, reloadExtensions() ); + CONNECT( reload, clicked(), EM, reloadExtensions() ); + CONNECT( reload, clicked(), this, updateButtons() ); + CONNECT( extList->selectionModel(), + selectionChanged( const QItemSelection &, const QItemSelection & ), + this, + updateButtons() ); hbox->addWidget( reload ); // Add buttons hbox layout->addItem( hbox ); + updateButtons(); } ExtensionTab::~ExtensionTab() { } +void ExtensionTab::updateButtons() +{ + butMoreInfo->setEnabled( extList->selectionModel()->hasSelection() ); +} + // Do not close on ESC or ENTER void ExtensionTab::keyPressEvent( QKeyEvent *keyEvent ) { @@ -261,13 +270,6 @@ void ExtensionTab::keyPressEvent( QKeyEvent *keyEvent ) // Show more information void ExtensionTab::moreInformation() { - if( !extList->selectionModel() || - extList->selectionModel()->selectedIndexes().isEmpty() ) - - { - return; - } - QModelIndex index = extList->selectionModel()->selectedIndexes().first(); ExtensionCopy *ext = (ExtensionCopy*) index.internalPointer(); if( !ext ) diff --git a/modules/gui/qt4/dialogs/plugins.hpp b/modules/gui/qt4/dialogs/plugins.hpp index 20ba74081a..5494b44b9b 100644 --- a/modules/gui/qt4/dialogs/plugins.hpp +++ b/modules/gui/qt4/dialogs/plugins.hpp @@ -100,6 +100,7 @@ private: private slots: void moreInformation(); + void updateButtons(); private: QListView *extList; -- 2.11.4.GIT