diff --git a/.files b/.files index 0fea3d6..ecdc04e 100644 Binary files a/.files and b/.files differ diff --git a/.rev b/.rev index 7ae32a2..89bd3e8 100644 --- a/.rev +++ b/.rev @@ -57,4 +57,12 @@ 853512 + + fe48eb31ada78788974b1883a4936a35 + 7.0 + + dimstar_suse + + 999181 + diff --git a/0001-Compilation-fix-for-wxWidgets-3.1.5.patch b/0001-Compilation-fix-for-wxWidgets-3.1.5.patch new file mode 100644 index 0000000..90dcf4f --- /dev/null +++ b/0001-Compilation-fix-for-wxWidgets-3.1.5.patch @@ -0,0 +1,30 @@ +From 7cff6237dacf97be00204de0455c15733948bba9 Mon Sep 17 00:00:00 2001 +From: dghart +Date: Tue, 29 Mar 2022 16:56:54 +0100 +Subject: [PATCH] Compilation fix for wxWidgets >3.1.5 + +--- + Configure.cpp | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/Configure.cpp b/Configure.cpp +index b6af5dd..471414f 100644 +--- a/Configure.cpp ++++ b/Configure.cpp +@@ -141,7 +141,12 @@ Configure::DetectFixedDevices(); // Now there's an ini, add to it any detectabl + wxDEFINE_EVENT(WizardCommandEvent, wxCommandEvent); + #endif + +-NoConfigWizard::NoConfigWizard(wxWindow* parent, int id, const wxString& title, const wxString& configFPath) : wxWizard(parent, id, title, wizardbitmap), m_configFPath(configFPath) ++NoConfigWizard::NoConfigWizard(wxWindow* parent, int id, const wxString& title, const wxString& configFPath) ++#if wxVERSION_NUMBER > 3105 ++ : wxWizard(parent, id, title, wxBitmapBundle::FromBitmap(wizardbitmap)), m_configFPath(configFPath) ++#else ++ : wxWizard(parent, id, title, wizardbitmap), m_configFPath(configFPath) ++#endif + { + m_Next = m_btnNext; + +-- +2.37.2 + diff --git a/0001-Compilation-fixes-for-wxWidgets-3.1.6.patch b/0001-Compilation-fixes-for-wxWidgets-3.1.6.patch new file mode 100644 index 0000000..f2d2173 --- /dev/null +++ b/0001-Compilation-fixes-for-wxWidgets-3.1.6.patch @@ -0,0 +1,140 @@ +From 66ae9a6f2ac526d80559967cda428cd48e5859ee Mon Sep 17 00:00:00 2001 +From: dghart +Date: Sat, 12 Feb 2022 15:45:54 +0000 +Subject: [PATCH] Compilation fixes for wxWidgets 3.1.6 + +Workarounds for the addition of wxBitmapBundle. +--- + Devices.cpp | 4 ++++ + MyDirs.cpp | 9 +++++++++ + MyTreeCtrl.cpp | 49 ++++++++++++++++++++++++++++++++++++++----------- + 3 files changed, 51 insertions(+), 11 deletions(-) + +diff --git a/Devices.cpp b/Devices.cpp +index 5b8cfe9..dc77cdc 100644 +--- a/Devices.cpp ++++ b/Devices.cpp +@@ -210,7 +210,11 @@ wxString bitmap; config->Read(Rootname+subgrp+wxT("/Bitmap"), &bitmap); + wxString tooltip; config->Read(Rootname+subgrp+wxT("/Tooltip"), &tooltip); + + bitmap = BITMAPSDIR + bitmap; ++#if wxVERSION_NUMBER > 3105 ++Create(MyFrame::mainframe->panelette, -1, wxBitmapBundle::FromBitmap(bitmap), wxDefaultPosition, wxDefaultSize, wxNO_BORDER); ++#else + Create(MyFrame::mainframe->panelette, -1, bitmap, wxDefaultPosition, wxDefaultSize, wxNO_BORDER); ++#endif + SetToolTip(tooltip); + } + +diff --git a/MyDirs.cpp b/MyDirs.cpp +index 68f41a8..f370d5b 100644 +--- a/MyDirs.cpp ++++ b/MyDirs.cpp +@@ -522,10 +522,19 @@ for (size_t n=0; n < count; ++n) + array->Item(n)->tooltip, wxITEM_NORMAL); + else + { if (array->Item(n)->bitmaplocation.AfterLast(('/')) == wxT("MyDocuments.xpm")) // If Documents and the label is empty, supply a default ++#if wxVERSION_NUMBER > 3105 ++ toolBar->AddTool(IDM_TOOLBAR_bmfirst+n, label.empty() ? wxString(_("Documents")) : label,wxBitmapBundle::FromBitmap(array->Item(n)->bitmaplocation), ++ array->Item(n)->tooltip, wxITEM_NORMAL); ++ else ++ toolBar->AddTool(IDM_TOOLBAR_bmfirst + n, label, wxBitmapBundle::FromBitmap(array->Item(n)->bitmaplocation), array->Item(n)->tooltip, wxITEM_NORMAL); ++ ++#else + toolBar->AddTool(IDM_TOOLBAR_bmfirst+n, label.empty() ? wxString(_("Documents")) : label, array->Item(n)->bitmaplocation, ++ + array->Item(n)->tooltip, wxITEM_NORMAL); + else + toolBar->AddTool(IDM_TOOLBAR_bmfirst + n, label, array->Item(n)->bitmaplocation, array->Item(n)->tooltip, wxITEM_NORMAL); ++#endif //wxVERSION_NUMBER > 3105 + } + } + +diff --git a/MyTreeCtrl.cpp b/MyTreeCtrl.cpp +index bc1b607..735b6cf 100644 +--- a/MyTreeCtrl.cpp ++++ b/MyTreeCtrl.cpp +@@ -1336,7 +1336,27 @@ void MyTreeCtrl::PaintLevel(wxGenericTreeItem *item, wxDC &dc, int level, int &y + dc.DrawLine(3, y_mid, x - 5, y_mid); + dc.DrawLine(x + 5, y_mid, x + m_spacing, y_mid); + } ++#if wxVERSION_NUMBER > 3105 ++ if ( m_imagesButtons.HasImages() ) ++ { ++ // draw the image button here ++ int image_h = 0, image_w = 0; ++ int image = item->IsExpanded() ? wxTreeItemIcon_Expanded ++ : wxTreeItemIcon_Normal; ++ if ( item->IsSelected() ) ++ image += wxTreeItemIcon_Selected - wxTreeItemIcon_Normal; ++ ++ wxImageList* const ++ imageListButtons = m_imagesButtons.GetImageList(); ++ imageListButtons->GetSize(image, image_w, image_h); ++ int xx = x - image_w/2; ++ int yy = y_mid - image_h/2; + ++ wxDCClipper clip(dc, xx, yy, image_w, image_h); ++ imageListButtons->Draw(image, dc, xx, yy, ++ wxIMAGELIST_DRAW_TRANSPARENT); ++ } ++#else // !wxVERSION_NUMBER > 3105 + if (m_imageListButtons != NULL) + { + // draw the image button here +@@ -1352,9 +1372,10 @@ void MyTreeCtrl::PaintLevel(wxGenericTreeItem *item, wxDC &dc, int level, int &y + wxIMAGELIST_DRAW_TRANSPARENT); + dc.DestroyClippingRegion(); + } +- ++#endif + } + } ++ + else // no custom buttons + { + static const int wImage = 9; +@@ -1495,15 +1516,17 @@ if (headerwindow->IsHidden(i)) continue; // // + image = NO_IMAGE; // //item->GetImage(i); + } + +- if(image != NO_IMAGE) +- { +- if(m_imageListNormal) { +- m_imageListNormal->GetSize(image, image_w, image_h); +- image_w += 4; +- } +- else { +- image = NO_IMAGE; +- } ++ if (image != NO_IMAGE) ++ { ++#if wxVERSION_NUMBER > 3105 ++ if (GetImageList()) { ++ GetImageList()->GetSize(image, image_w, image_h); ++#else ++ if (m_imageListNormal) { ++ m_imageListNormal->GetSize(image, image_w, image_h); ++#endif // wxVERSION_NUMBER > 3105 ++ image_w += 4; ++ } else { image = NO_IMAGE; } + } + + // honor text alignment +@@ -1581,8 +1604,12 @@ if (headerwindow->IsHidden(i)) continue; // // + item->GetY() + extraH, clip_width, + total_h); + +- if(image != NO_IMAGE) { ++ if (image != NO_IMAGE) { ++#if wxVERSION_NUMBER > 3105 ++ GetImageList()->Draw(image, dc, image_x, ++#else + m_imageListNormal->Draw(image, dc, image_x, ++#endif + item->GetY() +((total_h > image_h)? + ((total_h-image_h)/2):0), + wxIMAGELIST_DRAW_TRANSPARENT); +-- +2.37.2 + diff --git a/0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch b/0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch new file mode 100644 index 0000000..136f44d --- /dev/null +++ b/0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch @@ -0,0 +1,41 @@ +From 20eb7c386d41fb2ee9fba4a3782403bcc476e236 Mon Sep 17 00:00:00 2001 +From: dghart +Date: Sun, 13 Feb 2022 10:58:47 +0000 +Subject: [PATCH] Fix a wx assert complaining that a panel was being added to + the wrong sizer + +The assert was technically correct, though it made no difference in practice. +However correcting it resulting in a double-free issue on deletion, fixed by not explicitly deleting the dirctrl's toolbar in the dtor. +--- + MyDirs.cpp | 1 - + MyFrame.cpp | 2 +- + 2 files changed, 1 insertion(+), 2 deletions(-) + +diff --git a/MyDirs.cpp b/MyDirs.cpp +index f370d5b..d4b8b81 100644 +--- a/MyDirs.cpp ++++ b/MyDirs.cpp +@@ -435,7 +435,6 @@ enum + + DirGenericDirCtrl::~DirGenericDirCtrl() + { +-if (toolBar != NULL) toolBar->Destroy(); + } + + void DirGenericDirCtrl::OnIdle(wxIdleEvent& WXUNUSED(event)) +diff --git a/MyFrame.cpp b/MyFrame.cpp +index b3d8ebf..e59b003 100644 +--- a/MyFrame.cpp ++++ b/MyFrame.cpp +@@ -2655,7 +2655,7 @@ DirSizer = new wxBoxSizer(wxVERTICAL); + FileSizer= new wxBoxSizer(wxVERTICAL); + DirToolbarSizer= new wxBoxSizer(wxVERTICAL); + +-m_highlight_panel = new wxPanel(this); ++m_highlight_panel = new wxPanel(DirPanel); + m_highlight_panel->SetBackgroundColour(*wxGetApp().GetBackgroundColourUnSelected()); + wxBoxSizer* highlight_panelSizer= new wxBoxSizer(wxVERTICAL); + m_highlight_panel->SetSizer(highlight_panelSizer); +-- +2.37.2 + diff --git a/0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch b/0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch new file mode 100644 index 0000000..d5b4791 --- /dev/null +++ b/0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch @@ -0,0 +1,26 @@ +From ad558ca953b635f4491973cfe63b6d78cb696f1c Mon Sep 17 00:00:00 2001 +From: dghart +Date: Sun, 13 Feb 2022 14:12:51 +0000 +Subject: [PATCH] Fix a wxAssert when showing the Command-line terminal + +"Must have wxTE_PROCESS_ENTER for wxEVT_TEXT_ENTER to work", though it seemed fine without it :/ +--- + Tools.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Tools.h b/Tools.h +index e01a97f..e1beb36 100644 +--- a/Tools.h ++++ b/Tools.h +@@ -378,7 +378,7 @@ class TerminalEm : public TextCtrlBase // Derive from this so that (in gtk2) + public: + TerminalEm(){}; + TerminalEm(wxWindow* parent, wxWindowID id, const wxString& value = wxT(""), bool multline = true, const wxPoint& pos = wxDefaultPosition, +- const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxT("TerminalEm")) ++ const wxSize& size = wxDefaultSize, long style = wxTE_PROCESS_ENTER, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxT("TerminalEm")) + : TextCtrlBase(parent, id, value, multline, pos, size, style, validator, name), multiline(multline) { Init(); } + ~TerminalEm(); + void Init(); // Do the ctor work here, as otherwise wouldn't be done under xrc +-- +2.37.2 + diff --git a/0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch b/0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch new file mode 100644 index 0000000..23c1336 --- /dev/null +++ b/0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch @@ -0,0 +1,26 @@ +From edb36ef77acf3c64b5bc1acfe106a2455c4589ee Mon Sep 17 00:00:00 2001 +From: dghart +Date: Sun, 13 Feb 2022 14:41:32 +0000 +Subject: [PATCH] Prevent a wx build warning about wxPATH_NORM_ALL being + deprecated + +--- + Filetypes.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Filetypes.cpp b/Filetypes.cpp +index defb120..26c36a9 100644 +--- a/Filetypes.cpp ++++ b/Filetypes.cpp +@@ -437,7 +437,7 @@ if (fpath.IsEmpty()) // If fpath is emp + } + + wxFileName fn(fpath); // Now use wxFileName's Normalize method to do the hard bit +-fn.Normalize(wxPATH_NORM_ALL, cwd); ++fn.Normalize(wxPATH_NORM_ENV_VARS | wxPATH_NORM_DOTS | wxPATH_NORM_TILDE | wxPATH_NORM_ABSOLUTE, cwd); + return fn.GetFullPath(); + } + +-- +2.37.2 + diff --git a/4pane.changes b/4pane.changes index b257932..658a7e3 100644 --- a/4pane.changes +++ b/4pane.changes @@ -1,4 +1,15 @@ ------------------------------------------------------------------- +Thu Aug 25 06:50:19 UTC 2022 - Luigi Baldoni + +- Added 0001-Compilation-fixes-for-wxWidgets-3.1.6.patch, + 0001-Compilation-fix-for-wxWidgets-3.1.5.patch, + 0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch, + 0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch, + and + 0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch + to fix build with wxWidgets 3.2 + +------------------------------------------------------------------- Mon Dec 7 07:17:47 UTC 2020 - Luigi Baldoni - Update to version 7.0 diff --git a/4pane.spec b/4pane.spec index 14e27a0..7efee15 100644 --- a/4pane.spec +++ b/4pane.spec @@ -1,7 +1,7 @@ # # spec file for package 4pane # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2022 SUSE LLC # Copyright (c) 2016 Packman Team # # All modifications and additions to the file contributed by third parties @@ -24,6 +24,16 @@ Summary: A multi-pane detailed-list file manager License: GPL-3.0-only URL: http://www.4pane.co.uk/ Source0: https://sourceforge.net/projects/fourpane/files/%{version}/%{name}-%{version}.tar.gz +# PATCH-FIX-UPSTREAM 0001-Compilation-fixes-for-wxWidgets-3.1.6.patch +Patch0: 0001-Compilation-fixes-for-wxWidgets-3.1.6.patch +# PATCH-FIX-UPSTREAM 0001-Compilation-fix-for-wxWidgets-3.1.5.patch +Patch1: 0001-Compilation-fix-for-wxWidgets-3.1.5.patch +# PATCH-FIX-UPSTREAM 0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch +Patch2: 0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch +# PATCH-FIX-UPSTREAM 0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch +Patch3: 0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch +# PATCH-FIX-UPSTREAM 0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch +Patch4: 0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch BuildRequires: ImageMagick BuildRequires: fdupes BuildRequires: gcc-c++ @@ -41,7 +51,7 @@ emulator and user-defined tools. %lang_package %prep -%autosetup +%autosetup -p1 sed -i -e "s|\$(datadir)/doc|%{_docdir}|g" Makefile.in sed -i -e "s|/usr/doc/4Pane/|%{_docdir}/4Pane/|g" Configure.cpp