diff options
Diffstat (limited to 'kio/kfile/kurlcombobox.h')
-rw-r--r-- | kio/kfile/kurlcombobox.h | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/kio/kfile/kurlcombobox.h b/kio/kfile/kurlcombobox.h deleted file mode 100644 index 0a9451075..000000000 --- a/kio/kfile/kurlcombobox.h +++ /dev/null @@ -1,229 +0,0 @@ -/* This file is part of the KDE libraries - Copyright (C) 2000 Carsten Pfeiffer <pfeiffer@kde.org> - - 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 Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef KURLCOMBOBOX_H -#define KURLCOMBOBOX_H - -#include <tqevent.h> -#include <tqptrlist.h> -#include <tqmap.h> -#include <tqpixmap.h> -#include <tqstringlist.h> - -#include <kcombobox.h> -#include <kurl.h> - -/** - * This combobox shows a number of recent URLs/directories, as well as some - * default directories. - * It will manage the default dirs root-directory, home-directory and - * Desktop-directory, as well as a number of URLs set via setURLs() - * and one additional entry to be set via setURL(). - * - * @short A combo box showing a number of recent URLs/directories - * @author Carsten Pfeiffer <pfeiffer@kde.org> - */ -class KIO_EXPORT KURLComboBox : public KComboBox -{ - Q_OBJECT - TQ_PROPERTY(TQStringList urls READ urls WRITE setURLs DESIGNABLE true) - TQ_PROPERTY(int maxItems READ maxItems WRITE setMaxItems DESIGNABLE true) - -public: - /** - * This enum describes which kind of items is shown in the combo box. - */ - enum Mode { Files = -1, Directories = 1, Both = 0 }; - /** - * This Enumeration is used in setURL() to determine which items - * will be removed when the given list is larger than maxItems(). - * - * @li RemoveTop means that items will be removed from top - * @li RemoveBottom means, that items will be removed from the bottom - */ - enum OverLoadResolving { RemoveTop, RemoveBottom }; - - /** - * Constructs a KURLComboBox. - * @param mode is either Files, Directories or Both and controls the - * following behavior: - * @li Files all inserted URLs will be treated as files, therefore the - * url shown in the combo will never show a trailing / - * the icon will be the one associated with the file's mimetype. - * @li Directories all inserted URLs will be treated as directories, will - * have a trailing slash in the combobox. The current - * directory will show the "open folder" icon, other - * directories the "folder" icon. - * @li Both Don't mess with anything, just show the url as given. - * @param parent The parent object of this widget. - * @param name The name of this widget. - */ - KURLComboBox( Mode mode, TQWidget *parent=0, const char *name=0 ); - KURLComboBox( Mode mode, bool rw, TQWidget *parent=0, const char *name=0 ); - /** - * Destructs the combo box. - */ - ~KURLComboBox(); - - /** - * Sets the current url. This combo handles exactly one url additionally - * to the default items and those set via setURLs(). So you can call - * setURL() as often as you want, it will always replace the previous one - * set via setURL(). - * If @p url is already in the combo, the last item will stay there - * and the existing item becomes the current item. - * The current item will always have the open-directory-pixmap as icon. - * - * Note that you won't receive any signals, e.g. textChanged(), - * returnPressed() or activated() upon calling this method. - */ - void setURL( const KURL& url ); - - /** - * Inserts @p urls into the combobox below the "default urls" (see - * addDefaultURL). - * - * If the list of urls contains more items than maxItems, the first items - * will be stripped. - */ - void setURLs( TQStringList urls ); - - /** - * Inserts @p urls into the combobox below the "default urls" (see - * addDefaultURL). - * - * If the list of urls contains more items than maxItems, the @p remove - * parameter determines whether the first or last items will be stripped. - */ - void setURLs( TQStringList urls, OverLoadResolving remove ); - - /** - * @returns a list of all urls currently handled. The list contains at most - * maxItems() items. - * Use this to save the list of urls in a config-file and reinsert them - * via setURLs() next time. - * Note that all default urls set via addDefaultURL() are not - * returned, they will automatically be set via setURLs() or setURL(). - * You will always get fully qualified urls, i.e. with protocol like - * file:/ - */ - TQStringList urls() const; - - /** - * Sets how many items should be handled and displayed by the combobox. - * @see maxItems - */ - void setMaxItems( int ); - - /** - * @returns the maximum of items the combobox handles. - * @see setMaxItems - */ - int maxItems() const { return myMaximum; } - - /** - * Adds a url that will always be shown in the combobox, it can't be - * "rotated away". Default urls won't be returned in urls() and don't - * have to be set via setURLs(). - * If you want to specify a special pixmap, use the overloaded method with - * the pixmap parameter. - * Default URLs will be inserted into the combobox by setDefaults() - */ - void addDefaultURL( const KURL& url, const TQString& text = TQString::null ); - - /** - * Adds a url that will always be shown in the combobox, it can't be - * "rotated away". Default urls won't be returned in urls() and don't - * have to be set via setURLs(). - * If you don't need to specify a pixmap, use the overloaded method without - * the pixmap parameter. - * Default URLs will be inserted into the combobox by setDefaults() - */ - void addDefaultURL( const KURL& url, const TQPixmap& pix, - const TQString& text = TQString::null ); - - /** - * Clears all items and inserts the default urls into the combo. Will be - * called implicitly upon the first call to setURLs() or setURL() - * @see addDefaultURL - */ - void setDefaults(); - - /** - * Removes any occurrence of @p url. If @p checkDefaultURLs is false - * default-urls won't be removed. - */ - void removeURL( const KURL& url, bool checkDefaultURLs = true ); - -signals: - /** - * Emitted when an item was clicked at. - * @param url is the url of the now current item. If it is a local url, - * it won't have a protocol (file:/), otherwise it will. - */ - void urlActivated( const KURL& url ); - - -protected slots: - void slotActivated( int ); - - -protected: - struct _KURLComboItem { - TQString text; - KURL url; - TQPixmap pixmap; - }; - typedef _KURLComboItem KURLComboItem; - TQPtrList<KURLComboItem> itemList; - TQPtrList<KURLComboItem> defaultList; - TQMap<int,const KURLComboItem*> itemMapper; - - void init( Mode mode ); - void insertURLItem( const KURLComboItem * ); - - /** - * Uses KMimeType::pixmapForURL() to return a proper pixmap for @p url. - * In directory mode, a folder icon is always returned. - */ - TQPixmap getPixmap( const KURL& url ) const; - - /** - * Updates @p item with @p pixmap and sets the url instead of the text - * of the KURLComboItem. - * Also works around a Qt bug. - */ - void updateItem( const KURLComboItem *item, int index, const TQPixmap& pix); - - TQPixmap opendirPix; - int firstItemIndex; - - -private: - bool urlAdded; - int myMaximum; - Mode myMode; // can be used as parameter to KUR::path( int ) or url( int ) - // to specify if we want a trailing slash or not - -private: - class KURLComboBoxPrivate; - KURLComboBoxPrivate *d; -}; - - -#endif // KURLCOMBOBOX_H |