[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/apps/plasma/applets/folderview
From:       Jesse Lee Zamora <xtremek2008 () aim ! com>
Date:       2008-12-01 0:45:44
Message-ID: 1228092344.945614.7675.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 891031 by jzamora:

BUG: 175191
When the user accidentally deleted a folder the Folder View is displaying, the 
folderview just resets to the default folder. 



 M  +18 -0     folderview.cpp  
 M  +3 -0      folderview.h  
 M  +7 -1      iconview.cpp  
 M  +1 -0      iconview.h  


--- trunk/KDE/kdebase/apps/plasma/applets/folderview/folderview.cpp #891030:891031
@@ -397,6 +397,7 @@
     // The label is not shown when the applet is acting as a containment,
     // so don't confuse the user by making it editable.
     if (isContainment()) {
+        uiDisplay.lblCustomLabel->hide();
         uiDisplay.labelEdit->hide();
     }
 
@@ -736,6 +737,7 @@
     connect(m_iconView, SIGNAL(indexesMoved(QModelIndexList)), \
                SLOT(indexesMoved(QModelIndexList)));
     connect(m_iconView, SIGNAL(contextMenuRequest(QWidget*,QPoint)), \
SLOT(contextMenuRequest(QWidget*,QPoint)));  connect(m_iconView, SIGNAL(busy(bool)), \
SLOT(setBusy(bool))); +    connect(m_iconView, SIGNAL(checkFolder()), \
SLOT(checkFolder()));  
     FolderViewAdapter *adapter = new FolderViewAdapter(m_iconView);
     m_previewGenerator = new KFilePreviewGenerator(adapter, m_model);
@@ -1457,6 +1459,22 @@
     }
 }
 
+void FolderView::checkFolder()
+{
+    QDir dir(m_url.path());
+
+    if (!dir.exists()) {
+	if (isContainment()) {
+	    setUrl(KUrl("desktop:/"));
+	} else {
+	    setUrl(KUrl(QDir::homePath()));
+	}
+	    
+        m_dirModel->dirLister()->openUrl(m_url);
+        updateIconWidget();
+    }
+}
+
 void FolderView::updateIconWidget()
 {
     if (!m_iconWidget) {
--- trunk/KDE/kdebase/apps/plasma/applets/folderview/folderview.h #891030:891031
@@ -109,7 +109,10 @@
     void clipboardDataChanged();
     void updateScreenRegion();
     void showPreviewConfigDialog();
+    
 
+    void checkFolder();
+
 private:
     void setupIconView();
     void setUrl(const KUrl &url);
--- trunk/KDE/kdebase/apps/plasma/applets/folderview/iconview.cpp #891030:891031
@@ -361,6 +361,7 @@
 void IconView::rowsRemoved(const QModelIndex &parent, int first, int last)
 {
     Q_UNUSED(parent)
+
     m_regionCache.clear();
 
     if (!m_layoutBroken) {
@@ -384,6 +385,9 @@
         m_items.remove(first, last - first + 1);
         m_validRows = m_items.size();
     }
+
+    // check the folder to see if it exists!!!
+    emit checkFolder();
 }
 
 void IconView::modelReset()
@@ -440,6 +444,9 @@
     }
 
     emit busy(true);
+
+    // check the folder to see if it exists!!!
+    emit checkFolder();
 }
 
 void IconView::listingClear()
@@ -974,7 +981,6 @@
     {
         painter->drawPixmap(cr.topLeft(), m_pixmap);
     }
-
     if (!m_errorMessage.isEmpty()) {
         paintErrorMessage(painter, cr, m_errorMessage);
     }
--- trunk/KDE/kdebase/apps/plasma/applets/folderview/iconview.h #891030:891031
@@ -114,6 +114,7 @@
     void indexesMoved(const QModelIndexList &indexes);
     void contextMenuRequest(QWidget *widget, const QPoint &screenPos);
     void busy(bool);
+    void checkFolder();
 
 protected:
     QPointF mapToViewport(const QPointF &point) const;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic