]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/viewpropsprogressinfo.cpp
Some basic fixes to stay synchronized between the tree view and the currently active...
[dolphin.git] / src / viewpropsprogressinfo.cpp
index 610a6912c954c778b2187bfd42e5438a3b0bf46a..36aac51e969a216b2a10f91c029ffea892b67433 100644 (file)
@@ -15,7 +15,7 @@
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
  ***************************************************************************/
 
 #include "viewpropsprogressinfo.h"
 
 ViewPropsProgressInfo::ViewPropsProgressInfo(QWidget* parent,
                                              const KUrl& dir,
-                                             const ViewProperties* viewProps) :
+                                             const ViewProperties& viewProps) :
     KDialog(parent),
     m_dir(dir),
-    m_viewProps(viewProps),
+    m_viewProps(0),
     m_label(0),
     m_progressBar(0),
     m_dirSizeJob(0),
@@ -47,11 +47,21 @@ ViewPropsProgressInfo::ViewPropsProgressInfo(QWidget* parent,
     setCaption(i18n("Applying view properties"));
     setButtons(KDialog::Cancel);
 
+    m_viewProps = new ViewProperties(dir);
+    m_viewProps->setDirProperties(viewProps);
+
+    // the view properties are stored by the ViewPropsApplierJob, so prevent
+    // that the view properties are saved twice:
+    m_viewProps->setAutoSaveEnabled(false);
+
     QWidget* main = new QWidget();
     QVBoxLayout* topLayout = new QVBoxLayout();
 
     m_label = new QLabel(i18n("Counting folders: %1", 0), main);
     m_progressBar = new QProgressBar(main);
+    m_progressBar->setMinimum(0);
+    m_progressBar->setMaximum(0);
+    m_progressBar->setValue(0);
 
     topLayout->addWidget(m_label);
     topLayout->addWidget(m_progressBar);
@@ -78,8 +88,16 @@ ViewPropsProgressInfo::ViewPropsProgressInfo(QWidget* parent,
 }
 
 ViewPropsProgressInfo::~ViewPropsProgressInfo()
+{
+    delete m_viewProps;
+    m_viewProps = 0;
+}
+
+void ViewPropsProgressInfo::closeEvent(QCloseEvent* event)
 {
     m_timer->stop();
+    m_applyViewPropsJob = 0;
+    KDialog::closeEvent(event);
 }
 
 void ViewPropsProgressInfo::updateProgress()
@@ -88,8 +106,8 @@ void ViewPropsProgressInfo::updateProgress()
         const int subdirs = m_dirSizeJob->totalSubdirs();
         m_label->setText(i18n("Counting folders: %1", subdirs));
     }
-    else {
-        assert(m_applyViewPropsJob != 0);
+
+    if (m_applyViewPropsJob != 0) {
         const int progress = m_applyViewPropsJob->progress();
         m_progressBar->setValue(progress);
     }
@@ -117,8 +135,8 @@ void ViewPropsProgressInfo::cancelApplying()
     if (m_dirSizeJob != 0) {
         m_dirSizeJob->doKill();
     }
-    else {
-        assert(m_applyViewPropsJob != 0);
+
+    if (m_applyViewPropsJob != 0) {
         m_applyViewPropsJob->doKill();
     }
 }