]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs/bookmarks.cpp
Fix Bookmarks: missing button, missing tooltips, wrong resize on startup.
[vlc] / modules / gui / qt4 / dialogs / bookmarks.cpp
index 6fee541c179704e78d6f62e4864bc3c3bbf0fa1e..68f0fa4ff07097b2aff83bef16e3773cdfe8b96c 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * bookmarks.cpp : Bookmarks
  ****************************************************************************
- * Copyright (C) 2006 the VideoLAN team
+ * Copyright (C) 2007-2008 the VideoLAN team
  *
  * Authors: Antoine Lejeune <phytos@via.ecp.fr>
  *
@@ -19,6 +19,9 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
 
 #include "dialogs/bookmarks.hpp"
 #include "dialogs_provider.hpp"
@@ -34,15 +37,22 @@ BookmarksDialog::BookmarksDialog( intf_thread_t *_p_intf ):QVLCFrame( _p_intf )
 {
     setWindowFlags( Qt::Tool );
     setWindowOpacity( config_GetFloat( p_intf, "qt-opacity" ) );
-    setWindowTitle( qtr( "Edit bookmark" ) );
-    
+    setWindowTitle( qtr( "Edit Bookmarks" ) );
+
     QGridLayout *layout = new QGridLayout( this );
-    
-    QPushButton *addButton = new QPushButton( qtr( "Add" ) );
+
+    QPushButton *addButton = new QPushButton( qtr( "Create" ) );
+    addButton->setToolTip( qtr( "Create a new bookmark" ) );
     QPushButton *delButton = new QPushButton( qtr( "Delete" ) );
+    delButton->setToolTip( qtr( "Delete the selected item" ) );
     QPushButton *clearButton = new QPushButton( qtr( "Clear" ) );
+    clearButton->setToolTip( qtr( "Delete all the bookmarks" ) );
+#if 0
     QPushButton *extractButton = new QPushButton( qtr( "Extract" ) );
-    
+    extractButton->setToolTip( qtr() );
+#endif
+    QPushButton *closeButton = new QPushButton( qtr( "&Close" ) );
+
     bookmarksList = new QTreeWidget( this );
     bookmarksList->setRootIsDecorated( false );
     bookmarksList->setAlternatingRowColors( true );
@@ -50,53 +60,65 @@ BookmarksDialog::BookmarksDialog( intf_thread_t *_p_intf ):QVLCFrame( _p_intf )
     bookmarksList->setSelectionBehavior( QAbstractItemView::SelectRows );
     bookmarksList->setEditTriggers( QAbstractItemView::SelectedClicked );
     bookmarksList->setColumnCount( 3 );
+    bookmarksList->resize( sizeHint() );
+
     QStringList headerLabels;
     headerLabels << qtr( "Description" );
     headerLabels << qtr( "Bytes" );
     headerLabels << qtr( "Time" );
     bookmarksList->setHeaderLabels( headerLabels );
-    
-    
+
+
     layout->addWidget( addButton, 0, 0 );
     layout->addWidget( delButton, 1, 0 );
     layout->addWidget( clearButton, 2, 0 );
     layout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding ), 4, 0 );
+#if 0
     layout->addWidget( extractButton, 5, 0 );
-    layout->addWidget( bookmarksList, 0, 1, 6, 1);
+#endif
+    layout->addWidget( bookmarksList, 0, 1, 6, 2);
     layout->setColumnStretch( 1, 1 );
-    
+    layout->addWidget( closeButton, 7, 2 );
+
     CONNECT( bookmarksList, activated( QModelIndex ), this,
              activateItem( QModelIndex ) );
-    CONNECT( bookmarksList, itemChanged( QTreeWidgetItem*, int ), this, edit( QTreeWidgetItem*, int ) );
-    
+    CONNECT( bookmarksList, itemChanged( QTreeWidgetItem*, int ),
+             this, edit( QTreeWidgetItem*, int ) );
+
     BUTTONACT( addButton, add() );
     BUTTONACT( delButton, del() );
     BUTTONACT( clearButton, clear() );
+#if 0
     BUTTONACT( extractButton, extract() );
