summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorKrisztian Pinter <pin.terminator@gmail.com>2013-08-13 21:29:33 +0200
committerKrisztian Pinter <pin.terminator@gmail.com>2013-08-16 18:03:08 +0200
commitc09a301dbe80951ed94119f4cd14943e99df42eb (patch)
tree5af6c5a4e938d7e48f061ef20aeccc3595df8a95 /sfx2
parentb24e3a6042ccfeee650664cc6fb244dfeea497cb (diff)
startcenter: Improve file type filtering in RecentDocsView
Change-Id: Iac53a50e4c66963279016bd0178de9f43bd146e3
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/control/recentdocsview.cxx67
-rw-r--r--sfx2/source/dialog/backingwindow.cxx14
2 files changed, 45 insertions, 36 deletions
diff --git a/sfx2/source/control/recentdocsview.cxx b/sfx2/source/control/recentdocsview.cxx
index a532b14f4760..109991184b52 100644
--- a/sfx2/source/control/recentdocsview.cxx
+++ b/sfx2/source/control/recentdocsview.cxx
@@ -41,6 +41,7 @@ static const char SFX_REFERER_USER[] = "private:user";
RecentDocsView::RecentDocsView( Window* pParent )
: ThumbnailView(pParent)
+ , mnFileTypes(TYPE_NONE)
, mnItemMaxSize(100)
, mnTextHeight(30)
, mnItemPadding(5)
@@ -60,44 +61,55 @@ RecentDocsView::~RecentDocsView()
{
}
-bool RecentDocsView::isFilteredExtension(APPLICATION_FILTER filter, const OUString &rExt)
+bool RecentDocsView::typeMatchesExtension(ApplicationType type, const OUString &rExt)
{
- bool bRet = true;
+ bool bRet = false;
- if (filter == FILTER_WRITER)
+ if (rExt == "odt" || rExt == "doc" || rExt == "docx" ||
+ rExt == "rtf" || rExt == "txt")
{
- bRet = rExt == "odt" || rExt == "doc" || rExt == "docx" ||
- rExt == "rtf" || rExt == "txt";
+ bRet = type & TYPE_WRITER;
}
- else if (filter == FILTER_CALC)
+ else if (rExt == "ods" || rExt == "xls" || rExt == "xlsx")
{
- bRet = rExt == "ods" || rExt == "xls" || rExt == "xlsx";
+ bRet = type & TYPE_CALC;
}
- else if (filter == FILTER_IMPRESS)
+ else if (rExt == "odp" || rExt == "pps" || rExt == "ppt" ||
+ rExt == "pptx")
{
- bRet = rExt == "odp" || rExt == "pps" || rExt == "ppt" ||
- rExt == "pptx";
+ bRet = type & TYPE_IMPRESS;
}
- else if (filter == FILTER_DRAW)
+ else if (rExt == "odg")
{
- bRet = rExt == "odg";
+ bRet = type & TYPE_DRAW;
}
- else if (filter == FILTER_DATABASE)
+ else if (rExt == "odb")
{
- bRet = rExt == "odb";
+ bRet = type & TYPE_DATABASE;
}
- else if (filter == FILTER_MATH)
+ else if (rExt == "odf")
{
- bRet = rExt == "odf";
+ bRet = type & TYPE_MATH;
+ }
+ else
+ {
+ bRet = type & TYPE_OTHER;
}
return bRet;
}
-bool RecentDocsView::isUnfilteredFile(const OUString &rURL) const
+bool RecentDocsView::isAcceptedFile(const OUString &rURL) const
{
INetURLObject aUrl(rURL);
- return isFilteredExtension(mFilter, aUrl.getExtension());
+ OUString aExt = aUrl.getExtension();
+ return (mnFileTypes & TYPE_WRITER && typeMatchesExtension(TYPE_WRITER, aExt)) ||
+ (mnFileTypes & TYPE_CALC && typeMatchesExtension(TYPE_CALC, aExt)) ||
+ (mnFileTypes & TYPE_IMPRESS && typeMatchesExtension(TYPE_IMPRESS, aExt)) ||
+ (mnFileTypes & TYPE_DRAW && typeMatchesExtension(TYPE_DRAW, aExt)) ||
+ (mnFileTypes & TYPE_DATABASE && typeMatchesExtension(TYPE_DATABASE,aExt)) ||
+ (mnFileTypes & TYPE_MATH && typeMatchesExtension(TYPE_MATH, aExt)) ||
+ (mnFileTypes & TYPE_OTHER && typeMatchesExtension(TYPE_OTHER, aExt));
}
BitmapEx RecentDocsView::getDefaultThumbnail(const OUString &rURL)
@@ -106,17 +118,17 @@ BitmapEx RecentDocsView::getDefaultThumbnail(const OUString &rURL)
INetURLObject aUrl(rURL);
OUString aExt = aUrl.getExtension();
- if ( isFilteredExtension( FILTER_WRITER, aExt) )
+ if ( typeMatchesExtension( TYPE_WRITER, aExt) )
aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_TEXT ) );
- else if ( isFilteredExtension( FILTER_CALC, aExt) )
+ else if ( typeMatchesExtension( TYPE_CALC, aExt) )
aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_SHEET ) );
- else if ( isFilteredExtension( FILTER_IMPRESS, aExt) )
+ else if ( typeMatchesExtension( TYPE_IMPRESS, aExt) )
aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_PRESENTATION ) );
- else if ( isFilteredExtension( FILTER_DRAW, aExt) )
+ else if ( typeMatchesExtension( TYPE_DRAW, aExt) )
aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_DRAWING ) );
- else if ( isFilteredExtension( FILTER_DATABASE, aExt) )
+ else if ( typeMatchesExtension( TYPE_DATABASE, aExt) )
aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_DATABASE ) );
- else if ( isFilteredExtension( FILTER_MATH, aExt) )
+ else if ( typeMatchesExtension( TYPE_MATH, aExt) )
aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_MATH ) );
else
aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_DEFAULT ) );
@@ -153,7 +165,7 @@ void RecentDocsView::loadRecentDocs()
a >>= aTitle;
}
- if( isUnfilteredFile(aURL) )
+ if( isAcceptedFile(aURL) )
{
insertItem(aURL, aTitle);
}
@@ -221,11 +233,6 @@ long RecentDocsView::GetThumbnailSize() const
return mnItemMaxSize;
}
-void RecentDocsView::SetFilter(APPLICATION_FILTER filter)
-{
- mFilter = filter;
-}
-
IMPL_STATIC_LINK_NOINSTANCE( RecentDocsView, ExecuteHdl_Impl, LoadRecentFile*, pLoadRecentFile )
{
try
diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx
index 61573a8ee303..cda286ecf3cd 100644
--- a/sfx2/source/dialog/backingwindow.cxx
+++ b/sfx2/source/dialog/backingwindow.cxx
@@ -93,12 +93,14 @@ BackingWindow::BackingWindow( Window* i_pParent ) :
get( mpDatabaseRecentThumbnails, "database_recent");
get( mpMathRecentThumbnails, "math_recent");
- mpWriterRecentThumbnails ->SetFilter(FILTER_WRITER);
- mpCalcRecentThumbnails ->SetFilter(FILTER_CALC);
- mpImpressRecentThumbnails ->SetFilter(FILTER_IMPRESS);
- mpDrawRecentThumbnails ->SetFilter(FILTER_DRAW);
- mpDatabaseRecentThumbnails ->SetFilter(FILTER_DATABASE);
- mpMathRecentThumbnails ->SetFilter(FILTER_MATH);
+ mpAllRecentThumbnails ->addFileType(TYPE_WRITER | TYPE_CALC |
+ TYPE_IMPRESS | TYPE_DRAW | TYPE_DATABASE | TYPE_MATH | TYPE_OTHER);
+ mpWriterRecentThumbnails ->addFileType(TYPE_WRITER);
+ mpCalcRecentThumbnails ->addFileType(TYPE_CALC);
+ mpImpressRecentThumbnails ->addFileType(TYPE_IMPRESS);
+ mpDrawRecentThumbnails ->addFileType(TYPE_DRAW);
+ mpDatabaseRecentThumbnails ->addFileType(TYPE_DATABASE);
+ mpMathRecentThumbnails ->addFileType(TYPE_MATH);
mpAllRecentThumbnails ->loadRecentDocs();
mpWriterRecentThumbnails ->loadRecentDocs();