1.1 --- a/mw-mapselector.cc Tue Nov 29 19:31:58 2005 +0000
1.2 +++ b/mw-mapselector.cc Wed Nov 30 13:24:23 2005 +0000
1.3 @@ -1,10 +1,19 @@
1.4 #include "map_win.h"
1.5
1.6 -MapWin::MapSelector::MapSelector(std::vector<std::string> ml, int identifier, bool edge):id(identifier),itisedge(edge),default_state(true),set_new_map(false)
1.7 +MapWin::MapSelector::MapSelector(std::vector<std::string> ml, std::string act, int identifier, bool edge):id(identifier),itisedge(edge),set_new_map(false)
1.8 {
1.9 update_list(ml);
1.10
1.11 - cbt.set_active(0);
1.12 + if(act=="")
1.13 + {
1.14 + cbt.set_active(0);
1.15 + default_state=true;
1.16 + }
1.17 + else
1.18 + {
1.19 + cbt.set_active_text((Glib::ustring)act);
1.20 + default_state=false;
1.21 + }
1.22
1.23 //binding signal to the actual entry
1.24 cbt.signal_changed().connect
1.25 @@ -55,6 +64,7 @@
1.26
1.27 void MapWin::MapSelector::update_list( std::vector< std::string > ml )
1.28 {
1.29 + int prev_act=cbt.get_active_row_number();
1.30 cbt.clear();
1.31 std::vector< std::string >::iterator emsi=ml.begin();
1.32 for(;emsi!=ml.end();emsi++)
1.33 @@ -62,6 +72,10 @@
1.34 cbt.append_text(*emsi);
1.35 }
1.36 cbt.prepend_text("Default values");
1.37 + if(prev_act!=-1)
1.38 + {
1.39 + cbt.set_active(prev_act);
1.40 + }
1.41 }
1.42
1.43 void MapWin::MapSelector::comboChanged()
1.44 @@ -77,7 +91,6 @@
1.45 }
1.46 else if((!default_state)&&(cbt.get_active_row_number()==0))
1.47 {
1.48 - signal_cbt.emit("");
1.49 reset();
1.50 }
1.51 }
1.52 @@ -85,6 +98,7 @@
1.53 void MapWin::MapSelector::reset()
1.54 {
1.55 default_state=true;
1.56 +
1.57 cbt.set_active(0);
1.58
1.59 signal_cbt.emit("");