Bug 486341

Summary: Edit Bookmarks menu item does nothing
Product: [Applications] digikam Reporter: Mark <mark>
Component: Geolocation-BookmarksAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: caulier.gilles, metzpinguin
Priority: NOR    
Version: 8.5.0   
Target Milestone: ---   
Platform: macOS (DMG)   
OS: macOS   
Latest Commit: Version Fixed In: 8.5.0
Sentry Crash Report:
Attachments: Screen movie showing bug

Description Mark 2024-04-30 12:03:37 UTC
Created attachment 169032 [details]
Screen movie showing bug

***
If you're not sure this is actually a bug, instead post about it at https://discuss.kde.org

If you're reporting a crash, attach a backtrace with debug symbols; see https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***

SUMMARY


STEPS TO REPRODUCE
1. Select an image from an album.
2. Edit Geolocation
3. Right-click a image from Geolocation Edit dialog list.

OBSERVED RESULT

Nothing happens. I have run digiKam from the command line with debug logging enabled and see no output as a result of selecting the Edit Bookmarks item.

EXPECTED RESULT

Bookmark Manager should appear.

SOFTWARE/OS VERSIONS
Windows: 
macOS: 14.4.1 (Intel platform)
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 5.114.0
Qt Version: 5.15.11

ADDITIONAL INFORMATION
Comment 1 Mark 2024-04-30 12:05:30 UTC
Sorry, step 3 should say "Right-click a image from Geolocation Edit dialog list and choose Edit Bookmarks"
Comment 2 caulier.gilles 2024-04-30 14:40:50 UTC
Yes, it's fully reproducible under MacOS with 8.3.0. Under Linux all works as expected...

Gilles Caulier
Comment 4 Maik Qualmann 2024-04-30 19:09:14 UTC
I don't really see an error. The dialog also works under Windows. I'm surprised by the (!) in front of !d->bookmarksDialog->isHidden(). Because if the dialog is hidden, it can also be reactivated. We also use the same code in the plugin dialogs for reactivation. However, it doesn't matter because the pointer is NULL at the start anyway.

Maik
Comment 5 caulier.gilles 2024-05-06 06:23:26 UTC
Hi,

The Edit Bookmarks work but don"t show the dialog with the focus by default. Go to the mac taskbar digiKam icon context menu and select the Show All Windows. The bookmarks editor dialog appears...

Gilles Caulier
Comment 6 Maik Qualmann 2024-05-06 06:28:42 UTC
Git commit 866f0532c62d0b8934ed4f965f151b9564db5720 by Maik Qualmann.
Committed on 06/05/2024 at 06:28.
Pushed by mqualmann into branch 'master'.

try to bring the bookmark dialog to the front

M  +1    -0    core/utilities/geolocation/geoiface/bookmark/gpsbookmarkowner.cpp

https://invent.kde.org/graphics/digikam/-/commit/866f0532c62d0b8934ed4f965f151b9564db5720
Comment 7 caulier.gilles 2024-05-06 06:47:35 UTC
Maik,

I think it's not a raise problem with the dialog. In fact the dialog is open and presnet on screen, but show behind the metadata editor dialog. If i move this last one, bookmarks editor appear, but is not suitable : the mouse has no effect. It sounds like a even loop problem.

Not that the bookmarks editor dialog has the 3 buttons on the title bar. So it can be reduced.

Gilles
Comment 8 Maik Qualmann 2024-05-06 08:16:20 UTC
We could test a different parent for the dialog (qApp->activeWindow()).

Maik
Comment 9 caulier.gilles 2024-05-06 11:03:55 UTC
Git commit 1c890c7017e021b471fe5fe1834eedfb0437d1ac by Gilles Caulier.
Committed on 06/05/2024 at 11:03.
Pushed by cgilles into branch 'master'.

pass active windows parent to the dialog

M  +2    -1    core/utilities/geolocation/geoiface/bookmark/gpsbookmarkowner.cpp

https://invent.kde.org/graphics/digikam/-/commit/1c890c7017e021b471fe5fe1834eedfb0437d1ac
Comment 10 caulier.gilles 2024-05-06 11:12:56 UTC
Maik,

I think the problem under MacOS can be the flags passed to dialog here :

https://invent.kde.org/graphics/digikam/-/blob/master/core/utilities/geolocation/geoiface/bookmark/bookmarksdlg.cpp?ref_type=heads#L80

If i take a look to other setWindowFlags() call in digiKam core, we never use Qt::Sheet, but always a customized combination as this one :

https://invent.kde.org/graphics/digikam/-/blob/master/core/libs/dplugins/widgets/dplugindialog.cpp?ref_type=heads#L46

Gilles
Comment 11 caulier.gilles 2024-05-06 11:15:44 UTC
Git commit 16567cfe1e40838b1fab63e7d3168f49cab22919 by Gilles Caulier.
Committed on 06/05/2024 at 11:14.
Pushed by cgilles into branch 'master'.

use same window flags than DPlugin About Dialog

M  +4    -1    core/utilities/geolocation/geoiface/bookmark/bookmarksdlg.cpp
M  +1    -1    core/utilities/geolocation/geoiface/bookmark/gpsbookmarkowner.cpp

https://invent.kde.org/graphics/digikam/-/commit/16567cfe1e40838b1fab63e7d3168f49cab22919
Comment 12 caulier.gilles 2024-05-06 21:29:01 UTC
changing the edit bookmark dialog parent to active windows do not fix the problem
Comment 13 caulier.gilles 2024-05-06 21:42:49 UTC
Git commit 747bbe9204c0f509761e8fa35ecc142c60a9a44f by Gilles Caulier.
Committed on 06/05/2024 at 21:42.
Pushed by cgilles into branch 'master'.

set dialog modal

M  +3    -0    core/utilities/geolocation/geoiface/bookmark/bookmarksdlg.cpp

https://invent.kde.org/graphics/digikam/-/commit/747bbe9204c0f509761e8fa35ecc142c60a9a44f
Comment 14 caulier.gilles 2024-05-07 08:57:33 UTC
Hi Maik,

Look my screenshot : https://i.imgur.com/wCJXdON.png

Before to open the Edit Bookmark dialog, i moved the geolocation dialog on the right side of screen. The Bookmark dialog appears on the middle of the screen but is not complete. Map is not loaded and some icons are missing. I think the dialog code is blocked somewhere.

Gilles
Comment 15 caulier.gilles 2024-05-07 09:00:17 UTC
Maik,

As you can see on this second screenshot, the map is well displayed on the Geolocation dialog and all icons are present.

Sound like a lock in Marble.

Note : There is no bookmark registered yet on my computer.

Gilles
Comment 16 caulier.gilles 2024-05-07 09:01:02 UTC
Link to the second screenshot : https://i.imgur.com/q64EBvk.png
Comment 17 Maik Qualmann 2024-05-07 09:41:19 UTC
The map in the Bookmark Manager is only loaded when you have added a bookmark and clicked on it. So the screenshot looks normal for empty bookmarks.

Maik
Comment 18 caulier.gilles 2024-05-07 11:07:51 UTC
Another point : the cursor in the Edit bookmark "Search" field is blinking, but the mouse has no action over this dialog.
Comment 19 caulier.gilles 2024-05-07 11:09:40 UTC
I tried the Edit Bookmark under Linux, and the dialog is exactly the same than under MacOS. The missing icons buttons are also there...
Comment 20 caulier.gilles 2024-05-07 11:12:30 UTC
And why the Edit Bookmark dialog still open below than the Geolocation Edit dialog ? This is really strange...
Comment 21 caulier.gilles 2024-05-07 11:16:08 UTC
Time Adjust dialog under MacOS: the Determine clock difference dialog has also strange side effects.

The way to open a dialog from a dialog under MacOS do not work as expected (where Linux and Windows work fine).
Comment 22 caulier.gilles 2024-05-07 11:19:42 UTC
The Maintenance Tool dialog under MacOS / Image Quality / Settings : the setup dialog work as expected.

Perhaps the plugin wizard/dialog as a property than a child dialog don't like.
Comment 23 Maik Qualmann 2024-05-07 12:36:31 UTC
Could it also be because we have already modified the first/basic dialog via the window flags -> QDialog to QWindow? We did this once because of problems with Gnome.

