From 96d0c54e2e7939324f9403827f1546259d3d0e24 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sat, 20 Apr 2013 18:45:41 -0500 Subject: [PATCH] Fix desktop refresh destroying media device information and menus This resolves Bug 1450 Fix incorrect media device enable default setting in desktop control module --- kcontrol/konq/desktopbehavior_impl.cpp | 2 +- kdesktop/kdiconview.cc | 16 ++++++++++++---- libkonq/tdefileivi.cc | 3 ++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/kcontrol/konq/desktopbehavior_impl.cpp b/kcontrol/konq/desktopbehavior_impl.cpp index b54bf8e17..48bb6f11c 100644 --- a/kcontrol/konq/desktopbehavior_impl.cpp +++ b/kcontrol/konq/desktopbehavior_impl.cpp @@ -255,7 +255,7 @@ void DesktopBehavior::fillMediaListView() KMimeType::List mimetypes = KMimeType::allMimeTypes(); TQValueListIterator it2(mimetypes.begin()); g_pConfig->setGroup( "Media" ); - enableMediaBox->setChecked(g_pConfig->readBoolEntry("enabled",false)); + enableMediaBox->setChecked(g_pConfig->readBoolEntry("enabled",true)); enableMediaFreeSpaceOverlayBox->setChecked(g_pConfig->readBoolEntry("FreeSpaceDisplayEnabled",true)); TQString excludedMedia=g_pConfig->readEntry("exclude","media/hdd_mounted,media/hdd_unmounted,media/floppy_unmounted,media/cdrom_unmounted,media/floppy5_unmounted"); for (; it2 != mimetypes.end(); ++it2) { diff --git a/kdesktop/kdiconview.cc b/kdesktop/kdiconview.cc index cc2f0ba07..f5c38cde1 100644 --- a/kdesktop/kdiconview.cc +++ b/kdesktop/kdiconview.cc @@ -148,6 +148,7 @@ KDIconView::KDIconView( TQWidget *parent, const char* name ) m_eSortCriterion( NameCaseInsensitive ), m_bSortDirectoriesFirst( true ), m_itemsAlwaysFirst(), + m_enableMedia(false), m_gotIconsArea(false), m_needDesktopAlign(true), m_paOutstandingOverlaysTimer( 0L ) @@ -397,7 +398,7 @@ void KDIconView::configureMedia() } } m_mergeDirs.append(KURL("media:/")); - m_dirLister->openURL(KURL("media:/"),true); + m_dirLister->openURL(KURL("media:/"), true); } else { for (KURL::List::Iterator it2=m_mergeDirs.begin();it2!=m_mergeDirs.end();++it2) { @@ -405,8 +406,10 @@ void KDIconView::configureMedia() delete m_dirLister; m_dirLister=0; start(); -// m_mergeDirs.remove(it2); -// m_dirLister->stop("media"); + if (m_mergeDirs.contains(*it2)) { + m_mergeDirs.remove(*it2); + m_dirLister->stop("media"); + } return; } } @@ -1307,10 +1310,15 @@ void KDIconView::refreshIcons() for ( ; it ; it = it->nextItem() ) { KFileIVI * fileIVI = static_cast(it); - fileIVI->item()->refresh(); + if (!(fileIVI->item()->mimetype().startsWith("media/"))) { + fileIVI->item()->refresh(); + } fileIVI->refreshIcon( true ); makeFriendlyText( fileIVI ); } + if (m_enableMedia) { + m_dirLister->updateDirectory(KURL("media:/")); + } } diff --git a/libkonq/tdefileivi.cc b/libkonq/tdefileivi.cc index 647e9ae09..629d9a27d 100644 --- a/libkonq/tdefileivi.cc +++ b/libkonq/tdefileivi.cc @@ -318,8 +318,9 @@ void KFileIVI::setEffect( int state ) void KFileIVI::refreshIcon( bool redraw ) { - if (!isThumbnail()) + if (!isThumbnail()) { setIcon( m_size, m_state, true, redraw ); + } } void KFileIVI::invalidateThumbnail()