summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
Side-by-side diff
Diffstat (limited to 'noncore/graphics/opie-eye/impl/doc/doc_lister.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/impl/doc/doc_lister.cpp41
1 files changed, 40 insertions, 1 deletions
diff --git a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
index 722fb95..d60149f 100644
--- a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
+++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
@@ -14,2 +14,5 @@
+#include <qtopia/private/categories.h>
+#include <qtopia/categoryselect.h>
+
using namespace Opie::Core;
@@ -24,2 +27,3 @@ Doc_DirLister::Doc_DirLister()
/* connect the signals */
+ m_catFilter = 0;
SlaveMaster* master = SlaveMaster::self();
@@ -42,2 +46,11 @@ QString Doc_DirLister::defaultPath()const {
+bool Doc_DirLister::matchCat(const AppLnk* app)
+{
+ if (!app) return false;
+ if (m_catFilter==0 || app->categories().contains(m_catFilter) || m_catFilter == -1 && app->categories().count() == 0 ) {
+ return true;
+ }
+ return false;
+}
+
QString Doc_DirLister::setStartPath(const QString&) {
@@ -49,3 +62,4 @@ QString Doc_DirLister::setStartPath(const QString&) {
for( ; dit.current(); ++dit) {
-// if (! (*dit)->isValid()) continue;
+ if (! (*dit)->isValid()) continue;
+ if (!matchCat((*dit))) continue;
m_namemap[(*dit)->name()]=(*dit)->file();
@@ -149 +163,26 @@ QString Doc_DirLister::dirUp( const QString& p ) const{
}
+
+QWidget* Doc_DirLister::widget(QWidget*parent)
+{
+ CategorySelect * catmb = new CategorySelect(parent);
+ Categories cats( 0 );
+ cats.load( categoryFileName() );
+ QArray<int> vl( 0 );
+ catmb->setCategories( vl, "Document View", // No tr
+ "Document View" );
+ catmb->setRemoveCategoryEdit( TRUE );
+ catmb->setAllCategories( TRUE );
+ connect(catmb, SIGNAL(signalSelected(int)), this, SLOT(showCategory(int)));
+ catmb->setCurrentCategory(-2);
+ return catmb;
+}
+
+void Doc_DirLister::showCategory(int which)
+{
+ Categories cat;
+ cat.load( categoryFileName() );
+ m_catFilter = which==-2?0:which;
+ m_namemap.clear();
+ setStartPath("");
+ emit sig_reloadDir();
+}