[Kst] extragear/graphics/kst/src/libkstapp
Andrew Walker
arwalker at sumusltd.com
Tue Jun 13 19:51:23 CEST 2006
SVN commit 551110 by arwalker:
BUG:129101 Do not assume a listbox has a selected entry. Do not equate the current item with being selected.
M +33 -13 kstcurvedifferentiate_i.cpp
--- trunk/extragear/graphics/kst/src/libkstapp/kstcurvedifferentiate_i.cpp #551109:551110
@@ -81,6 +81,7 @@
}
+
void KstCurveDifferentiateI::updateCurveDifferentiate() {
updateButtons();
}
@@ -92,11 +93,25 @@
raise();
}
+
void KstCurveDifferentiateI::updateButtons() {
- _remove->setEnabled(selectedListBox->currentItem() >= 0);
- _add->setEnabled(availableListBox->currentItem() >= 0);
+ int i = selectedListBox->currentItem();
+ if (i >= 0 && selectedListBox->isSelected(i)) {
+ _remove->setEnabled(true);
+ } else {
+ _remove->setEnabled(false);
+ }
+
+ i = availableListBox->currentItem();
+ if (i >= 0 && availableListBox->isSelected(i)) {
+ _add->setEnabled(true);
+ } else {
+ _add->setEnabled(false);
+ }
+
_up->setEnabled(selectedListBox->currentItem() > 0);
- _down->setEnabled(selectedListBox->currentItem() < (int)selectedListBox->count() - 1);
+ _down->setEnabled(selectedListBox->currentItem() >= 0 &&
+ selectedListBox->currentItem() < (int)selectedListBox->count() - 1);
}
@@ -170,6 +185,7 @@
}
}
+
void KstCurveDifferentiateI::getOptions( ) {
_lineColorOrder = selectedListBox->index(selectedListBox->findItem(i18n("Line Color"), ExactMatch));
_pointStyleOrder = selectedListBox->index(selectedListBox->findItem(i18n("Point Style"), ExactMatch));
@@ -213,22 +229,26 @@
void KstCurveDifferentiateI::upButtonClicked() {
// move item up
int i = selectedListBox->currentItem();
- QString text = selectedListBox->currentText();
- selectedListBox->removeItem(i);
- selectedListBox->insertItem(text, i-1);
- selectedListBox->setSelected(i-1, true);
- updateButtons();
+ if (i != -1) {
+ QString text = selectedListBox->currentText();
+ selectedListBox->removeItem(i);
+ selectedListBox->insertItem(text, i-1);
+ selectedListBox->setSelected(i-1, true);
+ updateButtons();
+ }
}
void KstCurveDifferentiateI::downButtonClicked() {
// move item down
int i = selectedListBox->currentItem();
- QString text = selectedListBox->currentText();
- selectedListBox->removeItem(i);
- selectedListBox->insertItem(text, i+1);
- selectedListBox->setSelected(i+1, true);
- updateButtons();
+ if (i != -1) {
+ QString text = selectedListBox->currentText();
+ selectedListBox->removeItem(i);
+ selectedListBox->insertItem(text, i+1);
+ selectedListBox->setSelected(i+1, true);
+ updateButtons();
+ }
}
More information about the Kst
mailing list