You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
amarok/amarok/src/filebrowser.h

130 lines
3.7 KiB

/* This file is part of the KDE project
Copyright (C) 2004 Max Howell
Copyright (C) 2004 Mark Kretschmann <markey@web.de>
Copyright (C) 2003 Roberto Raggi <roberto@kdevelop.org>
Copyright (C) 2001 Christoph Cullmann <cullmann@kde.org>
Copyright (C) 2001 Joseph Wenninger <jowenn@kde.org>
Copyright (C) 2001 Anders Lund <anders.lund@lund.tdcadsl.dk>
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 <tqvbox.h> //baseclass
#include <tdediroperator.h> //some inline functions
#include <tdetoolbar.h> //baseclass
#include <kurl.h> //stack allocated
class ClickLineEdit;
class TQTimer;
class TDEActionCollection;
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
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 <tdefileitem.h> //KFileItemList
#include <tqregexp.h>
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
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<FileBrowser*>(parentWidget())->url(); }
TQLineEdit *m_lineEdit;
KURLView *m_listView;
KDirLister *m_lister;
TQRegExp m_filter;
KURL::List m_dirs;
};
#endif