Bug 177093 - User should not be able to delete root album
Summary: User should not be able to delete root album
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Albums-Trash (show other bugs)
Version: 0.10.0
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-06 21:06 UTC by Mikolaj Machowski
Modified: 2022-01-12 03:39 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 7.5.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mikolaj Machowski 2008-12-06 21:06:51 UTC
Version:            (using Devel)
OS:                Linux
Installed from:    Compiled sources

Root album can be massive structure with some things not related with photos. It should be hard or impossible to remove it directly from Album tree.

1) from context menu don't allow for "Moving to trash" but only "Remove collection" with message: This album will be removed from your collection list, all files are still on your medium.

Additionally at the moment is funny situation: after moving of root album to trash real files are not accessible but album is  Album list, all miniatures are visible and can even see preview of several of them which were previewed earlier. Situation is fixed only after removing collection from Settings dialog.
Comment 1 Marcel Wiesweg 2008-12-07 17:33:20 UTC
SVN commit 893984 by mwiesweg:

Disable renaming and deleting for album root albums.
We can later add a shortcut to the collection setup dialog.

CCBUG: 177093

 M  +13 -8     albumfolderview.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=893984
Comment 2 Marcel Wiesweg 2008-12-07 17:35:21 UTC
The critical bug part of this is fixed by removing the relevant entries from the context menu, I leave this as a wish to add functionality of the setup collections dialog to the context menu of albumfolderview.
Comment 3 Mikolaj Machowski 2008-12-07 20:34:27 UTC
Please, disable also access to properties dialog. Playing with that for root album leads to vanishing of root album and even crash of digiKam.

Reproduce: 
a) open Album properties
b) change title
c) I get message 'cannot change root album name'
d) root album vanishes from display
e) go to settings->collection
f) select vanished collection, click OK -> crash

Backtrace:
Application: digiKam (digikam), signal SIGSEGV
 [?1034h[Thread debugging using libthread_db enabled]
[Current thread is 1 (Thread 0xb4c966d0 (LWP 32506))]

Thread 11 (Thread 0xb3768b90 (LWP 32508)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb6334b95 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/libpthread.so.0
#2  0xb63920b2 in QWaitCondition::wait () from /usr/lib/qt4/lib/libQtCore.so.4
#3  0x08265659 in Digikam::ScanController::run ()
#4  0xb6391320 in ?? () from /usr/lib/qt4/lib/libQtCore.so.4
#5  0x095d7b40 in ?? ()
#6  0x00000000 in ?? ()

Thread 10 (Thread 0xb2531b90 (LWP 32511)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb6334b95 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/libpthread.so.0
#2  0xb63920b2 in QWaitCondition::wait () from /usr/lib/qt4/lib/libQtCore.so.4
#3  0xb783bba2 in Digikam::LoadSaveThread::run () from /home/mikolaj/kde/lib/libdigikamcore.so.1
#4  0xb6391320 in ?? () from /usr/lib/qt4/lib/libQtCore.so.4
#5  0x097338e0 in ?? ()
#6  0x00000000 in ?? ()

Thread 9 (Thread 0xb2d32b90 (LWP 32512)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb6334b95 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/libpthread.so.0
#2  0xb63920b2 in QWaitCondition::wait () from /usr/lib/qt4/lib/libQtCore.so.4
#3  0xb783bba2 in Digikam::LoadSaveThread::run () from /home/mikolaj/kde/lib/libdigikamcore.so.1
#4  0xb6391320 in ?? () from /usr/lib/qt4/lib/libQtCore.so.4
#5  0x096f9980 in ?? ()
#6  0x00000000 in ?? ()

Thread 8 (Thread 0xb016ab90 (LWP 32641)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb6334ec2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/i686/libpthread.so.0
#2  0xb053840b in metronom_sync_loop (this=0x981d328) at metronom.c:871
#3  0xb6331315 in start_thread () from /lib/i686/libpthread.so.0
#4  0xb5902dde in clone () from /lib/i686/libc.so.6

Thread 7 (Thread 0xaf506b90 (LWP 32644)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb58fb101 in select () from /lib/i686/libc.so.6
#2  0xb0561435 in xine_usec_sleep (usec=0) at utils.c:457
#3  0xb0545d8b in video_out_loop (this_gen=0x9821b20) at video_out.c:1246
#4  0xb6331315 in start_thread () from /lib/i686/libpthread.so.0
#5  0xb5902dde in clone () from /lib/i686/libc.so.6

Thread 6 (Thread 0xaed05b90 (LWP 32645)):
#0  0xb521d788 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#1  0xb521dba9 in ?? () from /usr/lib/libglib-2.0.so.0
#2  0xb521e0a8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0xb6492717 in QEventDispatcherGlib::processEvents () from /usr/lib/qt4/lib/libQtCore.so.4
#4  0xb646a6fa in QEventLoop::processEvents () from /usr/lib/qt4/lib/libQtCore.so.4
#5  0xb646a8ba in QEventLoop::exec () from /usr/lib/qt4/lib/libQtCore.so.4
#6  0xb638e4c3 in QThread::exec () from /usr/lib/qt4/lib/libQtCore.so.4
#7  0xb0581879 in Phonon::Xine::XineThread::run () from /home/mikolaj/kde/lib/kde4/plugins/phonon_backend/phonon_xine.so
#8  0xb6391320 in ?? () from /usr/lib/qt4/lib/libQtCore.so.4
#9  0x09820f28 in ?? ()
#10 0x00000000 in ?? ()

Thread 5 (Thread 0xae287b90 (LWP 32655)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb6337b7b in read () from /lib/i686/libpthread.so.0
#2  0xb079a2e1 in ?? () from /usr/lib/libasound.so.2
#3  0xb07977ac in snd_ctl_read () from /usr/lib/libasound.so.2
#4  0xb0793c30 in snd_hctl_handle_events () from /usr/lib/libasound.so.2
#5  0xb079fcc9 in snd_mixer_handle_events () from /usr/lib/libasound.so.2
#6  0xaf94bee2 in ao_alsa_handle_event_thread (data=0x9c31c30) at audio_alsa_out.c:175
#7  0xb6331315 in start_thread () from /lib/i686/libpthread.so.0
#8  0xb5902dde in clone () from /lib/i686/libc.so.6

Thread 4 (Thread 0xada73b90 (LWP 32657)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb6334b95 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/libpthread.so.0
#2  0xb0548980 in ao_loop (this_gen=0x9c47e38) at audio_out.c:345
#3  0xb6331315 in start_thread () from /lib/i686/libpthread.so.0
#4  0xb5902dde in clone () from /lib/i686/libc.so.6

Thread 3 (Thread 0xad272b90 (LWP 580)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb6334b95 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/libpthread.so.0
#2  0xb63920b2 in QWaitCondition::wait () from /usr/lib/qt4/lib/libQtCore.so.4
#3  0xb783bba2 in Digikam::LoadSaveThread::run () from /home/mikolaj/kde/lib/libdigikamcore.so.1
#4  0xb6391320 in ?? () from /usr/lib/qt4/lib/libQtCore.so.4
#5  0x0b842888 in ?? ()
#6  0x00000000 in ?? ()

Thread 2 (Thread 0xac270b90 (LWP 748)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb6334b95 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/libpthread.so.0
#2  0xb63920b2 in QWaitCondition::wait () from /usr/lib/qt4/lib/libQtCore.so.4
#3  0xb783bba2 in Digikam::LoadSaveThread::run () from /home/mikolaj/kde/lib/libdigikamcore.so.1
#4  0xb6391320 in ?? () from /usr/lib/qt4/lib/libQtCore.so.4
#5  0x0c3877d0 in ?? ()
#6  0x00000000 in ?? ()

Thread 1 (Thread 0xb4c966d0 (LWP 32506)):
[KCrash Handler]
#6  0x081b6f1e in Digikam::Album::title ()
#7  0x081eafda in Digikam::AlbumManager::slotCollectionLocationPropertiesChanged ()
#8  0x081f2fbd in Digikam::AlbumManager::qt_metacall ()
#9  0xb647d80a in QMetaObject::activate () from /usr/lib/qt4/lib/libQtCore.so.4
#10 0xb647dd82 in QMetaObject::activate () from /usr/lib/qt4/lib/libQtCore.so.4
#11 0xb7670c83 in Digikam::CollectionManager::locationPropertiesChanged () from /home/mikolaj/kde/lib/libdigikamdatabase.so.1
#12 0xb7670e2b in Digikam::CollectionManager::setLabel () from /home/mikolaj/kde/lib/libdigikamdatabase.so.1
#13 0x080c457d in Digikam::SetupCollectionModel::apply ()
#14 0x080bf700 in Digikam::SetupCollections::applySettings ()
#15 0x080ccf1a in Digikam::Setup::slotOkClicked ()
#16 0x080cd20d in Digikam::Setup::qt_metacall ()
#17 0xb647d80a in QMetaObject::activate () from /usr/lib/qt4/lib/libQtCore.so.4
#18 0xb647dd82 in QMetaObject::activate () from /usr/lib/qt4/lib/libQtCore.so.4
#19 0xb739bd57 in KDialog::okClicked () from /home/mikolaj/kde/lib/libkdeui.so.5
#20 0xb739e808 in KDialog::slotButtonClicked () from /home/mikolaj/kde/lib/libkdeui.so.5
#21 0xb739fb74 in KDialog::qt_metacall () from /home/mikolaj/kde/lib/libkdeui.so.5
#22 0xb745dc7a in KPageDialog::qt_metacall () from /home/mikolaj/kde/lib/libkdeui.so.5
#23 0x080cd1ef in Digikam::Setup::qt_metacall ()
#24 0xb647d80a in QMetaObject::activate () from /usr/lib/qt4/lib/libQtCore.so.4
#25 0xb647dd82 in QMetaObject::activate () from /usr/lib/qt4/lib/libQtCore.so.4
#26 0xb6482583 in QSignalMapper::mapped () from /usr/lib/qt4/lib/libQtCore.so.4
#27 0xb648265d in QSignalMapper::map () from /usr/lib/qt4/lib/libQtCore.so.4
#28 0xb648284e in QSignalMapper::map () from /usr/lib/qt4/lib/libQtCore.so.4
#29 0xb648375b in QSignalMapper::qt_metacall () from /usr/lib/qt4/lib/libQtCore.so.4
#30 0xb647d80a in QMetaObject::activate () from /usr/lib/qt4/lib/libQtCore.so.4
#31 0xb647db00 in QMetaObject::activate () from /usr/lib/qt4/lib/libQtCore.so.4
#32 0xb6255321 in QAbstractButton::clicked () from /usr/lib/qt4/lib/libQtGui.so.4
#33 0xb5fe7069 in ?? () from /usr/lib/qt4/lib/libQtGui.so.4
#34 0x0c3a39c8 in ?? ()
#35 0x00000000 in ?? ()

Comment 4 Marcel Wiesweg 2008-12-07 21:25:22 UTC
SVN commit 894073 by mwiesweg:

Disable properties action as well.

CCBUG: 177093

 M  +3 -1      albumfolderview.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=894073
Comment 5 Mikolaj Machowski 2008-12-07 22:34:11 UTC
Completely forgot: you can still Delete root album and has access to Properties from main Album menu.
Comment 6 Marcel Wiesweg 2008-12-09 17:21:52 UTC
SVN commit 894917 by mwiesweg:

Add proper check in methods that do the real work, if we have a loophole
in the UI that brings us here.

CCBUG: 177093

 M  +2 -2      albumfolderview.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=894917
Comment 7 Marcel Wiesweg 2008-12-09 17:21:57 UTC
SVN commit 894918 by mwiesweg:

Disable actions for album root albums.
Simplify code.

CCBUG: 177093

 M  +13 -33    digikamapp.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=894918
Comment 8 Mikolaj Machowski 2008-12-09 19:36:48 UTC
Fixed for me.