From a720ce2fab33c28f99416a47d821d6bb716707d1 Mon Sep 17 00:00:00 2001 From: "B. Stack" Date: Fri, 19 May 2023 10:05:40 -0400 Subject: ffs 12.3 rc1 --- freefilesync/debian/_service | 2 +- freefilesync/debian/changelog | 17 +++- freefilesync/debian/freefilesync+stackrpms.dsc | 2 +- .../debian/patches/ffs_allow_parallel_ops.patch | 8 +- .../debian/patches/ffs_no_check_updates.patch | 98 +++++++++++----------- .../debian/patches/ffs_traditional_view.patch | 50 +++++------ .../patches/revert_buggy_gtk3_change_in_12.1.patch | 91 ++++++++------------ 7 files changed, 132 insertions(+), 136 deletions(-) diff --git a/freefilesync/debian/_service b/freefilesync/debian/_service index f269167..815a0dd 100644 --- a/freefilesync/debian/_service +++ b/freefilesync/debian/_service @@ -14,7 +14,7 @@ git https://gitlab.com/opensource-tracking/FreeFileSync.git - 12.2 + 12.3 _none_ diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog index 8c15b7f..c64598b 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,10 +1,25 @@ +freefilesync (12.3-100+stackrpms) obs; urgency=low + + * Add custom notes to sync configurations + * Highlight comparison and sync buttons + * Show sync stats in config panel tool tip + * Update config panel sync info even if cancelled + * Support FTP listing format missing owner/group + * Fixed "Class not registered" error during installation + * Propagate process priority of launcher executable + * Fixed config panel metadata being reset after renaming + * Fixed config panel keyboard cursor after deletion/rename + * Improved small icon resolution for high-DPI monitors + + -- B. Stack Fri, 19 May 2023 09:27:18 -0400 + freefilesync (12.2-101+stackrpms) obs; urgency=low * Add Fab Stz patch for GTK3 dialogs * Fix git history -- B. Stack Mon, 15 May 2023 18:12:59 -0400 - + freefilesync (12.2-100+stackrpms) obs; urgency=low * Upstream updates diff --git a/freefilesync/debian/freefilesync+stackrpms.dsc b/freefilesync/debian/freefilesync+stackrpms.dsc index a856930..137fed9 100644 --- a/freefilesync/debian/freefilesync+stackrpms.dsc +++ b/freefilesync/debian/freefilesync+stackrpms.dsc @@ -2,7 +2,7 @@ Format: 3.0 (quilt) Source: freefilesync Binary: freefilesync Architecture: any -Version: 12.2-101+stackrpms +Version: 12.3-100+stackrpms Maintainer: B. Stack Homepage: https://freefilesync.org/ Standards-Version: 4.1.4 diff --git a/freefilesync/debian/patches/ffs_allow_parallel_ops.patch b/freefilesync/debian/patches/ffs_allow_parallel_ops.patch index 41434f3..3697d01 100644 --- a/freefilesync/debian/patches/ffs_allow_parallel_ops.patch +++ b/freefilesync/debian/patches/ffs_allow_parallel_ops.patch @@ -1,5 +1,5 @@ -Version: 12.1 -Date: 2023-02-21 +Version: 12.3 +Date: 2023-05-19 Author: bgstack15 Message: The source release appears not to actually include the logic that performs operations in parallel, so this patch doesn't actually do anything. --- a/FreeFileSync/Source/ui/folder_selector.cpp @@ -45,10 +45,10 @@ Message: The source release appears not to actually include the logic that perfo --- a/FreeFileSync/Source/ui/sync_cfg.cpp +++ b/FreeFileSync/Source/ui/sync_cfg.cpp -@@ -461,7 +461,7 @@ emailHistoryOut_(emailHistory), - commandHistoryOut_(commandHistory), +@@ -466,7 +466,7 @@ commandHistoryOut_(commandHistory), globalPairCfg_(globalPairCfg), localPairCfg_(localPairCfg), + showNotesPanel_(!globalPairCfg.miscCfg.notes.empty()), - enableExtraFeatures_(false), + enableExtraFeatures_(true), showMultipleCfgs_(showMultipleCfgs), diff --git a/freefilesync/debian/patches/ffs_no_check_updates.patch b/freefilesync/debian/patches/ffs_no_check_updates.patch index 88806ca..93ac0f0 100644 --- a/freefilesync/debian/patches/ffs_no_check_updates.patch +++ b/freefilesync/debian/patches/ffs_no_check_updates.patch @@ -1,54 +1,54 @@ -Version: 12.1 -Date: 2023-02-21 +Version: 12.3 +Date: 2023-05-19 Author: bgstack15 Message: This is a major rewrite of the ffs_no_check_updates patch from before 11.10 which disabled only a few technical www interactions. This current version completely deletes all logic associated with checking the version of the program. --- a/FreeFileSync/Source/ui/gui_generated.cpp +++ b/FreeFileSync/Source/ui/gui_generated.cpp @@ -110,15 +110,6 @@ MainDialogGenerated::MainDialogGenerated - m_menuHelp->AppendSeparator(); + m_menuHelp->AppendSeparator(); -- m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for updates now") ), wxEmptyString, wxITEM_NORMAL ); -- m_menuHelp->Append( m_menuItemCheckVersionNow ); +- m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for updates now") ) , wxEmptyString, wxITEM_NORMAL ); +- m_menuHelp->Append( m_menuItemCheckVersionNow ); - -- m_menuItemCheckVersionAuto = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("Check &automatically once a week") ), wxEmptyString, wxITEM_CHECK ); -- m_menuHelp->Append( m_menuItemCheckVersionAuto ); -- m_menuItemCheckVersionAuto->Check( true ); +- m_menuItemCheckVersionAuto = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("Check &automatically once a week") ) , wxEmptyString, wxITEM_CHECK ); +- m_menuHelp->Append( m_menuItemCheckVersionAuto ); +- m_menuItemCheckVersionAuto->Check( true ); - -- m_menuHelp->AppendSeparator(); +- m_menuHelp->AppendSeparator(); - - m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) + wxT('\t') + wxT("Shift+F1"), wxEmptyString, wxITEM_NORMAL ); - m_menuHelp->Append( m_menuItemAbout ); + m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) + wxT('\t') + wxT("Shift+F1"), wxEmptyString, wxITEM_NORMAL ); + m_menuHelp->Append( m_menuItemAbout ); @@ -1129,8 +1120,6 @@ MainDialogGenerated::MainDialogGenerated - m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuExportFileList ), this, m_menuItemExportList->GetId()); - m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuResetLayout ), this, m_menuItemResetLayout->GetId()); - m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onShowHelp ), this, m_menuItemHelp->GetId()); -- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersion ), this, m_menuItemCheckVersionNow->GetId()); -- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersionAutomatically ), this, m_menuItemCheckVersionAuto->GetId()); - m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuAbout ), this, m_menuItemAbout->GetId()); - m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCompare ), NULL, this ); - m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCmpSettings ), NULL, this ); + m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuExportFileList ), this, m_menuItemExportList->GetId()); + m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuResetLayout ), this, m_menuItemResetLayout->GetId()); + m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onShowHelp ), this, m_menuItemHelp->GetId()); +- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersion ), this, m_menuItemCheckVersionNow->GetId()); +- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersionAutomatically ), this, m_menuItemCheckVersionAuto->GetId()); + m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuAbout ), this, m_menuItemAbout->GetId()); + m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCompare ), NULL, this ); + m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCmpSettings ), NULL, this ); --- a/FreeFileSync/Source/ui/gui_generated.h +++ b/FreeFileSync/Source/ui/gui_generated.h -@@ -96,8 +96,6 @@ protected: - wxMenuItem* m_menuItemShowOverview; - wxMenu* m_menuHelp; - wxMenuItem* m_menuItemHelp; -- wxMenuItem* m_menuItemCheckVersionNow; -- wxMenuItem* m_menuItemCheckVersionAuto; - wxMenuItem* m_menuItemAbout; - wxBoxSizer* bSizerPanelHolder; - wxPanel* m_panelTopButtons; -@@ -234,8 +232,6 @@ protected: - virtual void onMenuExportFileList( wxCommandEvent& event ) { event.Skip(); } - virtual void onMenuResetLayout( wxCommandEvent& event ) { event.Skip(); } - virtual void onShowHelp( wxCommandEvent& event ) { event.Skip(); } -- virtual void onMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); } -- virtual void onMenuCheckVersionAutomatically( wxCommandEvent& event ) { event.Skip(); } - virtual void onMenuAbout( wxCommandEvent& event ) { event.Skip(); } - virtual void onCompSettingsContextMouse( wxMouseEvent& event ) { event.Skip(); } - virtual void onCompSettingsContext( wxCommandEvent& event ) { event.Skip(); } +@@ -96,8 +96,6 @@ class MainDialogGenerated : public wxFra + wxMenuItem* m_menuItemShowOverview; + wxMenu* m_menuHelp; + wxMenuItem* m_menuItemHelp; +- wxMenuItem* m_menuItemCheckVersionNow; +- wxMenuItem* m_menuItemCheckVersionAuto; + wxMenuItem* m_menuItemAbout; + wxBoxSizer* bSizerPanelHolder; + wxPanel* m_panelTopButtons; +@@ -234,8 +232,6 @@ class MainDialogGenerated : public wxFra + virtual void onMenuExportFileList( wxCommandEvent& event ) { event.Skip(); } + virtual void onMenuResetLayout( wxCommandEvent& event ) { event.Skip(); } + virtual void onShowHelp( wxCommandEvent& event ) { event.Skip(); } +- virtual void onMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); } +- virtual void onMenuCheckVersionAutomatically( wxCommandEvent& event ) { event.Skip(); } + virtual void onMenuAbout( wxCommandEvent& event ) { event.Skip(); } + virtual void onCompSettingsContextMouse( wxMouseEvent& event ) { event.Skip(); } + virtual void onCompSettingsContext( wxCommandEvent& event ) { event.Skip(); } --- a/FreeFileSync/Source/ui/main_dlg.cpp +++ b/FreeFileSync/Source/ui/main_dlg.cpp @@ -30,7 +30,6 @@ @@ -59,15 +59,15 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 #include "gui_status_handler.h" #include "small_dlgs.h" #include "progress_indicator.h" -@@ -834,7 +833,6 @@ imgFileManagerSmall_([] +@@ -843,7 +842,6 @@ imgFileManagerSmall_([] - setImage(*m_menuItemHelp, loadImage("help_sicon")); - setImage(*m_menuItemAbout, loadImage("about_sicon")); -- setImage(*m_menuItemCheckVersionNow, loadImage("update_check_sicon")); + setImage(*m_menuItemHelp, loadImage("help", getDefaultMenuIconSize())); + setImage(*m_menuItemAbout, loadImage("about", getDefaultMenuIconSize())); +- setImage(*m_menuItemCheckVersionNow, loadImage("update_check", getDefaultMenuIconSize())); fixMenuIcons(*m_menuFile); fixMenuIcons(*m_menuActions); -@@ -934,9 +932,6 @@ imgFileManagerSmall_([] +@@ -943,9 +941,6 @@ imgFileManagerSmall_([] //mainly to update row label sizes... updateGui(); @@ -77,7 +77,7 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 //asynchronous call to wxWindow::Layout(): fix superfluous frame on right and bottom when FFS is started in fullscreen mode Bind(wxEVT_IDLE, &MainDialog::onLayoutWindowAsync, this); wxCommandEvent evtDummy; //call once before onLayoutWindowAsync() -@@ -1126,8 +1121,6 @@ void MainDialog::setGlobalCfgOnInit(cons +@@ -1138,8 +1133,6 @@ void MainDialog::setGlobalCfgOnInit(cons auiMgr_.GetPane(m_panelSearch).Hide(); //no need to show it on startup auiMgr_.GetPane(m_panelLog ).Hide(); // @@ -86,7 +86,7 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 auiMgr_.Update(); } -@@ -5839,72 +5832,6 @@ void MainDialog::onMenuExportFileList(wx +@@ -5907,72 +5900,6 @@ void MainDialog::onMenuExportFileList(wx } } @@ -161,7 +161,7 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 //execute just once per startup! --- a/FreeFileSync/Source/ui/main_dlg.h +++ b/FreeFileSync/Source/ui/main_dlg.h -@@ -273,8 +273,6 @@ private: +@@ -275,8 +275,6 @@ private: void onMenuExportFileList (wxCommandEvent& event) override; void onMenuResetLayout (wxCommandEvent& event) override { resetLayout(); } void onMenuFindItem (wxCommandEvent& event) override { showFindPanel(true /*show*/); } //CTRL + F @@ -172,7 +172,7 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 void onMenuQuit (wxCommandEvent& event) override { Close(); } --- a/FreeFileSync/Source/ui/version_check.cpp +++ b/FreeFileSync/Source/ui/version_check.cpp -@@ -79,6 +79,8 @@ void openBrowserForDownload(wxWindow* pa +@@ -81,6 +81,8 @@ void openBrowserForDownload(wxWindow* pa bool fff::shouldRunAutomaticUpdateCheck(time_t lastUpdateCheck) { @@ -181,7 +181,7 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 if (lastUpdateCheck == getVersionCheckInactiveId()) return false; -@@ -175,8 +177,7 @@ void showUpdateAvailableDialog(wxWindow* +@@ -177,8 +179,7 @@ void showUpdateAvailableDialog(wxWindow* std::wstring updateDetailsMsg; try { @@ -191,7 +191,7 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 } catch (const SysError& e) { updateDetailsMsg = _("Failed to retrieve update information.") + + L"\n\n" + e.toString(); } -@@ -198,8 +199,8 @@ void showUpdateAvailableDialog(wxWindow* +@@ -200,8 +201,8 @@ void showUpdateAvailableDialog(wxWindow* std::string getOnlineVersion(const std::vector>& postParams) //throw SysError { @@ -202,7 +202,7 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 if (response.empty() || !std::all_of(response.begin(), response.end(), [](char c) { return isDigit(c) || c == FFS_VERSION_SEPARATOR; }) || -@@ -246,58 +247,6 @@ void fff::disableUpdateCheck(time_t& las +@@ -248,58 +249,6 @@ void fff::disableUpdateCheck(time_t& las } diff --git a/freefilesync/debian/patches/ffs_traditional_view.patch b/freefilesync/debian/patches/ffs_traditional_view.patch index e24afd0..fe04e26 100644 --- a/freefilesync/debian/patches/ffs_traditional_view.patch +++ b/freefilesync/debian/patches/ffs_traditional_view.patch @@ -1,10 +1,10 @@ -Version: 12.1 -Date: 2023-02-21 +Version: 12.3 +Date: 2023-05-19 Author: bgstack15@gmail.com Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVersion" About dialog --- a/FreeFileSync/Source/ui/file_grid.cpp +++ b/FreeFileSync/Source/ui/file_grid.cpp -@@ -473,8 +473,10 @@ private: +@@ -474,8 +474,10 @@ private: case ItemPathFormat::name: return utfTo(fsObj->getItemName()); case ItemPathFormat::relative: @@ -15,7 +15,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe return AFS::getDisplayPath(fsObj->getAbstractPath()); } -@@ -534,8 +536,13 @@ private: +@@ -535,8 +537,13 @@ private: else GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); @@ -30,7 +30,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); } -@@ -641,6 +648,26 @@ private: +@@ -642,6 +649,26 @@ private: else //=> BaseFolderPair groupParentFolder = AFS::getDisplayPath(pdi.fsObj->base().getAbstractPath()); break; @@ -57,7 +57,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe } //path components should follow the app layout direction and are NOT a single piece of text! -@@ -666,11 +693,38 @@ private: +@@ -667,11 +694,38 @@ private: int groupNameWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + getTextExtentBuffered(dc, groupName).x); const int groupNameMinWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + ellipsisWidth); @@ -97,7 +97,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe //not enough space? => collapse if (int excessWidth = groupParentWidth + groupNameWidth + groupItemsWidth - maxWidth; excessWidth > 0) -@@ -737,6 +791,11 @@ private: +@@ -738,6 +792,11 @@ private: } } @@ -109,7 +109,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe return { itemName, -@@ -877,6 +936,9 @@ private: +@@ -878,6 +937,9 @@ private: rectGroup = rectGroupParent = rectGroupName = rectTmp; rectGroupParent.width = groupParentWidth; @@ -119,7 +119,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe rectGroupName .width = groupNameWidth; if (stackedGroupRender) -@@ -900,6 +962,11 @@ private: +@@ -901,6 +963,11 @@ private: rectGroupItems.width = 0; } @@ -131,7 +131,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe //------------------------------------------------------------------------- { //clear background below parent path => harmonize with renderRowBackgound() -@@ -910,8 +977,9 @@ private: +@@ -911,8 +978,9 @@ private: wxRect rectGroupBack = rectGroup; rectGroupBack.width += 2 * gapSize_; //include gap before vline @@ -143,7 +143,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe clearArea(dc, rectGroupBack, getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 == 0)); //clearArea() is surprisingly expensive => call just once! -@@ -919,9 +987,9 @@ private: +@@ -920,9 +988,9 @@ private: //accessibility: always set *both* foreground AND background colors! } @@ -155,7 +155,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe (groupName.empty() || !pdi.folderGroupObj->isEmpty())) //don't show for missing folders { tryDrawNavMarker(rectGroupParent); -@@ -933,14 +1001,14 @@ private: +@@ -934,14 +1002,14 @@ private: drawCellText(dc, rectGroupParentText, groupParentFolder, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, &getTextExtentBuffered(dc, groupParentFolder)); } @@ -172,7 +172,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe wxDCTextColourChanger textColorGroupName(dc); //folder background: coordinate with renderRowBackgound() -@@ -984,16 +1052,16 @@ private: +@@ -985,16 +1053,16 @@ private: rectGroupItems.x += 2 * gapSize_; rectGroupItems.width -= 2 * gapSize_; @@ -193,7 +193,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe drawCudHighlight(rectItemsBack, pdi.fsObj->getSyncOperation()); tryDrawNavMarker(rectGroupItems); -@@ -1124,7 +1192,12 @@ private: +@@ -1125,7 +1193,12 @@ private: groupNameWidth] = getGroupRenderLayout(dc, row, pdi, insanelyHugeWidth); assert(!stackedGroupRender); @@ -207,7 +207,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe const int fileIconWidth = getIconManager().getIconBuffer() ? gapSize_ + getIconManager().getIconSize() : 0; const int ellipsisWidth = getTextExtentBuffered(dc, ELLIPSIS).x; const int itemWidth = itemName.empty() ? 0 : -@@ -1156,6 +1229,10 @@ private: +@@ -1157,6 +1230,10 @@ private: return _("Relative path"); case ItemPathFormat::full: return _("Full path"); @@ -218,7 +218,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe } assert(false); break; -@@ -1413,7 +1490,8 @@ private: +@@ -1414,7 +1491,8 @@ private: GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); //---------------------------------------------------------------------------------- @@ -228,7 +228,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); } -@@ -1437,7 +1515,8 @@ private: +@@ -1438,7 +1516,8 @@ private: { wxRect rectBack = rect; if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! @@ -251,15 +251,15 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe const ItemPathFormat defaultItemPathFormatLeftGrid = ItemPathFormat::relative; --- a/FreeFileSync/Source/ui/main_dlg.cpp +++ b/FreeFileSync/Source/ui/main_dlg.cpp -@@ -439,7 +439,6 @@ void MainDialog::create(const Zstring& g - if (mainDlg->globalCfg_.welcomeDialogLastVersion != ffsVersion) - { - mainDlg->globalCfg_.welcomeDialogLastVersion = ffsVersion; -- showAboutDialog(mainDlg); +@@ -448,7 +448,6 @@ void MainDialog::create(const Zstring& g + + //showAboutDialog(mainDlg); => dialog centered incorrectly (Centos), or hidden behind main dialog (Lubuntu) https://freefilesync.org/forum/viewtopic.php?t=10246 + //mainDlg->CallAfter([mainDlg] { showAboutDialog(mainDlg); }); => dialog centered incorrectly (Windows, Centos) +- mainDlg->guiQueue_.processAsync([] {}, [mainDlg]() { showAboutDialog(mainDlg); }); //apparently oh-kay? } -@@ -2765,6 +2764,8 @@ void MainDialog::onGridLabelContextRim(G +@@ -2777,6 +2776,8 @@ void MainDialog::onGridLabelContextRim(G addFormatEntry(_("Item name" ), ItemPathFormat::name); addFormatEntry(_("Relative path"), ItemPathFormat::relative); addFormatEntry(_("Full path" ), ItemPathFormat::full); @@ -270,7 +270,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe auto setIconSize = [&](GridIconSize sz, bool showIcons) --- a/FreeFileSync/Source/config.cpp +++ b/FreeFileSync/Source/config.cpp -@@ -494,6 +494,12 @@ void writeText(const ItemPathFormat& val +@@ -495,6 +495,12 @@ void writeText(const ItemPathFormat& val case ItemPathFormat::full: output = "Full"; break; @@ -283,7 +283,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe } } -@@ -507,6 +513,10 @@ bool readText(const std::string& input, +@@ -508,6 +514,10 @@ bool readText(const std::string& input, value = ItemPathFormat::relative; else if (tmp == "Full") value = ItemPathFormat::full; diff --git a/freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch b/freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch index 630f250..578b2db 100644 --- a/freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch +++ b/freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch @@ -8,13 +8,11 @@ Author: Fab Stz Origin: self Bug: https://freefilesync.org/forum/viewtopic.php?t=10103 Forwarded: https://freefilesync.org/forum/viewtopic.php?t=10103 -Last-Update: 2023-03-07 +Last-Update: 2023-03-19 -Index: freefilesync/FreeFileSync/Source/ui/abstract_folder_picker.cpp -=================================================================== ---- freefilesync.orig/FreeFileSync/Source/ui/abstract_folder_picker.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/FreeFileSync/Source/ui/abstract_folder_picker.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -127,10 +127,7 @@ +--- a/FreeFileSync/Source/ui/abstract_folder_picker.cpp ++++ b/FreeFileSync/Source/ui/abstract_folder_picker.cpp +@@ -127,10 +127,7 @@ AbstractFolderPickerDlg::AbstractFolderP //---------------------------------------------------------------------- GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -26,11 +24,9 @@ Index: freefilesync/FreeFileSync/Source/ui/abstract_folder_picker.cpp Center(); //needs to be re-applied after a dialog size change! Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //dialog-specific local key events -Index: freefilesync/FreeFileSync/Source/ui/batch_config.cpp -=================================================================== ---- freefilesync.orig/FreeFileSync/Source/ui/batch_config.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/FreeFileSync/Source/ui/batch_config.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -82,10 +82,7 @@ +--- a/FreeFileSync/Source/ui/batch_config.cpp ++++ b/FreeFileSync/Source/ui/batch_config.cpp +@@ -82,10 +82,7 @@ BatchDialog::BatchDialog(wxWindow* paren Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -42,11 +38,9 @@ Index: freefilesync/FreeFileSync/Source/ui/batch_config.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonSaveAs->SetFocus(); -Index: freefilesync/FreeFileSync/Source/ui/progress_indicator.cpp -=================================================================== ---- freefilesync.orig/FreeFileSync/Source/ui/progress_indicator.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/FreeFileSync/Source/ui/progress_indicator.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -221,10 +221,7 @@ +--- a/FreeFileSync/Source/ui/progress_indicator.cpp ++++ b/FreeFileSync/Source/ui/progress_indicator.cpp +@@ -218,10 +218,7 @@ CompareProgressPanel::Impl::Impl(wxFrame m_panelTimeStats->Layout(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -58,7 +52,7 @@ Index: freefilesync/FreeFileSync/Source/ui/progress_indicator.cpp } -@@ -902,10 +899,6 @@ +@@ -884,10 +881,6 @@ syncStat_(&syncStat) //make sure that standard height matches ProcessPhase::comparingContent statistics layout (== largest) this->GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -69,11 +63,9 @@ Index: freefilesync/FreeFileSync/Source/ui/progress_indicator.cpp pnl_.Layout(); this->Center(); //call *after* dialog layout update and *before* wxWindow::Show()! -Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp -=================================================================== ---- freefilesync.orig/FreeFileSync/Source/ui/small_dlgs.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -145,10 +145,6 @@ +--- a/FreeFileSync/Source/ui/small_dlgs.cpp ++++ b/FreeFileSync/Source/ui/small_dlgs.cpp +@@ -145,10 +145,6 @@ AboutDlg::AboutDlg(wxWindow* parent) : A //-------------------------------------------------------------------------- //have animal + text match *final* dialog width GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -84,7 +76,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp { const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 /* grey border*/) / 2; -@@ -164,10 +160,7 @@ +@@ -164,10 +160,7 @@ AboutDlg::AboutDlg(wxWindow* parent) : A Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -96,7 +88,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonClose->SetFocus(); //on GTK ESC is only associated with wxID_OK correctly if we set at least *any* focus at all!!! -@@ -401,11 +394,7 @@ +@@ -404,11 +397,7 @@ CloudSetupDlg::CloudSetupDlg(wxWindow* p m_checkBoxPasswordPrompt->Hide(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -109,7 +101,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! updateGui(); //*after* SetSizeHints when standard dialog height has been calculated -@@ -973,10 +962,7 @@ +@@ -976,10 +965,7 @@ CopyToDialog::CopyToDialog(wxWindow* par Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -121,7 +113,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonOK->SetFocus(); -@@ -1091,10 +1077,7 @@ +@@ -1094,10 +1080,7 @@ DeleteDialog::DeleteDialog(wxWindow* par Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -133,7 +125,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonOK->SetFocus(); -@@ -1234,10 +1217,7 @@ +@@ -1237,10 +1220,7 @@ SyncConfirmationDlg::SyncConfirmationDlg setIntValue(*m_staticTextDeleteRight, st.deleteCount(), *m_bitmapDeleteRight, "so_delete_right_sicon"); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -145,7 +137,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonStartSync->SetFocus(); -@@ -1501,10 +1481,7 @@ +@@ -1504,10 +1484,7 @@ OptionsDlg::OptionsDlg(wxWindow* parent, updateGui(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -157,7 +149,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! //restore actual value: -@@ -1824,10 +1801,7 @@ +@@ -1827,10 +1804,7 @@ SelectTimespanDlg::SelectTimespanDlg(wxW Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -169,7 +161,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonOkay->SetFocus(); -@@ -1923,10 +1897,7 @@ +@@ -1926,10 +1900,7 @@ PasswordPromptDlg::PasswordPromptDlg(wxW m_textCtrlPasswordVisible->Hide(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -181,7 +173,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! updateGui(); //*after* SetSizeHints when standard dialog height has been calculated -@@ -2009,10 +1980,7 @@ +@@ -2012,10 +1983,7 @@ CfgHighlightDlg::CfgHighlightDlg(wxWindo m_spinCtrlOverdueDays->SetValue(cfgHistSyncOverdueDays); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -193,7 +185,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_spinCtrlOverdueDays->SetFocus(); -@@ -2078,10 +2046,7 @@ +@@ -2081,10 +2049,7 @@ ActivationDlg::ActivationDlg(wxWindow* p m_textCtrlOfflineActivationKey->ChangeValue(manualActivationKey); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -205,7 +197,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonActivateOnline->SetFocus(); -@@ -2186,12 +2151,8 @@ +@@ -2189,12 +2154,8 @@ DownloadProgressWindow::Impl::Impl(wxWin updateGui(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -219,11 +211,9 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Show(); //clear gui flicker: window must be visible to make this work! -Index: freefilesync/FreeFileSync/Source/ui/sync_cfg.cpp -=================================================================== ---- freefilesync.orig/FreeFileSync/Source/ui/sync_cfg.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/FreeFileSync/Source/ui/sync_cfg.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -681,10 +681,7 @@ +--- a/FreeFileSync/Source/ui/sync_cfg.cpp ++++ b/FreeFileSync/Source/ui/sync_cfg.cpp +@@ -696,10 +696,7 @@ globalLogFolderPhrase_(globalLogFolderPh selectFolderPairConfig(-1); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -235,22 +225,15 @@ Index: freefilesync/FreeFileSync/Source/ui/sync_cfg.cpp Center(); //needs to be re-applied after a dialog size change! //keep stable sizer height: "two way" description is smaller than grid of sync directions -Index: freefilesync/wx+/popup_dlg.cpp -=================================================================== ---- freefilesync.orig/wx+/popup_dlg.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/wx+/popup_dlg.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -272,17 +272,12 @@ - //set std order after button visibility was set - setStandardButtonLayout(*bSizerStdButtons, stdBtns); +--- a/wx+/popup_dlg.cpp ++++ b/wx+/popup_dlg.cpp +@@ -287,13 +287,8 @@ public: -- updateGui(); - -+ updateGui(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() -#ifdef __WXGTK3__ -- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 -- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) -#endif Center(); //needs to be re-applied after a dialog size change! @@ -258,11 +241,9 @@ Index: freefilesync/wx+/popup_dlg.cpp Raise(); //[!] popup may be triggered by ffs_batch job running in the background! if (m_buttonAccept->IsEnabled()) -Index: freefilesync/wx+/tooltip.cpp -=================================================================== ---- freefilesync.orig/wx+/tooltip.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/wx+/tooltip.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -78,12 +78,11 @@ +--- a/wx+/tooltip.cpp ++++ b/wx+/tooltip.cpp +@@ -79,12 +79,11 @@ void Tooltip::show(const wxString& text, } if (imgChanged || txtChanged) -- cgit