Maik
Comment 24 Maik Qualmann 2024-05-07 12:43:24 UTC
It could also be the parent from the first dialog. The maintenance tool has the digikamApp as parent, the Geolocation Editor and the Time Adjust Tool has a nullptr as parent.

Maik
Comment 25 caulier.gilles 2024-05-07 15:40:59 UTC
Yes, this can be the origin.

The Q is why in this case, Linux and Windows are not affected ?

Note : MacOS still uses Qt5...

Gilles
Comment 26 caulier.gilles 2024-05-07 15:59:20 UTC
Git commit c1fd8e1ad84fcc4425e248fe3afdfaa5e8ef427d by Gilles Caulier.
Committed on 07/05/2024 at 15:58.
Pushed by cgilles into branch 'master'.

pass the active windows as parent to the Geolocation and TimeAdjust dialogs

M  +2    -1    core/dplugins/generic/metadata/geolocationedit/geolocationeditplugin.cpp
M  +2    -1    core/dplugins/generic/metadata/timeadjust/timeadjustplugin.cpp

https://invent.kde.org/graphics/digikam/-/commit/c1fd8e1ad84fcc4425e248fe3afdfaa5e8ef427d
Comment 27 caulier.gilles 2024-05-08 10:36:38 UTC
Maik,

Passing the active windows as parent to the plugins dialog do not change anything...

Gilles
Comment 28 Maik Qualmann 2024-05-08 19:11:50 UTC
Git commit e3028bd8610c43783e377445aca578645dfdabf0 by Maik Qualmann.
Committed on 08/05/2024 at 19:11.
Pushed by mqualmann into branch 'master'.

try moving it to the main thread.
The thread is identical under Linux, but perhaps not under macOS.

M  +2    -1    core/dplugins/generic/metadata/geolocationedit/geolocationeditplugin.cpp
M  +2    -1    core/dplugins/generic/metadata/timeadjust/timeadjustplugin.cpp

https://invent.kde.org/graphics/digikam/-/commit/e3028bd8610c43783e377445aca578645dfdabf0
Comment 29 caulier.gilles 2024-09-16 21:12:46 UTC
Probme is always reproducible with the 8.5.0 Arm64 version
Comment 30 caulier.gilles 2024-09-18 07:23:16 UTC
Maik,

I run the geolocation editor with the full debug trace in Qt, and in terminal we have this trace when bookmark editor entry in context menu is activated:

