diff options
Diffstat (limited to 'smb4k/browser/smb4knetworkbrowser.h')
-rw-r--r-- | smb4k/browser/smb4knetworkbrowser.h | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/smb4k/browser/smb4knetworkbrowser.h b/smb4k/browser/smb4knetworkbrowser.h new file mode 100644 index 0000000..ade9e64 --- /dev/null +++ b/smb4k/browser/smb4knetworkbrowser.h @@ -0,0 +1,153 @@ +/*************************************************************************** + smb4knetworkbrowser - The network browser widget of Smb4K. + ------------------- + begin : Mo Jan 8 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 SMB4KNETWORKBROWSER_H +#define SMB4KNETWORKBROWSER_H + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +// KDE includes +#include <klistview.h> + +// forward declarations +class Smb4KNetworkBrowserItem; +class Smb4KNetworkBrowserToolTip; + +class Smb4KNetworkBrowser : public KListView +{ + Q_OBJECT + + public: + /** + * The constructor + * + * @param parent The parent widget + * + * @param name The widget name + */ + Smb4KNetworkBrowser( QWidget *parent = 0, const char *name = 0 ); + + /** + * The destructor + */ + ~Smb4KNetworkBrowser(); + + /** + * Enumeration for the columns in the list view. + */ + enum Columns{ Network = 0, Type = 1, IP = 2, Comment = 3 }; + + /** + * Returns the global position of the mouse with respect + * to the viewport. + * + * @returns the position of the mouse. + */ + const QPoint &mousePosition() { return m_pos; } + + /** + * Returns a pointer to the current tool tip or NULL, if there + * is no tool tip at the moment. Please note, that the tool tip + * is generated 2 sec before it is shown. + * + * @returns a pointer to the current tool tip. + */ + Smb4KNetworkBrowserToolTip *tooltip() { return m_tooltip; } + + /** + * Block the showing of tool tips. If @p block is set to TRUE, the + * current tool tip gets deleted (if there is one) and no tool tip + * will be shown until @p block is reset to FALSE. + * + * @param block Set this parameter to TRUE to block the showing + * of tool tips. + */ + void blockToolTips( bool block ); + + signals: + /** + * This signal is emitted when the tool tip is about to be shown. + * + * @param item The item for which the tool tip should be shown. + */ + void aboutToShowToolTip( Smb4KNetworkBrowserItem *item ); + + /** + * This signal is emitted when the tool tip has been closed. + */ + void closedToolTip(); + + protected: + /** + * Reimplemented from QListView. This slot keeps track of the + * mouse position and handles the tool tips. + * + * @param e The mouse event + */ + void contentsMouseMoveEvent( QMouseEvent *e ); + + protected slots: + /** + * This slot is called whenever a QListViewItem is expanded or + * collapsed. At the moment it is only used to select the item. + * + * @param item The list view item that has been + * expanded/collapsed. + */ + void slotItemExpandedCollapsed( QListViewItem *item ); + + /** + * This slot is called when the user executed an item. It is used + * to open the item if it is expandable. + * + * @param item The item that has been executed. + */ + void slotItemExecuted( QListViewItem *item ); + + /** + * This slot shows the tool tip. + */ + void slotShowToolTip(); + + private: + /** + * The global position of the mouse with respect to the widget. + */ + QPoint m_pos; + + /** + * The tool tip for the network browser + */ + Smb4KNetworkBrowserToolTip *m_tooltip; + + /** + * Block tool tips + */ + bool m_block_tooltip; +}; + +#endif |