00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
#ifndef KURLBAR_H
00020
#define KURLBAR_H
00021
00022
#include <qevent.h>
00023
#include <qframe.h>
00024
#include <qtooltip.h>
00025
00026
#include <kdialogbase.h>
00027
#include <kicontheme.h>
00028
#include <klistbox.h>
00029
#include <kurl.h>
00030
00031
class KConfig;
00032
class KURLBar;
00033
00042 class KIO_EXPORT KURLBarItem :
public QListBoxPixmap
00043 {
00044
public:
00058 KURLBarItem(
KURLBar *parent,
const KURL& url,
bool persistent,
00059
const QString& description = QString::null,
00060
const QString& icon = QString::null,
00061 KIcon::Group group = KIcon::Panel );
00062
00075 KURLBarItem(
KURLBar *parent,
const KURL& url,
00076
const QString& description = QString::null,
00077
const QString& icon = QString::null,
00078 KIcon::Group group = KIcon::Panel );
00079
00083 ~KURLBarItem();
00084
00090
void setURL(
const KURL& url );
00096
void setIcon(
const QString& icon, KIcon::Group group = KIcon::Panel );
00101
void setDescription(
const QString& desc );
00106
void setToolTip(
const QString& tip );
00107
00112
QSize sizeHint()
const;
00113
00117
virtual int width(
const QListBox * )
const;
00121
virtual int height(
const QListBox * )
const;
00122
00127 const KURL& url()
const {
return m_url; }
00132 const QString& description()
const {
return m_description; }
00137 const QString& icon()
const {
return m_icon; }
00142
QString toolTip() const;
00147 KIcon::Group iconGroup()
const {
return m_group; }
00151 virtual const QPixmap * pixmap()
const {
return &m_pixmap; }
00152
00159
void setApplicationLocal(
bool local );
00160
00167 bool applicationLocal()
const {
return m_appLocal; }
00168
00174
bool isPersistent() const;
00175
00176 protected:
00177 virtual
void paint(
QPainter *p );
00178
00179 private:
00180
int iconSize() const;
00181
void init( const
QString& icon,
KIcon::Group group,
00182 const
QString& description,
bool persistent );
00183
00184
KURL m_url;
00185
QString m_description;
00186
QString m_icon;
00187
QString m_toolTip;
00188
QPixmap m_pixmap;
00189
KIcon::Group m_group;
00190
KURLBar *m_parent;
00191
bool m_appLocal :1;
00192
00193 protected:
00194 virtual
void virtual_hook(
int id,
void* data );
00195 private:
00196 class KURLBarItemPrivate;
00197 KURLBarItemPrivate *d;
00198 };
00199
00200
00203
00204
00205 class
KURLBarListBox;
00206
00230 class KIO_EXPORT
KURLBar : public
QFrame
00231 {
00232 Q_OBJECT
00233
00234
public:
00239
KURLBar(
bool useGlobalItems,
00240
QWidget *parent = 0,
const char *name = 0, WFlags f = 0 );
00244 ~
KURLBar();
00245
00256
virtual KURLBarItem * insertItem(
const KURL& url,
00257
const QString& description,
00258
bool applicationLocal =
true,
00259
const QString& icon = QString::null,
00260 KIcon::Group group = KIcon::Panel );
00271
virtual KURLBarItem * insertDynamicItem(
const KURL& url,
00272
const QString& description,
00273
const QString& icon = QString::null,
00274 KIcon::Group group = KIcon::Panel );
00280
virtual void setOrientation( Qt::Orientation orient );
00285 Orientation orientation()
const;
00286
00293
virtual void setListBox( KURLBarListBox * );
00298 KURLBarListBox *listBox()
const {
return m_listBox; }
00299
00305
virtual void setIconSize(
int size );
00311 int iconSize()
const {
return m_iconSize; }
00312
00316
virtual void clear();
00317
00322
virtual QSize sizeHint() const;
00323
00327 virtual
QSize minimumSizeHint() const;
00328
00334 virtual
void readConfig(
KConfig *config, const
QString& itemGroup );
00340 virtual
void writeConfig(
KConfig *config, const
QString& itemGroup );
00341
00347 virtual
void readItem(
int i,
KConfig *config,
bool applicationLocal );
00354 virtual
void writeItem( KURLBarItem *item,
int i,
KConfig *,
bool global );
00355
00361 KURLBarItem * currentItem() const;
00368
KURL currentURL() const;
00369
00375 bool isModified()
const {
return m_isModified; }
00376
00380 bool isImmutable()
const {
return m_isImmutable; }
00381
00385 bool isVertical()
const {
return orientation() == Vertical; }
00386
00387
void createItemOnMDKMerge(
const KURL &url,
const QString & description,
const QString &icon );
00388
00389
public slots:
00396
virtual void setCurrentItem(
const KURL& url );
00397
00398 signals:
00403
void activated(
const KURL& url );
00404
00405
protected:
00411
virtual bool addNewItem();
00419
virtual bool editItem( KURLBarItem *item );
00420
00421
virtual void resizeEvent(
QResizeEvent * );
00422
00423
virtual void paletteChange(
const QPalette & );
00424
00428 KURLBarItem * m_activeItem;
00432 bool m_useGlobal :1;
00433
00438 bool m_isModified :1;
00439
00444 bool m_isImmutable :1;
00445
00446
protected slots:
00451
virtual void slotContextMenuRequested(
QListBoxItem *,
const QPoint& pos );
00456
virtual void slotSelected(
QListBoxItem * );
00457
00462
virtual void slotDropped(
QDropEvent * );
00463
00464
private slots:
00465
void slotSelected(
int button,
QListBoxItem * );
00466
00467
private:
00468 KURLBarListBox *m_listBox;
00469
int m_iconSize;
00470
00471
00472
protected:
00473
virtual void virtual_hook(
int id,
void* data );
00474
private:
00475
class KURLBarPrivate;
00476 KURLBarPrivate *d;
00477 };
00478
00479
00482
00483
00484
class QDragObject;
00485
class KURLBarToolTip;
00486
00495 class KIO_EXPORT KURLBarListBox :
public KListBox
00496 {
00497 Q_OBJECT
00498
00499
public:
00503 KURLBarListBox(
QWidget *parent = 0,
const char *name = 0 );
00507 ~KURLBarListBox();
00508
00515
virtual void setOrientation( Qt::Orientation orient );
00520 Qt::Orientation orientation()
const {
return m_orientation; }
00521
00522
bool isVertical()
const {
return m_orientation == Qt::Vertical; }
00523
00524 signals:
00528
void dropped(
QDropEvent *e );
00529
00530
protected:
00534
virtual QDragObject * dragObject();
00535
00536
virtual void contentsDragEnterEvent(
QDragEnterEvent * );
00537
virtual void contentsDropEvent(
QDropEvent * );
00538
virtual void contextMenuEvent(
QContextMenuEvent * );
00539
virtual void paintEvent(
QPaintEvent* );
00540
00541
private:
00542 Qt::Orientation m_orientation;
00543 KURLBarToolTip *m_toolTip;
00544
00545
protected:
00546
virtual void virtual_hook(
int id,
void* data );
00547
private:
00548
class KURLBarListBoxPrivate;
00549 KURLBarListBoxPrivate *d;
00550 };
00551
00552
00555
00556
00557
class QCheckBox;
00558
class KIconButton;
00559
class KLineEdit;
00560
class KURLRequester;
00561
00569 class KIO_EXPORT KURLBarItemDialog :
public KDialogBase
00570 {
00571 Q_OBJECT
00572
00573
public:
00581
static bool getInformation(
bool allowGlobal,
KURL& url,
00582
QString& description,
QString& icon,
00583
bool& appLocal,
int iconSize,
00584
QWidget *parent = 0 );
00585
00603 KURLBarItemDialog(
bool allowGlobal,
const KURL& url,
00604
const QString& description,
QString icon,
00605
bool appLocal =
true,
00606
int iconSize = KIcon::SizeMedium,
00607
QWidget *parent = 0,
const char *name = 0 );
00611 ~KURLBarItemDialog();
00612
00616
KURL url()
const;
00617
00621
QString description()
const;
00622
00626
QString icon()
const;
00627
00633
bool applicationLocal()
const;
00634
00635
protected:
00639 KURLRequester * m_urlEdit;
00643 KLineEdit * m_edit;
00647 KIconButton * m_iconButton;
00651 QCheckBox * m_appLocal;
00652
00653
public slots:
00654
void urlChanged(
const QString & );
00655
00656
private:
00657
class KURLBarItemDialogPrivate;
00658 KURLBarItemDialogPrivate *d;
00659 };
00660
00661
00662
#endif // KURLBAR_H