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

List:       kde-commits
Subject:    extragear/graphics/gwenview/gvcore
From:       Aurélien Gâteau <aurelien.gateau () free ! fr>
Date:       2006-05-31 21:18:22
Message-ID: 1149110302.760396.29243.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 547113 by gateau:

Make filter settings persitent.


 M  +12 -0     fileviewconfig.kcfg  
 M  +28 -7     fileviewcontroller.cpp  


--- trunk/extragear/graphics/gwenview/gvcore/fileviewconfig.kcfg #547112:547113
@@ -34,6 +34,18 @@
         enum ItemDetail { FILENAME=1, FILESIZE=2, FILEDATE=4, IMAGESIZE=8 };
       </description>
     </entry>
+    <entry name="filterMode" type="Enum">
+      <default>All</default>
+      <choices>
+        <choice name="All"/>
+        <choice name="ImagesOnly"/>
+        <choice name="VideosOnly"/>
+        <choice name="Custom"/>
+      </choices>
+    </entry>
+    <entry name="nameFilter" type="String"></entry>
+    <entry name="fromDateFilter" type="DateTime"></entry>
+    <entry name="toDateFilter" type="DateTime"></entry>
   </group>
 
 
--- trunk/extragear/graphics/gwenview/gvcore/fileviewcontroller.cpp #547112:547113
@@ -188,7 +188,7 @@
 	QHBox* mFilterHBox;
 	QComboBox* mFilterComboBox;
 
-	void initFilter() {
+	void initFilterBar() {
 		mFilterBar=new FilterBar(mWidget);
 		mFilterBar->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
 		mFilterBar->hide();
@@ -216,7 +216,9 @@
 		QObject::connect(
 			mFilterBar->mFilterButton, SIGNAL(clicked()),
 			that, SLOT(updateDirListerFilter()) );
+	}
 
+	void initFilterCombo() {
 		mFilterHBox=new QHBox(mToolBar, "kde toolbar widget");
 		mFilterHBox->setSpacing(KDialog::spacingHint());
 
@@ -241,7 +243,7 @@
 //
 //-----------------------------------------------------------------------
 FileViewController::FileViewController(QWidget* parent,KActionCollection* actionCollection)
-: QObject(this)
+: QObject()
 , mMode(FILE_LIST)
 , mPrefetch( NULL )
 , mChangeDirStatus(CHANGE_DIR_STATUS_NONE)
@@ -251,11 +253,17 @@
 	d=new Private;
 	d->that=this;
 	d->mWidget=new QVBox(parent);
+
+	// Make the controller a child of mWidget so that we can be sure it will be
+	// deleted *before* it
+	d->mWidget->insertChild(this);
+	
 	d->mWidget->setMinimumWidth(1);
 	d->mToolBar=new KToolBar(d->mWidget, "", true);
 
 	// Init filter here so that it's properly placed in the vbox
-	d->initFilter();
+	d->initFilterBar();
+	d->initFilterCombo();
 	d->mStack=new QWidgetStack(d->mWidget);
 
 	// Actions
@@ -417,7 +425,6 @@
 	d->mToolBar->alignItemRight(id, true);
 
 	mShowDotFiles->setChecked(FileViewConfig::showDotFiles());
-	updateDirListerFilter();
 
 	bool startWithThumbnails=FileViewConfig::startWithThumbnails();
 	setMode(startWithThumbnails?THUMBNAIL:FILE_LIST);
@@ -436,14 +443,22 @@
 		mListMode->setChecked(true);
 	}
 	thumbnailDetailsDialogAction->setEnabled(mBottomThumbnailMode->isChecked());
+
+	updateFromSettings();
 }
 
-
+	
 FileViewController::~FileViewController() {
-	// Do not access children of mWidget here, they may have already been
-	// deleted since mWidget is not a child of this.
 	FileViewConfig::setStartWithThumbnails(mMode==THUMBNAIL);
+	int filterMode = d->mFilterComboBox->currentItem();
+	FileViewConfig::setFilterMode(filterMode);
+	if (filterMode == CUSTOM) {
+		FileViewConfig::setNameFilter(d->mFilterBar->mNameCombo->currentText());
+		FileViewConfig::setFromDateFilter(d->mFilterBar->mFromDateEdit->date());
+		FileViewConfig::setToDateFilter(d->mFilterBar->mToDateEdit->date());
+	}
 	FileViewConfig::writeConfig();
+	
 	delete d;
 	delete mDirLister;
 }
@@ -1077,6 +1092,12 @@
 
 
 void FileViewController::updateFromSettings() {
+	d->mFilterComboBox->setCurrentItem(FileViewConfig::filterMode());
+	if (FileViewConfig::filterMode()==CUSTOM) {
+		d->mFilterBar->mNameCombo->setCurrentText(FileViewConfig::nameFilter());
+		d->mFilterBar->mFromDateEdit->setDate(FileViewConfig::fromDateFilter().date());
+		d->mFilterBar->mToDateEdit->setDate(FileViewConfig::toDateFilter().date());
+	}
 	updateDirListerFilter();
 	mFileThumbnailView->setMarginSize(FileViewConfig::thumbnailMarginSize());
 	mFileThumbnailView->setItemDetails(FileViewConfig::thumbnailDetails());
[prev in list] [next in list] [prev in thread] [next in thread] 

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