Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2012-12-09 18:14:50 +0000
committerStijn Buys <ingar@osirion.org>2012-12-09 18:14:50 +0000
commit2c1c377312f9c63c1bd586fb0fd290f677cd0089 (patch)
tree6fd3a19e391b78135e04885bb7c919f5704ee5d1 /src/client/inventorywindow.cc
parent688817e65a5460b1d776b5c3dccbc45c7f94fec0 (diff)
Improved selection behaviour in the inventory window.
Diffstat (limited to 'src/client/inventorywindow.cc')
-rw-r--r--src/client/inventorywindow.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/client/inventorywindow.cc b/src/client/inventorywindow.cc
index 0d91b4d..51ced0e 100644
--- a/src/client/inventorywindow.cc
+++ b/src/client/inventorywindow.cc
@@ -92,6 +92,8 @@ void InventoryWindow::toggle()
}
void InventoryWindow::update_inventory()
{
+ const core::Item *selecteditem = (inventorywindow_listview->selected() ? inventorywindow_listview->selected()->item() : 0);
+
inventorywindow_listview->clear();
inventorywindow_inventorytimestamp = 0;
inventorywindow_infotimestamp = 0;
@@ -100,7 +102,6 @@ void InventoryWindow::update_inventory()
return;
}
- const core::Item *selecteditem = (inventorywindow_listview->selected() ? inventorywindow_listview->selected()->item() : 0);
for (core::Inventory::Items::const_iterator it = core::localcontrol()->inventory()->items().begin(); it != core::localcontrol()->inventory()->items().end(); it++) {
core::Item *item = (*it);
@@ -166,12 +167,8 @@ void InventoryWindow::update_inventory()
inventorywindow_inventorytimestamp = core::localcontrol()->inventory()->timestamp();
- if (inventorywindow_listview->selected()) {
- set_info(inventorywindow_listview->selected()->info(), inventorywindow_listview->selected()->item()->amount());
- } else if (inventorywindow_inforecord != core::localcontrol()->info()) {
- set_info(0, 0);
- }
-
+ show_item_info(inventorywindow_listview->selected());
+
inventorywindow_listview->sort();
inventorywindow_listview->event_resize();
}
@@ -376,7 +373,9 @@ void InventoryWindow::show_item_info(const ui::ListItem *listitem)
set_info(listitem->info(), listitem->item()->amount());
if (listitem->item()->amount()) {
inventorywindow_ejectbutton->enable();
- inventorywindow_mountbutton->enable();
+ if (listitem->item()->has_flag(core::Item::Unique) && !listitem->item()->has_flag(core::Item::Mounted)) {
+ inventorywindow_mountbutton->enable();
+ }
}
} else {
set_info(0, 0);