vlc | branch: master | Francois Cartegnie <[email protected]> | Sat Aug 18 20:58:34 2012 +0200| [1debd1994a95062600ccc4ede5e27616a698b4ed] | committer: Francois Cartegnie
Qt: Bookmarks: correctly apply buttons states > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1debd1994a95062600ccc4ede5e27616a698b4ed --- modules/gui/qt4/dialogs/bookmarks.cpp | 19 ++++++++++++++++--- modules/gui/qt4/dialogs/bookmarks.hpp | 4 ++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/modules/gui/qt4/dialogs/bookmarks.cpp b/modules/gui/qt4/dialogs/bookmarks.cpp index aeff9dc..718a995 100644 --- a/modules/gui/qt4/dialogs/bookmarks.cpp +++ b/modules/gui/qt4/dialogs/bookmarks.cpp @@ -45,10 +45,10 @@ BookmarksDialog::BookmarksDialog( intf_thread_t *_p_intf ):QVLCFrame( _p_intf ) QPushButton *addButton = new QPushButton( qtr( "Create" ) ); addButton->setToolTip( qtr( "Create a new bookmark" ) ); buttonsBox->addButton( addButton, QDialogButtonBox::ActionRole ); - QPushButton *delButton = new QPushButton( qtr( "Delete" ) ); + delButton = new QPushButton( qtr( "Delete" ) ); delButton->setToolTip( qtr( "Delete the selected item" ) ); buttonsBox->addButton( delButton, QDialogButtonBox::ActionRole ); - QPushButton *clearButton = new QPushButton( qtr( "Clear" ) ); + clearButton = new QPushButton( qtr( "Clear" ) ); clearButton->setToolTip( qtr( "Delete all the bookmarks" ) ); buttonsBox->addButton( clearButton, QDialogButtonBox::ResetRole ); #if 0 @@ -85,14 +85,21 @@ BookmarksDialog::BookmarksDialog( intf_thread_t *_p_intf ):QVLCFrame( _p_intf ) activateItem( QModelIndex ) ); CONNECT( bookmarksList, itemChanged( QTreeWidgetItem*, int ), this, edit( QTreeWidgetItem*, int ) ); - + CONNECT( bookmarksList->model(), rowsInserted( const QModelIndex &, int, int ), + this, updateButtons() ); + CONNECT( bookmarksList->model(), rowsRemoved( const QModelIndex &, int, int ), + this, updateButtons() ); + CONNECT( bookmarksList->selectionModel(), selectionChanged( const QItemSelection &, const QItemSelection & ), + this, updateButtons() ); BUTTONACT( addButton, add() ); BUTTONACT( delButton, del() ); BUTTONACT( clearButton, clear() ); + #if 0 BUTTONACT( extractButton, extract() ); #endif CONNECT( buttonsBox, rejected(), this, close() ); + updateButtons(); restoreWidgetPosition( "Bookmarks", QSize( 435, 280 ) ); updateGeometry(); @@ -103,6 +110,12 @@ BookmarksDialog::~BookmarksDialog() saveWidgetPosition( "Bookmarks" ); } +void BookmarksDialog::updateButtons() +{ + clearButton->setEnabled( bookmarksList->model()->rowCount() > 0 ); + delButton->setEnabled( bookmarksList->selectionModel()->hasSelection() ); +} + void BookmarksDialog::update() { input_thread_t *p_input = THEMIM->getInput(); diff --git a/modules/gui/qt4/dialogs/bookmarks.hpp b/modules/gui/qt4/dialogs/bookmarks.hpp index 119960c..db46e00 100644 --- a/modules/gui/qt4/dialogs/bookmarks.hpp +++ b/modules/gui/qt4/dialogs/bookmarks.hpp @@ -30,6 +30,7 @@ #include <QTreeView> #include <QTreeWidget> #include "util/singleton.hpp" +class QPushButton; class BookmarksDialog : public QVLCFrame, public Singleton<BookmarksDialog> { @@ -39,6 +40,8 @@ private: virtual ~BookmarksDialog(); QTreeWidget *bookmarksList; + QPushButton *clearButton; + QPushButton *delButton; private slots: void update(); @@ -48,6 +51,7 @@ private slots: void edit( QTreeWidgetItem *item, int column ); void extract(); void activateItem( QModelIndex index ); + void updateButtons(); friend class Singleton<BookmarksDialog>; }; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
