View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0017647 | Scribus | General | public | 2025-10-11 11:58 | 2025-10-13 00:56 |
Reporter | qirat | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | new | Resolution | open | ||
Platform | Linux | OS | Fedora | OS Version | 42 Workstation |
Product Version | 1.7.1.svn | ||||
Summary | 0017647: [PATCH] Ungrouping groups - no "ungroup" option after the first ungroup | ||||
Description | So, when you ungroup groups, it does not go all the way through. As far as I have tested, the issue is with paths. The shapes work fine. | ||||
Steps To Reproduce | 1. Select two paths -> Ctrl+G 2. While that group is selected, Shift-select a third path -> Ctrl+G (a group of 3 paths) 3. Now, select it and press Ctrl+Shift+G multiple times (at least 2 right?). 4. It should go all the way through (making all 3 paths individual items). However, it will stop after ungrouping the last group, removing the 3rd path from it. The first two paths remain grouped still. | ||||
Additional Information | Also, the "Ungroup" option in "Item > Grouping" greys-out after the first ungrouping. I tested the issue on X11 (LMDE), and Wayland (Fedora 42). | ||||
Tags | grouped Objects | ||||
Patch | Yes | ||||
|
When you undo the first (outer) group, the items remain selected however the first (inner) group is not the primary selected item, so ungroup is not an available option. This is the same for all item types. |
|
What I meant to say was that Inkscape and Krita do not do the way Scribus does it. Especially Inkscape. They ungroup the items to the last point (until all of them are individual items), no matter how many steps (groups after groups) were involved while grouping. You can ungroup all intermediate groups by selecting the last formed group once. As far as I know, that is convenient from the user's perspective. |
|
Ungrouping does work when single items and groups are selected. But the command is only active when the first item selected is a group. I guess that when checking if ungroup should is enabled or not, Scribus should not simply check the first item in the selection, but look for at least one item in the selection being a group. |
|
You summed up well, @ale. It would be nice if Scribus does that too (like others). |
|
Here a trivial patch to allow the ungrouping when a group is in the selection (and not only when the first item selected is a group) P.S.: both ungroup (not checked in the code but in the UI) and resize group act already on all the groups in the selection, it's just the menu entry that is disabled. P.P.S.: If this is accepted, I will also do a patch for the context menu... unggroup-recursive.diff (929 bytes)
From 198aa83476680f1b90e81a2344731c5d894ae9a4 Mon Sep 17 00:00:00 2001 From: ale rimoldi <ale@graphicslab.org> Date: Sun, 12 Oct 2025 16:45:27 +0200 Subject: enable ungrouping and group adjust if the selection contains a group diff --git a/scribus/appmodehelper.cpp b/scribus/appmodehelper.cpp index 79e0359af..6bb7235f7 100644 --- a/scribus/appmodehelper.cpp +++ b/scribus/appmodehelper.cpp @@ -910,7 +910,7 @@ void AppModeHelper::enableActionsForSelection(ScribusMainWindow* scmw, ScribusDo (*a_scrActions)["itemLock"]->setEnabled(doc->appMode != modeEditClip); (*a_scrActions)["itemLockSize"]->setEnabled(true); (*a_scrActions)["itemPrintingEnabled"]->setEnabled(true); - if (currItem->isGroup()) + if (doc->m_Selection->containsItemType(PageItem::Group)) { (*a_scrActions)["itemUngroup"]->setEnabled(doc->appMode != modeEdit); (*a_scrActions)["itemGroupAdjust"]->setEnabled(doc->appMode != modeEdit); |
|
Similar patch for adding the ungroup to the context menu and enabling the button in PP when a group is in the selection. ungroup-context-xyz.diff (1,893 bytes)
From 28ba52350230c3646d8bd95a3e20ae172f88e296 Mon Sep 17 00:00:00 2001 From: ale rimoldi <ale@graphicslab.org> Date: Sun, 12 Oct 2025 21:24:29 +0200 Subject: when the selection contains a group add ungroup to context menu and enable the ungroup button in the palette diff --git a/scribus/ui/contextmenu.cpp b/scribus/ui/contextmenu.cpp index 10ab3b1b4..dc2ddfc2c 100644 --- a/scribus/ui/contextmenu.cpp +++ b/scribus/ui/contextmenu.cpp @@ -413,13 +413,10 @@ void ContextMenu::createMenuItems_Selection() if (m_Sel.objectsLayer() != -1) addAction(m_ScMW->scrActions["itemGroup"]); } - else + if (selectedItemCount > 0 && m_doc->m_Selection->containsItemType(PageItem::Group)) { - if (currItem->isGroup()) - { - addAction(m_ScMW->scrActions["itemUngroup"]); - addAction(m_ScMW->scrActions["itemGroupAdjust"]); - } + addAction(m_ScMW->scrActions["itemUngroup"]); + addAction(m_ScMW->scrActions["itemGroupAdjust"]); } //--> diff --git a/scribus/ui/propertiespalette_xyz.cpp b/scribus/ui/propertiespalette_xyz.cpp index f9026a5d2..955049df0 100644 --- a/scribus/ui/propertiespalette_xyz.cpp +++ b/scribus/ui/propertiespalette_xyz.cpp @@ -361,12 +361,13 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item) doGroup->setEnabled(false); doUnGroup->setEnabled(false); - if ((m_doc->m_Selection->count() > 1) && haveSameParent) + if (m_doc->m_Selection->count() > 1 && haveSameParent) doGroup->setEnabled(true); - if (m_doc->m_Selection->count() == 1) - doUnGroup->setEnabled(m_item->isGroup()); - if ((m_doc->appMode == modeEditClip) && (m_item->isGroup())) - doUnGroup->setEnabled(false); + if (m_doc->m_Selection->count() > 0) + { + if (m_doc->appMode != modeEditClip && m_doc->m_Selection->containsItemType(PageItem::Group)) + doUnGroup->setEnabled(true); + } if (m_item->isOSGFrame()) { setEnabled(true); |
|
Thank you, @ale. I hope it gets accepted. |
Date Modified | Username | Field | Change |
---|---|---|---|
2025-10-11 11:58 | qirat | New Issue | |
2025-10-11 11:58 | qirat | Tag Attached: grouped Objects | |
2025-10-11 21:23 | cbradney | Note Added: 0053061 | |
2025-10-12 02:45 | qirat | Note Added: 0053062 | |
2025-10-12 10:18 | ale | Note Added: 0053063 | |
2025-10-12 14:03 | qirat | Note Added: 0053064 | |
2025-10-12 14:47 | ale | Note Added: 0053065 | |
2025-10-12 14:47 | ale | File Added: unggroup-recursive.diff | |
2025-10-12 14:47 | ale | Summary | Ungrouping groups - no "ungroup" option after the first ungroup => [PATCH] Ungrouping groups - no "ungroup" option after the first ungroup |
2025-10-12 14:47 | ale | Patch | No => Yes |
2025-10-12 14:50 | ale | Note Edited: 0053065 | |
2025-10-12 14:51 | ale | Note Edited: 0053065 | |
2025-10-12 19:27 | ale | Note Added: 0053066 | |
2025-10-12 19:27 | ale | File Added: ungroup-context-xyz.diff | |
2025-10-13 00:56 | qirat | Note Added: 0053067 |