...
qt.widgets.painting: Marking QRegion(0,0 304x24) of QWidget(0x60000909dbf0) dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Marking QRegion(0,0 304x398) of Digikam::ItemPropertiesGPSTab(0x60000926bf60) dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Marking QRegion(0,0 80x24) of QPushButton(0x60000909e550) dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Marking QRegion(0,0 80x24) of QPushButton(0x60000909e580) dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Marking QRegion(0,0 80x24) of QPushButton(0x60000909e700) dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Marking QRegion(0,0 80x24) of QPushButton(0x60000909e7f0) dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Marking QRegion(0,0 278x24) of QDialogButtonBox(0x60000909e6d0) dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Marking QRegion(0,0 750x450) of Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Syncing dirty widgets
qt.widgets.painting: Painting and flushing dirty top level QRegion(null) and dirty widgets QList(QWidget(0x60000926b780, name="qt_scrollarea_viewport"), QWidget(0x60000926ae20, name="qt_scrollarea_viewport"), Digikam::SearchTextBar(0x60001d9de480, name="search"), QHeaderView(0x60000926b7e0), QTreeView(0x600009269a40), QLabel(0x6000092def70), Digikam::PlaceholderWidget(0x6000092df0c0), Digikam::MapWidget(0x60001d9def40), QWidget(0x600009230b10), QStackedWidget(0x60000926bfc0), QLabel(0x60000909cbd0), QLabel(0x60000909ce40), QLabel(0x60000909d080), QLabel(0x60000909d2c0), Digikam::DAdjustableLabel(0x60000909d530), Digikam::DAdjustableLabel(0x60000909d560), Digikam::DAdjustableLabel(0x60000909d5c0), Digikam::DAdjustableLabel(0x60000909d590), QToolButton(0x60000909d620), QComboBox(0x60000909d6b0), QToolButton(0x60000909d740), Digikam::DHBox(0x60000909d5f0), QPushButton(0x60000909dc20), QToolButton(0x60000909dcb0), QToolButton(0x60000909dd10), QToolButton(0x60000909dd70), QFrame(0x60000909ddd0), QToolButton(0x60000909de00), QToolButton(0x60000909de90), QFrame(0x60000909df20), QToolButton(0x60000909df50), QToolButton(0x60000909e100), QWidget(0x60000909def0), QToolButton(0x60000909e280), QWidget(0x60000909dbf0), Digikam::ItemPropertiesGPSTab(0x60000926bf60), QPushButton(0x60000909e550), QPushButton(0x60000909e580), QPushButton(0x60000909e700), QPushButton(0x60000909e7f0), QDialogButtonBox(0x60000909e6d0), Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog"))
qt.qpa.backingstore: Beginning paint of QRegion(0,0 750x450) into backingstore of QSize(750, 450)
qt.qpa.backingstore:   front: QIOSurfaceGraphicsBuffer(0x60000a4fe520, surface=0x600000386140, size=QSize(1500, 900), isLocked=false, isInUse=true)
qt.qpa.backingstore: Available buffers exhausted, increasing swap chain depth to 2
qt.qpa.backingstore: Creating surface of QSize(1500, 900) for QWidgetWindow(0x60000a4da580, name="GeolocationBookmarksEditDialogWindow") based on requested QSize(750, 450) dpr = 2 and color space <CGColorSpace 0x600002485260> (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; Color LCD)
qt.qpa.backingstore.iosurface: Tagging QIOSurfaceGraphicsBuffer(0x60000a402d00, surface=0x600000389c10, size=QSize(1500, 900), isLocked=false, isInUse=false) with color space <CGColorSpace 0x600002485260> (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; Color LCD)
qt.qpa.backingstore.iosurface: Locking QIOSurfaceGraphicsBuffer(0x60000a402d00, surface=0x600000389c10, size=QSize(1500, 900), isLocked=false, isInUse=false) for QFlags<QPlatformGraphicsBuffer::AccessType>(SWWriteAccess)
qt.qpa.backingstore: Setting up paint device for QIOSurfaceGraphicsBuffer(0x60000a402d00, surface=0x600000389c10, size=QSize(1500, 900), isLocked=true, isInUse=false)
qt.widgets.painting: Drawing QRegion(0,0 416x17) of QWidget(0x60000926b780, name="qt_scrollarea_viewport") at QPoint(12,42) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive|DontDrawOpaqueChildren)
qt.widgets.painting: Marking QRegion(0,0 416x17) of QWidget(0x60000926b780, name="qt_scrollarea_viewport") as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(12,42)
qt.widgets.painting: Drawing QRegion(0,0 416x349) of QWidget(0x60000926ae20, name="qt_scrollarea_viewport") at QPoint(12,59) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive|DontDrawOpaqueChildren)
qt.widgets.painting: Marking QRegion(0,0 416x349) of QWidget(0x60000926ae20, name="qt_scrollarea_viewport") as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(12,59)
qt.widgets.painting: Drawing QRegion(size=4, bounds=(0,0 750x450) - [(0,0 750x42), (0,42 12x366), (428,42 322x366), (0,408 750x42)]) of Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at QPoint(0,0) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawAsRoot|DrawRecursive|UseEffectRegionBounds)
qt.widgets.painting: Marking QRegion(size=4, bounds=(0,0 750x450) - [(0,0 750x42), (0,42 12x366), (428,42 322x366), (0,408 750x42)]) of top level Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") as needing flush
qt.widgets.painting: Drawing QRegion(0,0 418x24) of Digikam::SearchTextBar(0x60001d9de480, name="search") at QPoint(11,11) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 418x24) of Digikam::SearchTextBar(0x60001d9de480, name="search") as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(11,11)
qt.widgets.painting: Drawing QRegion(size=4, bounds=(0,0 418x368) - [(0,0 418x1), (0,1 1x366), (417,1 1x366), (0,367 418x1)]) of QTreeView(0x600009269a40) at QPoint(11,41) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(size=4, bounds=(0,0 418x368) - [(0,0 418x1), (0,1 1x366), (417,1 1x366), (0,367 418x1)]) of QTreeView(0x600009269a40) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(11,41)
qt.widgets.painting: Drawing QRegion(0,0 304x398) of Digikam::ItemPropertiesGPSTab(0x60000926bf60) at QPoint(435,11) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 304x398) of Digikam::ItemPropertiesGPSTab(0x60000926bf60) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(435,11)
qt.widgets.painting: Drawing QRegion(0,0 304x286) of QStackedWidget(0x60000926bfc0) at QPoint(435,11) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 304x286) of QStackedWidget(0x60000926bfc0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(435,11)
qt.widgets.painting: Drawing QRegion(0,0 302x284) of QWidget(0x600009230b10) at QPoint(436,12) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 302x284) of QWidget(0x600009230b10) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(436,12)
qt.widgets.painting: Drawing QRegion(0,0 302x284) of Digikam::MapWidget(0x60001d9def40) at QPoint(436,12) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 302x284) of Digikam::MapWidget(0x60001d9def40) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(436,12)
qt.widgets.painting: Drawing QRegion(0,0 302x284) of Digikam::PlaceholderWidget(0x6000092df0c0) at QPoint(436,12) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 302x284) of Digikam::PlaceholderWidget(0x6000092df0c0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(436,12)
qt.widgets.painting: Drawing QRegion(0,0 100x30) of QLabel(0x6000092def70) at QPoint(436,12) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 100x30) of QLabel(0x6000092def70) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(436,12)
qt.widgets.painting: Drawing QRegion(0,0 68x16) of QLabel(0x60000909cbd0) at QPoint(435,297) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.text.drawing: drawFrame 0 -- 9 at QPointF(0,0)
qt.text.drawing: drawBlock 0 at QPointF(0,0) br QRectF(0,0 68x16)
qt.widgets.painting: Marking QRegion(0,0 68x16) of QLabel(0x60000909cbd0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(435,297)
qt.widgets.painting: Drawing QRegion(0,0 68x16) of QLabel(0x60000909ce40) at QPoint(435,313) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.text.drawing: drawFrame 0 -- 9 at QPointF(0,0)
qt.text.drawing: drawBlock 0 at QPointF(0,0) br QRectF(0,0 68x16)
qt.widgets.painting: Marking QRegion(0,0 68x16) of QLabel(0x60000909ce40) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(435,313)
qt.widgets.painting: Drawing QRegion(0,0 68x16) of QLabel(0x60000909d080) at QPoint(435,329) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.text.drawing: drawFrame 0 -- 10 at QPointF(0,0)
qt.text.drawing: drawBlock 0 at QPointF(0,0) br QRectF(0,0 68x16)
qt.widgets.painting: Marking QRegion(0,0 68x16) of QLabel(0x60000909d080) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(435,329)
qt.widgets.painting: Drawing QRegion(0,0 68x16) of QLabel(0x60000909d2c0) at QPoint(435,345) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.text.drawing: drawFrame 0 -- 5 at QPointF(0,0)
qt.text.drawing: drawBlock 0 at QPointF(0,0) br QRectF(0,0 68x16)
qt.widgets.painting: Marking QRegion(0,0 68x16) of QLabel(0x60000909d2c0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(435,345)
qt.widgets.painting: Drawing QRegion(0,0 236x16) of Digikam::DAdjustableLabel(0x60000909d530) at QPoint(503,297) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 236x16) of Digikam::DAdjustableLabel(0x60000909d530) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(503,297)
qt.widgets.painting: Drawing QRegion(0,0 236x16) of Digikam::DAdjustableLabel(0x60000909d560) at QPoint(503,313) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 236x16) of Digikam::DAdjustableLabel(0x60000909d560) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(503,313)
qt.widgets.painting: Drawing QRegion(0,0 236x16) of Digikam::DAdjustableLabel(0x60000909d5c0) at QPoint(503,329) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 236x16) of Digikam::DAdjustableLabel(0x60000909d5c0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(503,329)
qt.widgets.painting: Drawing QRegion(0,0 236x16) of Digikam::DAdjustableLabel(0x60000909d590) at QPoint(503,345) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 236x16) of Digikam::DAdjustableLabel(0x60000909d590) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(503,345)
qt.widgets.painting: Drawing QRegion(0,0 304x24) of Digikam::DHBox(0x60000909d5f0) at QPoint(435,385) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 304x24) of Digikam::DHBox(0x60000909d5f0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(435,385)
qt.widgets.painting: Drawing QRegion(0,0 24x23) of QToolButton(0x60000909d620) at QPoint(435,385) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 24x23) of QToolButton(0x60000909d620) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(435,385)
qt.widgets.painting: Drawing QRegion(0,0 131x24) of QComboBox(0x60000909d6b0) at QPoint(584,385) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 131x24) of QComboBox(0x60000909d6b0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(584,385)
qt.widgets.painting: Drawing QRegion(0,0 24x23) of QToolButton(0x60000909d740) at QPoint(715,385) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 24x23) of QToolButton(0x60000909d740) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(715,385)
qt.widgets.painting: Drawing QRegion(0,0 304x24) of QWidget(0x60000909dbf0) at QPoint(435,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 304x24) of QWidget(0x60000909dbf0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(435,361)
qt.widgets.painting: Drawing QRegion(0,0 40x24) of QPushButton(0x60000909dc20) at QPoint(435,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 40x24) of QPushButton(0x60000909dc20) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(435,361)
qt.widgets.painting: Drawing QRegion(0,0 24x23) of QToolButton(0x60000909dcb0) at QPoint(481,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 24x23) of QToolButton(0x60000909dcb0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(481,361)
qt.widgets.painting: Drawing QRegion(0,0 24x23) of QToolButton(0x60000909dd10) at QPoint(511,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 24x23) of QToolButton(0x60000909dd10) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(511,361)
qt.widgets.painting: Drawing QRegion(0,0 24x23) of QToolButton(0x60000909dd70) at QPoint(541,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 24x23) of QToolButton(0x60000909dd70) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(541,361)
qt.widgets.painting: Drawing QRegion(0,0 3x24) of QFrame(0x60000909ddd0) at QPoint(571,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 3x24) of QFrame(0x60000909ddd0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(571,361)
qt.widgets.painting: Drawing QRegion(0,0 24x23) of QToolButton(0x60000909de00) at QPoint(580,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 24x23) of QToolButton(0x60000909de00) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(580,361)
qt.widgets.painting: Drawing QRegion(0,0 24x23) of QToolButton(0x60000909de90) at QPoint(610,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 24x23) of QToolButton(0x60000909de90) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(610,361)
qt.widgets.painting: Drawing QRegion(0,0 63x24) of QWidget(0x60000909def0) at QPoint(640,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 63x24) of QWidget(0x60000909def0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(640,361)
qt.widgets.painting: Drawing QRegion(0,0 3x24) of QFrame(0x60000909df20) at QPoint(640,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 3x24) of QFrame(0x60000909df20) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(640,361)
qt.widgets.painting: Drawing QRegion(0,0 24x23) of QToolButton(0x60000909df50) at QPoint(649,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 24x23) of QToolButton(0x60000909df50) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(649,361)
qt.widgets.painting: Drawing QRegion(0,0 24x23) of QToolButton(0x60000909e100) at QPoint(679,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 24x23) of QToolButton(0x60000909e100) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(679,361)
qt.widgets.painting: Drawing QRegion(0,0 24x23) of QToolButton(0x60000909e280) at QPoint(709,361) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 24x23) of QToolButton(0x60000909e280) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(709,361)
qt.widgets.painting: Drawing QRegion(0,0 80x24) of QPushButton(0x60000909e550) at QPoint(11,415) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 80x24) of QPushButton(0x60000909e550) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(11,415)
qt.widgets.painting: Drawing QRegion(0,0 80x24) of QPushButton(0x60000909e580) at QPoint(97,415) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 80x24) of QPushButton(0x60000909e580) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(97,415)
qt.widgets.painting: Drawing QRegion(0,0 278x24) of QDialogButtonBox(0x60000909e6d0) at QPoint(461,415) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 278x24) of QDialogButtonBox(0x60000909e6d0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(461,415)
qt.widgets.painting: Drawing QRegion(0,0 80x24) of QPushButton(0x60000909e700) at QPoint(659,415) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 80x24) of QPushButton(0x60000909e700) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(659,415)
qt.widgets.painting: Drawing QRegion(0,0 80x24) of QPushButton(0x60000909e7f0) at QPoint(573,415) into paint device 0x60000a402d40 with QFlags<QWidgetPrivate::DrawWidgetFlag>(DrawRecursive)
qt.widgets.painting: Marking QRegion(0,0 80x24) of QPushButton(0x60000909e7f0) as needing flush in Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog") at offset QPoint(573,415)
qt.qpa.backingstore: Paint ended. Back buffer valid region is now QRegion(0,0 750x450)
qt.qpa.backingstore.iosurface: Unlocking QIOSurfaceGraphicsBuffer(0x60000a402d00, surface=0x600000389c10, size=QSize(1500, 900), isLocked=true, isInUse=false) from QFlags<QPlatformGraphicsBuffer::AccessType>(SWWriteAccess)
qt.widgets.painting: Flushing top level QRegion(0,0 750x450) and children QList()
qt.widgets.painting: Flushing QRegion(0,0 750x450) of Digikam::BookmarksDialog(0x6000092693e0, name="GeolocationBookmarksEditDialog")
qt.qpa.backingstore: Flushing <IOSurface: 0x600000389c10>
    id =  0x0000005d 
    width =  1500 
    height =  900 
    pixelFormat =  BGRA 
    name =  libqcocoa.dylib to <NSViewBackingLayer: 0x60000909ecd0> of <QNSView: 0x141dde2c0; QCocoaWindow(0x6000037f2ec0, window=QWidgetWindow(0x60000a4da580, name="GeolocationBookmarksEditDialogWindow"))>
