From f78e31382d4e4076a4fb2017c22574859e7afdb3 Mon Sep 17 00:00:00 2001 From: zecke Date: Wed, 27 Mar 2002 23:29:41 +0000 Subject: updates --- diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc index 53616f7..c9abde1 100644 --- a/libopie/ofileselector.cc +++ b/libopie/ofileselector.cc @@ -38,6 +38,8 @@ #include #include +#include +#include #include "ofileselector.h" @@ -49,6 +51,9 @@ OFileSelector::OFileSelector(QWidget *wid, int mode, int selector, const QString m_currentDir = dirName; m_name = fileName; m_mimetypes = mimetypes; + if( mimetypes.isEmpty() ) + m_autoMime = true; + m_mode = mode; m_shTool = true; m_shPerm = true; @@ -82,6 +87,7 @@ OFileSelector::OFileSelector(QWidget *wid, int mode, int selector, const QString m_lay = new QVBoxLayout(this); init(); + m_edit->setText( fileName ); } // let's initialize the gui @@ -326,28 +332,82 @@ void OFileSelector::initializeChooser() m_viewCheck->insertItem(tr("Files") ); m_viewCheck->insertItem(tr("All Files") ); + if(!m_autoMime ) + m_mimeCheck->insertItem(m_mimetypes.join("," ) ); + else{ // check + updateMimes(); + m_mimeCheck->insertStringList( m_mimetypes ); + } + connect( m_viewCheck, SIGNAL(activated(const QString &) ), this, SLOT(slotViewCheck(const QString & ) ) ); - + + connect( m_mimeCheck, SIGNAL(activated(const QString &) ), + this, SLOT(slotMimeCheck(const QString & ) ) ); } +void OFileSelector::slotMimeCheck(const QString &view ){ + if(m_selector == NORMAL ){ + delete m_select; + m_select = new FileSelector(view == "All" ? QString::null : view + , m_stack, "fileselector", FALSE, FALSE ); + m_stack->addWidget( m_select, NORMAL ); + m_stack->raiseWidget( NORMAL ); + }else{ + } +} + void OFileSelector::slotViewCheck(const QString &view ){ qWarning("changed: show %s", view.latin1() ); // if the current view is the one - + QString currMime = m_mimeCheck->currentText(); if( view == QString::fromLatin1("Documents") ){ // get the mimetype now // check if we're the current widget and return + delete m_select; + m_select = new FileSelector( currMime == "All" ? QString::null : currMime, + m_stack,"fileselector", FALSE, FALSE ); + m_stack->addWidget( m_select, NORMAL ); + m_stack->raiseWidget( NORMAL ); + m_selector = NORMAL; + }else if(view == QString::fromLatin1("Files") ){ if( m_select != 0 ){ // remove from the stack delete m_select; m_select = 0; + m_selector = EXTENDED; + // create the ListView or IconView + + reparse(); } }else if(view == QString::fromLatin1("All Files") ) { // remove from the stack delete m_select; m_select = 0; + m_selector = EXTENDED_ALL; + + reparse(); }; }; + + +void OFileSelector::updateMimes() // lets check which mode is active + // check the current dir for items then +{ + m_mimetypes.clear(); + m_mimetypes.append("All" ); + if( m_selector == NORMAL ){ + DocLnkSet set; + Global::findDocuments(&set, QString::null ); + QListIterator dit( set.children() ); + for ( ; dit.current(); ++dit ) { + if( !m_mimetypes.contains((*dit)->type() ) ) + m_mimetypes.append( (*dit)->type() ); + } + }else{ + + + } +}; diff --git a/libopie/ofileselector.h b/libopie/ofileselector.h index 3f53fa9..757a960 100644 --- a/libopie/ofileselector.h +++ b/libopie/ofileselector.h @@ -84,7 +84,8 @@ class OFileSelector : public QWidget { Q_OBJECT public: enum Mode {OPEN=1, SAVE, FILESELECTOR }; - enum Selector{NORMAL=1, EXTENDED }; + enum Selector{NORMAL=1, EXTENDED = 2, EXTENDED_ALL =4 }; + enum View { DIRS = 1, FILES = 2, TREE = 4, ICON = 8 }; OFileSelector(QWidget *wid, int mode, int selector, const QString &dirName, const QString &fileName = QString::null, const QStringList mimetypes = QStringList() ); bool showToolbar() const { return m_shTool; }; @@ -123,8 +124,10 @@ class OFileSelector : public QWidget { void slotOk(); void slotCancel(); void slotViewCheck(const QString & ); + void slotMimeCheck(const QString & ); protected: void init(); + void updateMimes(); int m_mode, m_selector; QComboBox *m_location, *m_mimeCheck, *m_viewCheck; QPushButton *m_homeButton, *m_docButton, *m_hideButton, *m_ok, *m_cancel; @@ -154,6 +157,7 @@ class OFileSelector : public QWidget { bool m_shChooser:1; bool m_shYesNo:1; bool m_boCheckPerm:1; + bool m_autoMime:1; protected: -- cgit v0.9.0.2