00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __kbookmarkmenu_p_h__
00023 #define __kbookmarkmenu_p_h__
00024
00025 #include <sys/types.h>
00026
00027 #include <qptrlist.h>
00028 #include <qptrstack.h>
00029 #include <qobject.h>
00030 #include <qlistview.h>
00031
00032 #include <kdialogbase.h>
00033 #include <klocale.h>
00034 #include <kaction.h>
00035
00036 #include "kbookmark.h"
00037 #include "kbookmarkimporter.h"
00038 #include "kbookmarkmanager.h"
00039
00040 class QString;
00041 class QPopupMenu;
00042 class QPushButton;
00043 class QListView;
00044 class KLineEdit;
00045 class KBookmark;
00046 class KBookmarkGroup;
00047 class KAction;
00048 class KActionMenu;
00049 class KActionCollection;
00050 class KBookmarkOwner;
00051 class KBookmarkMenu;
00052 class KBookmarkBar;
00053 class KPopupMenu;
00054
00055 class KImportedBookmarksActionMenu : public KActionMenu {
00056 Q_OBJECT
00057 Q_PROPERTY( QString type READ type WRITE setType )
00058 Q_PROPERTY( QString location READ location WRITE setLocation )
00059 public:
00060 const QString type() const { return m_type; }
00061 void setType(const QString &type) { m_type = type; }
00062 const QString location() const { return m_location; }
00063 void setLocation(const QString &location) { m_location = location; }
00064 private:
00065 QString m_type;
00066 QString m_location;
00067 public:
00068 KImportedBookmarksActionMenu(
00069 const QString &text, const QString& sIconName,
00070 KActionCollection* parent, const char* name)
00071 : KActionMenu(text, sIconName, parent, name) {
00072 ;
00073 }
00074 };
00075
00076 class KBookmarkActionMenu : public KActionMenu {
00077 Q_OBJECT
00078 Q_PROPERTY( QString url READ url WRITE setUrl )
00079 Q_PROPERTY( QString address READ address WRITE setAddress )
00080 Q_PROPERTY( bool readOnly READ readOnly WRITE setReadOnly )
00081 public:
00082 const QString url() const { return m_url; }
00083 void setUrl(const QString &url) { m_url = url; }
00084 const QString address() const { return m_address; }
00085 void setAddress(const QString &address) { m_address = address; }
00086 bool readOnly() const { return m_readOnly; }
00087 void setReadOnly(bool readOnly) { m_readOnly = readOnly; }
00088 private:
00089 QString m_url;
00090 QString m_address;
00091 bool m_readOnly;
00092 public:
00093 KBookmarkActionMenu(
00094 const QString &text, const QString& sIconName,
00095 KActionCollection* parent, const char* name)
00096 : KActionMenu(text, sIconName, parent, name) {
00097 ;
00098 }
00099 };
00100
00101 class KBookmarkAction : public KAction {
00102 Q_OBJECT
00103 Q_PROPERTY( QString url READ url WRITE setUrl )
00104 Q_PROPERTY( QString address READ address WRITE setAddress )
00105 public:
00106 const QString url() const { return m_url; }
00107 void setUrl(const QString &url) { m_url = url; }
00108 const QString address() const { return m_address; }
00109 void setAddress(const QString &address) { m_address = address; }
00110 private:
00111 QString m_url;
00112 QString m_address;
00113 public:
00114 KBookmarkAction(
00115 const QString& text, const QString& sIconName, const KShortcut& cut,
00116 const QObject* receiver, const char* slot,
00117 KActionCollection* parent, const char* name)
00118 : KAction(text, sIconName, cut, receiver, slot, parent, name) {
00119 ;
00120 }
00121 };
00122
00123 class KBookmarkEditFields {
00124 public:
00125 typedef enum { FolderFieldsSet, BookmarkFieldsSet } FieldsSet;
00126 KLineEdit * m_url;
00127 KLineEdit * m_title;
00128 KBookmarkEditFields(QWidget *main, QBoxLayout *vbox, FieldsSet isFolder);
00129 void setName(const QString &str);
00130 void setLocation(const QString &str);
00131 };
00132
00133 class KBookmarkEditDialog : public KDialogBase
00134 {
00135 Q_OBJECT
00136
00137 public:
00138 typedef enum { ModifyMode, InsertionMode } BookmarkEditType;
00139
00140 KBookmarkEditDialog( const QString& title, const QString& url, KBookmarkManager *, BookmarkEditType editType, const QString& address = QString::null,
00141 QWidget * = 0, const char * = 0, const QString& caption = i18n( "Add Bookmark" ) );
00142
00143 QString finalUrl() const;
00144 QString finalTitle() const;
00145 QString finalAddress() const;
00146
00147 protected slots:
00148 void slotOk();
00149 void slotCancel();
00150 void slotUser1();
00151 void slotDoubleClicked(QListViewItem* item);
00152
00153 private:
00154 QWidget * m_main;
00155 KBookmarkEditFields * m_fields;
00156 QListView * m_folderTree;
00157 QPushButton * m_button;
00158 KBookmarkManager * m_mgr;
00159 BookmarkEditType m_editType;
00160 QString m_address;
00161 };
00162
00163 class KBookmarkFolderTreeItem : public QListViewItem
00164 {
00165
00166 friend class KBookmarkFolderTree;
00167 public:
00168 KBookmarkFolderTreeItem( QListView *, const KBookmark & );
00169 KBookmarkFolderTreeItem( KBookmarkFolderTreeItem *, QListViewItem *, const KBookmarkGroup & );
00170 private:
00171 KBookmark m_bookmark;
00172 };
00173
00174 class KBookmarkFolderTree
00175 {
00176 public:
00177 static QListView* createTree( KBookmarkManager *, QWidget * = 0, const char * = 0, const QString& = QString::null );
00178 static void fillTree( QListView*, KBookmarkManager *, const QString& = QString::null );
00179 static QString selectedAddress( QListView* );
00180 static void setAddress( QListView *, const QString & );
00181 };
00182
00183 class KBookmarkSettings
00184 {
00185 public:
00186 bool m_advancedaddbookmark;
00187 bool m_contextmenu;
00188 bool m_quickactions;
00189 bool m_filteredtoolbar;
00190 static KBookmarkSettings *s_self;
00191 static void readSettings();
00192 static KBookmarkSettings *self();
00193 };
00194
00195 class RMB
00196 {
00197 public:
00198 static void begin_rmb_action(KBookmarkMenu *);
00199 static void begin_rmb_action(KBookmarkBar *);
00200 bool invalid( int val );
00201 KBookmark atAddress(const QString & address);
00202 void fillContextMenu( QPopupMenu* contextMenu, const QString & address, int val );
00203 void fillContextMenu2( QPopupMenu* contextMenu, const QString & address, int val );
00204 void slotRMBActionEditAt( int val );
00205 void slotRMBActionProperties( int val );
00206 void slotRMBActionInsert( int val );
00207 void slotRMBActionRemove( int val );
00208 void slotRMBActionCopyLocation( int val );
00209 void hidePopup();
00210 public:
00211 QObject *recv;
00212 KBookmarkManager *m_pManager;
00213 QString s_highlightedAddress;
00214 QString m_parentAddress;
00215 KBookmarkOwner *m_pOwner;
00216 QWidget *m_parentMenu;
00217 };
00218
00219 #endif