knewmenu.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __knewmenu_h
00021 #define __knewmenu_h
00022
00023 #include <qintdict.h>
00024 #include <qstringlist.h>
00025
00026 #include <kaction.h>
00027 #include <kdialogbase.h>
00028 #include <kurl.h>
00029
00030 namespace KIO { class Job; }
00031
00032 class KDirWatch;
00033 class KLineEdit;
00034 class KURLRequester;
00035 class QPopupMenu;
00036
00051 class KNewMenu : public KActionMenu
00052 {
00053 Q_OBJECT
00054 public:
00055
00059 KNewMenu( KActionCollection * _collec, const char *name=0L );
00060 KNewMenu( KActionCollection * _collec, QWidget *parentWidget, const char *name=0L );
00061 virtual ~KNewMenu();
00062
00067 void setPopupFiles(KURL::List & _files) {
00068 popupFiles = _files;
00069 }
00070 void setPopupFiles(const KURL & _file) {
00071 popupFiles.clear();
00072 popupFiles.append( _file );
00073 }
00074
00075 public slots:
00080 void slotCheckUpToDate( );
00081
00082 protected slots:
00086 void slotNewDir();
00087
00091 void slotNewFile();
00092
00096 void slotFillTemplates();
00097
00098 void slotResult( KIO::Job * );
00099
00100 void slotRenamed( KIO::Job *, const KURL&, const KURL& );
00101
00102 private:
00103
00107 void fillMenu();
00108
00113 void parseFiles();
00114
00118 void makeMenus();
00119
00127 enum { LINKTOTEMPLATE = 1, TEMPLATE, SEPARATOR };
00128
00129 struct Entry {
00130 QString text;
00131 QString filePath;
00132 QString templatePath;
00133 QString icon;
00134 int entryType;
00135 QString comment;
00136 };
00137
00138
00143 static QValueList<Entry> * s_templatesList;
00144
00145 class KNewMenuPrivate;
00146 KNewMenuPrivate* d;
00147
00153 static int s_templatesVersion;
00154
00159 static bool s_filesParsed;
00160
00161 int menuItemsVersion;
00162
00167 KURL::List popupFiles;
00168
00172 bool m_isURLDesktopFile;
00173 QString m_linkURL;
00174
00175 static KDirWatch * s_pDirWatch;
00176 };
00177
00184 class KURLDesktopFileDlg : public KDialogBase
00185 {
00186 Q_OBJECT
00187 public:
00188 KURLDesktopFileDlg( const QString& textFileName, const QString& textUrl );
00189 KURLDesktopFileDlg( const QString& textFileName, const QString& textUrl, QWidget *parent );
00190 virtual ~KURLDesktopFileDlg() {}
00191
00195 QString fileName() const;
00199 QString url() const;
00200
00201 protected slots:
00202 void slotClear();
00203 void slotNameTextChanged( const QString& );
00204 void slotURLTextChanged( const QString& );
00205 private:
00206 void initDialog( const QString& textFileName, const QString& defaultName, const QString& textUrl, const QString& defaultUrl );
00207
00211 KLineEdit *m_leFileName;
00215 KURLRequester *m_urlRequester;
00216
00220 bool m_fileNameEdited;
00221 };
00222
00223 #endif
This file is part of the documentation for libkonq Library Version 3.2.2.