/*************************************************************************** smb4kpreviewitem - A container for previews of a remote share ------------------- begin : Mo Mai 28 2007 copyright : (C) 2007 by Alexander Reinholdt email : dustpuppy@users.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 SMB4KPREVIEWITEM_H #define SMB4KPREVIEWITEM_H #ifdef HAVE_CONFIG_H #include #endif // TQt includes #include #include #include #include // application specific includes #include "smb4knetworkitems.h" typedef TQPair ContentsItem; /** * This class provides a container for the preview of the contents of a remote * SMB share. * * @author Alexander Reinholdt */ class KDE_EXPORT Smb4KPreviewItem { public: /** * The default constructor. * * @param item The share for that a preview should be collected. * * @param ip The IP address of the host where the share * is located. * * @param path The path for that the preview should be collected. */ Smb4KPreviewItem( Smb4KShareItem *item, const TQString &ip = TQString(), const TQString &path = TQString() ); /** * The empty constructor. */ Smb4KPreviewItem() {} /** * The destructor. */ ~Smb4KPreviewItem(); /** * Returns the workgroup where the host is located */ const TQString &workgroup() const { return m_workgroup; } /** * Return the name of the host where the share is located. */ const TQString &host() const { return m_host; } /** * Return the name of the share that is to be previewed. */ const TQString &share() const { return m_share; } /** * With this function you can set the share name if this item * represents a homes share. In all other cases it will do just * nothing. * * @param share The new share name */ void setShare( const TQString &share ); /** * Return the path that is to be previewed. */ const TQString &path() const { return m_path; } /** * Returns the IP address of the host where the share * is located. */ const TQString &ip() const { return m_ip; } /** * Set the IP address of the host. * * @param ip The IP address of the host. */ void setIP( const TQString &ip ); /** * Set the path for which the preview. * * @param path The path * * @note As soon as this function is used, the list of files and directories * will be cleared. */ void setPath( const TQString &path ); /** * Returns the current location in the form //HOST/SHARE/PATH. * It can be used for displaying in a preview dialog or for checks. * * @returns The current location */ const TQString &location() const { return m_location; } /** * This enumeration is used for the contents. It determines if * an item is a file, a hidden file, a directory, or a hidden * directory. */ enum Contents { File, HiddenFile, Directory, HiddenDirectory }; /** * Returns the contents of the location. * * @returns a map of (hidden) files and (hidden) directories. */ const TQValueList &contents() const { return m_contents; } /** * Add a file or directory to the contents. * * @param item A ContentsItem object. This is a TQPair * with the integer being a value from the Contents * enumeration and the string being the full path of * the file or directory. * * @see Smb4KPreviewItem::setPath() or Smb4KPreviewItem::clearContents() for how * the list of files and directories is cleared. */ void addContents( const ContentsItem &item ); /** * Clears the contents. */ void clearContents(); private: /** * The workgroup of the host */ TQString m_workgroup; /** * The host's name */ TQString m_host; /** * The share name */ TQString m_share; /** * The IP address of the host */ TQString m_ip; /** * The path that has to be previewed. */ TQString m_path; /** * The current location */ TQString m_location; /** * This map stores the contents of the current * location. */ TQValueList m_contents; /** * This function checks if the IP address is valid, i.e. the * IP address is either IP v4 or IP v6. It returns either TRUE * or FALSE. * * @param ip The IP address that's going to be checked. * * @returns TRUE if the IP address is valid and FALSE otherwise. */ bool ipIsValid( const TQString &ip ); }; #endif