summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--freefilesync/01_no_check_updates.patch10
-rw-r--r--freefilesync/03_sftp.patch24
-rw-r--r--freefilesync/04_revert_zenju_aggressive_upstreamisms.patch191
-rw-r--r--freefilesync/debian/changelog17
-rw-r--r--freefilesync/debian/freefilesync+devuan.dsc2
-rw-r--r--freefilesync/debian/patches/ffs_devuan.patch19
-rw-r--r--freefilesync/debian/patches/ffs_no_check_updates.patch10
-rw-r--r--freefilesync/debian/patches/ffs_sftp.patch24
-rw-r--r--freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch191
9 files changed, 269 insertions, 219 deletions
diff --git a/freefilesync/01_no_check_updates.patch b/freefilesync/01_no_check_updates.patch
index 956b476..d37005d 100644
--- a/freefilesync/01_no_check_updates.patch
+++ b/freefilesync/01_no_check_updates.patch
@@ -181,22 +181,22 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1
if (lastUpdateCheck == getVersionCheckInactiveId())
return false;
-@@ -168,8 +170,7 @@
+@@ -175,8 +174,7 @@
std::wstring updateDetailsMsg;
try
{
- updateDetailsMsg = utfTo<std::wstring>(sendHttpGet(utfTo<Zstring>("https://api.freefilesync.org/latest_changes?" + xWwwFormUrlEncode({{"since", ffsVersion}})),
-- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll()); //throw SysError
+- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/).readAll(nullptr /*notifyUnbufferedIO*/)); //throw SysError
+ updateDetailsMsg = utfTo<std::wstring>("");
}
catch (const SysError& e) { updateDetailsMsg = _("Failed to retrieve update information.") + + L"\n\n" + e.toString(); }
-@@ -191,8 +192,8 @@
+@@ -198,8 +196,8 @@
std::string getOnlineVersion(const std::vector<std::pair<std::string, std::string>>& postParams) //throw SysError
{
-- const std::string response = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams,
-- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll(); //throw SysError
+- const std::string response = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams, nullptr /*notifyUnbufferedIO*/,
+- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/).readAll(nullptr /*notifyUnbufferedIO*/); //throw SysError
+ const std::string response = "";
+ return trimCpy(response);
diff --git a/freefilesync/03_sftp.patch b/freefilesync/03_sftp.patch
index a51acc8..969042d 100644
--- a/freefilesync/03_sftp.patch
+++ b/freefilesync/03_sftp.patch
@@ -1,25 +1,21 @@
Source: <none>
Author: B Stack
Message: The upstream author observed that some of the values he uses are not in the libssh2 public headers. I don't know where he uses them from, but I had to replace them here to get this to compile.
-Date: 2021-02-02T18:08:53Z
-Version: 11.6
+Date: 2022-10-11T15:34Z
+Version: 11.26
https://github.com/libssh2/libssh2/issues/90
diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/FreeFileSync/Source/afs/sftp.cpp 11.6-1/FreeFileSync/Source/afs/sftp.cpp
---- 11.6-0/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 11:37:38.589717171 -0500
-+++ 11.6-1/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 13:06:45.782113785 -0500
-@@ -66,10 +66,10 @@
- LIBSSH2_SFTP_S_IRWXO;
+--- 11.26-0/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 11:37:38.589717171 -0500
++++ 11.26-1/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 13:06:45.782113785 -0500
+@@ -65,9 +65,8 @@
//attention: if operation fails due to time out, e.g. file copy, the cleanup code may hang, too => total delay = 2 x time out interval
--
--const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 8 * MAX_SFTP_READ_SIZE; //https://github.com/libssh2/libssh2/issues/90
--const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * MAX_SFTP_OUTGOING_SIZE; //
+
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 16 * MAX_SFTP_READ_SIZE; //https://github.com/libssh2/libssh2/issues/90
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 16 * MAX_SFTP_OUTGOING_SIZE; //need large buffer to mitigate libssh2 stupidly waiting on "acks": https://www.libssh2.org/libssh2_sftp_write.html
-static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
-+// these values are all manually derived from https://github.com/libssh2/libssh2/blob/master/src/sftp.h which for some weak reason are not included in the libssh2-devel headers.
-+const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 8 * 30000; //https://github.com/libssh2/libssh2/issues/90
-+const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * 30000; //
-+//static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 16 * 30000; //https://github.com/libssh2/libssh2/issues/90
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 16 * 30000; //need large buffer to mitigate libssh2 stupidly waiting on "acks": https://www.libssh2.org/libssh2_sftp_write.html
/* Perf Test, Sourceforge frs, SFTP upload, compressed 25 MB test file:
-
diff --git a/freefilesync/04_revert_zenju_aggressive_upstreamisms.patch b/freefilesync/04_revert_zenju_aggressive_upstreamisms.patch
index afa3b72..20ccedb 100644
--- a/freefilesync/04_revert_zenju_aggressive_upstreamisms.patch
+++ b/freefilesync/04_revert_zenju_aggressive_upstreamisms.patch
@@ -1,10 +1,14 @@
-Message: Some of these can be traced back to version 10.23 which was the last to not use <unordered_map>
+Description: Some of these can be traced back to version 10.23 which was the last to not use <unordered_map>
+ Had to revert gui_status_handler.cpp and .h entirely to version 11.0 to avoid the wx 3.1.4-isms here.
+ .
+ Now have to revert wxWidgets 3.1.4 upstreamisms
+ cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxASCII_STR' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxASCII_STR' ) ; )
+ cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) ; )
Date: 2022-09-07
-Version: 11.25
+Version: 11.26
Author: bgstack15
-diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/wx+/choice_enum.h
---- 10.24-0/wx+/choice_enum.h 2020-05-17 18:30:59.441499418 -0400
-+++ 10.24-1/wx+/choice_enum.h 2020-05-17 18:53:59.893685507 -0400
+--- a/wx+/choice_enum.h
++++ b/wx+/choice_enum.h
@@ -7,7 +7,6 @@
#ifndef CHOICE_ENUM_H_132413545345687
#define CHOICE_ENUM_H_132413545345687
@@ -13,7 +17,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/
#include <vector>
#include <wx/choice.h>
-@@ -47,8 +46,6 @@
+@@ -47,8 +46,6 @@ struct EnumDescrList
using DescrList = std::vector<std::pair<Enum, std::pair<wxString, wxString>>>;
DescrList descrList;
@@ -22,7 +26,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/
};
template <class Enum> void setEnumVal(const EnumDescrList<Enum>& mapping, wxChoice& ctrl, Enum value);
template <class Enum> Enum getEnumVal(const EnumDescrList<Enum>& mapping, const wxChoice& ctrl);
-@@ -71,32 +68,24 @@
+@@ -71,32 +68,24 @@ template <class Enum> void updateTooltip
template <class Enum>
void setEnumVal(EnumDescrList<Enum>& mapping, wxChoice& ctrl, Enum value)
{
@@ -69,7 +73,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/
}
template <class Enum>
-@@ -115,17 +103,11 @@
+@@ -115,17 +104,11 @@ Enum getEnumVal(const EnumDescrList<Enum
template <class Enum> void updateTooltipEnumVal(const EnumDescrList<Enum>& mapping, wxChoice& ctrl)
{
@@ -91,13 +95,9 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/
}
}
-Message: Now have to revert wxWidgets 3.1.4 upstreamisms
-cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxASCII_STR' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxASCII_STR' ) ; )
-cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) ; )
-diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 11.2-1/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp
---- 11.2-0/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 2020-10-02 14:39:05.273463072 -0400
-+++ 11.2-1/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 2020-10-02 15:06:56.670070620 -0400
-@@ -158,7 +158,7 @@
+--- a/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp
++++ b/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp
+@@ -165,7 +165,7 @@ void FolderSelector2::onSelectDir(wxComm
}
Zstring newFolderPath;
@@ -106,10 +106,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/RealTimeSync/folder_
if (folderSelector.ShowModal() != wxID_OK)
return;
newFolderPath = utfTo<Zstring>(folderSelector.GetPath());
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/command_box.h 11.1-2/FreeFileSync/Source/ui/command_box.h
---- 11.1-1/FreeFileSync/Source/ui/command_box.h 2020-09-01 19:07:43.719122215 -0400
-+++ 11.1-2/FreeFileSync/Source/ui/command_box.h 2020-09-01 20:09:56.840929352 -0400
-@@ -30,7 +30,7 @@
+--- a/FreeFileSync/Source/ui/command_box.h
++++ b/FreeFileSync/Source/ui/command_box.h
+@@ -28,7 +28,7 @@ public:
const wxString choices[] = nullptr,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
@@ -118,10 +117,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/command_box.h 11.
void setHistory(const std::vector<Zstring>& history, size_t historyMax) { history_ = history; historyMax_ = historyMax; }
std::vector<Zstring> getHistory() const { return history_; }
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/folder_history_box.h 11.1-2/FreeFileSync/Source/ui/folder_history_box.h
---- 11.1-1/FreeFileSync/Source/ui/folder_history_box.h 2020-09-01 19:07:43.719122215 -0400
-+++ 11.1-2/FreeFileSync/Source/ui/folder_history_box.h 2020-09-01 20:09:50.624849989 -0400
-@@ -68,7 +68,7 @@
+--- a/FreeFileSync/Source/ui/folder_history_box.h
++++ b/FreeFileSync/Source/ui/folder_history_box.h
+@@ -68,7 +68,7 @@ public:
const wxString choices[] = nullptr,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
@@ -130,10 +128,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/folder_history_bo
void setHistory(std::shared_ptr<HistoryList> sharedHistory) { sharedHistory_ = std::move(sharedHistory); }
std::shared_ptr<HistoryList> getHistory() { return sharedHistory_; }
-diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/ui/folder_selector.cpp 11.2-1/FreeFileSync/Source/ui/folder_selector.cpp
---- 11.2-0/FreeFileSync/Source/ui/folder_selector.cpp 2020-10-02 14:39:05.297463367 -0400
-+++ 11.2-1/FreeFileSync/Source/ui/folder_selector.cpp 2020-10-02 15:08:07.066935749 -0400
-@@ -232,7 +232,7 @@
+--- a/FreeFileSync/Source/ui/folder_selector.cpp
++++ b/FreeFileSync/Source/ui/folder_selector.cpp
+@@ -239,7 +239,7 @@ void FolderSelector::onSelectFolder(wxCo
Zstring shellItemPath;
//default size? Windows: not implemented, Linux(GTK2): not implemented, macOS: not implemented => wxWidgets, what is this shit!?
@@ -142,10 +139,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/ui/folder_selector.c
//GTK2: "Show hidden" is also available as a context menu option in the folder picker!
//It looks like wxDD_SHOW_HIDDEN only sets the default when opening for the first time!?
if (folderSelector.ShowModal() != wxID_OK)
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_button.h
---- 11.22-0/wx+/bitmap_button.h 2022-06-26 12:01:15.638291465 -0400
-+++ 11.22-1/wx+/bitmap_button.h 2022-06-26 12:51:34.527830821 -0400
-@@ -28,7 +28,7 @@
+--- a/wx+/bitmap_button.h
++++ b/wx+/bitmap_button.h
+@@ -28,7 +28,7 @@ public:
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
@@ -154,7 +150,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu
wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
{
SetLabel(label);
-@@ -104,7 +104,6 @@
+@@ -104,7 +104,6 @@ inline
wxBitmap renderSelectedButton(const wxSize& sz)
{
wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
@@ -162,7 +158,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu
{
wxMemoryDC dc(bmp);
-@@ -120,7 +119,6 @@
+@@ -120,7 +119,6 @@ inline
wxBitmap renderPressedButton(const wxSize& sz)
{
wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
@@ -170,9 +166,8 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu
{
//draw rectangle border with gradient
const wxColor colFrom = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE);
-diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/wx+/dc.h
---- 11.23-0/wx+/dc.h 2022-08-03 08:55:32.140102989 -0400
-+++ 11.23-1/wx+/dc.h 2022-08-03 09:27:55.367666939 -0400
+--- a/wx+/dc.h
++++ b/wx+/dc.h
@@ -12,7 +12,7 @@
#include <zen/basic_math.h>
#include <wx/dcbuffer.h> //for macro: wxALWAYS_NATIVE_DOUBLE_BUFFER
@@ -182,7 +177,7 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/
#include <gtk/gtk.h>
-@@ -92,9 +92,6 @@
+@@ -92,9 +92,6 @@ constexpr int defaultDpi = 96; //on Wind
inline
int getDPI()
{
@@ -192,7 +187,7 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/
//GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114
//=> requires general fix at wxWidgets-level
-@@ -130,7 +127,6 @@
+@@ -130,7 +127,6 @@ wxBitmap toScaledBitmap(const wxImage& i
{
//wxBitmap(const wxImage& image, int depth = -1, double WXUNUSED(scale) = 1.0) => wxWidgets just ignores scale parameter! WTF!
wxBitmap bmpScaled(img);
@@ -200,10 +195,9 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/
return bmpScaled; //when testing use 175% scaling: wxWidgets' scaling logic doesn't kick in for 150% only
}
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/graph.h 11.1-2/wx+/graph.h
---- 11.1-1/wx+/graph.h 2020-09-01 19:07:43.731122359 -0400
-+++ 11.1-2/wx+/graph.h 2020-09-01 20:10:36.541429649 -0400
-@@ -153,7 +153,7 @@
+--- a/wx+/graph.h
++++ b/wx+/graph.h
+@@ -192,7 +192,7 @@ public:
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTAB_TRAVERSAL | wxNO_BORDER,
@@ -212,10 +206,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/graph.h 11.1-2/wx+/graph.h
class CurveAttributes
{
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.cpp 11.1-2/wx+/grid.cpp
---- 11.1-1/wx+/grid.cpp 2020-09-01 20:07:24.418981662 -0400
-+++ 11.1-2/wx+/grid.cpp 2020-09-01 20:10:23.745268393 -0400
-@@ -268,7 +268,7 @@
+--- a/wx+/grid.cpp
++++ b/wx+/grid.cpp
+@@ -263,7 +263,7 @@ class Grid::SubWindow : public wxWindow
{
public:
SubWindow(Grid& parent) :
@@ -224,10 +217,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.cpp 11.1-2/wx+/grid.cpp
parent_(parent)
{
Bind(wxEVT_PAINT, [this](wxPaintEvent& event) { onPaintEvent(event); });
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.h 11.1-2/wx+/grid.h
---- 11.1-1/wx+/grid.h 2020-09-01 19:07:43.731122359 -0400
-+++ 11.1-2/wx+/grid.h 2020-09-01 20:10:48.817584344 -0400
-@@ -149,7 +149,7 @@
+--- a/wx+/grid.h
++++ b/wx+/grid.h
+@@ -149,7 +149,7 @@ public:
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTAB_TRAVERSAL | wxNO_BORDER,
@@ -236,10 +228,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.h 11.1-2/wx+/grid.h
size_t getRowCount() const;
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_button.h
---- 11.1-1/wx+/toggle_button.h 2020-09-01 19:07:43.731122359 -0400
-+++ 11.1-2/wx+/toggle_button.h 2020-09-01 20:10:44.629531569 -0400
-@@ -24,7 +24,7 @@
+--- a/wx+/toggle_button.h
++++ b/wx+/toggle_button.h
+@@ -24,7 +24,7 @@ public:
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
@@ -248,7 +239,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_bu
wxBitmapButton(parent, id, bitmap, pos, size, style, validator, name) {}
//wxButton constructor
-@@ -35,7 +35,7 @@
+@@ -35,7 +35,7 @@ public:
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
@@ -257,12 +248,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_bu
wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
{
SetLabel(label);
-Version: 11.1
-Message: Had to revert gui_status_handler.cpp and .h entirely to version 11.0 to avoid the wx 3.1.4-isms here.
-diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source/ui/gui_status_handler.cpp
---- 11.25-0/FreeFileSync/Source/ui/gui_status_handler.cpp 2022-09-07 14:54:31.552630085 -0400
-+++ 11.25-1/FreeFileSync/Source/ui/gui_status_handler.cpp 2022-09-07 16:32:17.114749584 -0400
-@@ -44,8 +44,8 @@
+--- a/FreeFileSync/Source/ui/gui_status_handler.cpp
++++ b/FreeFileSync/Source/ui/gui_status_handler.cpp
+@@ -44,8 +44,8 @@ StatusHandlerTemporaryPanel::StatusHandl
mainDlg_.Update(); //don't wait until idle event!
//register keys
@@ -273,7 +261,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source
}
-@@ -129,9 +129,8 @@
+@@ -129,9 +129,8 @@ StatusHandlerTemporaryPanel::~StatusHand
mainDlg_.auiMgr_.Update();
//unregister keys
@@ -285,7 +273,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source
mainDlg_.compareStatus_->teardown();
-@@ -324,7 +323,7 @@
+@@ -336,7 +335,7 @@ void StatusHandlerTemporaryPanel::forceU
}
@@ -294,7 +282,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source
{
const int keyCode = event.GetKeyCode();
if (keyCode == WXK_ESCAPE)
-@@ -334,7 +333,7 @@
+@@ -346,7 +345,7 @@ void StatusHandlerTemporaryPanel::onLoca
}
@@ -303,11 +291,9 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source
{
userRequestAbort();
}
-diff --git a/FreeFileSync/Source/ui/gui_status_handler.h b/FreeFileSync/Source/ui/gui_status_handler.h
-index e8ed01e4..2a9e00d2 100644
--- a/FreeFileSync/Source/ui/gui_status_handler.h
+++ b/FreeFileSync/Source/ui/gui_status_handler.h
-@@ -41,8 +41,8 @@ public:
+@@ -46,8 +46,8 @@ public:
Result reportResults(); //noexcept!!
private:
@@ -318,10 +304,9 @@ index e8ed01e4..2a9e00d2 100644
void showStatsPanel();
MainDialog& mainDlg_;
-diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+/no_flicker.h
---- 11.4-1/wx+/no_flicker.h 2020-12-08 08:15:29.436156549 -0500
-+++ 11.4-2/wx+/no_flicker.h 2020-12-08 20:11:25.066820270 -0500
-@@ -70,7 +70,7 @@
+--- a/wx+/no_flicker.h
++++ b/wx+/no_flicker.h
+@@ -72,7 +72,7 @@ void setTextWithUrls(wxRichTextCtrl& ric
ZEN_ON_SCOPE_EXIT(richCtrl.EndSuppressUndo());
//fix mouse scroll speed: why the FUCK is this even necessary!
@@ -330,9 +315,9 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+
//get rid of margins and space between text blocks/"paragraphs"
richCtrl.SetMargins({0, 0});
---- 11.20-0/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 09:49:31.917386558 -0400
-+++ 11.20-1/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 11:02:10.988781908 -0400
-@@ -878,12 +881,10 @@
+--- a/FreeFileSync/Source/ui/progress_indicator.cpp
++++ b/FreeFileSync/Source/ui/progress_indicator.cpp
+@@ -878,12 +878,10 @@ dlgSizeBuf_(dlgSize)
auto generateSquareBitmap = [&](const wxColor& fillCol, const wxColor& borderCol)
{
wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
@@ -345,9 +330,9 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+
return bmpSquare;
};
pnl_.m_bitmapGraphKeyBytes->SetBitmap(generateSquareBitmap(getColorBytes(), getColorBytesRim()));
---- 11.25-0/wx+/rtl.h 2022-09-07 14:54:31.712631887 -0400
-+++ 11.25-1/wx+/rtl.h 2022-09-07 15:57:01.638891035 -0400
-@@ -70,8 +70,6 @@
+--- a/wx+/rtl.h
++++ b/wx+/rtl.h
+@@ -70,8 +70,6 @@ void drawBitmapRtlMirror(wxDC& dc, const
if (!buffer || buffer->GetSize() != rect.GetSize()) //[!] since we do a mirror, width needs to match exactly!
buffer.emplace(rect.GetSize());
@@ -356,19 +341,55 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+
wxMemoryDC memDc(*buffer); //copies scale factor from wxBitmap
memDc.Blit(wxPoint(0, 0), rect.GetSize(), &dc, rect.GetTopLeft()); //blit in: background is mirrored due to memDc, dc having different layout direction!
---- 11.22-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 12:01:15.634291415 -0400
-+++ 11.22-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 14:44:38.556188935 -0400
-@@ -3595,7 +3590,6 @@
- };
-
+--- a/FreeFileSync/Source/ui/main_dlg.cpp
++++ b/FreeFileSync/Source/ui/main_dlg.cpp
+@@ -3586,7 +3586,6 @@ void MainDialog::onCfgGridContext(GridCo
+ auto addColorOption = [&](const wxColor& col, const wxString& name)
+ {
wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
- bmpSquare.SetScaleFactor(getDisplayScaleFactor());
{
wxMemoryDC dc(bmpSquare);
const wxColor borderCol(0xdd, 0xdd, 0xdd); //light grey
---- 11.22-0/wx+/image_tools.cpp 2022-06-26 16:29:25.668035003 -0400
-+++ 11.22-1/wx+/image_tools.cpp 2022-06-27 09:06:04.999244263 -0400
-@@ -188,7 +188,6 @@
+@@ -3619,7 +3618,6 @@ void MainDialog::onCfgGridContext(GridCo
+
+ //show color picker
+ wxBitmap bmpColorPicker(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
+- bmpColorPicker.SetScaleFactor(getDisplayScaleFactor());
+ {
+ wxMemoryDC dc(bmpColorPicker);
+ const wxColor borderCol(0xdd, 0xdd, 0xdd); //light grey
+@@ -3633,7 +3631,6 @@ void MainDialog::onCfgGridContext(GridCo
+ {
+ wxColourData colCfg;
+ colCfg.SetChooseFull(true);
+- colCfg.SetChooseAlpha(false);
+ colCfg.SetColour(defaultColors[1].first); //tentative
+
+ if (const ConfigView::Details* cfg = cfggrid::getDataView(*m_gridCfgHistory).getItem(selectedRows[0]))
+@@ -3650,19 +3647,6 @@ void MainDialog::onCfgGridContext(GridCo
+ assert(col.Alpha() == 255);
+ return col;
+ };
+- wxColourDialog dlg(this, &colCfg);
+- dlg.Center();
+-
+- dlg.Bind(wxEVT_COLOUR_CHANGED, [&](wxColourDialogEvent& event2)
+- {
+- //show preview during color selection (Windows-only atm)
+- cfggrid::getDataView(*m_gridCfgHistory).setBackColor(cfgFilePaths, fixColorPickerColor(event2.GetColour()), true /*previewOnly*/);
+- m_gridCfgHistory->Refresh();
+- });
+-
+- if (dlg.ShowModal() == wxID_OK)
+- applyBackColor(fixColorPickerColor(dlg.GetColourData().GetColour()));
+- else //shut off color preview
+ {
+ cfggrid::getDataView(*m_gridCfgHistory).setBackColor(cfgFilePaths, wxNullColour, true /*previewOnly*/);
+ m_gridCfgHistory->Refresh();
+--- a/wx+/image_tools.cpp
++++ b/wx+/image_tools.cpp
+@@ -188,7 +188,6 @@ wxImage zen::createImageFromText(const w
return wxNullImage;
wxBitmap newBitmap(maxWidth, lineHeight * lineInfo.size()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog
index 95f9be8..1cc6d48 100644
--- a/freefilesync/debian/changelog
+++ b/freefilesync/debian/changelog
@@ -1,3 +1,20 @@
+freefilesync (11.26-1+devuan) obs; urgency=low
+
+ * Upstream updates
+ * Faster file copy for SSD-based hard drives (Linux, macOS)
+ * Don't fill the OS file cache during file copy (macOS)
+ * Removed redundant memory buffering during file copy
+ * Fixed ERROR_FILE_EXISTS on Samba share when copying files with NTFS
+ extended attributes
+ * Show warning when recycle bin is not available (macOS, Linux)
+ * Customize config item background colors
+ * Fixed macOS menu bar not showing after app start
+ * Fixed normalizing strings with broken UTF encoding
+ * Fixed sound playback not working (Linux)
+ * Don't allow creating file names ending with dot character (Windows)
+
+ -- B. Stack <bgstack15@gmail.com> Tue, 11 Oct 2022 11:06:58 -0400
+
freefilesync (11.25-1+devuan) obs; urgency=medium
* Upstream updates
diff --git a/freefilesync/debian/freefilesync+devuan.dsc b/freefilesync/debian/freefilesync+devuan.dsc
index aa2ca30..c7f1603 100644
--- a/freefilesync/debian/freefilesync+devuan.dsc
+++ b/freefilesync/debian/freefilesync+devuan.dsc
@@ -2,7 +2,7 @@ Format: 3.0 (quilt)
Source: freefilesync
Binary: freefilesync
Architecture: any
-Version: 11.25-1+devuan
+Version: 11.26-1+devuan
Maintainer: B. Stack <bgstack15@gmail.com>
Homepage: https://freefilesync.org/
Standards-Version: 4.1.4
diff --git a/freefilesync/debian/patches/ffs_devuan.patch b/freefilesync/debian/patches/ffs_devuan.patch
index fce3138..d51f2fc 100644
--- a/freefilesync/debian/patches/ffs_devuan.patch
+++ b/freefilesync/debian/patches/ffs_devuan.patch
@@ -14,8 +14,8 @@ Message: Main patch to compile on Devuan.
}
---- 11.25-0/FreeFileSync/Source/Makefile 2022-09-07 14:54:31.444628869 -0400
-+++ 11.25-1/FreeFileSync/Source/Makefile 2022-09-07 15:15:48.735015001 -0400
+--- a/FreeFileSync/Source/Makefile
++++ b/FreeFileSync/Source/Makefile
@@ -1,11 +1,11 @@
CXX ?= g++
-exeName = FreeFileSync_$(shell arch)
@@ -32,7 +32,7 @@ Message: Main patch to compile on Devuan.
CXXFLAGS += `pkg-config --cflags openssl`
--- a/FreeFileSync/Source/ui/small_dlgs.cpp
+++ b/FreeFileSync/Source/ui/small_dlgs.cpp
-@@ -89,6 +89,8 @@ AboutDlg::AboutDlg(wxWindow* parent) : A
+@@ -87,6 +87,8 @@ AboutDlg::AboutDlg(wxWindow* parent) : A
build += LTR_MARK; //fix Arabic
build += utfTo<wxString>(cpuArchName);
@@ -41,7 +41,7 @@ Message: Main patch to compile on Devuan.
build += SPACED_BULLET;
build += utfTo<wxString>(formatTime(formatDateTag, getCompileTime()));
-@@ -139,9 +141,9 @@ AboutDlg::AboutDlg(wxWindow* parent) : A
+@@ -137,9 +139,9 @@ AboutDlg::AboutDlg(wxWindow* parent) : A
wxImage::AddHandler(new wxJPEGHandler /*ownership passed*/); //activate support for .jpg files
@@ -54,17 +54,17 @@ Message: Main patch to compile on Devuan.
//--------------------------------------------------------------------------
//have animal + text match *final* dialog width
-@@ -151,7 +153,7 @@ AboutDlg::AboutDlg(wxWindow* parent) : A
- const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 /* grey border*/) / 2;
- const int textWidth = m_panelDonate->GetSize().GetWidth() - 5 - 5 - imageWidth;
+@@ -149,7 +151,7 @@ AboutDlg::AboutDlg(wxWindow* parent) : A
+ const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 /* grey border*/) / 2;
+ const int textWidth = m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 - imageWidth;
- setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, imageWidth, -1 /*maxHeight*/));
+ //setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, imageWidth, -1 /*maxHeight*/));
m_staticTextDonate->Show();
m_staticTextDonate->Wrap(textWidth - 10 /*left gap*/); //wrap *after* changing font size
---- 11.25-0/FreeFileSync/Source/RealTimeSync/Makefile 2022-09-07 14:54:31.524629769 -0400
-+++ 11.25-1/FreeFileSync/Source/RealTimeSync/Makefile 2022-09-07 15:16:18.479350210 -0400
+--- a/FreeFileSync/Source/RealTimeSync/Makefile
++++ b/FreeFileSync/Source/RealTimeSync/Makefile
@@ -1,11 +1,11 @@
CXX ?= g++
-exeName = RealTimeSync_$(shell arch)
@@ -79,4 +79,3 @@ Message: Main patch to compile on Devuan.
#Gtk - support "no button border"
CXXFLAGS += `pkg-config --cflags gtk+-2.0`
-
diff --git a/freefilesync/debian/patches/ffs_no_check_updates.patch b/freefilesync/debian/patches/ffs_no_check_updates.patch
index 956b476..d37005d 100644
--- a/freefilesync/debian/patches/ffs_no_check_updates.patch
+++ b/freefilesync/debian/patches/ffs_no_check_updates.patch
@@ -181,22 +181,22 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1
if (lastUpdateCheck == getVersionCheckInactiveId())
return false;
-@@ -168,8 +170,7 @@
+@@ -175,8 +174,7 @@
std::wstring updateDetailsMsg;
try
{
- updateDetailsMsg = utfTo<std::wstring>(sendHttpGet(utfTo<Zstring>("https://api.freefilesync.org/latest_changes?" + xWwwFormUrlEncode({{"since", ffsVersion}})),
-- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll()); //throw SysError
+- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/).readAll(nullptr /*notifyUnbufferedIO*/)); //throw SysError
+ updateDetailsMsg = utfTo<std::wstring>("");
}
catch (const SysError& e) { updateDetailsMsg = _("Failed to retrieve update information.") + + L"\n\n" + e.toString(); }
-@@ -191,8 +192,8 @@
+@@ -198,8 +196,8 @@
std::string getOnlineVersion(const std::vector<std::pair<std::string, std::string>>& postParams) //throw SysError
{
-- const std::string response = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams,
-- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll(); //throw SysError
+- const std::string response = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams, nullptr /*notifyUnbufferedIO*/,
+- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/).readAll(nullptr /*notifyUnbufferedIO*/); //throw SysError
+ const std::string response = "";
+ return trimCpy(response);
diff --git a/freefilesync/debian/patches/ffs_sftp.patch b/freefilesync/debian/patches/ffs_sftp.patch
index a51acc8..969042d 100644
--- a/freefilesync/debian/patches/ffs_sftp.patch
+++ b/freefilesync/debian/patches/ffs_sftp.patch
@@ -1,25 +1,21 @@
Source: <none>
Author: B Stack
Message: The upstream author observed that some of the values he uses are not in the libssh2 public headers. I don't know where he uses them from, but I had to replace them here to get this to compile.
-Date: 2021-02-02T18:08:53Z
-Version: 11.6
+Date: 2022-10-11T15:34Z
+Version: 11.26
https://github.com/libssh2/libssh2/issues/90
diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/FreeFileSync/Source/afs/sftp.cpp 11.6-1/FreeFileSync/Source/afs/sftp.cpp
---- 11.6-0/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 11:37:38.589717171 -0500
-+++ 11.6-1/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 13:06:45.782113785 -0500
-@@ -66,10 +66,10 @@
- LIBSSH2_SFTP_S_IRWXO;
+--- 11.26-0/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 11:37:38.589717171 -0500
++++ 11.26-1/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 13:06:45.782113785 -0500
+@@ -65,9 +65,8 @@
//attention: if operation fails due to time out, e.g. file copy, the cleanup code may hang, too => total delay = 2 x time out interval
--
--const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 8 * MAX_SFTP_READ_SIZE; //https://github.com/libssh2/libssh2/issues/90
--const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * MAX_SFTP_OUTGOING_SIZE; //
+
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 16 * MAX_SFTP_READ_SIZE; //https://github.com/libssh2/libssh2/issues/90
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 16 * MAX_SFTP_OUTGOING_SIZE; //need large buffer to mitigate libssh2 stupidly waiting on "acks": https://www.libssh2.org/libssh2_sftp_write.html
-static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
-+// these values are all manually derived from https://github.com/libssh2/libssh2/blob/master/src/sftp.h which for some weak reason are not included in the libssh2-devel headers.
-+const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 8 * 30000; //https://github.com/libssh2/libssh2/issues/90
-+const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * 30000; //
-+//static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 16 * 30000; //https://github.com/libssh2/libssh2/issues/90
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 16 * 30000; //need large buffer to mitigate libssh2 stupidly waiting on "acks": https://www.libssh2.org/libssh2_sftp_write.html
/* Perf Test, Sourceforge frs, SFTP upload, compressed 25 MB test file:
-
diff --git a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch
index afa3b72..20ccedb 100644
--- a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch
+++ b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch
@@ -1,10 +1,14 @@
-Message: Some of these can be traced back to version 10.23 which was the last to not use <unordered_map>
+Description: Some of these can be traced back to version 10.23 which was the last to not use <unordered_map>
+ Had to revert gui_status_handler.cpp and .h entirely to version 11.0 to avoid the wx 3.1.4-isms here.
+ .
+ Now have to revert wxWidgets 3.1.4 upstreamisms
+ cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxASCII_STR' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxASCII_STR' ) ; )
+ cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) ; )
Date: 2022-09-07
-Version: 11.25
+Version: 11.26
Author: bgstack15
-diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/wx+/choice_enum.h
---- 10.24-0/wx+/choice_enum.h 2020-05-17 18:30:59.441499418 -0400
-+++ 10.24-1/wx+/choice_enum.h 2020-05-17 18:53:59.893685507 -0400
+--- a/wx+/choice_enum.h
++++ b/wx+/choice_enum.h
@@ -7,7 +7,6 @@
#ifndef CHOICE_ENUM_H_132413545345687
#define CHOICE_ENUM_H_132413545345687
@@ -13,7 +17,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/
#include <vector>
#include <wx/choice.h>
-@@ -47,8 +46,6 @@
+@@ -47,8 +46,6 @@ struct EnumDescrList
using DescrList = std::vector<std::pair<Enum, std::pair<wxString, wxString>>>;
DescrList descrList;
@@ -22,7 +26,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/
};
template <class Enum> void setEnumVal(const EnumDescrList<Enum>& mapping, wxChoice& ctrl, Enum value);
template <class Enum> Enum getEnumVal(const EnumDescrList<Enum>& mapping, const wxChoice& ctrl);
-@@ -71,32 +68,24 @@
+@@ -71,32 +68,24 @@ template <class Enum> void updateTooltip
template <class Enum>
void setEnumVal(EnumDescrList<Enum>& mapping, wxChoice& ctrl, Enum value)
{
@@ -69,7 +73,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/
}
template <class Enum>
-@@ -115,17 +103,11 @@
+@@ -115,17 +104,11 @@ Enum getEnumVal(const EnumDescrList<Enum
template <class Enum> void updateTooltipEnumVal(const EnumDescrList<Enum>& mapping, wxChoice& ctrl)
{
@@ -91,13 +95,9 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/
}
}
-Message: Now have to revert wxWidgets 3.1.4 upstreamisms
-cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxASCII_STR' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxASCII_STR' ) ; )
-cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) ; )
-diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 11.2-1/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp
---- 11.2-0/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 2020-10-02 14:39:05.273463072 -0400
-+++ 11.2-1/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 2020-10-02 15:06:56.670070620 -0400
-@@ -158,7 +158,7 @@
+--- a/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp
++++ b/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp
+@@ -165,7 +165,7 @@ void FolderSelector2::onSelectDir(wxComm
}
Zstring newFolderPath;
@@ -106,10 +106,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/RealTimeSync/folder_
if (folderSelector.ShowModal() != wxID_OK)
return;
newFolderPath = utfTo<Zstring>(folderSelector.GetPath());
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/command_box.h 11.1-2/FreeFileSync/Source/ui/command_box.h
---- 11.1-1/FreeFileSync/Source/ui/command_box.h 2020-09-01 19:07:43.719122215 -0400
-+++ 11.1-2/FreeFileSync/Source/ui/command_box.h 2020-09-01 20:09:56.840929352 -0400
-@@ -30,7 +30,7 @@
+--- a/FreeFileSync/Source/ui/command_box.h
++++ b/FreeFileSync/Source/ui/command_box.h
+@@ -28,7 +28,7 @@ public:
const wxString choices[] = nullptr,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
@@ -118,10 +117,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/command_box.h 11.
void setHistory(const std::vector<Zstring>& history, size_t historyMax) { history_ = history; historyMax_ = historyMax; }
std::vector<Zstring> getHistory() const { return history_; }
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/folder_history_box.h 11.1-2/FreeFileSync/Source/ui/folder_history_box.h
---- 11.1-1/FreeFileSync/Source/ui/folder_history_box.h 2020-09-01 19:07:43.719122215 -0400
-+++ 11.1-2/FreeFileSync/Source/ui/folder_history_box.h 2020-09-01 20:09:50.624849989 -0400
-@@ -68,7 +68,7 @@
+--- a/FreeFileSync/Source/ui/folder_history_box.h
++++ b/FreeFileSync/Source/ui/folder_history_box.h
+@@ -68,7 +68,7 @@ public:
const wxString choices[] = nullptr,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
@@ -130,10 +128,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/folder_history_bo
void setHistory(std::shared_ptr<HistoryList> sharedHistory) { sharedHistory_ = std::move(sharedHistory); }
std::shared_ptr<HistoryList> getHistory() { return sharedHistory_; }
-diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/ui/folder_selector.cpp 11.2-1/FreeFileSync/Source/ui/folder_selector.cpp
---- 11.2-0/FreeFileSync/Source/ui/folder_selector.cpp 2020-10-02 14:39:05.297463367 -0400
-+++ 11.2-1/FreeFileSync/Source/ui/folder_selector.cpp 2020-10-02 15:08:07.066935749 -0400
-@@ -232,7 +232,7 @@
+--- a/FreeFileSync/Source/ui/folder_selector.cpp
++++ b/FreeFileSync/Source/ui/folder_selector.cpp
+@@ -239,7 +239,7 @@ void FolderSelector::onSelectFolder(wxCo
Zstring shellItemPath;
//default size? Windows: not implemented, Linux(GTK2): not implemented, macOS: not implemented => wxWidgets, what is this shit!?
@@ -142,10 +139,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/ui/folder_selector.c
//GTK2: "Show hidden" is also available as a context menu option in the folder picker!
//It looks like wxDD_SHOW_HIDDEN only sets the default when opening for the first time!?
if (folderSelector.ShowModal() != wxID_OK)
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_button.h
---- 11.22-0/wx+/bitmap_button.h 2022-06-26 12:01:15.638291465 -0400
-+++ 11.22-1/wx+/bitmap_button.h 2022-06-26 12:51:34.527830821 -0400
-@@ -28,7 +28,7 @@
+--- a/wx+/bitmap_button.h
++++ b/wx+/bitmap_button.h
+@@ -28,7 +28,7 @@ public:
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
@@ -154,7 +150,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu
wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
{
SetLabel(label);
-@@ -104,7 +104,6 @@
+@@ -104,7 +104,6 @@ inline
wxBitmap renderSelectedButton(const wxSize& sz)
{
wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
@@ -162,7 +158,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu
{
wxMemoryDC dc(bmp);
-@@ -120,7 +119,6 @@
+@@ -120,7 +119,6 @@ inline
wxBitmap renderPressedButton(const wxSize& sz)
{
wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
@@ -170,9 +166,8 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu
{
//draw rectangle border with gradient
const wxColor colFrom = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE);
-diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/wx+/dc.h
---- 11.23-0/wx+/dc.h 2022-08-03 08:55:32.140102989 -0400
-+++ 11.23-1/wx+/dc.h 2022-08-03 09:27:55.367666939 -0400
+--- a/wx+/dc.h
++++ b/wx+/dc.h
@@ -12,7 +12,7 @@
#include <zen/basic_math.h>
#include <wx/dcbuffer.h> //for macro: wxALWAYS_NATIVE_DOUBLE_BUFFER
@@ -182,7 +177,7 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/
#include <gtk/gtk.h>
-@@ -92,9 +92,6 @@
+@@ -92,9 +92,6 @@ constexpr int defaultDpi = 96; //on Wind
inline
int getDPI()
{
@@ -192,7 +187,7 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/
//GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114
//=> requires general fix at wxWidgets-level
-@@ -130,7 +127,6 @@
+@@ -130,7 +127,6 @@ wxBitmap toScaledBitmap(const wxImage& i
{
//wxBitmap(const wxImage& image, int depth = -1, double WXUNUSED(scale) = 1.0) => wxWidgets just ignores scale parameter! WTF!
wxBitmap bmpScaled(img);
@@ -200,10 +195,9 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/
return bmpScaled; //when testing use 175% scaling: wxWidgets' scaling logic doesn't kick in for 150% only
}
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/graph.h 11.1-2/wx+/graph.h
---- 11.1-1/wx+/graph.h 2020-09-01 19:07:43.731122359 -0400
-+++ 11.1-2/wx+/graph.h 2020-09-01 20:10:36.541429649 -0400
-@@ -153,7 +153,7 @@
+--- a/wx+/graph.h
++++ b/wx+/graph.h
+@@ -192,7 +192,7 @@ public:
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTAB_TRAVERSAL | wxNO_BORDER,
@@ -212,10 +206,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/graph.h 11.1-2/wx+/graph.h
class CurveAttributes
{
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.cpp 11.1-2/wx+/grid.cpp
---- 11.1-1/wx+/grid.cpp 2020-09-01 20:07:24.418981662 -0400
-+++ 11.1-2/wx+/grid.cpp 2020-09-01 20:10:23.745268393 -0400
-@@ -268,7 +268,7 @@
+--- a/wx+/grid.cpp
++++ b/wx+/grid.cpp
+@@ -263,7 +263,7 @@ class Grid::SubWindow : public wxWindow
{
public:
SubWindow(Grid& parent) :
@@ -224,10 +217,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.cpp 11.1-2/wx+/grid.cpp
parent_(parent)
{
Bind(wxEVT_PAINT, [this](wxPaintEvent& event) { onPaintEvent(event); });
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.h 11.1-2/wx+/grid.h
---- 11.1-1/wx+/grid.h 2020-09-01 19:07:43.731122359 -0400
-+++ 11.1-2/wx+/grid.h 2020-09-01 20:10:48.817584344 -0400
-@@ -149,7 +149,7 @@
+--- a/wx+/grid.h
++++ b/wx+/grid.h
+@@ -149,7 +149,7 @@ public:
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTAB_TRAVERSAL | wxNO_BORDER,
@@ -236,10 +228,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.h 11.1-2/wx+/grid.h
size_t getRowCount() const;
-diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_button.h
---- 11.1-1/wx+/toggle_button.h 2020-09-01 19:07:43.731122359 -0400
-+++ 11.1-2/wx+/toggle_button.h 2020-09-01 20:10:44.629531569 -0400
-@@ -24,7 +24,7 @@
+--- a/wx+/toggle_button.h
++++ b/wx+/toggle_button.h
+@@ -24,7 +24,7 @@ public:
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
@@ -248,7 +239,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_bu
wxBitmapButton(parent, id, bitmap, pos, size, style, validator, name) {}
//wxButton constructor
-@@ -35,7 +35,7 @@
+@@ -35,7 +35,7 @@ public:
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
@@ -257,12 +248,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_bu
wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
{
SetLabel(label);
-Version: 11.1
-Message: Had to revert gui_status_handler.cpp and .h entirely to version 11.0 to avoid the wx 3.1.4-isms here.
-diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source/ui/gui_status_handler.cpp
---- 11.25-0/FreeFileSync/Source/ui/gui_status_handler.cpp 2022-09-07 14:54:31.552630085 -0400
-+++ 11.25-1/FreeFileSync/Source/ui/gui_status_handler.cpp 2022-09-07 16:32:17.114749584 -0400
-@@ -44,8 +44,8 @@
+--- a/FreeFileSync/Source/ui/gui_status_handler.cpp
++++ b/FreeFileSync/Source/ui/gui_status_handler.cpp
+@@ -44,8 +44,8 @@ StatusHandlerTemporaryPanel::StatusHandl
mainDlg_.Update(); //don't wait until idle event!
//register keys
@@ -273,7 +261,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source
}
-@@ -129,9 +129,8 @@
+@@ -129,9 +129,8 @@ StatusHandlerTemporaryPanel::~StatusHand
mainDlg_.auiMgr_.Update();
//unregister keys
@@ -285,7 +273,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source
mainDlg_.compareStatus_->teardown();
-@@ -324,7 +323,7 @@
+@@ -336,7 +335,7 @@ void StatusHandlerTemporaryPanel::forceU
}
@@ -294,7 +282,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source
{
const int keyCode = event.GetKeyCode();
if (keyCode == WXK_ESCAPE)
-@@ -334,7 +333,7 @@
+@@ -346,7 +345,7 @@ void StatusHandlerTemporaryPanel::onLoca
}
@@ -303,11 +291,9 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source
{
userRequestAbort();
}
-diff --git a/FreeFileSync/Source/ui/gui_status_handler.h b/FreeFileSync/Source/ui/gui_status_handler.h
-index e8ed01e4..2a9e00d2 100644
--- a/FreeFileSync/Source/ui/gui_status_handler.h
+++ b/FreeFileSync/Source/ui/gui_status_handler.h
-@@ -41,8 +41,8 @@ public:
+@@ -46,8 +46,8 @@ public:
Result reportResults(); //noexcept!!
private:
@@ -318,10 +304,9 @@ index e8ed01e4..2a9e00d2 100644
void showStatsPanel();
MainDialog& mainDlg_;
-diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+/no_flicker.h
---- 11.4-1/wx+/no_flicker.h 2020-12-08 08:15:29.436156549 -0500
-+++ 11.4-2/wx+/no_flicker.h 2020-12-08 20:11:25.066820270 -0500
-@@ -70,7 +70,7 @@
+--- a/wx+/no_flicker.h
++++ b/wx+/no_flicker.h
+@@ -72,7 +72,7 @@ void setTextWithUrls(wxRichTextCtrl& ric
ZEN_ON_SCOPE_EXIT(richCtrl.EndSuppressUndo());
//fix mouse scroll speed: why the FUCK is this even necessary!
@@ -330,9 +315,9 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+
//get rid of margins and space between text blocks/"paragraphs"
richCtrl.SetMargins({0, 0});
---- 11.20-0/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 09:49:31.917386558 -0400
-+++ 11.20-1/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 11:02:10.988781908 -0400
-@@ -878,12 +881,10 @@
+--- a/FreeFileSync/Source/ui/progress_indicator.cpp
++++ b/FreeFileSync/Source/ui/progress_indicator.cpp
+@@ -878,12 +878,10 @@ dlgSizeBuf_(dlgSize)
auto generateSquareBitmap = [&](const wxColor& fillCol, const wxColor& borderCol)
{
wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
@@ -345,9 +330,9 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+
return bmpSquare;
};
pnl_.m_bitmapGraphKeyBytes->SetBitmap(generateSquareBitmap(getColorBytes(), getColorBytesRim()));
---- 11.25-0/wx+/rtl.h 2022-09-07 14:54:31.712631887 -0400
-+++ 11.25-1/wx+/rtl.h 2022-09-07 15:57:01.638891035 -0400
-@@ -70,8 +70,6 @@
+--- a/wx+/rtl.h
++++ b/wx+/rtl.h
+@@ -70,8 +70,6 @@ void drawBitmapRtlMirror(wxDC& dc, const
if (!buffer || buffer->GetSize() != rect.GetSize()) //[!] since we do a mirror, width needs to match exactly!
buffer.emplace(rect.GetSize());
@@ -356,19 +341,55 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+
wxMemoryDC memDc(*buffer); //copies scale factor from wxBitmap
memDc.Blit(wxPoint(0, 0), rect.GetSize(), &dc, rect.GetTopLeft()); //blit in: background is mirrored due to memDc, dc having different layout direction!
---- 11.22-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 12:01:15.634291415 -0400
-+++ 11.22-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 14:44:38.556188935 -0400
-@@ -3595,7 +3590,6 @@
- };
-
+--- a/FreeFileSync/Source/ui/main_dlg.cpp
++++ b/FreeFileSync/Source/ui/main_dlg.cpp
+@@ -3586,7 +3586,6 @@ void MainDialog::onCfgGridContext(GridCo
+ auto addColorOption = [&](const wxColor& col, const wxString& name)
+ {
wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
- bmpSquare.SetScaleFactor(getDisplayScaleFactor());
{
wxMemoryDC dc(bmpSquare);
const wxColor borderCol(0xdd, 0xdd, 0xdd); //light grey
---- 11.22-0/wx+/image_tools.cpp 2022-06-26 16:29:25.668035003 -0400
-+++ 11.22-1/wx+/image_tools.cpp 2022-06-27 09:06:04.999244263 -0400
-@@ -188,7 +188,6 @@
+@@ -3619,7 +3618,6 @@ void MainDialog::onCfgGridContext(GridCo
+
+ //show color picker
+ wxBitmap bmpColorPicker(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
+- bmpColorPicker.SetScaleFactor(getDisplayScaleFactor());
+ {
+ wxMemoryDC dc(bmpColorPicker);
+ const wxColor borderCol(0xdd, 0xdd, 0xdd); //light grey
+@@ -3633,7 +3631,6 @@ void MainDialog::onCfgGridContext(GridCo
+ {
+ wxColourData colCfg;
+ colCfg.SetChooseFull(true);
+- colCfg.SetChooseAlpha(false);
+ colCfg.SetColour(defaultColors[1].first); //tentative
+
+ if (const ConfigView::Details* cfg = cfggrid::getDataView(*m_gridCfgHistory).getItem(selectedRows[0]))
+@@ -3650,19 +3647,6 @@ void MainDialog::onCfgGridContext(GridCo
+ assert(col.Alpha() == 255);
+ return col;
+ };
+- wxColourDialog dlg(this, &colCfg);
+- dlg.Center();
+-
+- dlg.Bind(wxEVT_COLOUR_CHANGED, [&](wxColourDialogEvent& event2)
+- {
+- //show preview during color selection (Windows-only atm)
+- cfggrid::getDataView(*m_gridCfgHistory).setBackColor(cfgFilePaths, fixColorPickerColor(event2.GetColour()), true /*previewOnly*/);
+- m_gridCfgHistory->Refresh();
+- });
+-
+- if (dlg.ShowModal() == wxID_OK)
+- applyBackColor(fixColorPickerColor(dlg.GetColourData().GetColour()));
+- else //shut off color preview
+ {
+ cfggrid::getDataView(*m_gridCfgHistory).setBackColor(cfgFilePaths, wxNullColour, true /*previewOnly*/);
+ m_gridCfgHistory->Refresh();
+--- a/wx+/image_tools.cpp
++++ b/wx+/image_tools.cpp
+@@ -188,7 +188,6 @@ wxImage zen::createImageFromText(const w
return wxNullImage;
wxBitmap newBitmap(maxWidth, lineHeight * lineInfo.size()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes
bgstack15