diff options
Diffstat (limited to 'freefilesync/ffs_traditional_view.patch')
-rw-r--r-- | freefilesync/ffs_traditional_view.patch | 318 |
1 files changed, 0 insertions, 318 deletions
diff --git a/freefilesync/ffs_traditional_view.patch b/freefilesync/ffs_traditional_view.patch deleted file mode 100644 index e0cf0d2..0000000 --- a/freefilesync/ffs_traditional_view.patch +++ /dev/null @@ -1,318 +0,0 @@ -Version: 11.21 -Date: 2022-05-24 -Author: bgstack15@gmail.com -Message: restore a traditional view to FreeFileSync -diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11.3-1/FreeFileSync/Source/ui/file_grid.cpp ---- 11.21-0/FreeFileSync/Source/ui/file_grid.cpp 2022-05-22 17:09:32.242809600 -0400 -+++ 11.21-1/FreeFileSync/Source/ui/file_grid.cpp 2022-05-22 20:23:04.015916689 -0400 -@@ -475,8 +475,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,8 +531,13 @@ - else - GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); - -+ // trad patch section for removing lines around items in grid -+ int lineWidth { fastFromDIP(1) } ; -+ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) -+ lineWidth = 0; -+ - //---------------------------------------------------------------------------------- -- const wxRect rectLine(rect.x, rect.y + rect.height - fastFromDIP(1), rect.width, fastFromDIP(1)); -+ const wxRect rectLine(rect.x, rect.y + rect.height - lineWidth, rect.width, lineWidth); - clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? - getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); - } -@@ -636,6 +643,26 @@ - 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->template getRelativePath<side>()); -+ } -+ break; -+ - } - - //path components should follow the app layout direction and are NOT a single piece of text! -@@ -661,11 +688,38 @@ - int groupNameWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + getTextExtentBuffered(dc, groupName).x); - const int groupNameMinWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + ellipsisWidth); - -- const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + fastFromDIP(1)); -+ // trad patch section for removing lines around items in grid -+ // code duplication because this is a different scope! -+ int lineWidth { fastFromDIP(1) } ; -+ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) -+ lineWidth = 0; -+ -+ const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + lineWidth); - - int groupItemsWidth = groupSepWidth + (drawFileIcons ? gapSize_ + iconSize : 0) + gapSize_ + groupItemNamesWidth; - const int groupItemsMinWidth = groupSepWidth + (drawFileIcons ? gapSize_ + iconSize : 0) + gapSize_ + ellipsisWidth; - -+ // start trad patch -+ -+ // rearrange this one section -+ switch (itemPathFormat_) -+ { -+ case ItemPathFormat::traditional: -+ case ItemPathFormat::tradrel: -+ groupParentWidth -= groupNameWidth - 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 += contains(groupParentFolder, L'/') ? L'/' : (contains(groupParentFolder, L'\\') ? L'\\' : FILE_NAME_SEPARATOR); -+ 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 = groupParentWidth + groupNameWidth + groupItemsWidth - maxWidth; - excessWidth > 0) -@@ -731,6 +785,11 @@ - } - } - } -+ -+ // end of original section, and back to the trad patch! -+ break; -+ } -+ // and end the addition for trad patch - - return - { -@@ -851,6 +910,9 @@ - rectGroup = rectGroupParent = rectGroupName = rectTmp; - - rectGroupParent.width = groupParentWidth; -+ // re-add back the width of groupname so that the directory name is clickable -+ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) -+ rectGroupParent.width += groupNameWidth; - rectGroupName .width = groupNameWidth; - - if (stackedGroupRender) -@@ -874,6 +936,11 @@ - rectGroupItems.width = 0; - } - -+ // trad patch section for removing lines around items in grid -+ int lineWidth { fastFromDIP(1) } ; -+ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) -+ lineWidth = 0; -+ - //------------------------------------------------------------------------- - { - //clear background below parent path => harmonize with renderRowBackgound() -@@ -884,8 +951,8 @@ - wxRect rectGroupBack = rectGroup; - rectGroupBack.width += 2 * gapSize_; //include gap before vline - -- if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! -- rectGroupBack.height -= fastFromDIP(1); -+ if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! -+ rectGroupBack.height -= lineWidth; - - clearArea(dc, rectGroupBack, getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 == 0)); - //clearArea() is surprisingly expensive => call just once! -@@ -900,7 +967,8 @@ - rectNav.width = fastFromDIP(20); - - if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! -- rectNav.height -= fastFromDIP(1); -+ if (itemPathFormat_ != ItemPathFormat::traditional && itemPathFormat_ != ItemPathFormat::tradrel) -+ rectNav.height -= lineWidth; - - wxColor backCol = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); - dc.GetPixel(rectNav.GetTopRight(), &backCol); //e.g. selected row! -@@ -908,13 +976,13 @@ - dc.GradientFillLinear(rectNav, getColorSelectionGradientFrom(), backCol, wxEAST); - } - -- if (!groupName.empty() && row == groupFirstRow) -+ if (!(itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) && !groupName.empty() && row == groupFirstRow) - { - wxRect rectGroupNameBack = rectGroupName; - - if (!itemName.empty()) - rectGroupNameBack.width += 2 * gapSize_; //include gap left of item vline -- rectGroupNameBack.height -= fastFromDIP(1); //harmonize with item separation lines -+ rectGroupNameBack.height -= lineWidth; //harmonize with item separation lines - - wxDCTextColourChanger textColorGroupName(dc); - //folder background: coordinate with renderRowBackgound() -@@ -947,9 +1015,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))) && - (groupName.empty() || !pdi.folderGroupObj->isEmpty<side>())) //don't show for missing folders - { - wxRect rectGroupParentText = rectGroupParent; -@@ -969,16 +1037,16 @@ - rectGroupItems.x += 2 * gapSize_; - rectGroupItems.width -= 2 * gapSize_; - -- wxDCPenChanger dummy(dc, wxPen(getColorGridLine(), fastFromDIP(1))); -+ wxDCPenChanger dummy(dc, wxPen(getColorGridLine(), lineWidth)); - dc.DrawLine(rectGroupItems.GetTopLeft(), rectGroupItems.GetBottomLeft() + wxPoint(0, 1)); //draws half-open range! - -- rectGroupItems.x += fastFromDIP(1); -- rectGroupItems.width -= fastFromDIP(1); -+ rectGroupItems.x += lineWidth; -+ rectGroupItems.width -= lineWidth; - } - //------------------------------------------------------------------------- - - wxRect rectItemsBack = rectGroupItems; -- rectItemsBack.height -= fastFromDIP(1); //preserve item separation lines! -+ rectItemsBack.height -= lineWidth; //preserve item separation lines! - - drawCudHighlight(rectItemsBack, pdi.fsObj->getSyncOperation()); - -@@ -1105,7 +1173,12 @@ - groupNameWidth] = getGroupRenderLayout(dc, row, pdi, insanelyHugeWidth); - assert(!stackedGroupRender); - -- const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + fastFromDIP(1)); -+ // trad patch section for removing lines around items in grid -+ int lineWidth { fastFromDIP(1) } ; -+ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) -+ lineWidth = 0; -+ -+ const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + lineWidth); - const int fileIconWidth = getIconManager().getIconBuffer() ? gapSize_ + getIconManager().getIconSize() : 0; - const int ellipsisWidth = getTextExtentBuffered(dc, ELLIPSIS).x; - const int itemWidth = itemName.empty() ? 0 : -@@ -1137,6 +1210,10 @@ - return _("Relative path"); - case ItemPathFormat::full: - return _("Full path"); -+ case ItemPathFormat::traditional: -+ return _("Traditional"); -+ case ItemPathFormat::tradrel: -+ return _("Trad. relative"); - } - assert(false); - break; -@@ -1393,7 +1470,8 @@ - GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); - - //---------------------------------------------------------------------------------- -- const wxRect rectLine(rect.x, rect.y + rect.height - fastFromDIP(1), rect.width, fastFromDIP(1)); -+ // just hardcoding this in this trad patch, because itempathFormat_ is not available in this scope. -+ const wxRect rectLine(rect.x, rect.y + rect.height - 0, rect.width, 0); - clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? - getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); - } -@@ -1417,7 +1495,8 @@ - { - wxRect rectBack = rect; - if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! -- rectBack.height -= fastFromDIP(1); -+ // just hardcoding this in this trad patch, because itempathFormat_ is not available in this scope. -+ rectBack.height -= 0; - - clearArea(dc, rectBack, col); - } -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.21-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-05-22 20:26:31.350461792 -0400 -@@ -2741,6 +2741,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); - - //---------------------------------------------------------------------------------------------- - auto setIconSize = [&](GridIconSize sz, bool showIcons) -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, SelectSide::left>(folderPairs_)); - else if ( ascending && !onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessFullPath<true, SelectSide::right>(folderPairs_)); - else if (!ascending && onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessFullPath<false, SelectSide::left>(folderPairs_)); - |