/* This file is part of the KDE project Copyright (C) 2004 Max Howell Copyright (C) 2004 Mark Kretschmann Copyright (C) 2003 Roberto Raggi Copyright (C) 2001 Christoph Cullmann Copyright (C) 2001 Joseph Wenninger Copyright (C) 2001 Anders Lund This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License version 2 as published by the Free Software Foundation. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef FILESELECTOR_WIDGET_H #define FILESELECTOR_WIDGET_H #include //baseclass #include //some inline functions #include //baseclass #include //stack allocated class ClickLineEdit; class TQTimer; class KActionCollection; class KFileItem; class KFileView; class KURLComboBox; class Medium; //Hi! I think we ripped this from Kate, since then it's been modified somewhat /* The KDev file selector presents a directory view, in which the default action is to open the activated file. Additinally, a toolbar for managing the kdiroperator widget + sync that to the directory of the current file is available, as well as a filter widget allowing to filter the displayed files using a name filter. */ class FileBrowser : public TQVBox { Q_OBJECT TQ_OBJECT enum MenuId { MakePlaylist, SavePlaylist, MediaDevice, AppendToPlaylist, QueueTrack, QueueTracks, SelectAllFiles, BurnCd, MoveToCollection, CopyToCollection, OrganizeFiles, EditTags }; public: FileBrowser( const char *name = 0, Medium *medium = 0 ); ~FileBrowser(); KURL url() const { return m_dir->url(); } public slots: void setUrl( const KURL &url ); void setUrl( const TQString &url ); void setFilter( const TQString& ); void dropped( const KFileItem*, TQDropEvent*, const KURL::List& ); private slots: void activate( const KFileItem* ); void contextMenuActivated( int ); void gotoCurrentFolder(); void prepareContextMenu(); void selectAll(); void slotViewChanged( KFileView* ); void urlChanged( const KURL& ); private: KURL::List selectedItems(); void playlistFromURLs( const KURL::List &urls ); KURLComboBox *m_combo; KDirOperator *m_dir; ClickLineEdit *m_filter; Medium *m_medium; }; #include //KFileItemList #include class KDirLister; class KURLView; class TQLineEdit; class TQListViewItem; ///@author Max Howell ///@short Widget for recursive searching of current FileBrowser location class SearchPane : public TQVBox { Q_OBJECT TQ_OBJECT public: SearchPane( FileBrowser *parent ); private slots: void toggle( bool ); void urlChanged( const KURL& ); void searchTextChanged( const TQString &text ); void searchMatches( const KFileItemList& ); void searchComplete(); void _searchComplete(); void activate( TQListViewItem* ); private: KURL searchURL() const { return static_cast(parentWidget())->url(); } TQLineEdit *m_lineEdit; KURLView *m_listView; KDirLister *m_lister; TQRegExp m_filter; KURL::List m_dirs; }; #endif