diff options
Diffstat (limited to 'smb4k/core/smb4kbookmarkhandler.h')
-rw-r--r-- | smb4k/core/smb4kbookmarkhandler.h | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/smb4k/core/smb4kbookmarkhandler.h b/smb4k/core/smb4kbookmarkhandler.h new file mode 100644 index 0000000..56e7302 --- /dev/null +++ b/smb4k/core/smb4kbookmarkhandler.h @@ -0,0 +1,162 @@ +/*************************************************************************** + smb4kbookmarkhandler - This class handles the bookmarks. + ------------------- + begin : Fr Jan 9 2004 + copyright : (C) 2004 by Alexander Reinholdt + email : dustpuppy@mail.berlios.de + ***************************************************************************/ + +/*************************************************************************** + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program 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 * + * General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef SMB4KBOOKMARKHANDLER_H +#define SMB4KBOOKMARKHANDLER_H + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +// Qt includes +#include <qobject.h> +#include <qvaluelist.h> + +// forward declarations +class Smb4KHostItem; +class Smb4KBookmark; + + +/** + * This class belongs the to core classes of Smb4K and manages the + * bookmarks. + * + * @author Alexander Reinholdt <dustpuppy@mail.berlios.de> + */ + +class Smb4KBookmarkHandler : public QObject +{ + Q_OBJECT + + public: + /** + * The constructor. + * + * @param hosts A list of Smb4KHostItem items. This should be used + * to give the bookmark handler the list of known hosts, + * so it is able to update the bookmarks if necessary. + * In case a NULL pointer is passed, the bookmarks won't + * be updated. + * + * @param parent The parent of this object + * + * @param name This object's name + */ + Smb4KBookmarkHandler( QValueList<Smb4KHostItem *> *hosts = 0, + QObject *parent = 0, + const char *name = 0 ); + + /** + * The destructor. + */ + ~Smb4KBookmarkHandler(); + + /** + * This function writes a bookmark to the bookmark file. + * + * NOTE: This function is more or less a wrapper around the + * writeBookmarList() function. + * + * @param bookmark A bookmark that is to be written to + * the bookmark file + */ + void addBookmark( Smb4KBookmark *bookmark ); + + /** + * This function writes a new list of bookmarks. The old list will be + * deleted. It should be used, if you manipulated the list of bookmarks + * i. e. by a bookmark editor. When this function finishes, the + * bookmarksUpdated() signal will be emitted. + * + * @param list The (new) list of bookmarks that is to be written + * to the bookmark file + */ + void writeBookmarkList( const QValueList<Smb4KBookmark *> &list ); + + /** + * Get the list of bookmarks. + * + * @returns The current list of bookmarks stored in the + * bookmark file. + */ + const QValueList<Smb4KBookmark *> &getBookmarks(); + + /** + * This function searches for a bookmark using its name (//HOST/SHARE) and + * returns a pointer to it if it is present or NULL. + * + * @param bookmark The bookmark that is searched. The string you enter + * must consist of the host and the share: //HOST/SHARE. + * + * @returns The bookmark object that was searched for or NULL if it + * wasn't found. + */ + Smb4KBookmark *findBookmarkByName( const QString &bookmark ); + + /** + * This function searches for a bookmark using its label and returns a pointer + * to it if it is present or NULL. + * + * @param label The label that is searched. + * + * @returns The bookmark object that was searched for or NULL if it + * wasn't found. + */ + Smb4KBookmark *findBookmarkByLabel( const QString &label ); + + signals: + /** + * Signal emitted when the list of bookmarks has been updated. + */ + void bookmarksUpdated(); + + private: + /** + * The list of bookmarks. + */ + QValueList<Smb4KBookmark *> m_bookmarks; + + /** + * This function loads the list of bookmarks from the bookmarks file. + * When it finishes, the bookmarksUpdated() signal is emitted. So, if you + * want to access the list of bookmarks immediately after they were read, + * connect a slot to that signal. + */ + void loadBookmarks(); + + /** + * This lis is a pointer to a global list of all known hosts. It + * is used to update the bookmarks. + */ + QValueList<Smb4KHostItem *> *m_hosts; + + /** + * This function updates the data of the bookmarks, i.e. is searches for + * the host provided by m_hosts and sets the appropriate data, if + * necessary. + */ + void update(); +}; +#endif |