hegyi@1: #include "save_details_widget.h" hegyi@1: #include "mapstorage.h" hegyi@1: hegyi@1: SaveDetailsWidget::SaveDetailsWidget(MapStorage* ms) : hegyi@1: pMapStorage(ms) hegyi@1: { hegyi@1: Gtk::Notebook* nb = Gtk::manage(new Gtk::Notebook); hegyi@1: pack_start(*nb, Gtk::PACK_EXPAND_WIDGET); hegyi@1: hegyi@1: nb->set_tab_pos(Gtk::POS_TOP); hegyi@1: hegyi@1: Gtk::VBox* vblueMaps = Gtk::manage(new Gtk::VBox(false, 18)); hegyi@1: vblueMaps->set_border_width(12); hegyi@1: hegyi@1: Gtk::VBox* vbArcMaps = Gtk::manage(new Gtk::VBox(false, 18)); hegyi@1: vbArcMaps->set_border_width(12); hegyi@1: hegyi@1: Gtk::VBox* vbSpecMaps = Gtk::manage(new Gtk::VBox(false, 18)); hegyi@1: vbSpecMaps->set_border_width(12); hegyi@1: hegyi@1: Gtk::VBox* vbGuiSect = Gtk::manage(new Gtk::VBox(false, 18)); hegyi@1: vbGuiSect->set_border_width(12); hegyi@1: hegyi@1: nb->append_page(*vbSpecMaps, "Special Maps"); hegyi@1: nb->append_page(*vblueMaps, "Node Maps"); hegyi@1: nb->append_page(*vbArcMaps, "Arc Maps"); hegyi@1: nb->append_page(*vbGuiSect, "GUI Section"); hegyi@1: hegyi@1: // child widgets of vbSpecMaps hegyi@1: hegyi@1: { hegyi@1: Gtk::VBox* box1 = Gtk::manage(new Gtk::VBox(false, 6)); hegyi@1: vbSpecMaps->pack_start(*box1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* lblNodeCoordMap = hegyi@1: Gtk::manage(new Gtk::Label("Node Coordinates")); hegyi@1: lblNodeCoordMap->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); hegyi@1: lblNodeCoordMap->set_use_markup(); hegyi@1: box1->pack_start(*lblNodeCoordMap, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::HBox* box2 = Gtk::manage(new Gtk::HBox); hegyi@1: box1->pack_start(*box2, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* fill1 = Gtk::manage(new Gtk::Label(" ")); hegyi@1: box2->pack_start(*fill1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::VBox* box3 = Gtk::manage(new Gtk::VBox); hegyi@1: box2->pack_start(*box3, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: rblueCoordGuiSection.set_label("Save to GUI section"); hegyi@1: rblueCoordNodesetSection.set_label("Save to Nodeset section"); hegyi@1: Gtk::RadioButtonGroup group = rblueCoordGuiSection.get_group(); hegyi@1: rblueCoordNodesetSection.set_group(group); hegyi@1: hegyi@1: box3->pack_start(rblueCoordGuiSection, Gtk::PACK_SHRINK); hegyi@1: box3->pack_start(rblueCoordNodesetSection, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::HBox* box4 = Gtk::manage(new Gtk::HBox); hegyi@1: box3->pack_start(*box4, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* fill2 = Gtk::manage(new Gtk::Label(" ")); hegyi@1: box4->pack_start(*fill2, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Table* table1 = Gtk::manage(new Gtk::Table(3, 2)); hegyi@1: box4->pack_start(*table1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: rblueCoordOneMap.set_label("As one map"); hegyi@1: rblueCoordTwoMaps.set_label("As two maps"); hegyi@1: group = rblueCoordOneMap.get_group(); hegyi@1: rblueCoordTwoMaps.set_group(group); hegyi@1: hegyi@1: table1->attach(rblueCoordOneMap, 0, 1, 0, 1); hegyi@1: table1->attach(rblueCoordTwoMaps, 0, 1, 1, 2); hegyi@1: table1->attach(entNodeCoordsOneMap, 1, 2, 0, 1); hegyi@1: table1->attach(entNodeCoordsTwoMaps1, 1, 2, 1, 2); hegyi@1: table1->attach(entNodeCoordsTwoMaps2, 1, 2, 2, 3); hegyi@1: hegyi@1: switch (pMapStorage->getNodeCoordsSaveDest()) hegyi@1: { hegyi@1: case MapStorage::SpecMapSaveOpts::GUI_SECT: hegyi@1: rblueCoordGuiSection.set_active(); hegyi@1: rblueCoordOneMap.set_sensitive(false); hegyi@1: rblueCoordTwoMaps.set_sensitive(false); hegyi@1: entNodeCoordsOneMap.set_sensitive(false); hegyi@1: entNodeCoordsTwoMaps1.set_sensitive(false); hegyi@1: entNodeCoordsTwoMaps2.set_sensitive(false); hegyi@1: break; hegyi@1: case MapStorage::SpecMapSaveOpts::NESET_SECT: hegyi@1: rblueCoordNodesetSection.set_active(); hegyi@1: rblueCoordOneMap.set_sensitive(true); hegyi@1: rblueCoordTwoMaps.set_sensitive(true); hegyi@1: switch (pMapStorage->getNodeCoordsSaveMapNum()) hegyi@1: { hegyi@1: case MapStorage::SpecMapSaveOpts::ONE_MAP: hegyi@1: rblueCoordOneMap.set_active(); hegyi@1: entNodeCoordsOneMap.set_sensitive(true); hegyi@1: entNodeCoordsTwoMaps1.set_sensitive(false); hegyi@1: entNodeCoordsTwoMaps2.set_sensitive(false); hegyi@1: break; hegyi@1: case MapStorage::SpecMapSaveOpts::TWO_MAPS: hegyi@1: rblueCoordTwoMaps.set_active(); hegyi@1: entNodeCoordsOneMap.set_sensitive(false); hegyi@1: entNodeCoordsTwoMaps1.set_sensitive(true); hegyi@1: entNodeCoordsTwoMaps2.set_sensitive(true); hegyi@1: break; hegyi@1: } hegyi@1: break; hegyi@1: } hegyi@1: hegyi@1: entNodeCoordsOneMap.set_text(pMapStorage->getNodeCoordsOneMapName()); hegyi@1: entNodeCoordsTwoMaps1.set_text(pMapStorage->getNodeCoordsTwoMaps1Name()); hegyi@1: entNodeCoordsTwoMaps2.set_text(pMapStorage->getNodeCoordsTwoMaps2Name()); hegyi@1: hegyi@1: entNodeCoordsOneMap.signal_changed().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordsOneMapName)); hegyi@1: entNodeCoordsTwoMaps1.signal_changed().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordsTwoMaps1Name)); hegyi@1: entNodeCoordsTwoMaps2.signal_changed().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordsTwoMaps2Name)); hegyi@1: hegyi@1: rblueCoordGuiSection.signal_toggled().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordSaveDestChanged)); hegyi@1: rblueCoordNodesetSection.signal_toggled().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordSaveDestChanged)); hegyi@1: rblueCoordOneMap.signal_toggled().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordMapNumChanged)); hegyi@1: rblueCoordTwoMaps.signal_toggled().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordMapNumChanged)); hegyi@1: } hegyi@1: hegyi@1: { hegyi@1: Gtk::VBox* box1 = Gtk::manage(new Gtk::VBox(false, 6)); hegyi@1: vbSpecMaps->pack_start(*box1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* lblArrowCoordMap = hegyi@1: Gtk::manage(new Gtk::Label("Arrow Coordinates")); hegyi@1: lblArrowCoordMap->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); hegyi@1: lblArrowCoordMap->set_use_markup(); hegyi@1: box1->pack_start(*lblArrowCoordMap, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::HBox* box2 = Gtk::manage(new Gtk::HBox); hegyi@1: box1->pack_start(*box2, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* fill1 = Gtk::manage(new Gtk::Label(" ")); hegyi@1: box2->pack_start(*fill1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::VBox* box3 = Gtk::manage(new Gtk::VBox); hegyi@1: box2->pack_start(*box3, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: rbArrowCoordGuiSection.set_label("Save to GUI section"); hegyi@1: rbArrowCoordArcsetSection.set_label("Save to Arcset section"); hegyi@1: Gtk::RadioButtonGroup group = rbArrowCoordGuiSection.get_group(); hegyi@1: rbArrowCoordArcsetSection.set_group(group); hegyi@1: hegyi@1: box3->pack_start(rbArrowCoordGuiSection, Gtk::PACK_SHRINK); hegyi@1: box3->pack_start(rbArrowCoordArcsetSection, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::HBox* box4 = Gtk::manage(new Gtk::HBox); hegyi@1: box3->pack_start(*box4, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* fill2 = Gtk::manage(new Gtk::Label(" ")); hegyi@1: box4->pack_start(*fill2, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Table* table1 = Gtk::manage(new Gtk::Table(3, 2)); hegyi@1: box4->pack_start(*table1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: rbArrowCoordOneMap.set_label("As one map"); hegyi@1: rbArrowCoordTwoMaps.set_label("As two maps"); hegyi@1: group = rbArrowCoordOneMap.get_group(); hegyi@1: rbArrowCoordTwoMaps.set_group(group); hegyi@1: hegyi@1: table1->attach(rbArrowCoordOneMap, 0, 1, 0, 1); hegyi@1: table1->attach(rbArrowCoordTwoMaps, 0, 1, 1, 2); hegyi@1: table1->attach(entArrowCoordsOneMap, 1, 2, 0, 1); hegyi@1: table1->attach(entArrowCoordsTwoMaps1, 1, 2, 1, 2); hegyi@1: table1->attach(entArrowCoordsTwoMaps2, 1, 2, 2, 3); hegyi@1: hegyi@1: switch (pMapStorage->getArrowCoordsSaveDest()) hegyi@1: { hegyi@1: case MapStorage::SpecMapSaveOpts::GUI_SECT: hegyi@1: rbArrowCoordGuiSection.set_active(); hegyi@1: rbArrowCoordOneMap.set_sensitive(false); hegyi@1: rbArrowCoordTwoMaps.set_sensitive(false); hegyi@1: entArrowCoordsOneMap.set_sensitive(false); hegyi@1: entArrowCoordsTwoMaps1.set_sensitive(false); hegyi@1: entArrowCoordsTwoMaps2.set_sensitive(false); hegyi@1: break; hegyi@1: case MapStorage::SpecMapSaveOpts::NESET_SECT: hegyi@1: rbArrowCoordArcsetSection.set_active(); hegyi@1: rbArrowCoordOneMap.set_sensitive(true); hegyi@1: rbArrowCoordTwoMaps.set_sensitive(true); hegyi@1: switch (pMapStorage->getArrowCoordsSaveMapNum()) hegyi@1: { hegyi@1: case MapStorage::SpecMapSaveOpts::ONE_MAP: hegyi@1: rbArrowCoordOneMap.set_active(); hegyi@1: entArrowCoordsOneMap.set_sensitive(true); hegyi@1: entArrowCoordsTwoMaps1.set_sensitive(false); hegyi@1: entArrowCoordsTwoMaps2.set_sensitive(false); hegyi@1: break; hegyi@1: case MapStorage::SpecMapSaveOpts::TWO_MAPS: hegyi@1: rbArrowCoordTwoMaps.set_active(); hegyi@1: entArrowCoordsOneMap.set_sensitive(false); hegyi@1: entArrowCoordsTwoMaps1.set_sensitive(true); hegyi@1: entArrowCoordsTwoMaps2.set_sensitive(true); hegyi@1: break; hegyi@1: } hegyi@1: break; hegyi@1: } hegyi@1: hegyi@1: entArrowCoordsOneMap.set_text(pMapStorage->getArrowCoordsOneMapName()); hegyi@1: entArrowCoordsTwoMaps1.set_text(pMapStorage->getArrowCoordsTwoMaps1Name()); hegyi@1: entArrowCoordsTwoMaps2.set_text(pMapStorage->getArrowCoordsTwoMaps2Name()); hegyi@1: hegyi@1: entArrowCoordsOneMap.signal_changed().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordsOneMapName)); hegyi@1: entArrowCoordsTwoMaps1.signal_changed().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordsTwoMaps1Name)); hegyi@1: entArrowCoordsTwoMaps2.signal_changed().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordsTwoMaps2Name)); hegyi@1: hegyi@1: rbArrowCoordGuiSection.signal_toggled().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordSaveDestChanged)); hegyi@1: rbArrowCoordArcsetSection.signal_toggled().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordSaveDestChanged)); hegyi@1: rbArrowCoordOneMap.signal_toggled().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordMapNumChanged)); hegyi@1: rbArrowCoordTwoMaps.signal_toggled().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordMapNumChanged)); hegyi@1: } hegyi@1: hegyi@1: // child widgets of vbGuiSect hegyi@1: hegyi@1: { hegyi@1: Gtk::VBox* box1 = Gtk::manage(new Gtk::VBox(false, 6)); hegyi@1: vbGuiSect->pack_start(*box1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* lblGuiSectionSave = hegyi@1: Gtk::manage(new Gtk::Label("Save Destination")); hegyi@1: lblGuiSectionSave->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); hegyi@1: lblGuiSectionSave->set_use_markup(); hegyi@1: box1->pack_start(*lblGuiSectionSave, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: rbLgfFile.set_label("Lgf file"); hegyi@1: rbConfFile.set_label("Conf file"); hegyi@1: hegyi@1: Gtk::RadioButtonGroup group = rbLgfFile.get_group(); hegyi@1: rbConfFile.set_group(group); hegyi@1: hegyi@1: switch (pMapStorage->getGUIDataSaveLocation()) hegyi@1: { hegyi@1: case MapStorage::LGF_FILE: hegyi@1: rbLgfFile.set_active(); hegyi@1: break; hegyi@1: case MapStorage::CONF_FILE: hegyi@1: rbConfFile.set_active(); hegyi@1: break; hegyi@1: } hegyi@1: hegyi@1: Gtk::HBox* box2 = Gtk::manage(new Gtk::HBox); hegyi@1: box1->pack_start(*box2, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* fill1 = Gtk::manage(new Gtk::Label(" ")); hegyi@1: box2->pack_start(*fill1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::VBox* box3 = Gtk::manage(new Gtk::VBox); hegyi@1: box2->pack_start(*box3, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: box3->pack_start(rbLgfFile, Gtk::PACK_SHRINK); hegyi@1: box3->pack_start(rbConfFile, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: rbLgfFile.signal_toggled().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onGuiSectSaveDestChanged)); hegyi@1: rbConfFile.signal_toggled().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onGuiSectSaveDestChanged)); hegyi@1: } hegyi@1: hegyi@1: // child widgets of vblueMaps hegyi@1: hegyi@1: { hegyi@1: Gtk::VBox* box1 = Gtk::manage(new Gtk::VBox(false, 6)); hegyi@1: vblueMaps->pack_start(*box1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* label1 = hegyi@1: Gtk::manage(new Gtk::Label("Save Destination")); hegyi@1: label1->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); hegyi@1: label1->set_use_markup(); hegyi@1: box1->pack_start(*label1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::HBox* box2 = Gtk::manage(new Gtk::HBox); hegyi@1: box1->pack_start(*box2, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* fill1 = Gtk::manage(new Gtk::Label(" ")); hegyi@1: box2->pack_start(*fill1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Frame* frame = Gtk::manage(new Gtk::Frame); hegyi@1: box2->pack_start(*frame, Gtk::PACK_EXPAND_WIDGET); hegyi@1: hegyi@1: Gtk::ScrolledWindow* swNodeMaps = Gtk::manage(new Gtk::ScrolledWindow); hegyi@1: frame->add(*swNodeMaps); hegyi@1: hegyi@1: swNodeMaps->add(twNodeMaps); hegyi@1: hegyi@1: refNodeMapStore = Gtk::ListStore::create(NodeMapColumns); hegyi@1: hegyi@1: std::vector node_maps = pMapStorage->getNodeMapList(); hegyi@1: for (std::vector::const_iterator it = node_maps.begin(); hegyi@1: it != node_maps.end(); ++it) hegyi@1: { hegyi@1: Gtk::TreeModel::Row row = *(refNodeMapStore->append()); hegyi@1: row[NodeMapColumns.colName] = *it; hegyi@1: switch (pMapStorage->getNodeMapSaveDest(*it)) hegyi@1: { hegyi@1: case MapStorage::GUI_SECT: hegyi@1: row[NodeMapColumns.colSaveToMainSect] = false; hegyi@1: row[NodeMapColumns.colSaveToGuiSect] = true; hegyi@1: break; hegyi@1: case MapStorage::NESET_SECT: hegyi@1: row[NodeMapColumns.colSaveToMainSect] = true; hegyi@1: row[NodeMapColumns.colSaveToGuiSect] = false; hegyi@1: break; hegyi@1: case MapStorage::DONT_SAVE: hegyi@1: row[NodeMapColumns.colSaveToMainSect] = false; hegyi@1: row[NodeMapColumns.colSaveToGuiSect] = false; hegyi@1: break; hegyi@1: } hegyi@1: } hegyi@1: hegyi@1: twNodeMaps.set_model(refNodeMapStore); hegyi@1: twNodeMaps.append_column("Name", NodeMapColumns.colName); hegyi@1: twNodeMaps.append_column_editable("Nodeset section", hegyi@1: NodeMapColumns.colSaveToMainSect); hegyi@1: twNodeMaps.append_column_editable("GUI section", hegyi@1: NodeMapColumns.colSaveToGuiSect); hegyi@1: hegyi@1: swNodeMaps->set_size_request(-1, 200); hegyi@1: swNodeMaps->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); hegyi@1: hegyi@1: refNodeMapStore->signal_row_changed().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onNodeMapRowChanged)); hegyi@1: } hegyi@1: hegyi@1: // child widgets of vbArcMaps hegyi@1: hegyi@1: { hegyi@1: Gtk::VBox* box1 = Gtk::manage(new Gtk::VBox(false, 6)); hegyi@1: vbArcMaps->pack_start(*box1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* label1 = hegyi@1: Gtk::manage(new Gtk::Label("Save Destination")); hegyi@1: label1->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); hegyi@1: label1->set_use_markup(); hegyi@1: box1->pack_start(*label1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::HBox* box2 = Gtk::manage(new Gtk::HBox); hegyi@1: box1->pack_start(*box2, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Label* fill1 = Gtk::manage(new Gtk::Label(" ")); hegyi@1: box2->pack_start(*fill1, Gtk::PACK_SHRINK); hegyi@1: hegyi@1: Gtk::Frame* frame = Gtk::manage(new Gtk::Frame); hegyi@1: box2->pack_start(*frame, Gtk::PACK_EXPAND_WIDGET); hegyi@1: hegyi@1: Gtk::ScrolledWindow* swArcMaps = Gtk::manage(new Gtk::ScrolledWindow); hegyi@1: frame->add(*swArcMaps); hegyi@1: hegyi@1: swArcMaps->add(twArcMaps); hegyi@1: hegyi@1: refArcMapStore = Gtk::ListStore::create(ArcMapColumns); hegyi@1: hegyi@1: std::vector arc_maps = pMapStorage->getArcMapList(); hegyi@1: for (std::vector::const_iterator it = arc_maps.begin(); hegyi@1: it != arc_maps.end(); ++it) hegyi@1: { hegyi@1: Gtk::TreeModel::Row row = *(refArcMapStore->append()); hegyi@1: row[ArcMapColumns.colName] = *it; hegyi@1: switch (pMapStorage->getArcMapSaveDest(*it)) hegyi@1: { hegyi@1: case MapStorage::GUI_SECT: hegyi@1: row[ArcMapColumns.colSaveToMainSect] = false; hegyi@1: row[ArcMapColumns.colSaveToGuiSect] = true; hegyi@1: break; hegyi@1: case MapStorage::NESET_SECT: hegyi@1: row[ArcMapColumns.colSaveToMainSect] = true; hegyi@1: row[ArcMapColumns.colSaveToGuiSect] = false; hegyi@1: break; hegyi@1: case MapStorage::DONT_SAVE: hegyi@1: row[ArcMapColumns.colSaveToMainSect] = false; hegyi@1: row[ArcMapColumns.colSaveToGuiSect] = false; hegyi@1: break; hegyi@1: } hegyi@1: } hegyi@1: hegyi@1: twArcMaps.set_model(refArcMapStore); hegyi@1: twArcMaps.append_column("Name", ArcMapColumns.colName); hegyi@1: twArcMaps.append_column_editable("Arcset section", hegyi@1: ArcMapColumns.colSaveToMainSect); hegyi@1: twArcMaps.append_column_editable("GUI section", hegyi@1: ArcMapColumns.colSaveToGuiSect); hegyi@1: hegyi@1: swArcMaps->set_size_request(-1, 200); hegyi@1: swArcMaps->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); hegyi@1: hegyi@1: refArcMapStore->signal_row_changed().connect( hegyi@1: sigc::mem_fun(*this, &SaveDetailsWidget::onArcMapRowChanged)); hegyi@1: } hegyi@1: hegyi@1: show_all_children(); hegyi@1: } hegyi@1: hegyi@1: void SaveDetailsWidget::onGuiSectSaveDestChanged() hegyi@1: { hegyi@1: if (rbLgfFile.get_active()) hegyi@1: { hegyi@1: pMapStorage->setGUIDataSaveLocation(MapStorage::LGF_FILE); hegyi@1: } hegyi@1: else if (rbConfFile.get_active()) hegyi@1: { hegyi@1: pMapStorage->setGUIDataSaveLocation(MapStorage::CONF_FILE); hegyi@1: } hegyi@1: } hegyi@1: hegyi@1: void SaveDetailsWidget::onArcMapRowChanged(const Gtk::TreeModel::Path& path, hegyi@1: const Gtk::TreeModel::iterator& iter) hegyi@1: { hegyi@1: Gtk::TreeModel::Row row = *iter; hegyi@1: Glib::ustring map_name = row[ArcMapColumns.colName]; hegyi@1: if (row[ArcMapColumns.colSaveToMainSect] && hegyi@1: row[ArcMapColumns.colSaveToGuiSect]) hegyi@1: { hegyi@1: if (pMapStorage->getArcMapSaveDest(map_name) == MapStorage::NESET_SECT) hegyi@1: { hegyi@1: pMapStorage->setArcMapSaveDest(map_name, MapStorage::GUI_SECT); hegyi@1: row[ArcMapColumns.colSaveToMainSect] = false; hegyi@1: } hegyi@1: else hegyi@1: { hegyi@1: pMapStorage->setArcMapSaveDest(map_name, MapStorage::NESET_SECT); hegyi@1: row[ArcMapColumns.colSaveToGuiSect] = false; hegyi@1: } hegyi@1: } hegyi@1: else if (row[ArcMapColumns.colSaveToMainSect]) hegyi@1: { hegyi@1: pMapStorage->setArcMapSaveDest(map_name, MapStorage::NESET_SECT); hegyi@1: } hegyi@1: else if (row[ArcMapColumns.colSaveToGuiSect]) hegyi@1: { hegyi@1: pMapStorage->setArcMapSaveDest(map_name, MapStorage::GUI_SECT); hegyi@1: } hegyi@1: else hegyi@1: { hegyi@1: pMapStorage->setArcMapSaveDest(map_name, MapStorage::DONT_SAVE); hegyi@1: } hegyi@1: } hegyi@1: hegyi@1: void SaveDetailsWidget::onNodeMapRowChanged(const Gtk::TreeModel::Path& path, hegyi@1: const Gtk::TreeModel::iterator& iter) hegyi@1: { hegyi@1: Gtk::TreeModel::Row row = *iter; hegyi@1: Glib::ustring map_name = row[NodeMapColumns.colName]; hegyi@1: if (row[NodeMapColumns.colSaveToMainSect] && hegyi@1: row[NodeMapColumns.colSaveToGuiSect]) hegyi@1: { hegyi@1: if (pMapStorage->getNodeMapSaveDest(map_name) == MapStorage::NESET_SECT) hegyi@1: { hegyi@1: pMapStorage->setNodeMapSaveDest(map_name, MapStorage::GUI_SECT); hegyi@1: row[NodeMapColumns.colSaveToMainSect] = false; hegyi@1: } hegyi@1: else hegyi@1: { hegyi@1: pMapStorage->setNodeMapSaveDest(map_name, MapStorage::NESET_SECT); hegyi@1: row[NodeMapColumns.colSaveToGuiSect] = false; hegyi@1: } hegyi@1: } hegyi@1: else if (row[NodeMapColumns.colSaveToMainSect]) hegyi@1: { hegyi@1: pMapStorage->setNodeMapSaveDest(map_name, MapStorage::NESET_SECT); hegyi@1: } hegyi@1: else if (row[NodeMapColumns.colSaveToGuiSect]) hegyi@1: { hegyi@1: pMapStorage->setNodeMapSaveDest(map_name, MapStorage::GUI_SECT); hegyi@1: } hegyi@1: else hegyi@1: { hegyi@1: pMapStorage->setNodeMapSaveDest(map_name, MapStorage::DONT_SAVE); hegyi@1: } hegyi@1: } hegyi@1: hegyi@1: void SaveDetailsWidget::onNodeCoordSaveDestChanged() hegyi@1: { hegyi@1: if (rblueCoordGuiSection.get_active()) hegyi@1: { hegyi@1: pMapStorage->setNodeCoordsSaveDest(MapStorage::SpecMapSaveOpts::GUI_SECT); hegyi@1: rblueCoordOneMap.set_sensitive(false); hegyi@1: rblueCoordTwoMaps.set_sensitive(false); hegyi@1: entNodeCoordsOneMap.set_sensitive(false); hegyi@1: entNodeCoordsTwoMaps1.set_sensitive(false); hegyi@1: entNodeCoordsTwoMaps2.set_sensitive(false); hegyi@1: } hegyi@1: else if (rblueCoordNodesetSection.get_active()) hegyi@1: { hegyi@1: pMapStorage->setNodeCoordsSaveDest(MapStorage::SpecMapSaveOpts::NESET_SECT); hegyi@1: rblueCoordOneMap.set_sensitive(true); hegyi@1: rblueCoordTwoMaps.set_sensitive(true); hegyi@1: switch (pMapStorage->getNodeCoordsSaveMapNum()) hegyi@1: { hegyi@1: case MapStorage::SpecMapSaveOpts::ONE_MAP: hegyi@1: entNodeCoordsOneMap.set_sensitive(true); hegyi@1: entNodeCoordsTwoMaps1.set_sensitive(false); hegyi@1: entNodeCoordsTwoMaps2.set_sensitive(false); hegyi@1: break; hegyi@1: case MapStorage::SpecMapSaveOpts::TWO_MAPS: hegyi@1: entNodeCoordsOneMap.set_sensitive(false); hegyi@1: entNodeCoordsTwoMaps1.set_sensitive(true); hegyi@1: entNodeCoordsTwoMaps2.set_sensitive(true); hegyi@1: break; hegyi@1: } hegyi@1: } hegyi@1: } hegyi@1: hegyi@1: void SaveDetailsWidget::onNodeCoordMapNumChanged() hegyi@1: { hegyi@1: if (rblueCoordOneMap.get_active()) hegyi@1: { hegyi@1: pMapStorage->setNodeCoordsSaveMapNum(MapStorage::SpecMapSaveOpts::ONE_MAP); hegyi@1: entNodeCoordsOneMap.set_sensitive(true); hegyi@1: entNodeCoordsTwoMaps1.set_sensitive(false); hegyi@1: entNodeCoordsTwoMaps2.set_sensitive(false); hegyi@1: } hegyi@1: else if (rblueCoordTwoMaps.get_active()) hegyi@1: { hegyi@1: pMapStorage->setNodeCoordsSaveMapNum(MapStorage::SpecMapSaveOpts::TWO_MAPS); hegyi@1: entNodeCoordsOneMap.set_sensitive(false); hegyi@1: entNodeCoordsTwoMaps1.set_sensitive(true); hegyi@1: entNodeCoordsTwoMaps2.set_sensitive(true); hegyi@1: } hegyi@1: } hegyi@1: hegyi@1: void SaveDetailsWidget::onNodeCoordsOneMapName() hegyi@1: { hegyi@1: pMapStorage->setNodeCoordsOneMapName(entNodeCoordsOneMap.get_text()); hegyi@1: } hegyi@1: void SaveDetailsWidget::onNodeCoordsTwoMaps1Name() hegyi@1: { hegyi@1: pMapStorage->setNodeCoordsTwoMaps1Name(entNodeCoordsTwoMaps1.get_text()); hegyi@1: } hegyi@1: void SaveDetailsWidget::onNodeCoordsTwoMaps2Name() hegyi@1: { hegyi@1: pMapStorage->setNodeCoordsTwoMaps2Name(entNodeCoordsTwoMaps2.get_text()); hegyi@1: } hegyi@1: hegyi@1: void SaveDetailsWidget::onArrowCoordSaveDestChanged() hegyi@1: { hegyi@1: if (rbArrowCoordGuiSection.get_active()) hegyi@1: { hegyi@1: pMapStorage->setArrowCoordsSaveDest(MapStorage::SpecMapSaveOpts::GUI_SECT); hegyi@1: rbArrowCoordOneMap.set_sensitive(false); hegyi@1: rbArrowCoordTwoMaps.set_sensitive(false); hegyi@1: entArrowCoordsOneMap.set_sensitive(false); hegyi@1: entArrowCoordsTwoMaps1.set_sensitive(false); hegyi@1: entArrowCoordsTwoMaps2.set_sensitive(false); hegyi@1: } hegyi@1: else if (rbArrowCoordArcsetSection.get_active()) hegyi@1: { hegyi@1: pMapStorage->setArrowCoordsSaveDest(MapStorage::SpecMapSaveOpts::NESET_SECT); hegyi@1: rbArrowCoordOneMap.set_sensitive(true); hegyi@1: rbArrowCoordTwoMaps.set_sensitive(true); hegyi@1: switch (pMapStorage->getArrowCoordsSaveMapNum()) hegyi@1: { hegyi@1: case MapStorage::SpecMapSaveOpts::ONE_MAP: hegyi@1: entArrowCoordsOneMap.set_sensitive(true); hegyi@1: entArrowCoordsTwoMaps1.set_sensitive(false); hegyi@1: entArrowCoordsTwoMaps2.set_sensitive(false); hegyi@1: break; hegyi@1: case MapStorage::SpecMapSaveOpts::TWO_MAPS: hegyi@1: entArrowCoordsOneMap.set_sensitive(false); hegyi@1: entArrowCoordsTwoMaps1.set_sensitive(true); hegyi@1: entArrowCoordsTwoMaps2.set_sensitive(true); hegyi@1: break; hegyi@1: } hegyi@1: } hegyi@1: } hegyi@1: hegyi@1: void SaveDetailsWidget::onArrowCoordMapNumChanged() hegyi@1: { hegyi@1: if (rbArrowCoordOneMap.get_active()) hegyi@1: { hegyi@1: pMapStorage->setArrowCoordsSaveMapNum(MapStorage::SpecMapSaveOpts::ONE_MAP); hegyi@1: entArrowCoordsOneMap.set_sensitive(true); hegyi@1: entArrowCoordsTwoMaps1.set_sensitive(false); hegyi@1: entArrowCoordsTwoMaps2.set_sensitive(false); hegyi@1: } hegyi@1: else if (rbArrowCoordTwoMaps.get_active()) hegyi@1: { hegyi@1: pMapStorage->setArrowCoordsSaveMapNum(MapStorage::SpecMapSaveOpts::TWO_MAPS); hegyi@1: entArrowCoordsOneMap.set_sensitive(false); hegyi@1: entArrowCoordsTwoMaps1.set_sensitive(true); hegyi@1: entArrowCoordsTwoMaps2.set_sensitive(true); hegyi@1: } hegyi@1: } hegyi@1: hegyi@1: void SaveDetailsWidget::onArrowCoordsOneMapName() hegyi@1: { hegyi@1: pMapStorage->setArrowCoordsOneMapName(entArrowCoordsOneMap.get_text()); hegyi@1: } hegyi@1: void SaveDetailsWidget::onArrowCoordsTwoMaps1Name() hegyi@1: { hegyi@1: pMapStorage->setArrowCoordsTwoMaps1Name(entArrowCoordsTwoMaps1.get_text()); hegyi@1: } hegyi@1: void SaveDetailsWidget::onArrowCoordsTwoMaps2Name() hegyi@1: { hegyi@1: pMapStorage->setArrowCoordsTwoMaps2Name(entArrowCoordsTwoMaps2.get_text()); hegyi@1: } hegyi@1: hegyi@1: SaveDetailsWidget::~SaveDetailsWidget() hegyi@1: { hegyi@1: }