[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