Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/osx_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Install application certificate
uses: apple-actions/import-codesign-certs@v2
Expand Down Expand Up @@ -72,7 +72,7 @@ jobs:
sudo ln -s /opt/homebrew/opt/gdal /usr/local/opt/gdal
sudo ln -s /opt/homebrew/opt/proj /usr/local/opt/proj

- uses: actions/cache@v3
- uses: actions/cache@v4
id: cache
with:
path: |
Expand Down Expand Up @@ -109,7 +109,7 @@ jobs:
codesign --timestamp -s "Developer ID Application: Geodapress LLC (26M5NG43GP)" -i edu.uchicago.spatial GeoDa$GEODA_VERSION-Installer.dmg

# Upload artifact
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: GeoDa-${{ env.GEODA_VER }}-${{ env.GEODA_ARCH }}-MacOS
path: ${{ github.workspace }}/BuildTools/macosx/create-dmg/GeoDa${{ env.GEODA_VER }}-${{ env.GEODA_ARCH }}-Installer.dmg
6 changes: 3 additions & 3 deletions .github/workflows/ubuntu_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Prepare on ${{ matrix.distro }}
run: |
Expand All @@ -78,7 +78,7 @@ jobs:
sudo apt-get install -y libwebkitgtk-3.0-dev
fi

- uses: actions/cache@v3
- uses: actions/cache@v4
id: cache
with:
path: |
Expand Down Expand Up @@ -111,7 +111,7 @@ jobs:
./install.sh

# Upload artifact
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: GeoDa-${{ env.GEODA_VER }}-${{ env.TARGET_OS }}
path: ${{ github.workspace }}/BuildTools/ubuntu/geoda_${{ env.GEODA_VER }}-1${{ env.TARGET_OS }}1_amd64.deb
8 changes: 4 additions & 4 deletions .github/workflows/windows_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- uses: actions/checkout@v4

# Set environment
- name: Set environment
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
echo ::set-env name=LIB::%LIB%
echo ::set-env name=LIBPATH::%LIBPATH%

- uses: actions/cache@v3
- uses: actions/cache@v4
id: cache
with:
path: |
Expand Down Expand Up @@ -268,12 +268,12 @@ jobs:
}
dir

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: GeoDa-Windows-${{ env.platform }}-installer
path: ${{ github.workspace }}\BuildTools\windows\GeoDa_1.22_${{ env.platform }}_Setup.exe

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: GeoDa-Windows7+-${{ env.platform }}-installer
path: ${{ github.workspace }}\BuildTools\windows\GeoDa_1.22_win7+${{ env.platform }}_Setup.exe
50 changes: 25 additions & 25 deletions DataViewer/TableFrame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -282,55 +282,55 @@ void TableFrame::DisplayPopupMenu( wxGridEvent& ev )
void TableFrame::SetEncodingCheckmarks(wxMenu* m, wxFontEncoding e)
{
wxMenuItem* menu = m->FindItem(XRCID("ID_ENCODING_UTF8"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_UTF8);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_UTF8);
menu = m->FindItem(XRCID("ID_ENCODING_UTF16"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_UTF16LE);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_UTF16LE);
menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1250"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1250);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_CP1250);
menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1251"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1251);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_CP1251);
menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1254"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1254);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_CP1254);
menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1255"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1255);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_CP1255);
menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1256"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1256);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_CP1256);
menu = m->FindItem(XRCID("ID_ENCODING_WINDOWS_1258"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP1258);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_CP1258);
menu = m->FindItem(XRCID("ID_ENCODING_CP852"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP852);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_CP852);
menu = m->FindItem(XRCID("ID_ENCODING_CP866"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_CP866);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_CP866);
menu = m->FindItem(XRCID("ID_ENCODING_ISO_8859_1"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_ISO8859_1);
if (menu && menu->IsCheckable() && menu->GetMenu()) 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);
if (menu && menu->IsCheckable() && menu->GetMenu()) 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);
if (menu && menu->IsCheckable() && menu->GetMenu()) 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);
if (menu && menu->IsCheckable() && menu->GetMenu()) 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);
if (menu && menu->IsCheckable() && menu->GetMenu()) 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);
if (menu && menu->IsCheckable() && menu->GetMenu()) 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);
if (menu && menu->IsCheckable() && menu->GetMenu()) 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);
if (menu && menu->IsCheckable() && menu->GetMenu()) 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);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_ISO8859_15);
menu = m->FindItem(XRCID("ID_ENCODING_GB2312"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_GB2312);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_GB2312);
menu = m->FindItem(XRCID("ID_ENCODING_BIG5"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_BIG5);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_BIG5);
menu = m->FindItem(XRCID("ID_ENCODING_KOI8_R"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_KOI8);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_KOI8);
menu = m->FindItem(XRCID("ID_ENCODING_SHIFT_JIS"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_SHIFT_JIS);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_SHIFT_JIS);
menu = m->FindItem(XRCID("ID_ENCODING_EUC_JP"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_EUC_JP);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_EUC_JP);
menu = m->FindItem(XRCID("ID_ENCODING_EUC_KR"));
if (menu && menu->IsCheckable()) menu->Check(e==wxFONTENCODING_EUC_KR);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(e==wxFONTENCODING_EUC_KR);
}

void TableFrame::OnRightClickEvent( wxGridEvent& ev )
Expand Down
2 changes: 1 addition & 1 deletion Explore/3DPlotView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(var_info[i].sync_with_global_time);
}
}