-    
+#endif
+    BUTTONACT( closeButton, close() );
+
+    readSettings( "Bookmarks" );
+    updateGeometry();
 }
 
 BookmarksDialog::~BookmarksDialog()
 {
+    writeSettings( "Bookmarks" );
 }
 
 void BookmarksDialog::update()
 {
     input_thread_t *p_input = THEMIM->getInput();
     if( !p_input ) return;
-    
+
     seekpoint_t **pp_bookmarks;
     int i_bookmarks;
-    
+
     if( bookmarksList->topLevelItemCount() > 0 )
     {
         bookmarksList->model()->removeRows( 0, bookmarksList->topLevelItemCount() );
     }
-    
-    if( input_Control( p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks, 
+
+    if( input_Control( p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks,
                        &i_bookmarks ) != VLC_SUCCESS )
         return;
-    
+
     for( int i = 0; i < i_bookmarks; i++ )
     {
         // List with the differents elements of the row
@@ -109,51 +131,51 @@ void BookmarksDialog::update()
                         Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
         bookmarksList->insertTopLevelItem( i, item );
     }
-    
+
 }
 
 void BookmarksDialog::add()
 {
     input_thread_t *p_input = THEMIM->getInput();
     if( !p_input ) return;
-    
+
     seekpoint_t bookmark;
     vlc_value_t pos;
     bookmark.psz_name = NULL;
     bookmark.i_byte_offset = 0;
     bookmark.i_time_offset = 0;
-    
+
     input_Control( p_input, INPUT_GET_BYTE_POSITION, &bookmark.i_byte_offset );
     var_Get( p_input, "time", &pos );
     bookmark.i_time_offset = pos.i_time;
     input_Control( p_input, INPUT_ADD_BOOKMARK, &bookmark );
-    
+
     update();
-    
+
 }
 
 void BookmarksDialog::del()
 {
     input_thread_t *p_input = THEMIM->getInput();
     if( !p_input ) return;
-    
+
     int i_focused = bookmarksList->currentIndex().row();
-    
+
     if( i_focused >= 0 )
     {
         input_Control( p_input, INPUT_DEL_BOOKMARK, i_focused );
     }
-    
-    update(); 
+
+    update();
 }
 
 void BookmarksDialog::clear()
 {
     input_thread_t *p_input = THEMIM->getInput();
     if( !p_input ) return;
-    
+
     input_Control( p_input, INPUT_CLEAR_BOOKMARKS );
-    
+
     update();
 }
 
@@ -163,24 +185,24 @@ void BookmarksDialog::edit( QTreeWidgetItem *item, int column )
     if( bookmarksList->selectedItems().isEmpty() ||
         bookmarksList->selectedItems().last() != item )
         return;
-    
+
     input_thread_t *p_input = THEMIM->getInput();
     if( !p_input ) return;
-    
+
     // We get the row number of the item
     int i_edit = bookmarksList->indexOfTopLevelItem( item );
-    
+
     // We get the bookmarks list
     seekpoint_t **pp_bookmarks;
     int i_bookmarks;
-    
-    if( input_Control( p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks, 
+
+    if( input_Control( p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks,
                        &i_bookmarks ) != VLC_SUCCESS )
         return;
-    
+
     if( i_edit >= i_bookmarks )
         return;
-    
+
     // We modify the seekpoint
     seekpoint_t *p_seekpoint = pp_bookmarks[i_edit];
     if( column == 0 )
@@ -189,13 +211,13 @@ void BookmarksDialog::edit( QTreeWidgetItem *item, int column )
         p_seekpoint->i_byte_offset = atoi( qtu( item->text( column ) ) );
     else if( column == 2 )
         p_seekpoint->i_time_offset = 1000000 * atoll( qtu( item->text( column ) ) );
-    
+
     if( input_Control( p_input, INPUT_CHANGE_BOOKMARK, p_seekpoint, i_edit ) !=
         VLC_SUCCESS )
         return;
-    
+
     update();
-    
+
 }
 
 void BookmarksDialog::extract()
@@ -207,6 +229,6 @@ void BookmarksDialog::activateItem( QModelIndex index )
 {
     input_thread_t *p_input = THEMIM->getInput();
     if( !p_input ) return;
-    
+
     input_Control( p_input, INPUT_SET_BOOKMARK, index.row() );
 }