[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kdeui/widgets
From: Christoph Feck <christoph () maxiom ! de>
Date: 2010-11-28 19:44:35
Message-ID: 20101128194435.626A8AC8A3 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1201808 by cfeck:
Fix buttons' enabled() state not correctly updated
Common Qt4 porting regression: current != selected
M +25 -11 kactionselector.cpp
--- trunk/KDE/kdelibs/kdeui/widgets/kactionselector.cpp #1201807:1201808
@@ -62,6 +62,12 @@
*/
int insertionIndex( QListWidget *lb, KActionSelector::InsertionPolicy policy );
+ /**
+ @return the index of the first selected item in listbox @p lb.
+ If no item is selected, it will return -1.
+ */
+ int selectedRowIndex( QListWidget *lb );
+
void buttonAddClicked();
void buttonRemoveClicked();
void buttonUpClicked();
@@ -135,13 +141,12 @@
this, SLOT(itemDoubleClicked(QListWidgetItem*)) );
connect( d->selectedListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)),
this, SLOT(itemDoubleClicked(QListWidgetItem*)) );
- connect( d->availableListWidget, SIGNAL(itemChanged(QListWidgetItem*)),
- this, SLOT(slotCurrentChanged(QListWidgetItem *)) );
- connect( d->selectedListWidget, SIGNAL(itemChanged(QListWidgetItem*)),
- this, SLOT(slotCurrentChanged(QListWidgetItem *)) );
+ connect( d->availableListWidget, SIGNAL(itemSelectionChanged()), this, \
SLOT(polish()) ); + connect( d->selectedListWidget, SIGNAL(itemSelectionChanged()), \
this, SLOT(polish()) );
d->availableListWidget->installEventFilter( this );
d->selectedListWidget->installEventFilter( this );
+ setButtonsEnabled();
}
KActionSelector::~KActionSelector()
@@ -257,11 +262,11 @@
void KActionSelector::setButtonsEnabled()
{
- d->btnAdd->setEnabled( d->availableListWidget->currentRow() > -1 );
- d->btnRemove->setEnabled( d->selectedListWidget->currentRow() > -1 );
- d->btnUp->setEnabled( d->selectedListWidget->currentRow() > 0 );
- d->btnDown->setEnabled( d->selectedListWidget->currentRow() > -1 &&
- d->selectedListWidget->currentRow() < \
d->selectedListWidget->count() - 1 ); + d->btnAdd->setEnabled( \
d->selectedRowIndex(d->availableListWidget) > -1 ); + d->btnRemove->setEnabled( \
d->selectedRowIndex(d->selectedListWidget) > -1 ); + d->btnUp->setEnabled( \
d->selectedRowIndex(d->selectedListWidget) > 0 ); + d->btnDown->setEnabled( \
d->selectedRowIndex(d->selectedListWidget) > -1 && + \
d->selectedRowIndex(d->selectedListWidget) < d->selectedListWidget->count() - 1 ); }
//END Public Methods
@@ -464,7 +469,7 @@
void KActionSelectorPrivate::buttonUpClicked()
{
- int c = selectedListWidget->currentRow();
+ int c = selectedRowIndex(selectedListWidget);
if ( c < 1 ) return;
QListWidgetItem *item = selectedListWidget->item( c );
selectedListWidget->takeItem( c );
@@ -475,7 +480,7 @@
void KActionSelectorPrivate::buttonDownClicked()
{
- int c = selectedListWidget->currentRow();
+ int c = selectedRowIndex(selectedListWidget);
if ( c < 0 || c == selectedListWidget->count() - 1 ) return;
QListWidgetItem *item = selectedListWidget->item( c );
selectedListWidget->takeItem( c );
@@ -547,5 +552,14 @@
return index;
}
+int KActionSelectorPrivate::selectedRowIndex( QListWidget *lb )
+{
+ QList<QListWidgetItem *> list = lb->selectedItems();
+ if (list.isEmpty()) {
+ return -1;
+ }
+ return lb->row(list.at(0));
+}
+
//END Private Methods
#include "kactionselector.moc"
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic