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.
konversation/konversation/src/viewcontainer.h

231 lines
6.6 KiB

/*
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.
*/
/*
Copyright (C) 2006-2008 Eike Hein <hein@kde.org>
*/
#ifndef VIEWCONTAINER_H
#define VIEWCONTAINER_H
#include "konversationmainwindow.h"
#include "common.h"
#include "server.h"
#include <tqobject.h>
#include <tqguardedptr.h>
class TQSplitter;
class KTabWidget;
class TDEActionCollection;
class KonversationMainWindow;
class ViewTree;
class ChatWindow;
class Server;
class Images;
class UrlCatcher;
class DccTransferPanel;
class NicksOnline;
class QueueTuner;
namespace Konversation
{
class InsertCharDialog;
class ServerGroupSettings;
}
class ViewContainer : public TQObject
{
Q_OBJECT
public:
explicit ViewContainer(KonversationMainWindow* window);
~ViewContainer();
TQSplitter* getWidget() { return m_viewTreeSplitter; }
KonversationMainWindow* getWindow() { return m_window; }
TDEActionCollection* actionCollection() { return m_window->actionCollection(); }
TQGuardedPtr<ChatWindow> getFrontView() { return m_frontView; }
Server* getFrontServer() { return m_frontServer; }
void prepareShutdown();
TQString currentViewTitle();
TQString currentViewURL(bool passNetwork);
void appendToFrontmost(const TQString& type,const TQString& message,ChatWindow* serverView,
bool parseURL = true);
void showQueueTuner(bool);
int getViewIndex(TQWidget* widget);
public slots:
void updateAppearance();
void saveSplitterSizes();
void setViewTreeShown(bool show);
void syncTabBarToTree();
void updateViews(const Konversation::ServerGroupSettings* serverGroup = 0);
void updateViewIcons();
void setViewNotification(ChatWindow* widget, const Konversation::TabNotifyType& type);
void unsetViewNotification(ChatWindow* view);
void toggleViewNotifications();
void toggleAutoJoin();
void switchView(TQWidget* newView);
void showView(ChatWindow* view);
void goToView(int page);
void showNextView();
void showPreviousView();
void moveViewLeft();
void moveViewRight();
void closeView(TQWidget* view);
void closeView(ChatWindow* view);
void closeViewMiddleClick(TQWidget* view);
void closeCurrentView();
void cleanupAfterClose(ChatWindow* view);
void changeViewCharset(int index);
void updateViewEncoding(ChatWindow* view);
void showViewContextMenu(TQWidget* tab, const TQPoint& pos);
void clearView();
void clearAllViews();
void findText();
void findNextText();
void findPrevText();
void insertCharacter();
void insertChar(const TQChar& chr);
void insertIRCColor();
void clearViewLines();
void insertRememberLine();
void cancelRememberLine();
void insertMarkerLine();
void insertRememberLines(Server* server);
void openLogFile();
void openLogFile(const TQString& caption, const TQString& file);
void addKonsolePanel();
void addUrlCatcher();
void closeUrlCatcher();
void toggleDccPanel();
void addDccPanel();
void closeDccPanel();
void deleteDccPanel();
DccTransferPanel* getDccPanel();
void addDccChat(const TQString& myNick,const TQString& nick,const TQStringList& arguments,bool listen);
StatusPanel* addStatusView(Server* server);
RawLog* addRawLog(Server* server);
void disconnectFrontServer();
void reconnectFrontServer();
void showJoinChannelDialog();
void connectionStateChanged(Server* server, Konversation::ConnectionState state);
void channelJoined(Channel* channel);
Channel* addChannel(Server* server, const TQString& name);
void rejoinChannel();
void openChannelSettings();
void toggleChannelNicklists();
Query* addQuery(Server* server,const NickInfoPtr & name, bool weinitiated=true);
void updateQueryChrome(ChatWindow* view, const TQString& name);
void closeQueries();
ChannelListPanel* addChannelListPanel(Server* server);
void openChannelList(const TQString& filter = TQString(), bool getList = false);
void openNicksOnlinePanel();
void closeNicksOnlinePanel();
void showNextActiveView();
signals:
void viewChanged(ChatWindow* view);
void removeView(ChatWindow* view);
void setWindowCaption(const TQString& caption);
void updateChannelAppearance();
void contextMenuClosed();
void resetStatusBar();
void setStatusBarTempText(const TQString& text);
void clearStatusBarTempText();
void setStatusBarInfoLabel(const TQString& text);
void clearStatusBarInfoLabel();
void setStatusBarLagLabelShown(bool shown);
void updateStatusBarLagLabel(Server* server, int msec);
void resetStatusBarLagLabel();
void setStatusBarLagLabelTooLongLag(Server* server, int msec);
void updateStatusBarSSLLabel(Server* server);
void removeStatusBarSSLLabel();
void autoJoinToggled(const Konversation::ServerGroupSettings*);
void frontServerChanging(Server *);
private:
void setupTabWidget();
void setupViewTree();
void removeViewTree();
void updateTabWidgetAppearance();
void addView(ChatWindow* view, const TQString& label, bool weinitiated=true);
void updateViewActions(int index);
void updateSwitchViewAction();
void updateFrontView();
void setFrontServer(Server *);
void initializeSplitterSizes();
bool m_saveSplitterSizesLock;
KonversationMainWindow* m_window;
TQSplitter* m_viewTreeSplitter;
KTabWidget* m_tabWidget;
ViewTree* m_viewTree;
TQVBox *m_vbox;
QueueTuner *m_queueTuner;
Images* images;
TQGuardedPtr<Server> m_frontServer;
TQGuardedPtr<Server> m_contextServer;
TQGuardedPtr<ChatWindow> m_frontView;
TQGuardedPtr<ChatWindow> m_searchView;
UrlCatcher* m_urlCatcherPanel;
NicksOnline* m_nicksOnlinePanel;
DccTransferPanel* m_dccPanel;
bool m_dccPanelOpen;
Konversation::InsertCharDialog* m_insertCharDialog;
int m_popupViewIndex;
int m_queryViewCount;
TQValueList<ChatWindow*> m_activeViewOrderList;
};
#endif