Version: 1.0pre2 (using KDE 3.5.4, Gentoo) Compiler: Target: i686-pc-linux-gnu OS: Linux (i686) release 2.6.17-gentoo-r7 As already posted in bug#134158. It was a report containing more than one bug, so I've splitted it up. As the following problem affects heavily the usability of K3B I report it as bug, not as wish. Copy'n'paste from bug#134158: When editing information of an Audio CD there are 2 issues: a) Problem: The view doesn't scroll early enough (see Attachment#1 [details], scroll.png) when jumping from one track to the next by pressing <ENTER> and reaching the end of the view. Solution: It should scroll, as soon as the current line is hidden by more than 1px. b) Problem: When reaching the end of the list and pushing accidentally enter, K3B jumps to directory navigation and all made changes are lost, when having not clicked "Save CDDB entry locally". Solution: K3B should stay in Audio CD view mode or K3B should save the CDDB entry before changing to directory view mode or K3B should ask for saving the changes
Created attachment 17808 [details] K3B Audio-CD view. See the last half-visible track in the list. K3B should scroll when editing this one.
Happens here as well. Note that this refers to audio cd ripping and not for editing audio project information.
SVN commit 605799 by trueg: Ensure that the edited item is always visible, BUG: 134208 M +5 -12 k3blistview.cpp --- trunk/extragear/multimedia/k3b/libk3b/tools/k3blistview.cpp #605798:605799 @@ -554,13 +554,6 @@ K3bListView::~K3bListView() { - // FIXME: is this really necessary or does viewport() delete them? - delete m_editorButton; - delete m_editorComboBox; - delete m_editorSpinBox; - delete m_editorLineEdit; - delete m_editorMsfEdit; - delete d; } @@ -639,11 +632,8 @@ void K3bListView::placeEditor( K3bListViewItem* item, int col ) { + ensureItemVisible( item ); QRect r = itemRect( item ); - if ( !r.size().isValid() ) { - ensureItemVisible( item ); - r = itemRect( item ); - } r.setX( contentsToViewport( QPoint(header()->sectionPos( col ), 0) ).x() ); r.setWidth( header()->sectionSize( col ) - 1 ); @@ -983,8 +973,11 @@ } -bool K3bListView::renameItem( K3bListViewItem*, int col, const QString& text ) +bool K3bListView::renameItem( K3bListViewItem* item, int col, const QString& text ) { + Q_UNUSED(item); + Q_UNUSED(col); + Q_UNUSED(text); return true; }