You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
smb4k/smb4k/smb4k.h

231 lines
5.9 KiB

/***************************************************************************
smb4k.h - The main class of Smb4K.
-------------------
begin : Sam M<> 1 14:57:21 CET 2003
copyright : (C) 2003-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 SMB4K_H
#define SMB4K_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
// KDE includes
#include <kaction.h>
#include <kparts/dockmainwindow.h>
// Forward declarations
class Smb4KSystemTray;
/**
* This is the application shell of Smb4K.
*
* @author Alexander Reinholdt <dustpuppy@users.berlios.de>
*/
class Smb4KApp : public KParts::DockMainWindow
{
Q_OBJECT
TQ_OBJECT
public:
/**
* The constructor.
*
* @param parent The parent of this widget
*
* @param name The name of this widget
*/
Smb4KApp( TQWidget *parent = 0, const char *name = 0 );
/**
* The destructor.
*/
~Smb4KApp();
protected:
/**
* Reimplemented from KMainWindow.
*/
bool queryExit();
/**
* Reimplemented from KMainWindow.
*/
bool queryClose();
/**
* Reimplemented from TQObject
*/
void timerEvent( TQTimerEvent *e );
protected slots:
/**
* Quit the application.
*/
void slotQuit();
/**
* Replace the current shares view.
*/
void slotChangeSharesView();
/**
* Open the configuration dialog. This slot is connected to the "Configure Smb4K..."
* action.
*/
void slotConfigDialog();
/**
* This slot is invoked when the config dialog is closed and the settings have
* been changed. Emits the reloadSettings() signal and adjusts the system tray
* widget to the new settings afterwards.
*/
void slotSettingsChanged();
/**
* Open the bookmark editor. This slot is connected to the "Edit Bookmarks"
* action.
*/
void slotBookmarkEditor();
/**
* Show a message to the user what currently is done by the application. This
* slot is connected to the Smb4KCore::runStateChanged() signal.
*/
void slotRunStateChanged();
/**
* This slot is invoked when the bookmarks have been updated. It inserts the
* bookmarks into the menu. Additionally, it enables the "Edit Bookmarks"
* action if there are bookmarks and else disables it.
*/
void slotSetupBookmarksMenu();
/**
* This slot is invoked when/if a bookmark is activated.
*/
void slotBookmarkActivated();
/**
* This slot is activated when the list of mounted shares has been updated.
* It is connected to the Smb4KMounter::updated() signal.
*/
void slotShareListUpdated();
/**
* This slot is activated when an action is highlighted and lets m_action
* point to it. No validity checks are performed.
*
* @param action The action that has been highlighted
*/
void slotActionHighlighted( KAction *action );
/**
* This slot sets the keyboard focus to the network browser and shows it
* if it is not already shown.
*/
void slotJumpToNetworkBrowser();
/**
* This slot sets the keyboard focus to the search dialog and shows it
* if it is not already shown.
*/
void slotJumpToSearchDialog();
/**
* This slot sets the keyboard focus to the shares view. Since it is the
* main widget, this slot does not care about it being hidden.
*/
void slotJumpToSharesView();
private:
/**
* Set up actions.
*/
void setupActions();
/**
* Set up the view.
*/
void setupView();
/**
* Set up the status bar
*/
void setupStatusBar();
/**
* Set up the system tray
*/
void setupSystemTray();
/**
* Change the shares view.
*/
void changeSharesView();
/**
* The shares view part
*/
KParts::Part *m_shares_part;
/**
* The browser part
*/
KParts::Part *m_browser_part;
/**
* The search dialog part
*/
KParts::Part *m_search_part;
/**
* The system tray icon of this application
*/
Smb4KSystemTray *m_system_tray;
/**
* Enumeration for the status bar
*/
enum StatusBarItem{ Message = 0, Progress = 1, Version = 2 };
/**
* The currently highlighted KAction.
*/
KAction *m_action;
/**
* This holds the config entry of the current shares
* view. This is used to avoid unnecessary loading.
*/
int m_current_shares_view;
/**
* The timer id
*/
int m_timer_id;
};
#endif