Diffstat (limited to 'libopie2/opieui/fileselector/ofileselector.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie2/opieui/fileselector/ofileselector.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/libopie2/opieui/fileselector/ofileselector.cpp b/libopie2/opieui/fileselector/ofileselector.cpp index 346eeae..e8d502f 100644 --- a/libopie2/opieui/fileselector/ofileselector.cpp +++ b/libopie2/opieui/fileselector/ofileselector.cpp @@ -527,12 +527,20 @@ bool OFileViewFileListView::eventFilter (QObject *, QEvent *e) return true; } } return false; } +/** + * @return true if the item show all files or directories + */ +bool OFileViewFileListView::allItem( const QString& item )const +{ + return m_sel->allItem( item ); +} + void OFileViewFileListView::connectSlots() { connect(m_view, SIGNAL(clicked(QListViewItem*) ), this, SLOT(slotCurrentChanged(QListViewItem*) ) ); connect(m_view, SIGNAL(mouseButtonClicked(int,QListViewItem*,const QPoint&,int) ), this, SLOT(slotClicked(int,QListViewItem*,const QPoint&,int) ) ); @@ -812,15 +820,15 @@ QWidget* OFileViewFileSystem::widget( QWidget* parent ) { m_view = new OFileViewFileListView( parent, startDirectory(), selector() ); } return m_view; } -void OFileViewFileSystem::activate( const QString& str) +void OFileViewFileSystem::activate( const QString& str ) { - m_all = ( str.find( "All" ) != -1 ); + m_all = m_view->allItem( str ); } } /* Selector */ /** @@ -864,12 +872,14 @@ OFileSelector::OFileSelector( QWidget* parent, int mode, int sel, m_mimeType = mimetypes; m_startDir = dirName; m_mode = mode; m_selector = sel; + m_allList = new QStringList(); + initUI(); m_lneEdit->setText( fileName ); initMime(); initViews(); QString str; @@ -1020,16 +1030,18 @@ void OFileSelector::initViews() OFileViewInterface* in = new OFileViewFileSystem( this ); if ( m_mode == OFileSelector::DIRECTORYSELECTOR ) { m_views.insert( QObject::tr("Directories"), in ); m_views.insert( QObject::tr("All Directories"), in ); + m_allList->append( QObject::tr("All Directories") ); } else { m_views.insert( QObject::tr("Documents"), new ODocumentFileView(this) ); m_views.insert( QObject::tr("Files"), in ); m_views.insert( QObject::tr("All Files"), in ); + m_allList->append( QObject::tr("All Files") ); } } void OFileSelector::registerView( const Internal::OFileViewInterface* iface ) { m_viewsPtr.append( iface ); } @@ -1143,12 +1155,20 @@ int OFileSelector::mode()const */ int OFileSelector::selector()const { return m_selector; } +/** + * @return true if the item show all files or directories + */ +bool OFileSelector::allItem( const QString& item )const +{ + return ( m_allList->findIndex( item ) != -1 ); +} + QStringList OFileSelector::currentMimeType()const { return m_mimeType[m_cmbMime->currentText()]; } void OFileSelector::slotMimeTypeChanged() @@ -1172,21 +1192,21 @@ void OFileSelector::slotFileBridge( const QString& str) void OFileSelector::slotViewChange( const QString& view ) { OFileViewInterface* interface = m_views[view]; if (!interface) return; - interface->activate( view ); if (m_current) m_stack->removeWidget( m_current->widget( m_stack ) ); static int id = 1; m_stack->addWidget( interface->widget(m_stack), id ); m_stack->raiseWidget( id ); + interface->activate( view ); interface->reread(); m_current = interface; id++; } |