diff options
Diffstat (limited to 'quanta/project/uploadprofiles.h')
-rw-r--r-- | quanta/project/uploadprofiles.h | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/quanta/project/uploadprofiles.h b/quanta/project/uploadprofiles.h new file mode 100644 index 00000000..20d77b80 --- /dev/null +++ b/quanta/project/uploadprofiles.h @@ -0,0 +1,108 @@ +// +// C++ Interface: UploadProfiles +// +// Description: +// +// +// Author: Jens Herden <jens@kdewebdev.org>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +#ifndef UPLOADPROFILES_H +#define UPLOADPROFILES_H + +// QT includes +#include <qmap.h> +#include <qdom.h> +#include <qguardedptr.h> + +// KDE includes +#include <kurl.h> + + +class QObject; + +/** + @short The internal representation of upload profiles. + +*/ + + +struct UploadProfile +{ + QString name; ///< name of profile + QDomElement domElement; ///< domtree element of this profile + QGuardedPtr<QWidget> treeview; ///< treeview for this url +}; + +/** a map for the upload profiles */ +typedef QMap<QString, UploadProfile> UploadProfileMap; + + +class UploadProfiles : public UploadProfileMap +{ +public: + /** + * since this class is a singleton you must use this function to access it + */ + static UploadProfiles* const ref() + { + static UploadProfiles *m_ref; + if (!m_ref) m_ref = new UploadProfiles(); + return m_ref; + } + + ~UploadProfiles(); + + /** + reads the available profiles from the tree and fills the map + + @param the dom document to parse + */ + void readFromXML(const QDomDocument &dom); + + /** + removes a profile from the map and the dom tree + + @param the profile to remove + + @return true if profile was found and removed + */ + bool removeFromMapAndXML(const QString &name); + + /** + clears the map and removes all treeviews + */ + void clear(); + +private: + /** The constructor is privat because we use singleton pattern. + * If you need the class use UploadProfiles::ref() for + * construction and reference + */ + UploadProfiles(); + + /** + creates a treeview for a profile and adds it to the right toolviews + + @param profile the profile + + @return the pointer to the treeview + */ + QWidget * createTreeview(const UploadProfile &profile); + + /** + creates a KURL from a QDomElement + + @param e a QDomElement where the path is saved + + @return KURL of the location + */ + KURL url(const QDomElement &e); + + QDomNode m_profilesNode; ///< under this node the profiles are saved in the dom tree +}; + +#endif |