diff --git a/BuildTools/macosx/install.sh b/BuildTools/macosx/install.sh index c6ddbde0..890fab3f 100755 --- a/BuildTools/macosx/install.sh +++ b/BuildTools/macosx/install.sh @@ -8,7 +8,8 @@ echo $GEODA_HOME CPUS=2 # Install boost 1.75 -brew install boost +brew install boost@1.76 +ln -s /usr/local/opt/boost@1.76 /usr/local/opt/boost # Install libgdal 3.6 brew install gdal diff --git a/BuildTools/macosx/install_name.py b/BuildTools/macosx/install_name.py index 8138146a..373c4fc8 100644 --- a/BuildTools/macosx/install_name.py +++ b/BuildTools/macosx/install_name.py @@ -27,10 +27,14 @@ def ProcessDependency(dir_path, dylib_name): copyitem = '/usr/local/opt/icu4c/lib/libicuuc.70.dylib' if item == '@loader_path/libicuuc.71.dylib': copyitem = '/usr/local/opt/icu4c/lib/libicuuc.71.dylib' + if item == '@loader_path/libicuuc.72.dylib': + copyitem = '/usr/local/opt/icu4c/lib/libicuuc.72.dylib' if item == '@loader_path/libicudata.70.dylib': copyitem = '/usr/local/opt/icu4c/lib/libicudata.70.dylib' if item == '@loader_path/libicudata.71.dylib': copyitem = '/usr/local/opt/icu4c/lib/libicudata.71.dylib' + if item == '@loader_path/libicudata.72.dylib': + copyitem = '/usr/local/opt/icu4c/lib/libicudata.72.dylib' if item == '@loader_path/libbrotlicommon.1.dylib': copyitem = '/usr/local/opt/brotli/lib/libbrotlicommon.1.dylib' if item == '@rpath/libIlmThread-3_1.30.dylib': diff --git a/DataViewer/TableFrame.cpp b/DataViewer/TableFrame.cpp index 05ca9d3a..08e14164 100644 --- a/DataViewer/TableFrame.cpp +++ b/DataViewer/TableFrame.cpp @@ -281,54 +281,56 @@ void TableFrame::DisplayPopupMenu( wxGridEvent& ev ) void TableFrame::SetEncodingCheckmarks(wxMenu* m, wxFontEncoding e) { - m->FindItem(XRCID("ID_ENCODING_UTF8")) - ->Check(e==wxFONTENCODING_UTF8); - m->FindItem(XRCID("ID_ENCODING_UTF16")) - ->Check(e==wxFONTENCODING_UTF16LE); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1250")) - ->Check(e==wxFONTENCODING_CP1250); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1251")) - ->Check(e==wxFONTENCODING_CP1251); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1254")) - ->Check(e==wxFONTENCODING_CP1254); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1255")) - ->Check(e==wxFONTENCODING_CP1255); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1256")) - ->Check(e==wxFONTENCODING_CP1256); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1258")) - ->Check(e==wxFONTENCODING_CP1258); - m->FindItem(XRCID("ID_ENCODING_CP852")) - ->Check(e==wxFONTENCODING_CP852); - m->FindItem(XRCID("ID_ENCODING_CP866")) - ->Check(e==wxFONTENCODING_CP866); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_1")) - ->Check(e==wxFONTENCODING_ISO8859_1); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_2")) - ->Check(e==wxFONTENCODING_ISO8859_2); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_3")) - ->Check(e==wxFONTENCODING_ISO8859_3); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_5")) - ->Check(e==wxFONTENCODING_ISO8859_5); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_7")) - ->Check(e==wxFONTENCODING_ISO8859_7); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_8")) - ->Check(e==wxFONTENCODING_ISO8859_8); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_9")) - ->Check(e==wxFONTENCODING_ISO8859_9); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_10")) - ->Check(e==wxFONTENCODING_ISO8859_10); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_15")) - ->Check(e==wxFONTENCODING_ISO8859_15); - m->FindItem(XRCID("ID_ENCODING_GB2312")) - ->Check(e==wxFONTENCODING_GB2312); - m->FindItem(XRCID("ID_ENCODING_BIG5")) - ->Check(e==wxFONTENCODING_BIG5); - m->FindItem(XRCID("ID_ENCODING_KOI8_R")) - ->Check(e==wxFONTENCODING_KOI8); - m->FindItem(XRCID("ID_ENCODING_SHIFT_JIS")) - ->Check(e==wxFONTENCODING_SHIFT_JIS); - m->FindItem(XRCID("ID_ENCODING_EUC_JP"))->Check(e==wxFONTENCODING_EUC_JP); - m->FindItem(XRCID("ID_ENCODING_EUC_KR"))->Check(e==wxFONTENCODING_EUC_KR); + wxMenuItem* menu = m->FindItem(XRCID("ID_ENCODING_UTF8")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_UTF8); + menu = m->FindItem(XRCID("ID_ENCODING_UTF16")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_UTF16LE); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1250")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1250); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1251")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1251); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1254")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1254); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1255")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1255); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1256")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1256); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1258")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1258); + menu = m->FindItem(XRCID("ID_ENCODING_CP852")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP852); + menu = m->FindItem(XRCID("ID_ENCODING_CP866")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP866); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_1")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_1); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_2")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_2); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_3")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_3); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_5")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_5); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_7")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_7); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_8")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_8); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_9")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_9); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_10")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_10); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_15")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_15); + menu = m->FindItem(XRCID("ID_ENCODING_GB2312")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_GB2312); + menu = m->FindItem(XRCID("ID_ENCODING_BIG5")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_BIG5); + menu = m->FindItem(XRCID("ID_ENCODING_KOI8_R")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_KOI8); + menu = m->FindItem(XRCID("ID_ENCODING_SHIFT_JIS")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_SHIFT_JIS); + menu = m->FindItem(XRCID("ID_ENCODING_EUC_JP")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_EUC_JP); + menu = m->FindItem(XRCID("ID_ENCODING_EUC_KR")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_EUC_KR); } void TableFrame::OnRightClickEvent( wxGridEvent& ev ) diff --git a/DialogTools/HClusterDlg.cpp b/DialogTools/HClusterDlg.cpp index c3428ce1..bb8599c6 100644 --- a/DialogTools/HClusterDlg.cpp +++ b/DialogTools/HClusterDlg.cpp @@ -528,8 +528,6 @@ bool HClusterDlg::Run(vector& clusters) node2 = node2 < rows ? node2 : rows-node2-1; node1 = node1 < rows ? node1 : rows-node1-1; - cout << i<< ":" << NN->node1 <<", " << NN->node2 << ", " << NN->dist <dist; @@ -558,6 +556,8 @@ void HClusterDlg::OnOKClick(wxCommandEvent& event ) // draw dendrogram m_panel->Setup(htree, rows, n_cluster, clusters, cutoffDistance); + + OnClusterChoice(event); saveButton->Enable(); } @@ -685,7 +685,6 @@ void DendrogramPanel::OnEvent( wxMouseEvent& event ) split_line->move(pt, startPos); int x = split_line->getX(); - //std::cout << x << "," << pt.x << std::endl; Refresh(); OnSplitLineChange(x); startPos = pt; @@ -702,7 +701,6 @@ void DendrogramPanel::OnEvent( wxMouseEvent& event ) select_box->Offset(event.GetPosition() - startPos); } else { select_box->SetBottomRight(event.GetPosition()); - //std::cout <width << select_box->height <intersects(*select_box)) { @@ -867,9 +865,6 @@ void DendrogramPanel::OnSplitLineChange(int x) if (all_nodes) nclusters = nelements; if (cutoffDistance < minDistance) cutoffDistance = minDistance; - - //std::cout << "x:" << x << ", cutoff:" << cutoffDistance << "nclusters:" << nclusters << std::endl; - if (nclusters > max_n_clusters) nclusters = max_n_clusters; int* clusterid = new int[nelements]; diff --git a/Explore/3DPlotView.cpp b/Explore/3DPlotView.cpp index 2bc60a2b..94fc7a4b 100644 --- a/Explore/3DPlotView.cpp +++ b/Explore/3DPlotView.cpp @@ -177,7 +177,7 @@ void C3DPlotCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) s << "Synchronize " << var_info[i].name << " with Time Control"; wxMenuItem* mi = menu1->AppendCheckItem(GdaConst::ID_TIME_SYNC_VAR1+i, s, s); - mi->Check(var_info[i].sync_with_global_time); + if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time); } } diff --git a/Explore/BoxNewPlotView.cpp b/Explore/BoxNewPlotView.cpp index 4e7d3497..44ae39c4 100644 --- a/Explore/BoxNewPlotView.cpp +++ b/Explore/BoxNewPlotView.cpp @@ -178,7 +178,7 @@ void BoxPlotCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) wxString s = wxString::Format(_("Synchronize %s with Time Control"), var_info[0].name); wxMenuItem* mi = menu1->AppendCheckItem(GdaConst::ID_TIME_SYNC_VAR1+0, s, s); - mi->Check(var_info[0].sync_with_global_time); + if (mi && mi->IsCheckable()) mi->Check(var_info[0].sync_with_global_time); } wxMenu* menu2 = new wxMenu(wxEmptyString); @@ -186,7 +186,7 @@ void BoxPlotCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) wxString s= _("Fixed scale over time"); wxMenuItem* mi = menu2->AppendCheckItem(GdaConst::ID_FIX_SCALE_OVER_TIME_VAR1, s, s); - mi->Check(var_info[0].fixed_scale); + if (mi && mi->IsCheckable()) mi->Check(var_info[0].fixed_scale); } wxMenu* menu3 = new wxMenu(wxEmptyString); @@ -198,7 +198,7 @@ void BoxPlotCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) s << i+1; wxMenuItem* mi = menu3->AppendCheckItem(GdaConst::ID_PLOTS_PER_VIEW_1+i, s, s); - mi->Check(i+1 == cur_num_plots); + if (mi && mi->IsCheckable()) mi->Check(i+1 == cur_num_plots); } if (max_plots > 10) { wxString s; @@ -214,7 +214,7 @@ void BoxPlotCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) } wxMenuItem* mi = menu3->AppendCheckItem(GdaConst::ID_PLOTS_PER_VIEW_ALL, s, s); - mi->Check(cur_num_plots == max_plots); + if (mi && mi->IsCheckable()) mi->Check(cur_num_plots == max_plots); } menu->Prepend(wxID_ANY, _("Number of Box Plots"), menu3, _("Number of Box Plots")); diff --git a/Explore/CartogramNewView.cpp b/Explore/CartogramNewView.cpp index 29f522e3..463bc935 100644 --- a/Explore/CartogramNewView.cpp +++ b/Explore/CartogramNewView.cpp @@ -294,7 +294,7 @@ void CartogramNewCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) s << "Synchronize " << var_info[i].name << " with Time Control"; wxMenuItem* mi = menu1->AppendCheckItem(GdaConst::ID_TIME_SYNC_VAR1+i, s, s); - mi->Check(var_info[i].sync_with_global_time); + if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time); } } diff --git a/Explore/ConditionalNewView.cpp b/Explore/ConditionalNewView.cpp index 67b13bb2..03c3cc07 100644 --- a/Explore/ConditionalNewView.cpp +++ b/Explore/ConditionalNewView.cpp @@ -221,7 +221,7 @@ void ConditionalNewCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) wxString s; s << "Synchronize " << var_info[i].name << " with Time Control"; wxMenuItem* mi = menu1->AppendCheckItem(GdaConst::ID_TIME_SYNC_VAR1+i, s, s); - mi->Check(var_info[i].sync_with_global_time); + if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time); } } menu->AppendSeparator(); diff --git a/Explore/HistogramView.cpp b/Explore/HistogramView.cpp index e03741be..d13ecda9 100644 --- a/Explore/HistogramView.cpp +++ b/Explore/HistogramView.cpp @@ -297,7 +297,7 @@ void HistogramCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) s << "Synchronize " << var_info[0].name << " with Time Control"; wxMenuItem* mi = menu1->AppendCheckItem(GdaConst::ID_TIME_SYNC_VAR1+0, s, s); - mi->Check(var_info[0].sync_with_global_time); + if (mi && mi->IsCheckable()) mi->Check(var_info[0].sync_with_global_time); } menu->AppendSeparator(); menu->Append(wxID_ANY, _("Time Variable Options"), diff --git a/Explore/LisaScatterPlotView.cpp b/Explore/LisaScatterPlotView.cpp index 131b3d1f..9fb99016 100644 --- a/Explore/LisaScatterPlotView.cpp +++ b/Explore/LisaScatterPlotView.cpp @@ -140,7 +140,7 @@ void LisaScatterPlotCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) s = wxString::Format(s, var_info[i].name); wxMenuItem* mi = menu1->AppendCheckItem(GdaConst::ID_TIME_SYNC_VAR1+i, s, s); - mi->Check(var_info[i].sync_with_global_time); + if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time); } } diff --git a/Explore/MapLayerTree.cpp b/Explore/MapLayerTree.cpp index 6ff1de1f..2dbda135 100644 --- a/Explore/MapLayerTree.cpp +++ b/Explore/MapLayerTree.cpp @@ -838,7 +838,7 @@ void MapTree::OnRightClick(wxMouseEvent& event) // check menu items wxMenuItem* outline = popupMenu->FindItem(XRCID("MAPTREE_OUTLINE_VISIBLE")); - if (outline) { + if (outline && outline->IsCheckable()) { outline->SetCheckable(true); if (ml->GetPenSize() > 0) outline->Check(); } @@ -861,7 +861,7 @@ void MapTree::OnRightClick(wxMouseEvent& event) Connect(XRCID("MAPTREE_BOUNDARY_ONLY"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MapTree::OnShowMapBoundary)); wxMenuItem* boundary = popupMenu->FindItem(XRCID("MAPTREE_BOUNDARY_ONLY")); - if (boundary) { + if (boundary && boundary->IsCheckable()) { boundary->SetCheckable(true); if (ml->IsShowBoundary()) boundary->Check(); } diff --git a/Explore/MapNewView.cpp b/Explore/MapNewView.cpp index a5bc9c2e..12e69f53 100644 --- a/Explore/MapNewView.cpp +++ b/Explore/MapNewView.cpp @@ -324,6 +324,10 @@ void MapCanvas::OnMSTMap(int menu_id) display_mst = !display_mst; if (display_mst) { if (mst_map.Create(project) == false) { + wxString msg = _("Failed to create the Minimum Spanning Tree."); + wxMessageDialog dlg (this, msg, _("Information"), + wxOK | wxICON_INFORMATION); + dlg.ShowModal(); display_mst = false; } } @@ -1453,7 +1457,7 @@ void MapCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) var_info[i].name); wxMenuItem* mi; mi = menu1->AppendCheckItem(GdaConst::ID_TIME_SYNC_VAR1+i, s, s); - mi->Check(var_info[i].sync_with_global_time); + if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time); } } menu->AppendSeparator(); @@ -3718,15 +3722,16 @@ void MapFrame::OnMapBasemap(wxCommandEvent& e) items[j].name); wxMenuItem* menu = popupMenu->FindItem(XRCID(xid)); if (current_item == items[j]) { - menu->Check(true); + if (menu && menu->IsCheckable()) menu->Check(true); no_basemap = false; } else { - menu->Check(false); + if (menu && menu->IsCheckable()) menu->Check(false); } } } if (no_basemap) { - popupMenu->FindItem(XRCID("ID_NO_BASEMAP"))->Check(); + wxMenuItem* menu = popupMenu->FindItem(XRCID("ID_NO_BASEMAP")); + if (menu && menu->IsCheckable()) menu->Check(); } PopupMenu(popupMenu, wxDefaultPosition); } diff --git a/Explore/MapViewHelper.cpp b/Explore/MapViewHelper.cpp index de75deaf..b1a3c654 100644 --- a/Explore/MapViewHelper.cpp +++ b/Explore/MapViewHelper.cpp @@ -425,12 +425,6 @@ void MSTMapHelper::CreateDistMatrix(const std::vector& points) bool MSTMapHelper::Create(Project* project) { - if (check_spatial_ref) { - bool cont = project->CheckSpatialProjection(check_spatial_ref); - if (cont == false) { - return false; - } - } if (project == 0) return false; if (mst_edges.empty() == false) return true; // already has a MST diff --git a/Explore/PCPNewView.cpp b/Explore/PCPNewView.cpp index 4a525d03..cd9434b1 100644 --- a/Explore/PCPNewView.cpp +++ b/Explore/PCPNewView.cpp @@ -210,7 +210,7 @@ void PCPCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) s << "Synchronize " << var_info[i].name << " with Time Control"; wxMenuItem* mi = menu1->AppendCheckItem(GdaConst::ID_TIME_SYNC_VAR1+i, s, s); - mi->Check(var_info[i].sync_with_global_time); + if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time); } } diff --git a/Explore/ScatterNewPlotView.cpp b/Explore/ScatterNewPlotView.cpp index 870f68d3..7dd904dd 100644 --- a/Explore/ScatterNewPlotView.cpp +++ b/Explore/ScatterNewPlotView.cpp @@ -355,7 +355,7 @@ void ScatterNewPlotCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) wxString s = _("Synchronize %s with Time Control"); s = wxString::Format(s, var_info[i].name); wxMenuItem* mi = menu1->AppendCheckItem(GdaConst::ID_TIME_SYNC_VAR1+i, s, s); - mi->Check(var_info[i].sync_with_global_time); + if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time); } } @@ -364,13 +364,13 @@ void ScatterNewPlotCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu) wxString s = _("Fixed x-axis scale over time"); wxMenuItem* mi = menu2->AppendCheckItem(GdaConst::ID_FIX_SCALE_OVER_TIME_VAR1, s, s); - mi->Check(var_info[0].fixed_scale); + if (mi && mi->IsCheckable()) mi->Check(var_info[0].fixed_scale); } if (var_info[1].is_time_variant) { wxString s = _("Fixed y-axis scale over time"); wxMenuItem* mi = menu2->AppendCheckItem(GdaConst::ID_FIX_SCALE_OVER_TIME_VAR2, s, s); - mi->Check(var_info[1].fixed_scale); + if (mi && mi->IsCheckable()) mi->Check(var_info[1].fixed_scale); } menu->Prepend(wxID_ANY, _("Scale Options"), menu2, _("Scale Options")); diff --git a/GeoDa.cpp b/GeoDa.cpp index 600bd8eb..5003b692 100644 --- a/GeoDa.cpp +++ b/GeoDa.cpp @@ -7042,31 +7042,56 @@ void GdaFrame::OnEncodingEUC_KR(wxCommandEvent& event) void GdaFrame::SetEncodingCheckmarks(wxFontEncoding e) { wxMenuBar* m = GetMenuBar(); - m->FindItem(XRCID("ID_ENCODING_UTF8"))->Check(e==wxFONTENCODING_UTF8); - m->FindItem(XRCID("ID_ENCODING_UTF16"))->Check(e==wxFONTENCODING_UTF16LE); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1250"))->Check(e==wxFONTENCODING_CP1250); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1251"))->Check(e==wxFONTENCODING_CP1251); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1254"))->Check(e==wxFONTENCODING_CP1254); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1255"))->Check(e==wxFONTENCODING_CP1255); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1256"))->Check(e==wxFONTENCODING_CP1256); - m->FindItem(XRCID("ID_ENCODING_WINDOWS_1258"))->Check(e==wxFONTENCODING_CP1258); - m->FindItem(XRCID("ID_ENCODING_CP852"))->Check(e==wxFONTENCODING_CP852); - m->FindItem(XRCID("ID_ENCODING_CP866"))->Check(e==wxFONTENCODING_CP866); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_1"))->Check(e==wxFONTENCODING_ISO8859_1); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_2"))->Check(e==wxFONTENCODING_ISO8859_2); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_3"))->Check(e==wxFONTENCODING_ISO8859_3); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_5"))->Check(e==wxFONTENCODING_ISO8859_5); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_7"))->Check(e==wxFONTENCODING_ISO8859_7); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_8"))->Check(e==wxFONTENCODING_ISO8859_8); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_9"))->Check(e==wxFONTENCODING_ISO8859_9); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_10"))->Check(e==wxFONTENCODING_ISO8859_10); - m->FindItem(XRCID("ID_ENCODING_ISO_8859_15"))->Check(e==wxFONTENCODING_ISO8859_15); - m->FindItem(XRCID("ID_ENCODING_GB2312"))->Check(e==wxFONTENCODING_GB2312); - m->FindItem(XRCID("ID_ENCODING_BIG5"))->Check(e==wxFONTENCODING_BIG5); - m->FindItem(XRCID("ID_ENCODING_KOI8_R"))->Check(e==wxFONTENCODING_KOI8); - m->FindItem(XRCID("ID_ENCODING_SHIFT_JIS"))->Check(e==wxFONTENCODING_SHIFT_JIS); - m->FindItem(XRCID("ID_ENCODING_EUC_JP"))->Check(e==wxFONTENCODING_EUC_JP); - m->FindItem(XRCID("ID_ENCODING_EUC_KR"))->Check(e==wxFONTENCODING_EUC_KR); + wxMenuItem* menu = m->FindItem(XRCID("ID_ENCODING_UTF8")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_UTF8); + menu = m->FindItem(XRCID("ID_ENCODING_UTF16")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_UTF16LE); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1250")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1250); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1251")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1251); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1254")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1254); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1255")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1255); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1256")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1256); + menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1258")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1258); + menu = m->FindItem(XRCID("ID_ENCODING_CP852")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP852); + menu = m->FindItem(XRCID("ID_ENCODING_CP866")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP866); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_1")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_1); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_2")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_2); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_3")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_3); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_5")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_5); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_7")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_7); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_8")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_8); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_9")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_9); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_10")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_10); + menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_15")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_15); + menu = m->FindItem(XRCID("ID_ENCODING_GB2312")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_GB2312); + menu = m->FindItem(XRCID("ID_ENCODING_BIG5")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_BIG5); + menu = m->FindItem(XRCID("ID_ENCODING_KOI8_R")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_KOI8); + menu = m->FindItem(XRCID("ID_ENCODING_SHIFT_JIS")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_SHIFT_JIS); + menu = m->FindItem(XRCID("ID_ENCODING_EUC_JP")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_EUC_JP); + menu = m->FindItem(XRCID("ID_ENCODING_EUC_KR")); + if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_EUC_KR); } bool GdaFrame::GetHtmlMenuItems() diff --git a/ShapeOperations/OGRDataAdapter.cpp b/ShapeOperations/OGRDataAdapter.cpp index 47c94a81..f8855bf3 100644 --- a/ShapeOperations/OGRDataAdapter.cpp +++ b/ShapeOperations/OGRDataAdapter.cpp @@ -18,7 +18,9 @@ */ #include -#include + +#define BOOST_PHOENIX_STL_TUPLE_H_ +#include #include #include diff --git a/ShapeOperations/OGRDatasourceProxy.cpp b/ShapeOperations/OGRDatasourceProxy.cpp index 969bb663..9e292c30 100644 --- a/ShapeOperations/OGRDatasourceProxy.cpp +++ b/ShapeOperations/OGRDatasourceProxy.cpp @@ -22,8 +22,10 @@ #include #include #include + +#define BOOST_PHOENIX_STL_TUPLE_H_ #include -#include +#include #include "OGRDatasourceProxy.h" #include "OGRLayerProxy.h" diff --git a/version.h b/version.h index 040af623..72abfd46 100644 --- a/version.h +++ b/version.h @@ -2,10 +2,10 @@ namespace Gda { const int version_major = 1; const int version_minor = 20; const int version_build = 0; - const int version_subbuild = 32; - const int version_year = 2022; - const int version_month = 12; - const int version_day = 30; + const int version_subbuild = 36; + const int version_year = 2023; + const int version_month = 2; + const int version_day = 12; const int version_night = 0; const int version_type = 2; // 0: alpha, 1: beta, 2: release -} +} // namespace Gda