summaryrefslogtreecommitdiff
path: root/freefilesync/ffs_traditional_view.patch
diff options
context:
space:
mode:
authorB Stack <bgstack15@gmail.com>2020-10-04 11:46:12 +0000
committerB Stack <bgstack15@gmail.com>2020-10-04 11:46:12 +0000
commitcdc9dbcce2dfd0ef25ac52488e072de0dbf7c662 (patch)
tree6e241f90b1671aaaf7e33145fc21eaea253c3735 /freefilesync/ffs_traditional_view.patch
parentMerge branch 'scite-bump' into 'master' (diff)
parentffs 11.2 rpm for fedora (diff)
downloadstackrpms-cdc9dbcce2dfd0ef25ac52488e072de0dbf7c662.tar.gz
stackrpms-cdc9dbcce2dfd0ef25ac52488e072de0dbf7c662.tar.bz2
stackrpms-cdc9dbcce2dfd0ef25ac52488e072de0dbf7c662.zip
Merge branch 'freefilesync-bump' into 'master'
Freefilesync 11.2 See merge request bgstack15/stackrpms!194
Diffstat (limited to 'freefilesync/ffs_traditional_view.patch')
-rw-r--r--freefilesync/ffs_traditional_view.patch235
1 files changed, 235 insertions, 0 deletions
diff --git a/freefilesync/ffs_traditional_view.patch b/freefilesync/ffs_traditional_view.patch
new file mode 100644
index 0000000..173842f
--- /dev/null
+++ b/freefilesync/ffs_traditional_view.patch
@@ -0,0 +1,235 @@
+diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/file_grid.cpp 11.2-1-trad3/FreeFileSync/Source/ui/file_grid.cpp
+--- 11.2-1/FreeFileSync/Source/ui/file_grid.cpp 2020-10-02 14:39:05.289463269 -0400
++++ 11.2-1-trad3/FreeFileSync/Source/ui/file_grid.cpp 2020-10-02 20:48:25.047194116 -0400
+@@ -446,8 +446,10 @@
+ case ItemPathFormat::name:
+ return utfTo<std::wstring>(fsObj->getItemName<side>());
+ case ItemPathFormat::relative:
++ case ItemPathFormat::tradrel:
+ return utfTo<std::wstring>(fsObj->getRelativePath<side>());
+ case ItemPathFormat::full:
++ case ItemPathFormat::traditional:
+ return AFS::getDisplayPath(fsObj->getAbstractPath<side>());
+ }
+ assert(false);
+@@ -529,7 +531,8 @@
+ //----------------------------------------------------------------------------------
+ wxDCPenChanger dummy(dc, wxPen(row == pdi.groupLastRow - 1 /*last group item*/ ?
+ getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0), fastFromDIP(1)));
+- dc.DrawLine(rect.GetBottomLeft(), rect.GetBottomRight() + wxPoint(1, 0));
++ if (itemPathFormat_ != ItemPathFormat::traditional && itemPathFormat_ != ItemPathFormat::tradrel)
++ dc.DrawLine(rect.GetBottomLeft(), rect.GetBottomRight() + wxPoint(1, 0));
+ }
+
+
+@@ -628,6 +631,24 @@
+ else //=> BaseFolderPair
+ groupParentFolder = AFS::getDisplayPath(pdi.fsObj->base().getAbstractPath<side>());
+ break;
++ case ItemPathFormat::traditional:
++ if (auto groupFolder = dynamic_cast<const FolderPair*>(pdi.folderGroupObj))
++ {
++ groupName = utfTo<std::wstring>(groupFolder->template getItemName<side>());
++ groupParentFolder = AFS::getDisplayPath(groupFolder->parent().template getAbstractPath<side>()) + \
++ FILE_NAME_SEPARATOR + utfTo<std::wstring>(groupFolder->template getItemName<side>());
++ }
++ else //=> BaseFolderPair
++ groupParentFolder = AFS::getDisplayPath(pdi.fsObj->base().getAbstractPath<side>());
++ break;
++ case ItemPathFormat::tradrel:
++ if (pdi.folderGroupObj)
++ {
++ groupName = utfTo<std::wstring>(pdi.folderGroupObj ->template getItemName <side>());
++ groupParentFolder = utfTo<std::wstring>(pdi.folderGroupObj->parent().template getRelativePath<side>()) + \
++ utfTo<std::wstring>(pdi.folderGroupObj ->template getItemName<side>());
++ }
++ break;
+ }
+
+ //path components should follow the app layout direction and are NOT a single piece of text!
+@@ -655,6 +676,31 @@
+ int widthGroupName = groupName .empty() ? 0 : (iconSize + gridGap_ + getTextExtentBuffered(dc, groupName).x + 2 * gridGap_);
+ int widthGroupItems = widthGroupSep + (drawFileIcons ? iconSize + gridGap_ : 0) + groupItemNamesWidth;
+
++ // start trad patch
++
++ //add slashes for better readability
++ assert(!contains(groupParentFolder, L'/') || !contains(groupParentFolder, L'\\'));
++ const wchar_t groupParentSep = contains(groupParentFolder, L'/') ? L'/' : (contains(groupParentFolder, L'\\') ? L'\\' : FILE_NAME_SEPARATOR);
++
++ switch (itemPathFormat_)
++ {
++ case ItemPathFormat::traditional:
++ case ItemPathFormat::tradrel:
++ widthGroupParent -= widthGroupName - getTextExtentBuffered(dc, utfTo<std::wstring>(FILE_NAME_SEPARATOR)).x;
++
++ if (!endsWith(groupParentFolder, L'/' ) && //e.g. ftp://server/
++ !endsWith(groupParentFolder, L'\\') && /*e.g. C:\ */
++ groupParentFolder.size() > 0 )
++ groupParentFolder += groupParentSep;
++ break;
++ case ItemPathFormat::name:
++ case ItemPathFormat::relative:
++ case ItemPathFormat::full:
++ default:
++ // the insane logic of the new views
++ // but preserve the original tabbing, to make the patch easier.
++ // but with the "add slashes" paragraph 1 moved to above this switch statement!
++
+ //not enough space? => collapse
+ if (int excessWidth = gridGap_ + widthGroupParent + widthGroupName + widthGroupItems - maxWidth;
+ excessWidth > 0)
+@@ -664,10 +710,6 @@
+ //1. render group components on two rows
+ stackedGroupRender = true;
+
+- //add slashes for better readability
+- assert(!contains(groupParentFolder, L'/') || !contains(groupParentFolder, L'\\'));
+- const wchar_t groupParentSep = contains(groupParentFolder, L'/') ? L'/' : (contains(groupParentFolder, L'\\') ? L'\\' : FILE_NAME_SEPARATOR);
+-
+ if (!endsWith(groupParentFolder, L'/' ) && //e.g. ftp://server/
+ !endsWith(groupParentFolder, L'\\')) /*e.g. C:\ */
+ groupParentFolder += groupParentSep;
+@@ -725,6 +767,11 @@
+ }
+ }
+
++ // end of original section, and back to the trad patch!
++ break;
++ }
++ // and end the addition for trad patch
++
+ return
+ {
+ itemName,
+@@ -793,6 +840,9 @@
+ rectGroup = rectGroupParent = rectGroupName = rectTmp;
+
+ rectGroupParent.width = widthGroupParent;
++ // re-add back the width of groupname so that the directory name is clickable
++ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel)
++ rectGroupParent.width += widthGroupName;
+ rectGroupName .width = widthGroupName;
+
+ if (stackedGroupRender)
+@@ -829,7 +879,8 @@
+ if (row == pdi.groupLastRow - 1 /*last group item*/) //restore the group separation line we just cleared
+ {
+ wxDCPenChanger dummy(dc, wxPen(getColorGridLine(), fastFromDIP(1)));
+- dc.DrawLine(rectGroup.GetBottomLeft(), rectGroup.GetBottomRight() + wxPoint(1, 0));
++ if (itemPathFormat_ != ItemPathFormat::traditional && itemPathFormat_ != ItemPathFormat::tradrel)
++ dc.DrawLine(rectGroup.GetBottomLeft(), rectGroup.GetBottomRight() + wxPoint(1, 0));
+ }
+ }
+
+@@ -844,7 +895,7 @@
+ dc.GradientFillLinear(rectNav, getColorSelectionGradientFrom(), backCol, wxEAST);
+ }
+
+- if (!groupName.empty() && row == groupFirstRow)
++ if (!(itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) && !groupName.empty() && row == groupFirstRow)
+ {
+ wxDCTextColourChanger textColorGroupName(dc);
+ if (static_cast<HoverAreaGroup>(rowHover) == HoverAreaGroup::groupName)
+@@ -865,9 +916,9 @@
+ drawCellText(dc, rectGroupName, groupName, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, &getTextExtentBuffered(dc, groupName));
+ }
+
+- if (!groupParentFolder.empty() &&
++ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel || (!groupParentFolder.empty() &&
+ (( stackedGroupRender && row == groupFirstRow + 1) ||
+- (!stackedGroupRender && row == groupFirstRow)))
++ (!stackedGroupRender && row == groupFirstRow))))
+ {
+ drawCellText(dc, rectGroupParent, groupParentFolder, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, &getTextExtentBuffered(dc, groupParentFolder));
+ }
+@@ -876,7 +927,8 @@
+ if (!groupParentFolder.empty() || !groupName.empty())
+ {
+ wxDCPenChanger dummy(dc, wxPen(getColorGridLine(), fastFromDIP(1)));
+- dc.DrawLine(rectGroupItems.GetTopLeft(), rectGroupItems.GetBottomLeft() + wxPoint(0, 1)); //draws half-open range!
++ if (itemPathFormat_ != ItemPathFormat::traditional && itemPathFormat_ != ItemPathFormat::tradrel)
++ dc.DrawLine(rectGroupItems.GetTopLeft(), rectGroupItems.GetBottomLeft() + wxPoint(0, 1)); //draws half-open range!
+ rectGroupItems.x += fastFromDIP(1) + gridGap_;
+ rectGroupItems.width -= fastFromDIP(1) + gridGap_;
+ }
+@@ -1040,6 +1092,10 @@
+ return _("Relative path");
+ case ItemPathFormat::full:
+ return _("Full path");
++ case ItemPathFormat::traditional:
++ return _("Traditional");
++ case ItemPathFormat::tradrel:
++ return _("Trad. relative");
+ }
+ assert(false);
+ break;
+diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/file_grid_attr.h 11.2-1-trad3/FreeFileSync/Source/ui/file_grid_attr.h
+--- 11.2-1/FreeFileSync/Source/ui/file_grid_attr.h 2020-10-02 14:39:05.313463564 -0400
++++ 11.2-1-trad3/FreeFileSync/Source/ui/file_grid_attr.h 2020-10-02 20:21:48.863111642 -0400
+@@ -79,6 +79,8 @@
+ name,
+ relative,
+ full,
++ traditional,
++ tradrel,
+ };
+
+ const ItemPathFormat defaultItemPathFormatLeftGrid = ItemPathFormat::relative;
+diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/main_dlg.cpp 11.2-1-trad3/FreeFileSync/Source/ui/main_dlg.cpp
+--- 11.2-1/FreeFileSync/Source/ui/main_dlg.cpp 2020-10-02 20:49:11.487782099 -0400
++++ 11.2-1-trad3/FreeFileSync/Source/ui/main_dlg.cpp 2020-10-02 20:22:02.191278722 -0400
+@@ -2710,6 +2710,8 @@
+ addFormatEntry(_("Item name" ), ItemPathFormat::name);
+ addFormatEntry(_("Relative path"), ItemPathFormat::relative);
+ addFormatEntry(_("Full path" ), ItemPathFormat::full);
++ addFormatEntry(_("Traditional" ), ItemPathFormat::traditional);
++ addFormatEntry(_("Trad. relative"),ItemPathFormat::tradrel);
+
+ //----------------------------------------------------------------------------------------------
+ menu.addSeparator();
+diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/config.cpp 11.2-1-trad3/FreeFileSync/Source/config.cpp
+--- 11.2-1/FreeFileSync/Source/config.cpp 2020-10-02 14:39:05.233462578 -0400
++++ 11.2-1-trad3/FreeFileSync/Source/config.cpp 2020-10-02 20:22:24.275555557 -0400
+@@ -528,6 +528,12 @@
+ case ItemPathFormat::full:
+ output = "Full";
+ break;
++ case ItemPathFormat::traditional:
++ output = "Traditional";
++ break;
++ case ItemPathFormat::tradrel:
++ output = "Trad. relative";
++ break;
+ }
+ }
+
+@@ -541,6 +547,10 @@
+ value = ItemPathFormat::relative;
+ else if (tmp == "Full")
+ value = ItemPathFormat::full;
++ else if (tmp == "Traditional")
++ value = ItemPathFormat::traditional;
++ else if (tmp == "Trad. relative")
++ value = ItemPathFormat::tradrel;
+ else
+ return false;
+ return true;
+diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/file_view.cpp 11.2-1-trad3/FreeFileSync/Source/ui/file_view.cpp
+--- 11.2-1/FreeFileSync/Source/ui/file_view.cpp 2020-10-02 14:39:05.305463465 -0400
++++ 11.2-1-trad3/FreeFileSync/Source/ui/file_view.cpp 2020-10-02 20:22:38.439733112 -0400
+@@ -798,11 +798,13 @@
+ break;
+
+ case ItemPathFormat::relative:
++ case ItemPathFormat::tradrel:
+ if ( ascending) std::sort(sortedRef_.begin(), sortedRef_.end(), LessRelativeFolder<true >(folderPairs_));
+ else if (!ascending) std::sort(sortedRef_.begin(), sortedRef_.end(), LessRelativeFolder<false>(folderPairs_));
+ break;
+
+ case ItemPathFormat::full:
++ case ItemPathFormat::traditional:
+ if ( ascending && onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessFullPath<true, LEFT_SIDE>(folderPairs_));
+ else if ( ascending && !onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessFullPath<true, RIGHT_SIDE>(folderPairs_));
+ else if (!ascending && onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessFullPath<false, LEFT_SIDE>(folderPairs_));
+
bgstack15