getSelectedItem with integrated cast
This commit is contained in:
parent
df58358c42
commit
f28f15e3e0
|
@ -50,6 +50,8 @@ private:
|
||||||
void select(QTreeWidgetItem* item);
|
void select(QTreeWidgetItem* item);
|
||||||
|
|
||||||
QTreeWidgetItem* getSelectedItem() const;
|
QTreeWidgetItem* getSelectedItem() const;
|
||||||
|
template<typename T>
|
||||||
|
T* getSelectedItem() const;
|
||||||
// create: allow this method to create a new Row, if nothing else is found
|
// create: allow this method to create a new Row, if nothing else is found
|
||||||
// onlyIfSelected: only return a row if there is a selection
|
// onlyIfSelected: only return a row if there is a selection
|
||||||
RowItem* getCurrentRow(bool create = true, bool onlyIfSelected = false);
|
RowItem* getCurrentRow(bool create = true, bool onlyIfSelected = false);
|
||||||
|
|
|
@ -153,7 +153,7 @@ void ButtonManager::downButton() {
|
||||||
void ButtonManager::itemSelected() {
|
void ButtonManager::itemSelected() {
|
||||||
Log::debug << "item selected";
|
Log::debug << "item selected";
|
||||||
|
|
||||||
ButtonManagerItem* item = dynamic_cast<ButtonManagerItem*>(getSelectedItem());
|
ButtonManagerItem* item = getSelectedItem<ButtonManagerItem>();
|
||||||
if(item) {
|
if(item) {
|
||||||
// set buttons
|
// set buttons
|
||||||
ui->editButton->setEnabled(item->hasEdit());
|
ui->editButton->setEnabled(item->hasEdit());
|
||||||
|
@ -243,6 +243,11 @@ QTreeWidgetItem* ButtonManager::getSelectedItem() const {
|
||||||
return items.at(0);
|
return items.at(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
T* ButtonManager::getSelectedItem() const {
|
||||||
|
return dynamic_cast<T*>(getSelectedItem());
|
||||||
|
}
|
||||||
|
|
||||||
RowItem* ButtonManager::getCurrentRow(bool create, bool onlyIfSelected) {
|
RowItem* ButtonManager::getCurrentRow(bool create, bool onlyIfSelected) {
|
||||||
QTreeWidgetItem* selectedItem = getSelectedItem();
|
QTreeWidgetItem* selectedItem = getSelectedItem();
|
||||||
// no item selected and its allowed to use alternative messures
|
// no item selected and its allowed to use alternative messures
|
||||||
|
@ -328,7 +333,7 @@ RowItem* ButtonManager::addNewRow() {
|
||||||
|
|
||||||
template<void (ButtonManagerItem::*T)()>
|
template<void (ButtonManagerItem::*T)()>
|
||||||
void ButtonManager::perform() {
|
void ButtonManager::perform() {
|
||||||
ButtonManagerItem* item = dynamic_cast<ButtonManagerItem*>(getSelectedItem());
|
ButtonManagerItem* item = getSelectedItem<ButtonManagerItem>();
|
||||||
if(item) {
|
if(item) {
|
||||||
(item->*T)();
|
(item->*T)();
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue