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