qt.qpa.backingstore: Swapping back buffer to front
qt.qpa.cocoa.notifications: Forwarding NSWindowDidChangeOcclusionStateNotification to QList(QCocoaWindow(0x6000037f27e0, window=QWidgetWindow(0x60000a4da2e0, name="Digikam::DHBoxClassWindow")), QCocoaWindow(0x6000037f2d60, window=QWidgetWindow(0x60000a4da400, name="Digikam::DHBoxClassWindow")), QCocoaWindow(0x6000037a16b0, window=QWidgetWindow(0x600006a24360, name="Geolocation Edit SettingsWindow")))
qt.qpa.window: Occlusion state of <QNSWindow: 0x133b04080; contentView=<QNSView: 0x133b4a990; QCocoaWindow(0x6000037a16b0, window=QWidgetWindow(0x600006a24360, name="Geolocation Edit SettingsWindow"))>> for QWidgetWindow(0x60000a4da2e0, name="Digikam::DHBoxClassWindow") changed to occluded
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x60000a4da2e0, name="Digikam::DHBoxClassWindow") QRegion(null) isExposed false
qt.qpa.window: Occlusion state of <QNSWindow: 0x133b04080; contentView=<QNSView: 0x133b4a990; QCocoaWindow(0x6000037a16b0, window=QWidgetWindow(0x600006a24360, name="Geolocation Edit SettingsWindow"))>> for QWidgetWindow(0x60000a4da400, name="Digikam::DHBoxClassWindow") changed to occluded
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x60000a4da400, name="Digikam::DHBoxClassWindow") QRegion(null) isExposed false
qt.qpa.window: Occlusion state of <QNSWindow: 0x133b04080; contentView=<QNSView: 0x133b4a990; QCocoaWindow(0x6000037a16b0, window=QWidgetWindow(0x600006a24360, name="Geolocation Edit SettingsWindow"))>> for QWidgetWindow(0x600006a24360, name="Geolocation Edit SettingsWindow") changed to occluded
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x600006a24360, name="Geolocation Edit SettingsWindow") QRegion(null) isExposed false
qt.qpa.cocoa.notifications: Forwarding NSWindowDidChangeOcclusionStateNotification to QList(QCocoaWindow(0x60000371d290, window=QWidgetWindow(0x600002af6100, name="DigikamWindow")))
qt.qpa.window: Occlusion state of <QNSWindow: 0x141fd9f40; contentView=<QNSView: 0x141e7d0e0; QCocoaWindow(0x60000371d290, window=QWidgetWindow(0x600002af6100, name="DigikamWindow"))>> for QWidgetWindow(0x600002af6100, name="DigikamWindow") changed to occluded
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x600002af6100, name="DigikamWindow") QRegion(null) isExposed false
digikam.marble: Finished loading all placemarks  205
qt.qpa.window: Deallocating <QNSPanel: 0x14142f500; contentView=NSObject(0x0)>
qt.qpa.events: Sending NSEvent: type=KitDefined loc=(0,478) time=1308402.1 flags=0 win=0x141dde580 winNum=50796 ctxt=0x0 subtype=4 data1=1144750080 data2=1139736576 to <QNSWindow: 0x141dde580; contentView=<QNSView: 0x141dde2c0; QCocoaWindow(0x6000037f2ec0, window=QWidgetWindow(0x60000a4da580, name="GeolocationBookmarksEditDialogWindow"))>>
qt.qpa.cocoa.notifications: Forwarding NSWindowDidResignKeyNotification to QList(QCocoaWindow(0x6000037f27e0, window=QWidgetWindow(0x60000a4da2e0, name="Digikam::DHBoxClassWindow")), QCocoaWindow(0x6000037f2d60, window=QWidgetWindow(0x60000a4da400, name="Digikam::DHBoxClassWindow")), QCocoaWindow(0x6000037a16b0, window=QWidgetWindow(0x600006a24360, name="Geolocation Edit SettingsWindow")))
qt.qpa.window: <QNSWindow: 0x133b04080; contentView=<QNSView: 0x133b4a990; QCocoaWindow(0x6000037a16b0, window=QWidgetWindow(0x600006a24360, name="Geolocation Edit SettingsWindow"))>> resigned key window. Clearing focus window QCocoaWindow(0x6000037a16b0, window=QWidgetWindow(0x600006a24360, name="Geolocation Edit SettingsWindow")) with view <QNSView: 0x133b4a990; QCocoaWindow(0x6000037a16b0, window=QWidgetWindow(0x600006a24360, name="Geolocation Edit SettingsWindow"))>
qt.widgets.painting: Marking QRect(0,0 1004x688) of DigikamGenericGeolocationEditPlugin::GeolocationEdit(0x60001989a2c0, name="Geolocation Edit Settings") dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Sending update request to DigikamGenericGeolocationEditPlugin::GeolocationEdit(0x60001989a2c0, name="Geolocation Edit Settings") with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Marking QRect(0,0 982x636) of Digikam::DHBox(0x600008cddce0) dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Marking QRect(0,0 954x636) of QSplitter(0x600008cdddd0) dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Marking QRect(0,0 98x22) of QCheckBox(0x600008c18480) dirty with QWidgetRepaintManager::UpdateLater
qt.widgets.painting: Marking QRect(-24,0 24x24) of QComboBox(0x600008fad080) dirty with QWidgetRepaintManager::UpdateLater
...

Do you seen something wrong in this trace ?

Gilles
Comment 31 caulier.gilles 2024-09-18 07:31:40 UTC
Maik,

We have 2 option about the bookmarks in the context menu : edit and add.

https://i.imgur.com/96q06qK.png

Edit : nothing...
Add : work as expected.

https://i.imgur.com/oPIKWhw.png

So the problem is only this the edit bookmarks stuff...

Gilles
Comment 32 caulier.gilles 2024-09-18 08:37:50 UTC
Git commit d82eb270ca69179b5851003eebd0f5b17c02f8fd by Gilles Caulier.
Committed on 18/09/2024 at 08:36.
Pushed by cgilles into branch 'master'.

Special case for MacOS: do not use a modal dialog for the Bookmarks Editor

M  +15   -2    core/utilities/geolocation/geoiface/bookmark/gpsbookmarkowner.cpp

https://invent.kde.org/graphics/digikam/-/commit/d82eb270ca69179b5851003eebd0f5b17c02f8fd
Comment 33 caulier.gilles 2024-09-18 09:11:07 UTC
Fixed with a non modal dialog under macOS:

https://i.imgur.com/ie2r3i9.png