diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2008-02-25 20:05:16 +0000 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2008-02-25 20:05:16 +0000 |
commit | 7737b5109b85f1ae0ad423577a7d940344a7155e (patch) | |
tree | 5b0e5b78ca0784816b6b883f5d887d6033568e02 /pokemodr/PokeModrUI.cpp | |
parent | 86b07a87ceb0154a254f104b3135a51787c57f30 (diff) | |
download | sigen-7737b5109b85f1ae0ad423577a7d940344a7155e.tar.gz sigen-7737b5109b85f1ae0ad423577a7d940344a7155e.tar.xz sigen-7737b5109b85f1ae0ad423577a7d940344a7155e.zip |
[FIX] Cleaned up .ui files
[FIX] setGui calls looking for (non-existant) images no longer pops up a BugCatcher
[FIX] Tree selecting less annoying
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@84 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemodr/PokeModrUI.cpp')
-rw-r--r-- | pokemodr/PokeModrUI.cpp | 101 |
1 files changed, 51 insertions, 50 deletions
diff --git a/pokemodr/PokeModrUI.cpp b/pokemodr/PokeModrUI.cpp index acef2ef4..a23f6072 100644 --- a/pokemodr/PokeModrUI.cpp +++ b/pokemodr/PokeModrUI.cpp @@ -437,58 +437,59 @@ void PokeModrUI::on_splitter_splitterMoved() config.writeEntry("panelWidth", splitter->sizes()[1]); } -void PokeModrUI::on_treePokemod_itemSelectionChanged() +void PokeModrUI::on_treePokemod_currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* previous) { - QTreeWidgetItem* cur = treePokemod->currentItem(); - PokeModTreeItem* selected = static_cast<PokeModTreeItem*>(treePokemod->selectedItems()[0]); - if (selected->getObject()) + Object* o = static_cast<PokeModTreeItem*>(current)->getObject(); + if (!o) { - if (formPanel->widget()) - { - if (!static_cast<ObjectUI*>(formPanel->widget())->close()) - return; - } - Object* o = selected->getObject(); - QString name(o->getClassName()); - ObjectUI* widget = NULL; + if (previous) + treePokemod->setCurrentItem(previous); + return; + } + if (formPanel->widget()) + { + if (o == static_cast<ObjectUI*>(formPanel->widget())->getOriginal()) + return; + if (!static_cast<ObjectUI*>(formPanel->widget())->close()) + return; + } + QString name(o->getClassName()); + ObjectUI* widget = NULL; #define IF_IS_CLASS(class) if (name == #class) widget = new class##UI(static_cast<class*>(o), formPanel); - IF_IS_CLASS(Ability) -// else IF_IS_CLASS(AbilityEffect) - else IF_IS_CLASS(Author) - else IF_IS_CLASS(Badge) - else IF_IS_CLASS(CoinList) - else IF_IS_CLASS(CoinListObject) -// else IF_IS_CLASS(Dialog) - else IF_IS_CLASS(EggGroup) - else IF_IS_CLASS(Item) -// else IF_IS_CLASS(ItemEffect) - else IF_IS_CLASS(ItemType) - else IF_IS_CLASS(Map) -// else IF_IS_CLASS(MapEffect) -// else IF_IS_CLASS(MapTrainer) - else IF_IS_CLASS(MapTrainerTeamMember) - else IF_IS_CLASS(MapWarp) - else IF_IS_CLASS(MapWildList) - else IF_IS_CLASS(MapWildListEncounter) - else IF_IS_CLASS(Move) -// else IF_IS_CLASS(MoveEffect) - else IF_IS_CLASS(Nature) - else IF_IS_CLASS(Pokemod) - else IF_IS_CLASS(Rules) - else IF_IS_CLASS(Species) - else IF_IS_CLASS(SpeciesAbility) - else IF_IS_CLASS(SpeciesEvolution) - else IF_IS_CLASS(SpeciesItem) - else IF_IS_CLASS(SpeciesMove) - else IF_IS_CLASS(Store) - else IF_IS_CLASS(Tile) - else IF_IS_CLASS(Time) - else IF_IS_CLASS(Type) + IF_IS_CLASS(Ability) +// else IF_IS_CLASS(AbilityEffect) + else IF_IS_CLASS(Author) + else IF_IS_CLASS(Badge) + else IF_IS_CLASS(CoinList) + else IF_IS_CLASS(CoinListObject) +// else IF_IS_CLASS(Dialog) + else IF_IS_CLASS(EggGroup) + else IF_IS_CLASS(Item) +// else IF_IS_CLASS(ItemEffect) + else IF_IS_CLASS(ItemType) + else IF_IS_CLASS(Map) +// else IF_IS_CLASS(MapEffect) +// else IF_IS_CLASS(MapTrainer) + else IF_IS_CLASS(MapTrainerTeamMember) + else IF_IS_CLASS(MapWarp) + else IF_IS_CLASS(MapWildList) + else IF_IS_CLASS(MapWildListEncounter) + else IF_IS_CLASS(Move) +// else IF_IS_CLASS(MoveEffect) + else IF_IS_CLASS(Nature) + else IF_IS_CLASS(Pokemod) + else IF_IS_CLASS(Rules) + else IF_IS_CLASS(Species) + else IF_IS_CLASS(SpeciesAbility) + else IF_IS_CLASS(SpeciesEvolution) + else IF_IS_CLASS(SpeciesItem) + else IF_IS_CLASS(SpeciesMove) + else IF_IS_CLASS(Store) + else IF_IS_CLASS(Tile) + else IF_IS_CLASS(Time) + else IF_IS_CLASS(Type) #undef IF_IS_CLASS - formPanel->setWidget(widget); - connect(widget, SIGNAL(changed(bool)), selected, SLOT(updateName())); - formPanel->show(); - } - else - treePokemod->setCurrentItem(cur); + formPanel->setWidget(widget); + connect(widget, SIGNAL(changed(bool)), static_cast<PokeModTreeItem*>(current), SLOT(updateName())); + formPanel->show(); } |