Expand Down
8 changes: 4 additions & 4 deletions Explore/BoxNewPlotView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,15 +178,15 @@ 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);
if (mi && mi->IsCheckable()) mi->Check(var_info[0].sync_with_global_time);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(var_info[0].sync_with_global_time);
}

wxMenu* menu2 = new wxMenu(wxEmptyString);
{
wxString s= _("Fixed scale over time");
wxMenuItem* mi =
menu2->AppendCheckItem(GdaConst::ID_FIX_SCALE_OVER_TIME_VAR1, s, s);
if (mi && mi->IsCheckable()) mi->Check(var_info[0].fixed_scale);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(var_info[0].fixed_scale);
}

wxMenu* menu3 = new wxMenu(wxEmptyString);
Expand All @@ -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);
if (mi && mi->IsCheckable()) mi->Check(i+1 == cur_num_plots);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(i+1 == cur_num_plots);
}
if (max_plots > 10) {
wxString s;
Expand All @@ -214,7 +214,7 @@ void BoxPlotCanvas::AddTimeVariantOptionsToMenu(wxMenu* menu)
}
wxMenuItem* mi =
menu3->AppendCheckItem(GdaConst::ID_PLOTS_PER_VIEW_ALL, s, s);
if (mi && mi->IsCheckable()) mi->Check(cur_num_plots == max_plots);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(cur_num_plots == max_plots);
}

menu->Prepend(wxID_ANY, _("Number of Box Plots"), menu3, _("Number of Box Plots"));
Expand Down
2 changes: 1 addition & 1 deletion Explore/CartogramNewView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,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);
if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(var_info[i].sync_with_global_time);
}
}

Expand Down
2 changes: 1 addition & 1 deletion Explore/ConditionalNewView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(var_info[i].sync_with_global_time);
}
}
menu->AppendSeparator();
Expand Down
2 changes: 1 addition & 1 deletion Explore/HistogramView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
if (mi && mi->IsCheckable()) mi->Check(var_info[0].sync_with_global_time);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(var_info[0].sync_with_global_time);
}
menu->AppendSeparator();
menu->Append(wxID_ANY, _("Time Variable Options"),
Expand Down
2 changes: 1 addition & 1 deletion Explore/LisaScatterPlotView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(var_info[i].sync_with_global_time);
}
}

Expand Down
4 changes: 2 additions & 2 deletions Explore/MapLayerTree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -838,7 +838,7 @@ void MapTree::OnRightClick(wxMouseEvent& event)

// check menu items
wxMenuItem* outline = popupMenu->FindItem(XRCID("MAPTREE_OUTLINE_VISIBLE"));
if (outline && outline->IsCheckable()) {
if (outline && outline->IsCheckable() && outline->GetMenu()) {
outline->SetCheckable(true);
if (ml->GetPenSize() > 0) outline->Check();
}
Expand All @@ -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 && boundary->IsCheckable()) {
if (boundary && boundary->IsCheckable() && boundary->GetMenu()) {
boundary->SetCheckable(true);
if (ml->IsShowBoundary()) boundary->Check();
}
Expand Down
8 changes: 4 additions & 4 deletions Explore/MapNewView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1457,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);
if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(var_info[i].sync_with_global_time);
}
}
menu->AppendSeparator();
Expand Down Expand Up @@ -3722,16 +3722,16 @@ void MapFrame::OnMapBasemap(wxCommandEvent& e)
items[j].name);
wxMenuItem* menu = popupMenu->FindItem(XRCID(xid));
if (current_item == items[j]) {
if (menu && menu->IsCheckable()) menu->Check(true);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(true);
no_basemap = false;
} else {
if (menu && menu->IsCheckable()) menu->Check(false);
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check(false);
}
}
}
if (no_basemap) {
wxMenuItem* menu = popupMenu->FindItem(XRCID("ID_NO_BASEMAP"));
if (menu && menu->IsCheckable()) menu->Check();
if (menu && menu->IsCheckable() && menu->GetMenu()) menu->Check();
}
PopupMenu(popupMenu, wxDefaultPosition);
}
Expand Down
2 changes: 1 addition & 1 deletion Explore/PCPNewView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(var_info[i].sync_with_global_time);
}
}

Expand Down
6 changes: 3 additions & 3 deletions Explore/ScatterNewPlotView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
if (mi && mi->IsCheckable()) mi->Check(var_info[i].sync_with_global_time);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(var_info[i].sync_with_global_time);
}
}

Expand All @@ -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);
if (mi && mi->IsCheckable()) mi->Check(var_info[0].fixed_scale);
if (mi && mi->IsCheckable() && mi->GetMenu()) 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);
if (mi && mi->IsCheckable()) mi->Check(var_info[1].fixed_scale);
if (mi && mi->IsCheckable() && mi->GetMenu()) mi->Check(var_info[1].fixed_scale);
}

menu->Prepend(wxID_ANY, _("Scale Options"), menu2, _("Scale Options"));
Expand Down
2 changes: 1 addition & 1 deletion GeneralWxUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -435,7 +435,7 @@ bool GeneralWxUtils::CheckMenuItem(wxMenuBar* m, int id, bool check)
{
if (!m) return false;
wxMenuItem* mi = m->FindItem(id);
if (mi && mi->IsCheckable()) {
if (mi && mi->IsCheckable() && mi->GetMenu()) {
mi->Check(check);
return true;
}
Expand Down
Loading
Loading