-rw-r--r-- | noncore/graphics/opie-eye/gui/iconview.cpp | 22 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/gui/iconview.h | 2 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/iface/dirlister.h | 1 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/iface/dirview.h | 2 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dcim/dcim_dirview.cpp | 5 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dcim/dcim_dirview.h | 2 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dir/dir_dirview.cpp | 5 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dir/dir_dirview.h | 1 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/doc/doc_dirview.cpp | 7 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/doc/doc_dirview.h | 4 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/doc/doc_lister.cpp | 41 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/doc/doc_lister.h | 7 |
12 files changed, 91 insertions, 8 deletions
diff --git a/noncore/graphics/opie-eye/gui/iconview.cpp b/noncore/graphics/opie-eye/gui/iconview.cpp index 5472ead..948477c 100644 --- a/noncore/graphics/opie-eye/gui/iconview.cpp +++ b/noncore/graphics/opie-eye/gui/iconview.cpp @@ -197,8 +197,9 @@ PIconView::PIconView( QWidget* wid, Opie::Core::OConfig* cfg ) m_internalReset = false; + m_customWidget = 0; - QHBox *hbox = new QHBox( this ); - QLabel* lbl = new QLabel( hbox ); + m_hbox = new QHBox( this ); + QLabel* lbl = new QLabel( m_hbox ); lbl->setText( tr("View as" ) ); - m_views = new QComboBox( hbox, "View As" ); + m_views = new QComboBox( m_hbox, "View As" ); @@ -451,4 +452,10 @@ void PIconView::slotViewChanged( int i) { + if (m_customWidget) { + delete m_customWidget; + m_customWidget = 0; + } PDirView* cur = currentView(); - if (cur) delete cur; + if (cur) { + delete cur; + } QString str = m_views->text(i); @@ -470,2 +477,7 @@ void PIconView::slotViewChanged( int i) { setCurrentView( cur ); + m_customWidget = cur->widget(m_hbox); + if (m_customWidget) { + odebug << "Got a widget" << oendl; + m_customWidget->show(); + } @@ -481,3 +493,3 @@ void PIconView::slotViewChanged( int i) { this, SLOT(slotEnd()) ); - + connect(lis,SIGNAL(sig_reloadDir()),this,SLOT(slotReloadDir())); diff --git a/noncore/graphics/opie-eye/gui/iconview.h b/noncore/graphics/opie-eye/gui/iconview.h index b018c51..78dda58 100644 --- a/noncore/graphics/opie-eye/gui/iconview.h +++ b/noncore/graphics/opie-eye/gui/iconview.h @@ -99,2 +99,4 @@ private: int m_iconsize; + QHBox*m_hbox; + QWidget*m_customWidget; }; diff --git a/noncore/graphics/opie-eye/iface/dirlister.h b/noncore/graphics/opie-eye/iface/dirlister.h index 68e8495..6997f52 100644 --- a/noncore/graphics/opie-eye/iface/dirlister.h +++ b/noncore/graphics/opie-eye/iface/dirlister.h @@ -46,2 +46,3 @@ signals: void sig_thumbNail( const QString&, const QPixmap& ); + void sig_reloadDir(); diff --git a/noncore/graphics/opie-eye/iface/dirview.h b/noncore/graphics/opie-eye/iface/dirview.h index 20d9062..3c05b60 100644 --- a/noncore/graphics/opie-eye/iface/dirview.h +++ b/noncore/graphics/opie-eye/iface/dirview.h @@ -14,2 +14,3 @@ class PInterfaceInfo; class PDirLister; +class QWidget; @@ -20,2 +21,3 @@ struct PDirView { virtual PDirLister* dirLister()const = 0; + virtual QWidget* widget(QWidget*)=0; }; diff --git a/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.cpp b/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.cpp index e55c27a..3f6044f 100644 --- a/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.cpp +++ b/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.cpp @@ -28 +28,6 @@ PDirLister* DCIM_DirView::dirLister()const { } + +QWidget* DCIM_DirView::widget(QWidget*) +{ + return 0L; +} diff --git a/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.h b/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.h index 7fc38ec..8394b34 100644 --- a/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.h +++ b/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.h @@ -19,3 +19,3 @@ struct DCIM_DirView : public PDirView { PDirLister * dirLister ()const; - + virtual QWidget* widget(QWidget*); private: diff --git a/noncore/graphics/opie-eye/impl/dir/dir_dirview.cpp b/noncore/graphics/opie-eye/impl/dir/dir_dirview.cpp index fc502d4..9c2c840 100644 --- a/noncore/graphics/opie-eye/impl/dir/dir_dirview.cpp +++ b/noncore/graphics/opie-eye/impl/dir/dir_dirview.cpp @@ -33 +33,6 @@ PDirLister* Dir_DirView::dirLister()const{ } + +QWidget* Dir_DirView::widget(QWidget*) +{ + return 0L; +}
\ No newline at end of file diff --git a/noncore/graphics/opie-eye/impl/dir/dir_dirview.h b/noncore/graphics/opie-eye/impl/dir/dir_dirview.h index 89cf6c9..ae53a5c 100644 --- a/noncore/graphics/opie-eye/impl/dir/dir_dirview.h +++ b/noncore/graphics/opie-eye/impl/dir/dir_dirview.h @@ -16,2 +16,3 @@ struct Dir_DirView : public PDirView { PDirLister* dirLister()const; + virtual QWidget* widget(QWidget*); private: diff --git a/noncore/graphics/opie-eye/impl/doc/doc_dirview.cpp b/noncore/graphics/opie-eye/impl/doc/doc_dirview.cpp index 0d6e25f..2cc897b 100644 --- a/noncore/graphics/opie-eye/impl/doc/doc_dirview.cpp +++ b/noncore/graphics/opie-eye/impl/doc/doc_dirview.cpp @@ -28 +28,8 @@ PDirLister* Doc_DirView::dirLister()const{ } + +QWidget* Doc_DirView::widget(QWidget*parent) +{ + if (!m_lister) + dirLister(); + return m_lister->widget(parent); +} diff --git a/noncore/graphics/opie-eye/impl/doc/doc_dirview.h b/noncore/graphics/opie-eye/impl/doc/doc_dirview.h index 3a2fd71..55ba6f2 100644 --- a/noncore/graphics/opie-eye/impl/doc/doc_dirview.h +++ b/noncore/graphics/opie-eye/impl/doc/doc_dirview.h @@ -9,2 +9,3 @@ +class Doc_DirLister; @@ -16,5 +17,6 @@ struct Doc_DirView : public PDirView { PDirLister* dirLister()const; + QWidget* widget(QWidget*parent); private: bool m_cfg : 1; - mutable PDirLister* m_lister; + mutable Doc_DirLister* m_lister; mutable PInterfaceInfo *m_info; 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(); +} diff --git a/noncore/graphics/opie-eye/impl/doc/doc_lister.h b/noncore/graphics/opie-eye/impl/doc/doc_lister.h index 5884a35..e148ac0 100644 --- a/noncore/graphics/opie-eye/impl/doc/doc_lister.h +++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.h @@ -13,2 +13,4 @@ class Config; +class AppLnk; + class Doc_DirLister : public PDirLister { @@ -32,2 +34,3 @@ public: QString dirUp( const QString& )const; + QWidget* widget(QWidget*parent); @@ -35,2 +38,5 @@ private: QMap<QString,QString> m_namemap,m_filemap; + int m_catFilter; + bool matchCat(const AppLnk* app); + protected slots: @@ -39,2 +45,3 @@ protected slots: virtual void slotThumbNail(const QString&, const QPixmap&); + virtual void showCategory(int); }; |