diff options
| author | 2012-01-01 16:43:23 +0000 | |
|---|---|---|
| committer | 2012-01-01 16:43:23 +0000 | |
| commit | b538ec203da0ad5f6ea00dc4340dac7af0169b90 (patch) | |
| tree | d6233eb4e8e2453aa9d3834135b5327fc66a3aee | |
| parent | refix #537 (diff) | |
| download | KVIrc-b538ec203da0ad5f6ea00dc4340dac7af0169b90.tar.gz KVIrc-b538ec203da0ad5f6ea00dc4340dac7af0169b90.tar.bz2 KVIrc-b538ec203da0ad5f6ea00dc4340dac7af0169b90.zip | |
- Happy new year!
- Some parts of kvirc still refered to KviMainWindow as frame(), m_pFrm, etc.. => fixed
- Some parts of kvirc were still coded as if more than one KviMainWindows could exists => fixed, this involved changing KviWindows's ctor and removing KviWindow::frame(), thus the big change
- The trayicon module still called itself (and was called) dockextension, and was built to support more than one KviMainWindows => renamed and fixed
- Modified KviWindow::hasAttention so that is can be used everywhere instead of mixing different ways to check if a notificationm should popup
- should fix #1221 and hopefully introduce little to no bugs
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@6010 17fca916-40b9-46aa-a4ea-0a15b648b75c
110 files changed, 431 insertions, 491 deletions
diff --git a/src/kvilib/config/kvi_sourcesdate.h b/src/kvilib/config/kvi_sourcesdate.h index df19f2136..0ab1ba740 100644 --- a/src/kvilib/config/kvi_sourcesdate.h +++ b/src/kvilib/config/kvi_sourcesdate.h @@ -36,8 +36,8 @@ * \def KVI_SOURCES_DATE Defines the sources date * \def KVI_SOURCES_DATE_NUMERIC Defines the sources date */ -#define KVI_SOURCES_DATE "20110830" -#define KVI_SOURCES_DATE_NUMERIC 0x20110830 +#define KVI_SOURCES_DATE "20120101" +#define KVI_SOURCES_DATE_NUMERIC 0x20120101 /** * \brief This is the date of the sources before that we should force a setup diff --git a/src/kvirc/kernel/KviApplication.cpp b/src/kvirc/kernel/KviApplication.cpp index 6d3fbbbed..19122daf8 100644 --- a/src/kvirc/kernel/KviApplication.cpp +++ b/src/kvirc/kernel/KviApplication.cpp @@ -1237,7 +1237,7 @@ void KviApplication::fileDownloadTerminated(bool bSuccess, const QString & szRem { if(!g_pActiveWindow) return; - if(g_pActiveWindow->hasAttention()) + if(g_pActiveWindow->hasAttention(KviWindow::MainWindowIsVisible)) return; QString szMsg; int iIconId; diff --git a/src/kvirc/kernel/KviIrcConnection.cpp b/src/kvirc/kernel/KviIrcConnection.cpp index 922659476..5dcf426b5 100644 --- a/src/kvirc/kernel/KviIrcConnection.cpp +++ b/src/kvirc/kernel/KviIrcConnection.cpp @@ -289,7 +289,7 @@ void KviIrcConnection::serverInfoReceived(const QString & szServerName, const QS serverInfo()->setSupportedUserModes(szUserModes); serverInfo()->setSupportedChannelModes(szChanModes); m_pConsole->updateCaption(); // for server name - m_pConsole->frame()->childConnectionServerInfoChange(this); + g_pMainWindow->childConnectionServerInfoChange(this); } const QString & KviIrcConnection::currentNetworkName() @@ -692,8 +692,8 @@ KviChannelWindow * KviIrcConnection::createChannel(const QString & szName) c->setFocus(); } } else { - c = new KviChannelWindow(m_pConsole->frame(),m_pConsole,szName); - m_pConsole->frame()->addWindow(c,!KVI_OPTION_BOOL(KviOption_boolCreateMinimizedChannels)); + c = new KviChannelWindow(m_pConsole, szName); + g_pMainWindow->addWindow(c,!KVI_OPTION_BOOL(KviOption_boolCreateMinimizedChannels)); if(KVI_OPTION_BOOL(KviOption_boolPasteLastLogOnChannelJoin)) c->pasteLastLog(); @@ -738,8 +738,8 @@ KviQueryWindow * KviIrcConnection::createQuery(const QString & szNick,CreateQuer q->setFocus(); } } else { - q = new KviQueryWindow(m_pConsole->frame(),m_pConsole,szNick); - m_pConsole->frame()->addWindow(q,bShowIt); + q = new KviQueryWindow(m_pConsole, szNick); + g_pMainWindow->addWindow(q,bShowIt); } return q; } @@ -1038,7 +1038,7 @@ void KviIrcConnection::changeAwayState(bool bAway) else m_pUserInfo->setBack(); m_pConsole->updateCaption(); - m_pConsole->frame()->childConnectionAwayStateChange(this); + g_pMainWindow->childConnectionAwayStateChange(this); emit awayStateChanged(); } @@ -1684,7 +1684,7 @@ void KviIrcConnection::nickChange(const QString & szNewNick) m_pConsole->notifyListView()->nickChange(m_pUserInfo->nickName(),szNewNick); m_pUserInfo->setNickName(szNewNick); m_pConsole->updateCaption(); - m_pConsole->frame()->childConnectionNickNameChange(this); + g_pMainWindow->childConnectionNickNameChange(this); emit nickNameChanged(); g_pApp->addRecentNickname(szNewNick); } @@ -1702,7 +1702,7 @@ bool KviIrcConnection::changeUserMode(char cMode, bool bSet) m_pUserInfo->removeUserMode(cMode); } m_pConsole->updateCaption(); - console()->frame()->childConnectionUserModeChange(this); + g_pMainWindow->childConnectionUserModeChange(this); emit userModeChanged(); return true; } @@ -1786,7 +1786,7 @@ void KviIrcConnection::loginComplete(const QString & szNickName) restartLagMeter(); if(KVI_OPTION_BOOL(KviOption_boolShowChannelsJoinOnIrc)) - m_pConsole->frame()->executeInternalCommand(KVI_INTERNALCOMMAND_CHANNELSJOIN_OPEN); + g_pMainWindow->executeInternalCommand(KVI_INTERNALCOMMAND_CHANNELSJOIN_OPEN); // join saved channels diff --git a/src/kvirc/kernel/KviIrcConnectionTargetResolver.cpp b/src/kvirc/kernel/KviIrcConnectionTargetResolver.cpp index 5227b085e..65ea4bfdc 100644 --- a/src/kvirc/kernel/KviIrcConnectionTargetResolver.cpp +++ b/src/kvirc/kernel/KviIrcConnectionTargetResolver.cpp @@ -457,7 +457,7 @@ bool KviIrcConnectionTargetResolver::validateLocalAddress(const QString &szAddre void KviIrcConnectionTargetResolver::haveServerIp() { if(KVI_OPTION_BOOL(KviOption_boolUseIdentService) && !KVI_OPTION_BOOL(KviOption_boolUseIdentServiceOnlyOnConnect)) - m_pConsole->frame()->executeInternalCommand(KVI_INTERNALCOMMAND_IDENT_START); + g_pMainWindow->executeInternalCommand(KVI_INTERNALCOMMAND_IDENT_START); QString bindAddress; diff --git a/src/kvirc/kernel/KviIrcContext.cpp b/src/kvirc/kernel/KviIrcContext.cpp index f68fc3988..a362c931a 100644 --- a/src/kvirc/kernel/KviIrcContext.cpp +++ b/src/kvirc/kernel/KviIrcContext.cpp @@ -78,8 +78,6 @@ KviIrcContext::KviIrcContext(KviConsoleWindow * pConsole) m_pConnection = 0; - m_pFrame = m_pConsole->frame(); - m_pDeadChannels = 0; m_pDeadQueries = 0; m_pContextWindows = 0; @@ -156,7 +154,7 @@ void KviIrcContext::closeAllDeadChannels() KviChannelWindow * c = m_pDeadChannels->first(); if(c) { - m_pFrame->closeWindow(c); + g_pMainWindow->closeWindow(c); } else { // ops.... delete m_pDeadChannels; @@ -172,7 +170,7 @@ void KviIrcContext::closeAllDeadQueries() KviQueryWindow * q = m_pDeadQueries->first(); if(q) { - m_pFrame->closeWindow(q); + g_pMainWindow->closeWindow(q); } else { // ops.... delete m_pDeadQueries; @@ -188,7 +186,7 @@ void KviIrcContext::closeAllContextWindows() KviWindow * w = m_pContextWindows->first(); if(w) { - m_pFrame->closeWindow(w); + g_pMainWindow->closeWindow(w); } else { // ops... delete m_pContextWindows; @@ -344,7 +342,7 @@ void KviIrcContext::setState(State eState) if(m_eState == eState)return; m_eState = eState; - m_pFrame->childContextStateChange(this); + g_pMainWindow->childContextStateChange(this); emit stateChanged(); diff --git a/src/kvirc/kernel/KviIrcContext.h b/src/kvirc/kernel/KviIrcContext.h index cbd73b4df..85c580064 100644 --- a/src/kvirc/kernel/KviIrcContext.h +++ b/src/kvirc/kernel/KviIrcContext.h @@ -83,9 +83,6 @@ protected: State m_eState; // this context state - // helper pointers - KviMainWindow * m_pFrame; // the owning frame, shallow, never null - // permanent links and list window KviExternalServerDataParser * m_pLinksWindow; KviExternalServerDataParser * m_pListWindow; @@ -109,8 +106,6 @@ public: inline unsigned int id(){ return m_uId; }; // never null and always the same! inline KviConsoleWindow * console(){ return m_pConsole; }; - // never null and always the same - inline KviMainWindow * frame(){ return m_pFrame; }; // may be null and may change! inline KviIrcConnection * connection(){ return m_pConnection; }; // state diff --git a/src/kvirc/kernel/KviNotifyList.cpp b/src/kvirc/kernel/KviNotifyList.cpp index ab782252b..561ccb331 100644 --- a/src/kvirc/kernel/KviNotifyList.cpp +++ b/src/kvirc/kernel/KviNotifyList.cpp @@ -203,7 +203,7 @@ void KviNotifyListManager::notifyOnLine(const QString & szNick, const QString & pOut->outputNoFmt(KVI_OUT_NOTIFYONLINE,szMsg); - if(!(pOut->hasAttention())) + if(!(pOut->hasAttention(KviWindow::MainWindowIsVisible))) { if(KVI_OPTION_BOOL(KviOption_boolFlashWindowOnNotifyOnLine)) pOut->demandAttention(); diff --git a/src/kvirc/kvs/KviKvsCoreFunctions_gl.cpp b/src/kvirc/kvs/KviKvsCoreFunctions_gl.cpp index b1eba6737..5a7713946 100644 --- a/src/kvirc/kvs/KviKvsCoreFunctions_gl.cpp +++ b/src/kvirc/kvs/KviKvsCoreFunctions_gl.cpp @@ -470,6 +470,8 @@ KVSCF(gender) KVSCF(insideAlias) { + Q_UNUSED(__pParams); + KVSCF_pRetBuffer->setBoolean(KVSCF_pContext->aliasSwitchList()); return true; } diff --git a/src/kvirc/kvs/KviKvsCoreSimpleCommands_gl.cpp b/src/kvirc/kvs/KviKvsCoreSimpleCommands_gl.cpp index e18fdecaf..b78f5a2ad 100644 --- a/src/kvirc/kvs/KviKvsCoreSimpleCommands_gl.cpp +++ b/src/kvirc/kvs/KviKvsCoreSimpleCommands_gl.cpp @@ -305,7 +305,7 @@ namespace KviKvsCoreSimpleCommands KviWindow * pActive = KVSCSC_pWindow->context()->console()->activeWindow(); // Get the list of open windows - KviPointerList<KviWindow> * pList = KVSCSC_pWindow->frame()->windowList(); + KviPointerList<KviWindow> * pList = g_pMainWindow->windowList(); // Scan the windows for(KviWindow * pWnd = pList->first(); pWnd; pWnd = pList->next()) diff --git a/src/kvirc/kvs/KviKvsCoreSimpleCommands_mr.cpp b/src/kvirc/kvs/KviKvsCoreSimpleCommands_mr.cpp index 4203917cb..b10864557 100644 --- a/src/kvirc/kvs/KviKvsCoreSimpleCommands_mr.cpp +++ b/src/kvirc/kvs/KviKvsCoreSimpleCommands_mr.cpp @@ -1147,21 +1147,23 @@ namespace KviKvsCoreSimpleCommands @syntax: raise @short: - Raises a KVIrc frame window + Raises the KVIrc frame window @description: - Raises and activates the current KVIrc frame window....assuming that your window manager supports it.[br] + Raises and activates the KVIrc frame window....assuming that your window manager supports it.[br] */ KVSCSC(raise) { Q_UNUSED(__pSwitches); Q_UNUSED(__pParams); - - if(!KVSCSC_pWindow->frame()->isVisible())KVSCSC_pWindow->frame()->show(); - KVSCSC_pWindow->frame()->raise(); - //KVSCSC_pWindow->frame()->setActiveWindow(); - //KVSCSC_pWindow->frame()->setFocus(); - ((KviTalMainWindow *)KVSCSC_pWindow->frame())->activateWindow(); + Q_UNUSED(__pContext); + + if(!g_pMainWindow->isVisible()) + g_pMainWindow->show(); + g_pMainWindow->raise(); + //g_pMainWindow->setActiveWindow(); + //g_pMainWindow->setFocus(); + g_pMainWindow->activateWindow(); return true; } diff --git a/src/kvirc/kvs/KviKvsCoreSimpleCommands_sz.cpp b/src/kvirc/kvs/KviKvsCoreSimpleCommands_sz.cpp index 818b7cbc9..3f2cf2a46 100644 --- a/src/kvirc/kvs/KviKvsCoreSimpleCommands_sz.cpp +++ b/src/kvirc/kvs/KviKvsCoreSimpleCommands_sz.cpp @@ -227,7 +227,7 @@ namespace KviKvsCoreSimpleCommands KviConsoleWindow * console = 0; if(KVSCSC_pSwitches->find('n',"new-context")) - console = KVSCSC_pWindow->frame()->createNewConsole(false,!KVSCSC_pSwitches->find('m',"minimized")); + console = g_pMainWindow->createNewConsole(false,!KVSCSC_pSwitches->find('m',"minimized")); else { if(KVSCSC_pSwitches->find('u',"unused-context")) { @@ -244,10 +244,10 @@ namespace KviKvsCoreSimpleCommands if(!console) { // yep, have to search - console = KVSCSC_pWindow->frame()->firstNotConnectedConsole(); + console = g_pMainWindow->firstNotConnectedConsole(); if(!console) { - console = KVSCSC_pWindow->frame()->createNewConsole(false,!KVSCSC_pSwitches->find('m',"minimized")); + console = g_pMainWindow->createNewConsole(false,!KVSCSC_pSwitches->find('m',"minimized")); } } } else console = KVSCSC_pWindow->console(); @@ -392,7 +392,7 @@ namespace KviKvsCoreSimpleCommands if(szPopupName.isEmpty()) { - if(!(KVSCSC_pWindow->frame()->mainMenuBar()->removeMenu(szVisibleText))) + if(!(g_pMainWindow->mainMenuBar()->removeMenu(szVisibleText))) { if(!KVSCSC_pSwitches->find('q',"quiet"))KVSCSC_pContext->warning(__tr2qs_ctx("No menu bar item with text '%Q'","kvs"),&szVisibleText); } @@ -411,12 +411,14 @@ namespace KviKvsCoreSimpleCommands KVSCSC_pContext->warning(__tr2qs_ctx("Invalid index specified: ignored","kvs")); } } - KVSCSC_pWindow->frame()->mainMenuBar()->removeMenu(szVisibleText); + g_pMainWindow->mainMenuBar()->removeMenu(szVisibleText); - idx = KVSCSC_pWindow->frame()->mainMenuBar()->getDefaultItemRealIndex(idx); + idx = g_pMainWindow->mainMenuBar()->getDefaultItemRealIndex(idx); - if(p)KVSCSC_pWindow->frame()->mainMenuBar()->addMenu(szVisibleText,p,idx); - else { + if(p) + { + g_pMainWindow->mainMenuBar()->addMenu(szVisibleText,p,idx); + } else { if(!KVSCSC_pSwitches->find('q',"quiet"))KVSCSC_pContext->warning(__tr2qs_ctx("The popup '%Q' is not defined","kvs"),&szPopupName); } diff --git a/src/kvirc/sparser/KviIrcServerParser_ctcp.cpp b/src/kvirc/sparser/KviIrcServerParser_ctcp.cpp index 28952d626..80a9a60e8 100644 --- a/src/kvirc/sparser/KviIrcServerParser_ctcp.cpp +++ b/src/kvirc/sparser/KviIrcServerParser_ctcp.cpp @@ -1466,7 +1466,7 @@ void KviIrcServerParser::parseCtcpRequestAction(KviCtcpMessage *msg) if(type == KVI_OUT_HIGHLIGHT || !bIsChannel) { - if(!pOut->hasAttention()) + if(!pOut->hasAttention(KviWindow::MainWindowIsVisible)) { if(KVI_OPTION_BOOL(KviOption_boolFlashWindowOnHighlightedMessages)) pOut->demandAttention(); diff --git a/src/kvirc/sparser/KviIrcServerParser_literalHandlers.cpp b/src/kvirc/sparser/KviIrcServerParser_literalHandlers.cpp index c5e05893f..57e4d1330 100644 --- a/src/kvirc/sparser/KviIrcServerParser_literalHandlers.cpp +++ b/src/kvirc/sparser/KviIrcServerParser_literalHandlers.cpp @@ -336,7 +336,7 @@ void KviIrcServerParser::parseLiteralPart(KviIrcMessage *msg) // It's me! if(chan->closeOnPart() && !KVI_OPTION_BOOL(KviOption_boolKeepChannelOpenOnPart)) { - chan->frame()->closeWindow(chan); // <-- deleted path + g_pMainWindow->closeWindow(chan); // <-- deleted path } else { chan->part(szNick); // this will trigger the action too chan->setDeadChan(); @@ -591,7 +591,7 @@ void KviIrcServerParser::parseLiteralKick(KviIrcMessage *msg) &szChan,&szNick,&szUser,&szHost,&szKickMsg); } } else { - chan->frame()->closeWindow(chan); // <-- deleted path + g_pMainWindow->closeWindow(chan); // <-- deleted path if(!msg->haltOutput()) { @@ -913,7 +913,7 @@ void KviIrcServerParser::parseLiteralPrivmsg(KviIrcMessage *msg) if(!msg->haltOutput()) { int iFlags = 0; - if(!query->hasAttention()) + if(!query->hasAttention(KviWindow::MainWindowIsVisible)) { if(KVI_OPTION_BOOL(KviOption_boolFlashQueryWindowOnNewMessages)) { @@ -1346,7 +1346,7 @@ output_to_query_window: { int iFlags = 0; - if(!query->hasAttention()) + if(!query->hasAttention(KviWindow::MainWindowIsVisible)) { if(KVI_OPTION_BOOL(KviOption_boolFlashQueryWindowOnNewMessages)) { @@ -1630,7 +1630,7 @@ void KviIrcServerParser::parseLiteralNick(KviIrcMessage *msg) &szNick,&szNewNick); } old->mergeQuery(q); - q->frame()->closeWindow(q); // deleted path + g_pMainWindow->closeWindow(q); // deleted path if(!msg->haltOutput()) old->output(KVI_OUT_NICK,__tr2qs("\r!n\r%Q\r [%Q@\r!h\r%Q\r] is now known as \r!n\r%Q\r"), &szNick,&szUser,&szHost,&szNewNick); diff --git a/src/kvirc/ui/KviChannelWindow.cpp b/src/kvirc/ui/KviChannelWindow.cpp index df8f90477..8a57e2481 100644 --- a/src/kvirc/ui/KviChannelWindow.cpp +++ b/src/kvirc/ui/KviChannelWindow.cpp @@ -82,8 +82,8 @@ // FIXME: #warning "OnChannelFlood event...." -KviChannelWindow::KviChannelWindow(KviMainWindow * lpFrm, KviConsoleWindow * lpConsole, const QString & szName) -: KviWindow(KviWindow::Channel,lpFrm,szName,lpConsole) +KviChannelWindow::KviChannelWindow(KviConsoleWindow * lpConsole, const QString & szName) +: KviWindow(KviWindow::Channel,szName,lpConsole) { // Init some member variables m_pInput = 0; @@ -136,7 +136,7 @@ KviChannelWindow::KviChannelWindow(KviMainWindow * lpFrm, KviConsoleWindow * lpC m_pVertSplitter->setSizePolicy(oPolicy); // With the IRC view over - m_pIrcView = new KviIrcView(m_pVertSplitter,lpFrm,this); + m_pIrcView = new KviIrcView(m_pVertSplitter,this); m_pIrcView->setObjectName(szName); connect(m_pIrcView,SIGNAL(rightClicked()),this,SLOT(textViewRightClicked())); // And the double view (that may be unused) @@ -439,7 +439,7 @@ void KviChannelWindow::showDoubleView(bool bShow) if(!bShow) return; - m_pMessageView = new KviIrcView(m_pVertSplitter,m_pFrm,this); + m_pMessageView = new KviIrcView(m_pVertSplitter,this); m_pVertSplitter->setSizes(m_VertSplitterSizesList); //this is an hack to simulate qt3's ResizeMode = Stretch diff --git a/src/kvirc/ui/KviChannelWindow.h b/src/kvirc/ui/KviChannelWindow.h index 2a7d7a229..9b374eee9 100644 --- a/src/kvirc/ui/KviChannelWindow.h +++ b/src/kvirc/ui/KviChannelWindow.h @@ -145,12 +145,11 @@ public: /** * \brief Constructs the channel object - * \param lpFrm The parent frame object * \param lpConsole The console of the context * \param szName The name of the channel * \return KviChannelWindow */ - KviChannelWindow(KviMainWindow * lpFrm, KviConsoleWindow * lpConsole, const QString & szName); + KviChannelWindow(KviConsoleWindow * lpConsole, const QString & szName); /** * \brief Destroys the channel object diff --git a/src/kvirc/ui/KviConsoleWindow.cpp b/src/kvirc/ui/KviConsoleWindow.cpp index 6cf238e39..3629e72c7 100644 --- a/src/kvirc/ui/KviConsoleWindow.cpp +++ b/src/kvirc/ui/KviConsoleWindow.cpp @@ -91,11 +91,11 @@ extern KVIRC_API KviIrcServerDataBase * g_pServerDataBase; extern KVIRC_API KviProxyDataBase * g_pProxyDataBase; -KviConsoleWindow::KviConsoleWindow(KviMainWindow * lpFrm,int iFlags) +KviConsoleWindow::KviConsoleWindow(int iFlags) #ifdef COMPILE_ON_WINDOWS -: KviWindow(KviWindow::Console,lpFrm,__tr2qs("CONSOLE"),0) +: KviWindow(KviWindow::Console,__tr2qs("CONSOLE"),0) #else -: KviWindow(KviWindow::Console,lpFrm,__tr2qs("CONSOLE"),this) +: KviWindow(KviWindow::Console,__tr2qs("CONSOLE"),this) #endif { m_pConsole = this; @@ -131,7 +131,7 @@ KviConsoleWindow::KviConsoleWindow(KviMainWindow * lpFrm,int iFlags) m_pSplitter->setObjectName("console_splitter"); m_pSplitter->setChildrenCollapsible(false); - m_pIrcView = new KviIrcView(m_pSplitter,lpFrm,this); + m_pIrcView = new KviIrcView(m_pSplitter, this); connect(m_pIrcView,SIGNAL(rightClicked()),this,SLOT(textViewRightClicked())); // FIXME: #warning "If notify list is disabled avoid to show this" @@ -706,7 +706,7 @@ void KviConsoleWindow::outputPrivmsg(KviWindow *wnd, if(type < 0)return; // event stopped the message! if(type == KVI_OUT_HIGHLIGHT) { - if(!wnd->hasAttention()) + if(!wnd->hasAttention(KviWindow::MainWindowIsVisible)) { if(KVI_OPTION_BOOL(KviOption_boolFlashWindowOnHighlightedMessages) && (!(iFlags & NoWindowFlashing))) diff --git a/src/kvirc/ui/KviConsoleWindow.h b/src/kvirc/ui/KviConsoleWindow.h index 7a4ecaff2..013d1293a 100644 --- a/src/kvirc/ui/KviConsoleWindow.h +++ b/src/kvirc/ui/KviConsoleWindow.h @@ -83,7 +83,7 @@ class KVIRC_API KviConsoleWindow : public KviWindow friend class KviIrcContext; Q_OBJECT protected: - KviConsoleWindow(KviMainWindow * lpFrm,int iFlags); + KviConsoleWindow(int iFlags); public: ~KviConsoleWindow(); protected: diff --git a/src/kvirc/ui/KviDebugWindow.cpp b/src/kvirc/ui/KviDebugWindow.cpp index 10301b758..22c834521 100644 --- a/src/kvirc/ui/KviDebugWindow.cpp +++ b/src/kvirc/ui/KviDebugWindow.cpp @@ -42,12 +42,12 @@ KviDebugWindow * KviDebugWindow::m_pInstance = 0; KviDebugWindow::KviDebugWindow() -: KviWindow(KviWindow::Debug,g_pMainWindow,__tr2qs("Debug Messages"),0) +: KviWindow(KviWindow::Debug,__tr2qs("Debug Messages"),0) { m_pInstance = this; m_pSplitter = new KviTalSplitter(Qt::Horizontal,this); m_pSplitter->setObjectName("main_splitter"); - m_pIrcView = new KviIrcView(m_pSplitter,g_pMainWindow,this); + m_pIrcView = new KviIrcView(m_pSplitter,this); m_pInput = new KviInput(this,0); updateCaption(); } diff --git a/src/kvirc/ui/KviIrcView.cpp b/src/kvirc/ui/KviIrcView.cpp index ed3bd09b6..305ef96ac 100644 --- a/src/kvirc/ui/KviIrcView.cpp +++ b/src/kvirc/ui/KviIrcView.cpp @@ -99,7 +99,7 @@ #include "KviTalPopupMenu.h" #include "KviAnimatedPixmap.h" #include "KviPixmapUtils.h" -#include "KviDockExtension.h" +#include "KviTrayIcon.h" #include <QBitmap> #include <QPainter> @@ -211,7 +211,7 @@ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -KviIrcView::KviIrcView(QWidget *parent,KviMainWindow *pFrm,KviWindow *pWnd) +KviIrcView::KviIrcView(QWidget *parent, KviWindow *pWnd) : QWidget(parent) { setObjectName("irc_view"); @@ -258,7 +258,6 @@ KviIrcView::KviIrcView(QWidget *parent,KviMainWindow *pFrm,KviWindow *pWnd) m_bSkipScrollBarRepaint = false; m_pLogFile = 0; m_pKviWindow = pWnd; - m_pFrm = pFrm; m_iUnprocessedPaintEventRequests = 0; m_bPostedPaintEventPending = false; @@ -510,9 +509,8 @@ void KviIrcView::clearUnreaded() m_bHaveUnreadedHighlightedMessages = false; m_bHaveUnreadedMessages = false; - if(m_pFrm) - if(m_pFrm->dockExtension()) - m_pFrm->dockExtension()->refresh(); + if(g_pMainWindow->trayIcon()) + g_pMainWindow->trayIcon()->refresh(); } void KviIrcView::setMaxBufferSize(int maxBufSize,bool bRepaint) diff --git a/src/kvirc/ui/KviIrcView.h b/src/kvirc/ui/KviIrcView.h index c7ccd6e99..c57af5088 100644 --- a/src/kvirc/ui/KviIrcView.h +++ b/src/kvirc/ui/KviIrcView.h @@ -65,7 +65,7 @@ public: friend class KviIrcViewToolTip; friend class KviIrcViewToolWidget; public: - KviIrcView(QWidget *parent,KviMainWindow *pFrm,KviWindow *pWnd); + KviIrcView(QWidget *parent, KviWindow *pWnd); ~KviIrcView(); public: int dummyRead() const { return 0; }; diff --git a/src/kvirc/ui/KviMainWindow.cpp b/src/kvirc/ui/KviMainWindow.cpp index eacffd159..7c3198429 100644 --- a/src/kvirc/ui/KviMainWindow.cpp +++ b/src/kvirc/ui/KviMainWindow.cpp @@ -40,7 +40,7 @@ #include "KviConfigurationFile.h" #include "KviInternalCommand.h" #include "KviConsoleWindow.h" -#include "KviDockExtension.h" +#include "KviTrayIcon.h" #include "kvi_debug.h" #include "KviIrcToolBar.h" #include "kvi_confignames.h" @@ -114,7 +114,7 @@ KviMainWindow::KviMainWindow() m_pActiveContext = NULL; - m_pDockExtension = NULL; + m_pTrayIcon = NULL; m_pSplitter = new QSplitter(Qt::Horizontal,this); m_pSplitter->setObjectName("main_frame_splitter"); @@ -216,12 +216,12 @@ KviMainWindow::~KviMainWindow() while(KviMexToolBar * t = m_pModuleExtensionToolBarList->first())t->die(); delete m_pModuleExtensionToolBarList; - KVI_OPTION_BOOL(KviOption_boolShowDockExtension) = m_pDockExtension != NULL; + KVI_OPTION_BOOL(KviOption_boolShowDockExtension) = m_pTrayIcon != NULL; - if(m_pDockExtension) + if(m_pTrayIcon) { - m_pDockExtension->die(); - m_pDockExtension = NULL; + m_pTrayIcon->die(); + m_pTrayIcon = NULL; } if(m_pStatusBar) @@ -415,9 +415,11 @@ void KviMainWindow::saveWindowProperties(KviWindow * wnd,const QString &szSectio g_pWinPropertiesConfig->writeEntry("IsDocked",wnd->isDocked()); - if (!wnd->isDocked() && wnd->mdiParent()) + if (wnd->isDocked()) { - g_pWinPropertiesConfig->writeEntry("IsMaximized",wnd->mdiParent()->isMaximized()); + // qt4's mdi implementation allows only 1 mdichild to be maximized.. + // so this is useless unless we want to handle the "currently maximized window" => the active window + g_pWinPropertiesConfig->writeEntry("IsMaximized",false); } else { g_pWinPropertiesConfig->writeEntry("IsMaximized",wnd->isMaximized()); } @@ -538,8 +540,6 @@ void KviMainWindow::addWindow(KviWindow *wnd,bool bShow) if(KVI_OPTION_BOOL(KviOption_boolWindowsRememberProperties)) { bool bDocked = g_pWinPropertiesConfig->readBoolEntry("IsDocked",true); - bool bMaximized = g_pWinPropertiesConfig->readBoolEntry("IsMaximized",false); - QRect rect = g_pWinPropertiesConfig->readRectEntry("WinRect",QRect(10,10,500,380)); if(bDocked) @@ -548,7 +548,7 @@ void KviMainWindow::addWindow(KviWindow *wnd,bool bShow) // this means that windows that have no specialized config group name // are always cascaded : this is true for consoles, queries (and other windows) but not channels (and some other windows) // FIXME: Since the introduction of QMdiArea cascading (and positioning of windows in general) no longer works - KviMdiChild * lpC = dockWindow(wnd,bGroupSettings,&rect); + KviMdiChild * lpC = dockWindow(wnd); lpC->setGeometry(rect); wnd->triggerCreationEvents(); if(bShow) @@ -561,6 +561,8 @@ void KviMainWindow::addWindow(KviWindow *wnd,bool bShow) childWindowActivated(wnd); } } else { + bool bMaximized = g_pWinPropertiesConfig->readBoolEntry("IsMaximized",false); + wnd->setGeometry(rect); wnd->triggerCreationEvents(); @@ -612,7 +614,7 @@ docking_done: } } -KviMdiChild * KviMainWindow::dockWindow(KviWindow * wnd, bool bCascade, QRect * setGeom) +KviMdiChild * KviMainWindow::dockWindow(KviWindow * wnd) { if(wnd->mdiParent())return wnd->mdiParent(); KviMdiChild * lpC = new KviMdiChild(m_pMdi,""); @@ -620,7 +622,7 @@ KviMdiChild * KviMainWindow::dockWindow(KviWindow * wnd, bool bCascade, QRect * lpC->setGeometry(wnd->geometry()); wnd->youAreDocked(); - m_pMdi->manageChild(lpC,bCascade,setGeom); + m_pMdi->manageChild(lpC); return lpC; } @@ -649,7 +651,7 @@ KviConsoleWindow * KviMainWindow::createNewConsole(bool bFirstInFrame,bool bShow // at startup otherwise we cannot execute script code // which is necessary for the actions that are going to be added // to the toolbars - KviConsoleWindow * c = new KviConsoleWindow(this,bFirstInFrame ? KVI_CONSOLE_FLAG_FIRSTINFRAME : 0); + KviConsoleWindow * c = new KviConsoleWindow(bFirstInFrame ? KVI_CONSOLE_FLAG_FIRSTINFRAME : 0); addWindow(c,bShowIt); if(bFirstInFrame) @@ -822,11 +824,11 @@ void KviMainWindow::closeEvent(QCloseEvent *e) //of this signal (sender!=0), it has been generated by a "quit" action in a menu if(KVI_OPTION_BOOL(KviOption_boolCloseInTray) && QObject::sender()==0 && e->spontaneous()) { - if(!dockExtension()) + if(!trayIcon()) { executeInternalCommand(KVI_INTERNALCOMMAND_TRAYICON_SHOW); } - if(dockExtension()) + if(trayIcon()) { e->ignore(); KVI_OPTION_BOOL(KviOption_boolFrameIsMaximized) = isMaximized(); @@ -886,11 +888,11 @@ void KviMainWindow::hideEvent(QHideEvent *e) { if(KVI_OPTION_BOOL(KviOption_boolMinimizeInTray) && e->spontaneous()) { - if(!dockExtension()) + if(!trayIcon()) { executeInternalCommand(KVI_INTERNALCOMMAND_TRAYICON_SHOW); } - if(dockExtension()) + if(trayIcon()) { KVI_OPTION_BOOL(KviOption_boolFrameIsMaximized) = isMaximized(); QTimer::singleShot( 0, this, SLOT(hide()) ); diff --git a/src/kvirc/ui/KviMainWindow.h b/src/kvirc/ui/KviMainWindow.h index e38429373..178bbd847 100644 --- a/src/kvirc/ui/KviMainWindow.h +++ b/src/kvirc/ui/KviMainWindow.h @@ -50,7 +50,7 @@ class KviIrcContext; class KviIrcConnection; class KviStatusBar; class KviTalPopupMenu; -class KviDockExtension; +class KviTrayIcon; class QShortcut; #ifdef COMPILE_ON_WINDOWS @@ -89,7 +89,7 @@ protected: KviPointerList<KviWindow> * m_pWinList; // the main list of windows KviIrcContext * m_pActiveContext; // the context of the m_pActiveWindow // other - KviDockExtension * m_pDockExtension; // the frame's dock extension: this should be prolly moved ? + KviTrayIcon * m_pTrayIcon; // the frame's dock extension: this should be prolly moved ? KviPointerList<QShortcut> * m_pAccellerators; // global application accellerators public: // the mdi manager: handles mdi children @@ -134,11 +134,11 @@ public: // Returns the first console that has no connection in progress // This function CAN return 0 if all the consoles are connected KviConsoleWindow * firstNotConnectedConsole(); - // this is explicitly dedicated to the DockExtension applets - void setDockExtension(KviDockExtension * e){ m_pDockExtension = e; }; + // this is explicitly dedicated to the TrayIcon module + void setTrayIcon(KviTrayIcon * e){ m_pTrayIcon = e; }; // returns the dockExtension applet. Useful for calling refresh() when // some particular event happens - KviDockExtension * dockExtension(){ return m_pDockExtension; }; + KviTrayIcon * trayIcon(){ return m_pTrayIcon; }; // helper for saving the window properties void saveWindowProperties(KviWindow * wnd,const QString &szSection); // finds the module extension toolbar with the specified identifier @@ -168,7 +168,7 @@ protected: void createWindowList(); void recreateWindowList(); - KviMdiChild * dockWindow(KviWindow *wnd,bool bCascade = true,QRect * setGeom = 0); + KviMdiChild * dockWindow(KviWindow *wnd); void undockWindow(KviWindow *wnd); // called by KviWindow diff --git a/src/kvirc/ui/KviMdiChild.cpp b/src/kvirc/ui/KviMdiChild.cpp index 1539096f5..1622a96bc 100644 --- a/src/kvirc/ui/KviMdiChild.cpp +++ b/src/kvirc/ui/KviMdiChild.cpp @@ -45,10 +45,6 @@ #include "KviIrcNetwork.h" #include "KviKvsEventTriggers.h" -#ifdef COMPILE_ON_MAC - #include "KviApplication.h" //Needed for g_pApp -#endif - #include <QTimer> #ifdef COMPILE_PSEUDO_TRANSPARENCY diff --git a/src/kvirc/ui/KviMdiManager.cpp b/src/kvirc/ui/KviMdiManager.cpp index a0dca046f..6fed054a1 100644 --- a/src/kvirc/ui/KviMdiManager.cpp +++ b/src/kvirc/ui/KviMdiManager.cpp @@ -121,7 +121,7 @@ void KviMdiManager::paintEvent(QPaintEvent * e) } } -void KviMdiManager::manageChild(KviMdiChild * lpC, bool, QRect *) +void KviMdiManager::manageChild(KviMdiChild * lpC) { addSubWindow((QMdiSubWindow*)lpC); diff --git a/src/kvirc/ui/KviMdiManager.h b/src/kvirc/ui/KviMdiManager.h index e46557a57..c1c40c17f 100644 --- a/src/kvirc/ui/KviMdiManager.h +++ b/src/kvirc/ui/KviMdiManager.h @@ -93,11 +93,9 @@ public: /** * \brief Add an KviMdiChild to the area * \param lpC The KviMdiChild - * \param bCascade Cascade window or not. - * \param setGeom Sets the windows geometry before shown * \return void */ - void manageChild(KviMdiChild * lpC, bool bCascade = true, QRect * setGeom = 0); + void manageChild(KviMdiChild * lpC); /** * \brief Show the KviMdiChild and bring it to the front diff --git a/src/kvirc/ui/KviQueryWindow.cpp b/src/kvirc/ui/KviQueryWindow.cpp index 97828a5ff..c98a6bd91 100644 --- a/src/kvirc/ui/KviQueryWindow.cpp +++ b/src/kvirc/ui/KviQueryWindow.cpp @@ -65,8 +65,8 @@ #include <QByteArray> #include <QTextDocument> // for Qt::escape_command -KviQueryWindow::KviQueryWindow(KviMainWindow * lpFrm, KviConsoleWindow * lpConsole, const QString & szNick) -: KviWindow(KviWindow::Query,lpFrm,szNick,lpConsole) +KviQueryWindow::KviQueryWindow(KviConsoleWindow * lpConsole, const QString & szNick) +: KviWindow(KviWindow::Query,szNick,lpConsole) { m_iFlags = 0; connection()->registerQuery(this); @@ -87,7 +87,7 @@ KviQueryWindow::KviQueryWindow(KviMainWindow * lpFrm, KviConsoleWindow * lpConso m_pSplitter->setObjectName("query_splitter"); m_pSplitter->setChildrenCollapsible(false); - m_pIrcView = new KviIrcView(m_pSplitter,lpFrm,this); + m_pIrcView = new KviIrcView(m_pSplitter, this); connect(m_pIrcView,SIGNAL(rightClicked()),this,SLOT(textViewRightClicked())); //m_pEditorsContainer= new KviToolWindowsContainer(m_pSplitter); diff --git a/src/kvirc/ui/KviQueryWindow.h b/src/kvirc/ui/KviQueryWindow.h index a57340cf9..d5a5f3e6b 100644 --- a/src/kvirc/ui/KviQueryWindow.h +++ b/src/kvirc/ui/KviQueryWindow.h @@ -60,12 +60,11 @@ public: /** * \brief Constructs the query object - * \param lpFrm The parent frame * \param lpConsole The associated console * \param szNick The nickname with who we open a query * \return KviQueryWindow */ - KviQueryWindow(KviMainWindow * lpFrm, KviConsoleWindow * lpConsole, const QString & szNick); + KviQueryWindow(KviConsoleWindow * lpConsole, const QString & szNick); /** * \brief Destroys the query object diff --git a/src/kvirc/ui/KviDockExtension.h b/src/kvirc/ui/KviTrayIcon.h index 1b3c6140c..4b15fd79a 100644 --- a/src/kvirc/ui/KviDockExtension.h +++ b/src/kvirc/ui/KviTrayIcon.h @@ -1,8 +1,8 @@ -#ifndef _KviDockExtension_h_ -#define _KviDockExtension_h_ +#ifndef _KviTrayIcon_h_ +#define _KviTrayIcon_h_ //============================================================================= // -// File : KviDockExtension.h +// File : KviTrayIcon.h // Creation date : Sun Jun 18 2000 17:59:02 CEST by Szymon Stefanek // // This file is part of the KVIrc irc client distribution @@ -29,12 +29,12 @@ #include <QWidget> /// -/// \class KviDockExtension -/// \brief The KviDockExtension class +/// \class KviTrayIcon +/// \brief The KviTrayIcon class /// /// Base class for the dock extension applets.. /// -class KVIRC_API KviDockExtension +class KVIRC_API KviTrayIcon { private: Qt::WindowStates m_oStoredWindowStates; @@ -42,18 +42,18 @@ private: public: /// - /// Creates an instance of KviDockExtension + /// Creates an instance of KviTrayIcon /// - KviDockExtension() + KviTrayIcon() : m_oStoredWindowStates(0) { } /// - /// Destroys the instance of KviDockExtension + /// Destroys the instance of KviTrayIcon /// and frees all the relevant resources /// - virtual ~KviDockExtension() + virtual ~KviTrayIcon() { } @@ -78,8 +78,8 @@ public: delete this; } -}; // class KviDockExtension +}; // class KviTrayIcon -#endif //!_KviDockExtension_h_ +#endif //!_KviTrayIcon_h_ diff --git a/src/kvirc/ui/KviTreeWindowList.cpp b/src/kvirc/ui/KviTreeWindowList.cpp index 417bc4a2e..f46cbff58 100644 --- a/src/kvirc/ui/KviTreeWindowList.cpp +++ b/src/kvirc/ui/KviTreeWindowList.cpp @@ -33,7 +33,7 @@ #include "KviWindow.h" #include "KviTreeWindowList.h" #include "KviPixmapUtils.h" -#include "KviDockExtension.h" +#include "KviTrayIcon.h" #include <QHeaderView> #include <QMouseEvent> @@ -113,7 +113,7 @@ void KviTreeWindowListItem::unhighlight() m_iHighlightLevel = 0; setData(0, KVI_TTBID_HIGHLIGHT, m_iHighlightLevel); - if(g_pMainWindow->dockExtension())g_pMainWindow->dockExtension()->refresh(); + if(g_pMainWindow->trayIcon())g_pMainWindow->trayIcon()->refresh(); } void KviTreeWindowListItem::highlight(int iLevel) @@ -123,8 +123,8 @@ void KviTreeWindowListItem::highlight(int iLevel) m_iHighlightLevel = iLevel; setData(0, KVI_TTBID_HIGHLIGHT, m_iHighlightLevel); - if(g_pMainWindow->dockExtension()) - g_pMainWindow->dockExtension()->refresh(); + if(g_pMainWindow->trayIcon()) + g_pMainWindow->trayIcon()->refresh(); } void KviTreeWindowListItem::setProgress(int progress) @@ -450,7 +450,7 @@ void KviTreeWindowList::setActiveItem(KviWindowListItem * it) } ((KviTreeWindowListItem *)it)->setActive(true); - if(g_pMainWindow->dockExtension())g_pMainWindow->dockExtension()->refresh(); + if(g_pMainWindow->trayIcon())g_pMainWindow->trayIcon()->refresh(); } } diff --git a/src/kvirc/ui/KviWindow.cpp b/src/kvirc/ui/KviWindow.cpp index 49d2f9570..27f99fecf 100644 --- a/src/kvirc/ui/KviWindow.cpp +++ b/src/kvirc/ui/KviWindow.cpp @@ -100,7 +100,7 @@ static QAction * g_pMdiWindowSystemTextEncodingDefaultAction = 0; unsigned long int g_uUniqueWindowId = 1; -KviWindow::KviWindow(Type eType, KviMainWindow * lpFrm, const QString & szName, KviConsoleWindow * lpConsole) +KviWindow::KviWindow(Type eType, const QString & szName, KviConsoleWindow * lpConsole) : QWidget(0) { m_uId = g_uUniqueWindowId; @@ -114,7 +114,6 @@ KviWindow::KviWindow(Type eType, KviMainWindow * lpFrm, const QString & szName, m_eType = eType; m_pFocusHandler = 0; - m_pFrm = lpFrm; // FIXME: Should disappear! m_pIrcView = 0; m_pInput = 0; m_pSplitter = 0; @@ -184,78 +183,49 @@ void KviWindow::reloadImages() updateIcon(); } -bool KviWindow::hasAttention() +bool KviWindow::hasAttention(AttentionLevel eLevel) { - if(((QApplication *)g_pApp)->activeWindow() == 0) - return false; // no application window has the focus atm - if(mdiParent()) { - // This frame is not the active window but the - // active window still belongs to KVIrc. - // When the active window is derived from QDialog - // then it is probably a KVIrc's option dialog - // or something similar. - // In this case we assume that the user has the - // KVIrc window just below and can see it. - if(frame()->isActiveWindow()) - return true; - - // Handle the special case of the dialogs then - QWidget * pWidget = ((QApplication *)g_pApp)->activeWindow(); - if(pWidget->inherits("QDialog")) + switch(eLevel) { - // but make sure that the frame is visible at all! - if(!frame()->isVisible()) + case VisibleAndActive: + return (g_pMainWindow->isActiveWindow() && g_pActiveWindow == this); + break; + case MainWindowIsVisible: + return g_pMainWindow->isActiveWindow(); + break; + default: return false; - return true; + break; } - // any other class is so unfrequent that we ignore it } else { - // when the window is undocked, instead - // it is likely to be covered by KVIrc or other windows... + // undocked window if(isActiveWindow()) return true; } + return false; } void KviWindow::demandAttention() { - if(mdiParent()) - { - if(frame()->isActiveWindow()) - return; -#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - FLASHWINFO fwi; - fwi.cbSize = sizeof(fwi); - fwi.hwnd = (HWND)(frame()->winId()); - fwi.dwFlags = FLASHW_TRAY | FLASHW_TIMERNOFG; - fwi.uCount = 20; - fwi.dwTimeout = 500; - FlashWindowEx(&fwi); -#else - #ifdef COMPILE_KDE_SUPPORT - KWindowSystem::demandAttention(frame()->winId(),true); - #endif -#endif - } else { - if(isActiveWindow()) - return; + if(hasAttention()) + return; + + WId windowId = mdiParent() ? g_pMainWindow->winId() : winId(); + #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - FLASHWINFO fwi; - fwi.cbSize = sizeof(fwi); - fwi.hwnd = (HWND)winId(); - fwi.dwFlags = FLASHW_TRAY | FLASHW_TIMERNOFG; - fwi.uCount = 20; - fwi.dwTimeout = 500; - FlashWindowEx(&fwi); -#else - #ifdef COMPILE_KDE_SUPPORT - KWindowSystem::demandAttention(winId(),true); - #endif + FLASHWINFO fwi; + fwi.cbSize = sizeof(fwi); + fwi.hwnd = (HWND)windowId; + fwi.dwFlags = FLASHW_TRAY | FLASHW_TIMERNOFG; + fwi.uCount = 20; + fwi.dwTimeout = 500; + FlashWindowEx(&fwi); +#elif defined(COMPILE_KDE_SUPPORT) + KWindowSystem::demandAttention(windowId,true); #endif - } } bool KviWindow::focusNextPrevChild(bool bNext) @@ -1206,7 +1176,7 @@ void KviWindow::restore() QRect KviWindow::externalGeometry() { #ifndef COMPILE_ON_MAC - return mdiParent() ? mdiParent()->geometry() : frameGeometry(); + return mdiParent() ? mdiParent()->frameGeometry() : frameGeometry(); #else return mdiParent() ? mdiParent()->geometry() : geometry(); #endif @@ -1244,7 +1214,7 @@ void KviWindow::internalOutput(KviIrcView * pView, int iMsgType, const kvi_wchar if(pView) { - if((this != g_pActiveWindow) || (!isActiveWindow())) + if(!hasAttention()) { iFlags |= KviIrcView::TriggersNotification; if(!pView->hasLineMark()) diff --git a/src/kvirc/ui/KviWindow.h b/src/kvirc/ui/KviWindow.h index 12e934965..54a09d5db 100644 --- a/src/kvirc/ui/KviWindow.h +++ b/src/kvirc/ui/KviWindow.h @@ -117,6 +117,14 @@ public: }; /** + * \enum AttentionLevel + * \brief attention levels usable in hasAttention() + */ + enum AttentionLevel { + VisibleAndActive = 0, /**< The window is visible and active (aka: has user focus) */ + MainWindowIsVisible = 1, /**< The kvirc frame is visible but the window is not the active one */ + }; + /** * \enum Type * \brief Holds the types of a window; these are used by the KVIrc core and distributed modules * \note If you add a new type, insert it just before Unknown @@ -159,7 +167,7 @@ public: * \param pConsole The parent console * \return KviWindow */ - KviWindow(Type eType, KviMainWindow * lpFrm, const QString & szName, KviConsoleWindow * pConsole = 0); + KviWindow(Type eType, const QString & szName, KviConsoleWindow * pConsole = 0); /** * \brief Destroys the window object @@ -167,7 +175,6 @@ public: virtual ~KviWindow(); protected: // almost private: don't touch :D QString m_szName; // the current window name (usually also the target) - KviMainWindow * m_pFrm; KviConsoleWindow * m_pConsole; Type m_eType; KviWindowListItem * m_pWindowListItem; @@ -250,14 +257,6 @@ public: void forceTextCodec(QTextCodec * pCodec); /** - * \brief Returns the main window that this window belongs to - * - * It is always non-null and never changes - * \return KviMainWindow * - */ - inline KviMainWindow * frame() const { return m_pFrm; }; - - /** * \brief Returns the KviIrcView of this window * * May be NULL if the window has no KviIrcView (and thus supports no direct output) @@ -386,8 +385,28 @@ public: // Just helpers.. FIXME: might be redesigned in some other way void updateBackgrounds(QObject * pObj = 0); + /** + * \brief Notify the window manager that this window demands attention + * + * Depending on the os/window manager, this method uses different approaches to + * trigger a notification that tipically makes the application entry flash + * on the application bar. + * \return void + */ void demandAttention(); - bool hasAttention(); + + /** + * \brief Returns wether this window is the active one + * + * This method is useful because it takes in consideration that this window + * can be either docked or undocked, and takes a parameter that defines the strictness + * of the checks used. + * Level MainWindowIsVisible is fine to check if we needs to trigger the notifier + * Level VisibleAndActive is useful to trigger highlights + * @param eLevel the level of checks to be done + * \return bool + */ + bool hasAttention(AttentionLevel eLevel=VisibleAndActive); // This should die, probably void listWindowTypes(); diff --git a/src/kvirc/ui/KviWindowListBase.cpp b/src/kvirc/ui/KviWindowListBase.cpp index 4e59ff0a4..74acffa96 100644 --- a/src/kvirc/ui/KviWindowListBase.cpp +++ b/src/kvirc/ui/KviWindowListBase.cpp @@ -45,7 +45,7 @@ #include "KviCString.h" #include "KviWindow.h" #include "KviWindowListBase.h" -#include "KviDockExtension.h" +#include "KviTrayIcon.h" // FIXME: #warning "The tree WindowList min width should be configurable" #include <QFontMetrics> @@ -496,8 +496,8 @@ void KviWindowListButton::unhighlight() if(m_iHighlightLevel < 1) return; m_iHighlightLevel = 0; - if(g_pMainWindow->dockExtension()) - g_pMainWindow->dockExtension()->refresh(); + if(g_pMainWindow->trayIcon()) + g_pMainWindow->trayIcon()->refresh(); update(); } @@ -508,8 +508,8 @@ void KviWindowListButton::highlight(int iLevel) if(m_bActive && g_pMainWindow->isActiveWindow()) return; m_iHighlightLevel = iLevel; - if(g_pMainWindow->dockExtension()) - g_pMainWindow->dockExtension()->refresh(); + if(g_pMainWindow->trayIcon()) + g_pMainWindow->trayIcon()->refresh(); update(); if(m_bActive) return; @@ -633,8 +633,8 @@ KviWindowListItem * KviClassicWindowList::addItem(KviWindow * wnd) insertButton(b); b->show(); doLayout(); - if(g_pMainWindow->dockExtension()) - g_pMainWindow->dockExtension()->refresh(); + if(g_pMainWindow->trayIcon()) + g_pMainWindow->trayIcon()->refresh(); /* if(b->width() < m_pBase->width()) m_pBase->setMinimumWidth(b->width()); if(b->height() < m_pBase->height()) m_pBase->setMinimumWidth(b->height());*/ return b; @@ -646,8 +646,8 @@ bool KviClassicWindowList::removeItem(KviWindowListItem * it) { m_pButtonList->removeRef((KviWindowListButton *)it); doLayout(); - if(g_pMainWindow->dockExtension()) - g_pMainWindow->dockExtension()->refresh(); + if(g_pMainWindow->trayIcon()) + g_pMainWindow->trayIcon()->refresh(); } return true; } @@ -660,8 +660,8 @@ void KviClassicWindowList::setActiveItem(KviWindowListItem * it) { b->setActive(((KviWindowListButton *)it) == b); } - if(g_pMainWindow->dockExtension()) - g_pMainWindow->dockExtension()->refresh(); + if(g_pMainWindow->trayIcon()) + g_pMainWindow->trayIcon()->refresh(); } } diff --git a/src/modules/actioneditor/ActionEditor.cpp b/src/modules/actioneditor/ActionEditor.cpp index 8afc2fb33..460cb4560 100644 --- a/src/modules/actioneditor/ActionEditor.cpp +++ b/src/modules/actioneditor/ActionEditor.cpp @@ -848,8 +848,8 @@ void ActionEditor::commit() } -ActionEditorWindow::ActionEditorWindow(KviMainWindow * lpFrm) -: KviWindow(KviWindow::ScriptEditor,lpFrm,"actioneditor",0) +ActionEditorWindow::ActionEditorWindow() +: KviWindow(KviWindow::ScriptEditor,"actioneditor",0) { g_pActionEditorWindow = this; setFixedCaption(__tr2qs_ctx("Action Editor","editor")); diff --git a/src/modules/actioneditor/ActionEditor.h b/src/modules/actioneditor/ActionEditor.h index ac05ec216..9a92dab81 100644 --- a/src/modules/actioneditor/ActionEditor.h +++ b/src/modules/actioneditor/ActionEditor.h @@ -186,7 +186,7 @@ class ActionEditorWindow : public KviWindow { Q_OBJECT public: - ActionEditorWindow(KviMainWindow * lpFrm); + ActionEditorWindow(); ~ActionEditorWindow(); protected: ActionEditor * m_pEditor; diff --git a/src/modules/actioneditor/libkviactioneditor.cpp b/src/modules/actioneditor/libkviactioneditor.cpp index b4c058318..569f547ad 100644 --- a/src/modules/actioneditor/libkviactioneditor.cpp +++ b/src/modules/actioneditor/libkviactioneditor.cpp @@ -45,12 +45,12 @@ ActionEditorWindow * g_pActionEditorWindow = 0; Opens the script action editor dialog. */ -static bool actioneditor_kvs_cmd_open(KviKvsModuleCommandCall * c) +static bool actioneditor_kvs_cmd_open(KviKvsModuleCommandCall *) { if(!g_pActionEditorWindow) { - g_pActionEditorWindow = new ActionEditorWindow(c->window()->frame()); - c->window()->frame()->addWindow(g_pActionEditorWindow); + g_pActionEditorWindow = new ActionEditorWindow(); + g_pMainWindow->addWindow(g_pActionEditorWindow); } g_pActionEditorWindow->setFocus(); diff --git a/src/modules/aliaseditor/AliasEditorWindow.cpp b/src/modules/aliaseditor/AliasEditorWindow.cpp index 3d7374516..b3e06c285 100644 --- a/src/modules/aliaseditor/AliasEditorWindow.cpp +++ b/src/modules/aliaseditor/AliasEditorWindow.cpp @@ -1176,8 +1176,8 @@ void AliasEditorWidget::commit() } -AliasEditorWindow::AliasEditorWindow(KviMainWindow * lpFrm) -: KviWindow(KviWindow::ScriptEditor,lpFrm,"aliaseditor",0) +AliasEditorWindow::AliasEditorWindow() +: KviWindow(KviWindow::ScriptEditor,"aliaseditor",0) { g_pAliasEditorWindow = this; diff --git a/src/modules/aliaseditor/AliasEditorWindow.h b/src/modules/aliaseditor/AliasEditorWindow.h index a571562f6..ab11953a5 100644 --- a/src/modules/aliaseditor/AliasEditorWindow.h +++ b/src/modules/aliaseditor/AliasEditorWindow.h @@ -172,7 +172,7 @@ class AliasEditorWindow : public KviWindow { Q_OBJECT public: - AliasEditorWindow(KviMainWindow * lpFrm); + AliasEditorWindow(); ~AliasEditorWindow(); protected: AliasEditorWidget * m_pEditor; diff --git a/src/modules/aliaseditor/libkvialiaseditor.cpp b/src/modules/aliaseditor/libkvialiaseditor.cpp index 2819371df..989bce911 100644 --- a/src/modules/aliaseditor/libkvialiaseditor.cpp +++ b/src/modules/aliaseditor/libkvialiaseditor.cpp @@ -47,12 +47,12 @@ KviModule * g_pAliasEditorModule = 0; Opens the script alias editor dialog. */ -static bool aliaseditor_kvs_cmd_open(KviKvsModuleCommandCall * c) +static bool aliaseditor_kvs_cmd_open(KviKvsModuleCommandCall *) { if(!g_pAliasEditorWindow) { - g_pAliasEditorWindow = new AliasEditorWindow(c->window()->frame()); - c->window()->frame()->addWindow(g_pAliasEditorWindow); + g_pAliasEditorWindow = new AliasEditorWindow(); + g_pMainWindow->addWindow(g_pAliasEditorWindow); } g_pAliasEditorWindow->setFocus(); diff --git a/src/modules/channelsjoin/ChannelsJoinDialog.cpp b/src/modules/channelsjoin/ChannelsJoinDialog.cpp index 442bce49a..4712b691f 100644 --- a/src/modules/channelsjoin/ChannelsJoinDialog.cpp +++ b/src/modules/channelsjoin/ChannelsJoinDialog.cpp @@ -56,8 +56,8 @@ extern QRect g_rectChannelsJoinGeometry; extern KVIRC_API KviRegisteredChannelDataBase * g_pRegisteredChannelDataBase; -ChannelsJoinDialog::ChannelsJoinDialog(QWidget * par, const char * name) -: QDialog(par) +ChannelsJoinDialog::ChannelsJoinDialog(const char * name) +: QDialog(g_pMainWindow) { setObjectName(name); setWindowTitle(__tr2qs("Join Channels")); diff --git a/src/modules/channelsjoin/ChannelsJoinDialog.h b/src/modules/channelsjoin/ChannelsJoinDialog.h index da9f8182c..7e3a62965 100644 --- a/src/modules/channelsjoin/ChannelsJoinDialog.h +++ b/src/modules/channelsjoin/ChannelsJoinDialog.h @@ -83,11 +83,10 @@ class ChannelsJoinDialog : public QDialog public: /** * \brief Constructs the channels join window - * \param par The parent widget * \param name The name of the window * \return ChannelsJoinDialog */ - ChannelsJoinDialog(QWidget * par, const char * name); + ChannelsJoinDialog(const char * name); /** * \brief Destroys the channels join window diff --git a/src/modules/channelsjoin/libkvichannelsjoin.cpp b/src/modules/channelsjoin/libkvichannelsjoin.cpp index a96c3dc86..0d7debfc5 100644 --- a/src/modules/channelsjoin/libkvichannelsjoin.cpp +++ b/src/modules/channelsjoin/libkvichannelsjoin.cpp @@ -53,7 +53,7 @@ QRect g_rectChannelsJoinGeometry; static bool channelsjoin_kvs_cmd_open(KviKvsModuleCommandCall * c) { - if(!g_pChannelsWindow)g_pChannelsWindow = new ChannelsJoinDialog(c->window()->frame(),"channelsjoin"); + if(!g_pChannelsWindow)g_pChannelsWindow = new ChannelsJoinDialog("channelsjoin"); g_pChannelsWindow->setConsole(c->window()->console()); diff --git a/src/modules/classeditor/ClassEditorWindow.cpp b/src/modules/classeditor/ClassEditorWindow.cpp index c7291e73d..2358ec2f0 100644 --- a/src/modules/classeditor/ClassEditorWindow.cpp +++ b/src/modules/classeditor/ClassEditorWindow.cpp @@ -1835,8 +1835,8 @@ void ClassEditorWidget::searchInheritedClasses(const QString szClass, KviPointer } } -ClassEditorWindow::ClassEditorWindow(KviMainWindow * pFrm) -: KviWindow(KviWindow::ScriptEditor,pFrm,"classeditor",0) +ClassEditorWindow::ClassEditorWindow() +: KviWindow(KviWindow::ScriptEditor,"classeditor",0) { g_pClassEditorWindow = this; diff --git a/src/modules/classeditor/ClassEditorWindow.h b/src/modules/classeditor/ClassEditorWindow.h index 4b3ce0f1e..abb6ebb2c 100644 --- a/src/modules/classeditor/ClassEditorWindow.h +++ b/src/modules/classeditor/ClassEditorWindow.h @@ -474,10 +474,9 @@ class ClassEditorWindow : public KviWindow public: /** * \brief Constructs the class editor window - * \param pFrm The parent frame * \return ClassEditorWindow */ - ClassEditorWindow(KviMainWindow * pFrm); + ClassEditorWindow(); /** * \brief Destroys the class editor window diff --git a/src/modules/classeditor/libkviclasseditor.cpp b/src/modules/classeditor/libkviclasseditor.cpp index 9090f67b8..8348caf14 100644 --- a/src/modules/classeditor/libkviclasseditor.cpp +++ b/src/modules/classeditor/libkviclasseditor.cpp @@ -46,12 +46,12 @@ KviModule * g_pClassEditorModule = 0; @description: Opens the script class editor dialog. */ -static bool classeditor_kvs_cmd_open(KviKvsModuleCommandCall * c) +static bool classeditor_kvs_cmd_open(KviKvsModuleCommandCall *) { if(!g_pClassEditorWindow) { - g_pClassEditorWindow = new ClassEditorWindow(c->window()->frame()); - c->window()->frame()->addWindow(g_pClassEditorWindow); + g_pClassEditorWindow = new ClassEditorWindow(); + g_pMainWindow->addWindow(g_pClassEditorWindow); } g_pClassEditorWindow->setFocus(); diff --git a/src/modules/codetester/CodeTesterWindow.cpp b/src/modules/codetester/CodeTesterWindow.cpp index ed0306428..fb2f5de6a 100644 --- a/src/modules/codetester/CodeTesterWindow.cpp +++ b/src/modules/codetester/CodeTesterWindow.cpp @@ -82,8 +82,8 @@ void CodeTesterWidget::execute() delete pSLParams; } -CodeTesterWindow::CodeTesterWindow(KviMainWindow * lpFrm) -: KviWindow(KviWindow::ScriptEditor,lpFrm,"codetester",0) +CodeTesterWindow::CodeTesterWindow() +: KviWindow(KviWindow::ScriptEditor,"codetester",0) { g_pCodeTesterWindowList->append(this); diff --git a/src/modules/codetester/CodeTesterWindow.h b/src/modules/codetester/CodeTesterWindow.h index eccdd433e..28791c353 100644 --- a/src/modules/codetester/CodeTesterWindow.h +++ b/src/modules/codetester/CodeTesterWindow.h @@ -53,7 +53,7 @@ class CodeTesterWindow : public KviWindow { Q_OBJECT public: - CodeTesterWindow(KviMainWindow * lpFrm); + CodeTesterWindow(); ~CodeTesterWindow(); protected: CodeTesterWidget * m_pTester; diff --git a/src/modules/codetester/libkvicodetester.cpp b/src/modules/codetester/libkvicodetester.cpp index c90fcf843..505671d03 100644 --- a/src/modules/codetester/libkvicodetester.cpp +++ b/src/modules/codetester/libkvicodetester.cpp @@ -47,10 +47,10 @@ KviPointerList<CodeTesterWindow> * g_pCodeTesterWindowList = 0; Opens a new code tester window */ -static bool codetester_kvs_cmd_open(KviKvsModuleCommandCall * c) +static bool codetester_kvs_cmd_open(KviKvsModuleCommandCall *) { - CodeTesterWindow * w = new CodeTesterWindow(c->window()->frame()); - c->window()->frame()->addWindow(w); + CodeTesterWindow * w = new CodeTesterWindow(); + g_pMainWindow->addWindow(w); w->setFocus(); return true; } diff --git a/src/modules/dcc/DccBroker.cpp b/src/modules/dcc/DccBroker.cpp index 8151d730a..2fa874758 100644 --- a/src/modules/dcc/DccBroker.cpp +++ b/src/modules/dcc/DccBroker.cpp @@ -323,13 +323,13 @@ void DccBroker::executeChat(DccDialog *box,DccDescriptor * dcc) szSubProto.toLower(); QString tmp = QString("dcc: %1 %2@%3:%4").arg(szSubProto.ptr(), dcc->szNick, dcc->szIp, dcc->szPort); - DccChatWindow * chat = new DccChatWindow(dcc->console()->frame(),dcc,tmp.toUtf8().data()); + DccChatWindow * chat = new DccChatWindow(dcc,tmp.toUtf8().data()); bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : \ (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat) || \ (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChatWhenAutoAccepted))); - dcc->console()->frame()->addWindow(chat,!bMinimized); + g_pMainWindow->addWindow(chat,!bMinimized); if(bMinimized)chat->minimize(); m_pDccWindowList->append(chat); } @@ -374,13 +374,13 @@ void DccBroker::activeVoiceExecute(DccDialog *box,DccDescriptor * dcc) } KviCString tmp(KviCString::Format,"dcc: voice %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data()); - DccVoiceWindow * v = new DccVoiceWindow(dcc->console()->frame(),dcc,tmp.ptr()); + DccVoiceWindow * v = new DccVoiceWindow(dcc,tmp.ptr()); bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : \ (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVoice) || \ (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVoiceWhenAutoAccepted))); - dcc->console()->frame()->addWindow(v,!bMinimized); + g_pMainWindow->addWindow(v,!bMinimized); if(bMinimized)v->minimize(); m_pDccWindowList->append(v); @@ -394,10 +394,10 @@ void DccBroker::activeVoiceExecute(DccDialog *box,DccDescriptor * dcc) void DccBroker::passiveVoiceExecute(DccDescriptor * dcc) { KviCString tmp(KviCString::Format,"dcc: voice %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data()); - DccVoiceWindow * v = new DccVoiceWindow(dcc->console()->frame(),dcc,tmp.ptr()); + DccVoiceWindow * v = new DccVoiceWindow(dcc,tmp.ptr()); //#warning "Create minimized dcc voice ?... or maybe it's too much ? :)" bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat); - dcc->console()->frame()->addWindow(v,!bMinimized); + g_pMainWindow->addWindow(v,!bMinimized); if(bMinimized)v->minimize(); m_pDccWindowList->append(v); } @@ -444,13 +444,13 @@ void DccBroker::activeVideoExecute(DccDialog *box,DccDescriptor * dcc) } KviCString tmp(KviCString::Format,"dcc: video %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data()); - DccVideoWindow * v = new DccVideoWindow(dcc->console()->frame(),dcc,tmp.ptr()); + DccVideoWindow * v = new DccVideoWindow(dcc,tmp.ptr()); bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : \ (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVideo) || \ (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVideoWhenAutoAccepted))); - dcc->console()->frame()->addWindow(v,!bMinimized); + g_pMainWindow->addWindow(v,!bMinimized); if(bMinimized)v->minimize(); m_pDccWindowList->append(v); @@ -469,10 +469,10 @@ void DccBroker::activeVideoExecute(DccDialog *,DccDescriptor *) void DccBroker::passiveVideoExecute(DccDescriptor * dcc) { KviCString tmp(KviCString::Format,"dcc: video %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data()); - DccVideoWindow * v = new DccVideoWindow(dcc->console()->frame(),dcc,tmp.ptr()); + DccVideoWindow * v = new DccVideoWindow(dcc,tmp.ptr()); //#warning "Create minimized dcc video ?... or maybe it's too much ? :)" bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat); - dcc->console()->frame()->addWindow(v,!bMinimized); + g_pMainWindow->addWindow(v,!bMinimized); if(bMinimized)v->minimize(); m_pDccWindowList->append(v); #else @@ -525,14 +525,14 @@ void DccBroker::activeCanvasExecute(DccDialog *box,DccDescriptor * dcc) } KviCString tmp(KviCString::Format,"dcc: canvas %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data()); - DccCanvasWindow * cnv = new DccCanvasWindow(dcc->console()->frame(),dcc,tmp.ptr()); + DccCanvasWindow * cnv = new DccCanvasWindow(dcc,tmp.ptr()); //#warning "This option should be dedicated to Dcc Canvas!....for now we are using the DccChat options" bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : \ (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat) || \ (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChatWhenAutoAccepted))); - dcc->console()->frame()->addWindow(cnv,!bMinimized); + g_pMainWindow->addWindow(cnv,!bMinimized); if(bMinimized)cnv->minimize(); m_pDccWindowList->append(cnv); @@ -549,10 +549,10 @@ void DccBroker::activeCanvasExecute(DccDialog *,DccDescriptor *) void DccBroker::passiveCanvasExecute(DccDescriptor * dcc) { KviCString tmp(KviCString::Format,"dcc: canvas %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data()); - DccCanvasWindow * cnv = new DccCanvasWindow(dcc->console()->frame(),dcc,tmp.ptr()); + DccCanvasWindow * cnv = new DccCanvasWindow(dcc,tmp.ptr()); //#warning "This option should be dedicated to Dcc Canvas!....for now we are using the DccChat options" bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat); - dcc->console()->frame()->addWindow(cnv,!bMinimized); + g_pMainWindow->addWindow(cnv,!bMinimized); if(bMinimized)cnv->minimize(); m_pDccWindowList->append(cnv); } @@ -865,7 +865,6 @@ void DccBroker::recvFileExecute(DccDialog *box,DccDescriptor * dcc) dcc->setConsole(g_pApp->activeConsole()); } - //KviDccSend * send = new KviDccSend(dcc->console()->frame(),dcc,tmp.ptr()); DccFileTransfer * send = new DccFileTransfer(dcc); bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : \ diff --git a/src/modules/dcc/DccCanvasWindow.cpp b/src/modules/dcc/DccCanvasWindow.cpp index 73f442b2c..969419528 100644 --- a/src/modules/dcc/DccCanvasWindow.cpp +++ b/src/modules/dcc/DccCanvasWindow.cpp @@ -56,14 +56,14 @@ extern DccBroker * g_pDccBroker; - DccCanvasWindow::DccCanvasWindow(KviMainWindow *pFrm,DccDescriptor * dcc,const char * name) - : DccWindow(KVI_WINDOW_TYPE_DCCCANVAS,pFrm,name,dcc) + DccCanvasWindow::DccCanvasWindow(DccDescriptor * dcc,const char * name) + : DccWindow(KVI_WINDOW_TYPE_DCCCANVAS,name,dcc) { m_pSplitter = new QSplitter(QSplitter::Vertical,this,"splitter"); m_pCanvas = new DccCanvasWidget(m_pSplitter); - m_pIrcView = new KviIrcView(m_pSplitter,pFrm,this); + m_pIrcView = new KviIrcView(m_pSplitter,this); m_pInput = new KviInput(this); // setFocusHandler(m_pInput,this); diff --git a/src/modules/dcc/DccCanvasWindow.h b/src/modules/dcc/DccCanvasWindow.h index c931759b6..0208e30a2 100644 --- a/src/modules/dcc/DccCanvasWindow.h +++ b/src/modules/dcc/DccCanvasWindow.h @@ -43,7 +43,7 @@ { Q_OBJECT public: - DccCanvasWindow(KviMainWindow *pFrm,DccDescriptor * dcc,const char * name); + DccCanvasWindow(DccDescriptor * dcc,const char * name); ~DccCanvasWindow(); protected: // KviDccCanvasThread * m_pSlaveThread; diff --git a/src/modules/dcc/DccChatWindow.cpp b/src/modules/dcc/DccChatWindow.cpp index d3bfddfa1..ff942d7bc 100644 --- a/src/modules/dcc/DccChatWindow.cpp +++ b/src/modules/dcc/DccChatWindow.cpp @@ -81,8 +81,8 @@ extern DccBroker * g_pDccBroker; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -DccChatWindow::DccChatWindow(KviMainWindow *pFrm,DccDescriptor * dcc,const char * name) -: DccWindow(KviWindow::DccChat,pFrm,name,dcc) +DccChatWindow::DccChatWindow(DccDescriptor * dcc,const char * name) +: DccWindow(KviWindow::DccChat,name,dcc) { m_pButtonBox = new KviTalHBox(this); @@ -101,7 +101,7 @@ DccChatWindow::DccChatWindow(KviMainWindow *pFrm,DccDescriptor * dcc,const char m_pSplitter->setObjectName("dcc_chat_splitter"); m_pSplitter->setChildrenCollapsible(false); - m_pIrcView = new KviIrcView(m_pSplitter,pFrm,this); + m_pIrcView = new KviIrcView(m_pSplitter,this); connect(m_pIrcView,SIGNAL(rightClicked()),this,SLOT(textViewRightClicked())); m_pInput = new KviInput(this); @@ -319,7 +319,7 @@ void DccChatWindow::ownMessage(const QString &text, bool bUserFeedback) KviCString buf(KviCString::Format,"%s\r\n",encrypted.ptr()); m_pSlaveThread->sendRawData(buf.ptr(),buf.len()); if(bUserFeedback) - m_pFrm->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSGCRYPTED, + g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSGCRYPTED, m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(), m_pDescriptor->szLocalHost.toUtf8().data(),text,KviConsoleWindow::NoNotifications); } @@ -331,7 +331,7 @@ void DccChatWindow::ownMessage(const QString &text, bool bUserFeedback) if(bUserFeedback) { QString encr = decodeText(encrypted.ptr()); - m_pFrm->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG, + g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG, m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(), m_pDescriptor->szLocalHost.toUtf8().data(),encr,KviConsoleWindow::NoNotifications); } @@ -354,7 +354,7 @@ void DccChatWindow::ownMessage(const QString &text, bool bUserFeedback) m_pSlaveThread->sendRawData(buf.ptr(),buf.len()); if(bUserFeedback) - m_pFrm->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG, + g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG, m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(), m_pDescriptor->szLocalHost.toUtf8().data(),tmp,KviConsoleWindow::NoNotifications); return; @@ -366,7 +366,7 @@ void DccChatWindow::ownMessage(const QString &text, bool bUserFeedback) m_pSlaveThread->sendRawData(buf.ptr(),buf.len()); if(bUserFeedback) - m_pFrm->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG, + g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG, m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(), m_pDescriptor->szLocalHost.toUtf8().data(),text,KviConsoleWindow::NoNotifications); } @@ -431,7 +431,7 @@ bool DccChatWindow::event(QEvent *e) if(kvi_strEqualCIN("ACTION",d.ptr(),6))d.cutLeft(6); d.stripLeftWhiteSpace(); output(KVI_OUT_ACTION,"%Q %s",&(m_pDescriptor->szNick),d.ptr()); - if(!hasAttention()) + if(!hasAttention(KviWindow::MainWindowIsVisible)) { if(KVI_OPTION_BOOL(KviOption_boolFlashDccChatWindowOnNewMessages)) { @@ -462,7 +462,7 @@ bool DccChatWindow::event(QEvent *e) case KviCryptEngine::DecryptOkWasPlainText: if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatMessage,this,QString(decryptedStuff.ptr()),m_pDescriptor->idString())) { - m_pFrm->firstConsole()->outputPrivmsg(this,KVI_OUT_DCCCHATMSG, + g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_DCCCHATMSG, m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szUser.toUtf8().data(), m_pDescriptor->szHost.toUtf8().data(),decryptedStuff.ptr()); } @@ -485,10 +485,10 @@ bool DccChatWindow::event(QEvent *e) // FIXME! if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatMessage,this,QString(d.ptr()),m_pDescriptor->idString())) { - m_pFrm->firstConsole()->outputPrivmsg(this,KVI_OUT_DCCCHATMSG, + g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_DCCCHATMSG, m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szUser.toUtf8().data(), m_pDescriptor->szHost.toUtf8().data(),d.ptr()); - if(!hasAttention()) + if(!hasAttention(KviWindow::MainWindowIsVisible)) { if(KVI_OPTION_BOOL(KviOption_boolFlashDccChatWindowOnNewMessages)) { diff --git a/src/modules/dcc/DccChatWindow.h b/src/modules/dcc/DccChatWindow.h index 7a2eb1531..1bc80c202 100644 --- a/src/modules/dcc/DccChatWindow.h +++ b/src/modules/dcc/DccChatWindow.h @@ -69,7 +69,7 @@ class DccChatWindow : public DccWindow { Q_OBJECT public: - DccChatWindow(KviMainWindow *pFrm,DccDescriptor * dcc,const char * name); + DccChatWindow(DccDescriptor * dcc,const char * name); ~DccChatWindow(); QFrame * buttonContainer() { return (QFrame*)m_pButtonContainer; }; protected: diff --git a/src/modules/dcc/DccVideoWindow.cpp b/src/modules/dcc/DccVideoWindow.cpp index 166043a16..e2d5055a9 100644 --- a/src/modules/dcc/DccVideoWindow.cpp +++ b/src/modules/dcc/DccVideoWindow.cpp @@ -422,8 +422,8 @@ exit_dcc: m_fd = KVI_INVALID_SOCKET; } -DccVideoWindow::DccVideoWindow(KviMainWindow *pFrm,DccDescriptor * dcc,const char * name) -: DccWindow(KviWindow::DccVideo,pFrm,name,dcc) +DccVideoWindow::DccVideoWindow(DccDescriptor * dcc,const char * name) +: DccWindow(KviWindow::DccVideo,name,dcc) { m_pDescriptor = dcc; m_pSlaveThread = 0; @@ -450,7 +450,7 @@ DccVideoWindow::DccVideoWindow(KviMainWindow *pFrm,DccDescriptor * dcc,const cha m_pLayout = new QGridLayout(m_pContainerWidget); m_pContainerWidget->setLayout(m_pLayout); - m_pIrcView = new KviIrcView(this,pFrm,this); + m_pIrcView = new KviIrcView(this,this); connect(m_pIrcView,SIGNAL(rightClicked()),this,SLOT(textViewRightClicked())); m_pInput = new KviInput(this); @@ -822,7 +822,7 @@ bool DccVideoWindow::event(QEvent *e) d.cutLeft(6); d.stripLeftWhiteSpace(); output(KVI_OUT_ACTION,"%Q %s",&(m_pDescriptor->szNick),d.ptr()); - if(!hasAttention()) + if(!hasAttention(KviWindow::MainWindowIsVisible)) { if(KVI_OPTION_BOOL(KviOption_boolFlashDccChatWindowOnNewMessages)) { @@ -879,7 +879,7 @@ bool DccVideoWindow::event(QEvent *e) m_pFrm->firstConsole()->outputPrivmsg(this,KVI_OUT_DCCCHATMSG, m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szUser.toUtf8().data(), m_pDescriptor->szHost.toUtf8().data(),d.ptr()); - if(!hasAttention()) + if(!hasAttention(KviWindow::MainWindowIsVisible)) { if(KVI_OPTION_BOOL(KviOption_boolFlashDccChatWindowOnNewMessages)) { diff --git a/src/modules/dcc/DccVideoWindow.h b/src/modules/dcc/DccVideoWindow.h index edd6fd02a..d1ffa0c8d 100644 --- a/src/modules/dcc/DccVideoWindow.h +++ b/src/modules/dcc/DccVideoWindow.h @@ -109,7 +109,7 @@ class DccVideoWindow : public DccWindow Q_OBJECT friend class DccVideoThread; public: - DccVideoWindow(KviMainWindow *pFrm,DccDescriptor * dcc,const char * name); + DccVideoWindow(DccDescriptor * dcc,const char * name); ~DccVideoWindow(); protected: KviThemedLabel * m_pLabel; diff --git a/src/modules/dcc/DccVoiceWindow.cpp b/src/modules/dcc/DccVoiceWindow.cpp index 24ddcbd73..1dd451e4a 100644 --- a/src/modules/dcc/DccVoiceWindow.cpp +++ b/src/modules/dcc/DccVoiceWindow.cpp @@ -637,15 +637,15 @@ exit_dcc: } -DccVoiceWindow::DccVoiceWindow(KviMainWindow *pFrm,DccDescriptor * dcc,const char * name) -: DccWindow(KviWindow::DccVoice,pFrm,name,dcc) +DccVoiceWindow::DccVoiceWindow(DccDescriptor * dcc,const char * name) +: DccWindow(KviWindow::DccVoice,name,dcc) { m_pDescriptor = dcc; m_pSlaveThread = 0; m_pSplitter = new KviTalSplitter(Qt::Horizontal,this); m_pSplitter->setObjectName("dcc_window_splitter"); - m_pIrcView = new KviIrcView(m_pSplitter,pFrm,this); + m_pIrcView = new KviIrcView(m_pSplitter,this); m_pHBox = new KviTalHBox(this); diff --git a/src/modules/dcc/DccVoiceWindow.h b/src/modules/dcc/DccVoiceWindow.h index 73af363c0..01eb68bbe 100644 --- a/src/modules/dcc/DccVoiceWindow.h +++ b/src/modules/dcc/DccVoiceWindow.h @@ -107,7 +107,7 @@ class DccVoiceWindow : public DccWindow { Q_OBJECT public: - DccVoiceWindow(KviMainWindow *pFrm,DccDescriptor * dcc,const char * name); + DccVoiceWindow(DccDescriptor * dcc,const char * name); ~DccVoiceWindow(); protected: KviTalHBox * m_pHBox; diff --git a/src/modules/dcc/DccWindow.cpp b/src/modules/dcc/DccWindow.cpp index 4989fa5c2..d18dad460 100644 --- a/src/modules/dcc/DccWindow.cpp +++ b/src/modules/dcc/DccWindow.cpp @@ -26,8 +26,8 @@ #include "KviTalHBox.h" -DccWindow::DccWindow(KviWindow::Type eType,KviMainWindow * lpFrm,const char * name,DccDescriptor * d) -: KviWindow(eType,lpFrm,name, d->console()) +DccWindow::DccWindow(KviWindow::Type eType,const char * name,DccDescriptor * d) +: KviWindow(eType,name, d->console()) { m_pDescriptor = d; m_pDescriptor->setWindow(this); diff --git a/src/modules/dcc/DccWindow.h b/src/modules/dcc/DccWindow.h index 40c479cbf..69b5948d0 100644 --- a/src/modules/dcc/DccWindow.h +++ b/src/modules/dcc/DccWindow.h @@ -35,7 +35,7 @@ class DccWindow : public KviWindow, public DccMarshalOutputContext { Q_OBJECT public: - DccWindow(KviWindow::Type eType,KviMainWindow * lpFrm,const char * name,DccDescriptor * d); + DccWindow(KviWindow::Type eType,const char * name,DccDescriptor * d); ~DccWindow(); protected: DccDescriptor * m_pDescriptor; diff --git a/src/modules/dcc/libkvidcc.cpp b/src/modules/dcc/libkvidcc.cpp index c8df8bfda..801942199 100644 --- a/src/modules/dcc/libkvidcc.cpp +++ b/src/modules/dcc/libkvidcc.cpp @@ -90,7 +90,7 @@ static bool dcc_kvs_parse_default_parameters(DccDescriptor * d,KviKvsModuleComma delete d; c->error(__tr2qs_ctx("This window has no associated IRC context (an IRC context is required unless -c or -n are passed)","dcc")); return false; - } else d->setConsole(c->window()->frame()->firstConsole()); + } else d->setConsole(g_pMainWindow->firstConsole()); } KVI_ASSERT(d->console()); @@ -1280,7 +1280,7 @@ static bool dcc_module_cmd_canvas(KviModule *m,KviCommand *c) { // We don't need a console with -c and -n, otherwise we need it if(!(c->hasSwitch('c') || c->hasSwitch('n')))return c->noIrcContext(); - else d->console() = c->window()->frame()->firstConsole(); + else d->console() = g_pMainWindow->firstConsole(); } KVI_ASSERT(d->console()); diff --git a/src/modules/eventeditor/EventEditorWindow.cpp b/src/modules/eventeditor/EventEditorWindow.cpp index 46fbdb0ac..7991f5c80 100644 --- a/src/modules/eventeditor/EventEditorWindow.cpp +++ b/src/modules/eventeditor/EventEditorWindow.cpp @@ -511,8 +511,8 @@ void EventEditor::exportAllEvents() } -EventEditorWindow::EventEditorWindow(KviMainWindow * lpFrm) -: KviWindow(KviWindow::ScriptEditor,lpFrm,"eventeditor",0) +EventEditorWindow::EventEditorWindow() +: KviWindow(KviWindow::ScriptEditor, "eventeditor",0) { g_pEventEditorWindow = this; diff --git a/src/modules/eventeditor/EventEditorWindow.h b/src/modules/eventeditor/EventEditorWindow.h index cd0b0f105..88451e4a8 100644 --- a/src/modules/eventeditor/EventEditorWindow.h +++ b/src/modules/eventeditor/EventEditorWindow.h @@ -117,7 +117,7 @@ class EventEditorWindow : public KviWindow { Q_OBJECT public: - EventEditorWindow(KviMainWindow * lpFrm); + EventEditorWindow(); ~EventEditorWindow(); protected: EventEditor * m_pEditor; diff --git a/src/modules/eventeditor/libkvieventeditor.cpp b/src/modules/eventeditor/libkvieventeditor.cpp index cbde52a4c..b605aab34 100644 --- a/src/modules/eventeditor/libkvieventeditor.cpp +++ b/src/modules/eventeditor/libkvieventeditor.cpp @@ -45,12 +45,12 @@ EventEditorWindow * g_pEventEditorWindow = 0; Opens the script event editor dialog. */ -static bool eventeditor_kvs_cmd_open(KviKvsModuleCommandCall * c) +static bool eventeditor_kvs_cmd_open(KviKvsModuleCommandCall *) { if(!g_pEventEditorWindow) { - g_pEventEditorWindow = new EventEditorWindow(c->window()->frame()); - c->window()->frame()->addWindow(g_pEventEditorWindow); + g_pEventEditorWindow = new EventEditorWindow(); + g_pMainWindow->addWindow(g_pEventEditorWindow); } g_pEventEditorWindow->setFocus(); diff --git a/src/modules/filetransferwindow/FileTransferWindow.cpp b/src/modules/filetransferwindow/FileTransferWindow.cpp index 707277b5f..00a9c2aa5 100644 --- a/src/modules/filetransferwindow/FileTransferWindow.cpp +++ b/src/modules/filetransferwindow/FileTransferWindow.cpp @@ -236,8 +236,8 @@ QSize FileTransferItemDelegate::sizeHint(const QStyleOptionViewItem &, const QMo return QSize(((FileTransferWidget*)parent())->viewport()->size().width(), 68); } -FileTransferWindow::FileTransferWindow(KviModuleExtensionDescriptor * d,KviMainWindow * lpFrm) -: KviWindow(KviWindow::Tool,lpFrm,"file transfer window",0), KviModuleExtension(d) +FileTransferWindow::FileTransferWindow(KviModuleExtensionDescriptor * d) +: KviWindow(KviWindow::Tool,"file transfer window",0), KviModuleExtension(d) { g_pFileTransferWindow = this; setAutoFillBackground(false); @@ -272,7 +272,7 @@ FileTransferWindow::FileTransferWindow(KviModuleExtensionDescriptor * d,KviMainW QFontMetrics fm(font()); m_iLineSpacing = fm.lineSpacing(); - m_pIrcView = new KviIrcView(m_pVertSplitter,lpFrm,this); + m_pIrcView = new KviIrcView(m_pVertSplitter,this); m_pTableWidget->installEventFilter(this); diff --git a/src/modules/filetransferwindow/FileTransferWindow.h b/src/modules/filetransferwindow/FileTransferWindow.h index 2fcac8689..9fadaba19 100644 --- a/src/modules/filetransferwindow/FileTransferWindow.h +++ b/src/modules/filetransferwindow/FileTransferWindow.h @@ -91,7 +91,7 @@ class FileTransferWindow : public KviWindow, public KviModuleExtension friend class FileTransferItemDelegate; Q_OBJECT public: - FileTransferWindow(KviModuleExtensionDescriptor * d,KviMainWindow * lpFrm); + FileTransferWindow(KviModuleExtensionDescriptor * d); ~FileTransferWindow(); protected: QSplitter * m_pVertSplitter; diff --git a/src/modules/filetransferwindow/libkvifiletransferwindow.cpp b/src/modules/filetransferwindow/libkvifiletransferwindow.cpp index fde213de0..110760555 100644 --- a/src/modules/filetransferwindow/libkvifiletransferwindow.cpp +++ b/src/modules/filetransferwindow/libkvifiletransferwindow.cpp @@ -55,7 +55,7 @@ static KviModuleExtension * filetransferwindow_extension_alloc(KviModuleExtensio } } - g_pFileTransferWindow = new FileTransferWindow(s->pDescriptor,g_pMainWindow); + g_pFileTransferWindow = new FileTransferWindow(s->pDescriptor); g_pMainWindow->addWindow(g_pFileTransferWindow,!bCreateMinimized); if(bCreateMinimized)g_pFileTransferWindow->minimize(); return g_pFileTransferWindow; diff --git a/src/modules/help/HelpWidget.cpp b/src/modules/help/HelpWidget.cpp index a9b1e6997..449430289 100644 --- a/src/modules/help/HelpWidget.cpp +++ b/src/modules/help/HelpWidget.cpp @@ -50,7 +50,7 @@ extern KviPointerList<HelpWidget> * g_pHelpWidgetList; #define HIGHLIGHT_FLAGS QWebPage::HighlightAllOccurrences -HelpWidget::HelpWidget(QWidget * par,KviMainWindow *,bool bIsStandalone) +HelpWidget::HelpWidget(QWidget * par, bool bIsStandalone) : QWidget(par) { setObjectName("help_widget"); @@ -176,7 +176,7 @@ void HelpWidget::slotZoomOut() #else -HelpWidget::HelpWidget(QWidget * par,KviMainWindow *,bool bIsStandalone) +HelpWidget::HelpWidget(QWidget * par, bool bIsStandalone) : QWidget(par) { setObjectName("help_widget"); diff --git a/src/modules/help/HelpWidget.h b/src/modules/help/HelpWidget.h index 79f27b766..748a9d6e9 100644 --- a/src/modules/help/HelpWidget.h +++ b/src/modules/help/HelpWidget.h @@ -45,7 +45,7 @@ class HelpWidget : public QWidget { Q_OBJECT public: - HelpWidget(QWidget *par,KviMainWindow * lpFrm,bool bIsStandalone = false); + HelpWidget(QWidget *par, bool bIsStandalone = false); ~HelpWidget(); private: #ifdef COMPILE_WEBKIT_SUPPORT diff --git a/src/modules/help/HelpWindow.cpp b/src/modules/help/HelpWindow.cpp index 21b5192d7..c3602f4a9 100644 --- a/src/modules/help/HelpWindow.cpp +++ b/src/modules/help/HelpWindow.cpp @@ -48,15 +48,15 @@ extern KviPointerList<HelpWindow> * g_pHelpWindowList; extern KviPointerList<HelpWidget> * g_pHelpWidgetList; //bool g_bIndexingDone = FALSE; -HelpWindow::HelpWindow(KviMainWindow * lpFrm,const char * name) -: KviWindow(KviWindow::Help,lpFrm,name) +HelpWindow::HelpWindow(const char * name) +: KviWindow(KviWindow::Help,name) { g_pHelpWindowList->append(this); m_pSplitter = new KviTalSplitter(Qt::Horizontal,this); m_pSplitter->setObjectName("main_splitter"); m_pSplitter->setChildrenCollapsible(false); - m_pHelpWidget = new HelpWidget(m_pSplitter,lpFrm); + m_pHelpWidget = new HelpWidget(m_pSplitter); m_pToolBar=new KviTalVBox(m_pSplitter); m_pTabWidget = new QTabWidget(m_pToolBar); diff --git a/src/modules/help/HelpWindow.h b/src/modules/help/HelpWindow.h index ff5c1468f..cb7d4c62e 100644 --- a/src/modules/help/HelpWindow.h +++ b/src/modules/help/HelpWindow.h @@ -48,7 +48,7 @@ class HelpWindow : public KviWindow { Q_OBJECT public: - HelpWindow(KviMainWindow * lpFrm,const char * name); + HelpWindow(const char * name); ~HelpWindow(); protected: HelpWidget * m_pHelpWidget; diff --git a/src/modules/help/libkvihelp.cpp b/src/modules/help/libkvihelp.cpp index ff1f212a8..1162e97ee 100644 --- a/src/modules/help/libkvihelp.cpp +++ b/src/modules/help/libkvihelp.cpp @@ -177,7 +177,7 @@ static bool help_kvs_cmd_open(KviKvsModuleCommandCall * c) if(!c->switches()->find('n',"new")) { - HelpWidget * w = (HelpWidget *)c->window()->frame()->findChild<HelpWidget *>("help_widget"); + HelpWidget * w = (HelpWidget *)g_pMainWindow->findChild<HelpWidget *>("help_widget"); if(w) { @@ -191,16 +191,15 @@ static bool help_kvs_cmd_open(KviKvsModuleCommandCall * c) } if(c->switches()->find('m',"mdi")) { - HelpWindow *w = new HelpWindow(c->window()->frame(),"Help browser"); + HelpWindow *w = new HelpWindow("Help browser"); #ifdef COMPILE_WEBKIT_SUPPORT w->textBrowser()->load(QUrl::fromLocalFile(f.absoluteFilePath())); #else w->textBrowser()->setSource(QUrl::fromLocalFile(f.absoluteFilePath())); #endif - c->window()->frame()->addWindow(w); + g_pMainWindow->addWindow(w); } else { - HelpWidget *w = new HelpWidget(c->window()->frame()->splitter(), - c->window()->frame(),true); + HelpWidget *w = new HelpWidget(g_pMainWindow->splitter(), true); #ifdef COMPILE_WEBKIT_SUPPORT w->textBrowser()->load(QUrl::fromLocalFile(f.absoluteFilePath())); #else diff --git a/src/modules/iograph/libkviiograph.cpp b/src/modules/iograph/libkviiograph.cpp index e679edf2b..e0035137f 100644 --- a/src/modules/iograph/libkviiograph.cpp +++ b/src/modules/iograph/libkviiograph.cpp @@ -42,8 +42,8 @@ KviIOGraphWindow* g_pIOGraphWindow = 0; -KviIOGraphWindow::KviIOGraphWindow(KviModuleExtensionDescriptor * d,KviMainWindow * lpFrm,const char * name) -: KviWindow(KviWindow::IOGraph,lpFrm,name), KviModuleExtension(d) +KviIOGraphWindow::KviIOGraphWindow(KviModuleExtensionDescriptor * d, const char * name) +: KviWindow(KviWindow::IOGraph, name), KviModuleExtension(d) { m_pIOGraph = new KviIOGraphWidget(this); setAutoFillBackground(false); @@ -300,7 +300,7 @@ static KviModuleExtension * iograph_extension_alloc(KviModuleExtensionAllocStruc } } - g_pIOGraphWindow = new KviIOGraphWindow(s->pDescriptor,g_pMainWindow,"IOGraph Window"); + g_pIOGraphWindow = new KviIOGraphWindow(s->pDescriptor,"IOGraph Window"); g_pMainWindow->addWindow(g_pIOGraphWindow,!bCreateMinimized); if(bCreateMinimized)g_pIOGraphWindow->minimize(); diff --git a/src/modules/iograph/libkviiograph.h b/src/modules/iograph/libkviiograph.h index 8d6b35569..1c33141af 100644 --- a/src/modules/iograph/libkviiograph.h +++ b/src/modules/iograph/libkviiograph.h @@ -57,7 +57,7 @@ class KviIOGraphWindow : public KviWindow, public KviModuleExtension { Q_OBJECT public: - KviIOGraphWindow(KviModuleExtensionDescriptor * d,KviMainWindow * lpFrm,const char * name); + KviIOGraphWindow(KviModuleExtensionDescriptor * d, const char * name); ~KviIOGraphWindow(); private: KviIOGraphWidget * m_pIOGraph; diff --git a/src/modules/links/LinksWindow.cpp b/src/modules/links/LinksWindow.cpp index 88f7fdab4..9e0573401 100644 --- a/src/modules/links/LinksWindow.cpp +++ b/src/modules/links/LinksWindow.cpp @@ -44,8 +44,8 @@ extern KviPointerList<LinksWindow> * g_pLinksWindowList; -LinksWindow::LinksWindow(KviMainWindow * lpFrm,KviConsoleWindow * lpConsole) -: KviWindow(KviWindow::Links,lpFrm,"links",lpConsole), KviExternalServerDataParser() +LinksWindow::LinksWindow(KviConsoleWindow * lpConsole) +: KviWindow(KviWindow::Links,"links",lpConsole), KviExternalServerDataParser() { g_pLinksWindowList->append(this); @@ -83,7 +83,7 @@ LinksWindow::LinksWindow(KviMainWindow * lpFrm,KviConsoleWindow * lpConsole) connect(m_pListView,SIGNAL(rightButtonPressed(QTreeWidgetItem *,const QPoint &)), this,SLOT(showHostPopup(QTreeWidgetItem *,const QPoint &))); - m_pIrcView = new KviIrcView(m_pVertSplitter,lpFrm,this); + m_pIrcView = new KviIrcView(m_pVertSplitter,this); m_pLinkList = new KviPointerList<KviLink>; m_pLinkList->setAutoDelete(true); diff --git a/src/modules/links/LinksWindow.h b/src/modules/links/LinksWindow.h index 807596048..89c35b05e 100644 --- a/src/modules/links/LinksWindow.h +++ b/src/modules/links/LinksWindow.h @@ -61,7 +61,7 @@ class LinksWindow : public KviWindow, public KviExternalServerDataParser { Q_OBJECT public: - LinksWindow(KviMainWindow * lpFrm,KviConsoleWindow * lpConsole); + LinksWindow(KviConsoleWindow * lpConsole); ~LinksWindow(); protected: QSplitter * m_pVertSplitter; diff --git a/src/modules/links/libkvilinks.cpp b/src/modules/links/libkvilinks.cpp index caf5c205d..fdf5da23a 100644 --- a/src/modules/links/libkvilinks.cpp +++ b/src/modules/links/libkvilinks.cpp @@ -66,8 +66,8 @@ static bool links_kvs_cmd_open(KviKvsModuleCommandCall * c) if(!(c->window()->context()->linksWindow())) { - LinksWindow *w = new LinksWindow(c->window()->frame(),c->window()->console()); - c->window()->frame()->addWindow(w); + LinksWindow *w = new LinksWindow(c->window()->console()); + g_pMainWindow->addWindow(w); } else { c->warning(__tr2qs("Links window alread open for this IRC context")); } diff --git a/src/modules/list/ListWindow.cpp b/src/modules/list/ListWindow.cpp index b005f4420..a35dab66a 100644 --- a/src/modules/list/ListWindow.cpp +++ b/src/modules/list/ListWindow.cpp @@ -173,8 +173,8 @@ void ChannelTreeWidgetItemDelegate::paint(QPainter * p, const QStyleOptionViewIt } } -ListWindow::ListWindow(KviMainWindow * lpFrm, KviConsoleWindow * lpConsole) -: KviWindow(KviWindow::List,lpFrm,"list",lpConsole), KviExternalServerDataParser() +ListWindow::ListWindow(KviConsoleWindow * lpConsole) +: KviWindow(KviWindow::List,"list",lpConsole), KviExternalServerDataParser() { g_pListWindowList->append(this); @@ -261,7 +261,7 @@ ListWindow::ListWindow(KviMainWindow * lpFrm, KviConsoleWindow * lpConsole) connect(m_pTreeWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)),this,SLOT(itemDoubleClicked(QTreeWidgetItem *, int))); - m_pIrcView = new KviIrcView(m_pVertSplitter,lpFrm,this); + m_pIrcView = new KviIrcView(m_pVertSplitter,this); m_pConsole->context()->setListWindowPointer(this); connect(m_pConsole->context(),SIGNAL(stateChanged()),this,SLOT(connectionStateChange())); diff --git a/src/modules/list/ListWindow.h b/src/modules/list/ListWindow.h index 6decc0f8f..2c77e0453 100644 --- a/src/modules/list/ListWindow.h +++ b/src/modules/list/ListWindow.h @@ -93,7 +93,7 @@ class ListWindow : public KviWindow, public KviExternalServerDataParser { Q_OBJECT public: - ListWindow(KviMainWindow * lpFrm, KviConsoleWindow * lpConsole); + ListWindow(KviConsoleWindow * lpConsole); ~ListWindow(); protected: QSplitter * m_pVertSplitter; diff --git a/src/modules/list/libkvilist.cpp b/src/modules/list/libkvilist.cpp index 9491b5bac..9d8d6a2f7 100644 --- a/src/modules/list/libkvilist.cpp +++ b/src/modules/list/libkvilist.cpp @@ -55,8 +55,8 @@ static bool list_kvs_cmd_open(KviKvsModuleCommandCall * c) if(!(c->window()->context()->listWindow())) { - ListWindow * w = new ListWindow(c->window()->frame(),c->window()->console()); - c->window()->frame()->addWindow(w); + ListWindow * w = new ListWindow(c->window()->console()); + g_pMainWindow->addWindow(w); } else { c->warning(__tr2qs("List window already open for this IRC context")); } diff --git a/src/modules/logview/LogViewWindow.cpp b/src/modules/logview/LogViewWindow.cpp index 94c1cb678..c2b014896 100644 --- a/src/modules/logview/LogViewWindow.cpp +++ b/src/modules/logview/LogViewWindow.cpp @@ -84,8 +84,8 @@ void LogViewListView::mousePressEvent(QMouseEvent * pEvent) } -LogViewWindow::LogViewWindow(KviModuleExtensionDescriptor * pDesc, KviMainWindow * pMain) -: KviWindow(KviWindow::LogView,pMain,"log"),KviModuleExtension(pDesc) +LogViewWindow::LogViewWindow(KviModuleExtensionDescriptor * pDesc) +: KviWindow(KviWindow::LogView,"log"),KviModuleExtension(pDesc) { g_pLogViewWindow = this; //m_pLogViewWidget = new KviLogViewWidget(this); @@ -177,7 +177,7 @@ LogViewWindow::LogViewWindow(KviModuleExtensionDescriptor * pDesc, KviMainWindow pWidget->setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored); pLayout->addWidget(pWidget,11,1); - m_pIrcView = new KviIrcView(m_pSplitter,g_pMainWindow,this); + m_pIrcView = new KviIrcView(m_pSplitter,this); m_pIrcView->setMaxBufferSize(INT_MAX); m_pIrcView->setFocusPolicy(Qt::ClickFocus); diff --git a/src/modules/logview/LogViewWindow.h b/src/modules/logview/LogViewWindow.h index 5a2748130..6255a0398 100644 --- a/src/modules/logview/LogViewWindow.h +++ b/src/modules/logview/LogViewWindow.h @@ -62,7 +62,7 @@ class LogViewWindow : public KviWindow, public KviModuleExtension { Q_OBJECT public: - LogViewWindow(KviModuleExtensionDescriptor * pDesc, KviMainWindow * pMain); + LogViewWindow(KviModuleExtensionDescriptor * pDesc); ~LogViewWindow(); protected: KviPointerList<LogFile> m_logList; diff --git a/src/modules/logview/libkvilogview.cpp b/src/modules/logview/libkvilogview.cpp index 829473cbe..fe0b7cf87 100644 --- a/src/modules/logview/libkvilogview.cpp +++ b/src/modules/logview/libkvilogview.cpp @@ -94,7 +94,7 @@ static KviModuleExtension * logview_extension_alloc(KviModuleExtensionAllocStruc } } - g_pLogViewWindow = new LogViewWindow(s->pDescriptor,g_pMainWindow); + g_pLogViewWindow = new LogViewWindow(s->pDescriptor); g_pMainWindow->addWindow(g_pLogViewWindow,!bCreateMinimized); if(bCreateMinimized) g_pLogViewWindow->minimize(); diff --git a/src/modules/notifier/NotifierWindow.cpp b/src/modules/notifier/NotifierWindow.cpp index 289eae90d..651b2a77b 100644 --- a/src/modules/notifier/NotifierWindow.cpp +++ b/src/modules/notifier/NotifierWindow.cpp @@ -227,7 +227,7 @@ void NotifierWindow::addMessage(KviWindow * pWnd, const QString & szImageId, con if(pWnd) { - if(pWnd->hasAttention()) + if(pWnd->hasAttention(KviWindow::MainWindowIsVisible)) m_bDisableHideOnMainWindowGotAttention = true; } diff --git a/src/modules/notifier/NotifierWindowTab.cpp b/src/modules/notifier/NotifierWindowTab.cpp index 948b44fff..e49d97c78 100644 --- a/src/modules/notifier/NotifierWindowTab.cpp +++ b/src/modules/notifier/NotifierWindowTab.cpp @@ -151,14 +151,14 @@ void NotifierWindowTab::mouseDoubleClickEvent(QMouseEvent *) if(m_pWnd->mdiParent()) { - m_pWnd->frame()->raise(); - m_pWnd->frame()->setFocus(); - m_pWnd->frame()->setWindowState((m_pWnd->frame()->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); - if(!m_pWnd->frame()->isVisible()) - m_pWnd->frame()->show(); + g_pMainWindow->raise(); + g_pMainWindow->setFocus(); + g_pMainWindow->setWindowState((g_pMainWindow->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); + if(!g_pMainWindow->isVisible()) + g_pMainWindow->show(); } - m_pWnd->frame()->setActiveWindow(m_pWnd); + g_pMainWindow->setActiveWindow(m_pWnd); } void NotifierWindowTab::closeMe() diff --git a/src/modules/objects/KvsObject_window.cpp b/src/modules/objects/KvsObject_window.cpp index 49dfbaa3a..140050fdc 100644 --- a/src/modules/objects/KvsObject_window.cpp +++ b/src/modules/objects/KvsObject_window.cpp @@ -34,8 +34,8 @@ -KviKvsScriptWindowWindow::KviKvsScriptWindowWindow(KviMainWindow * pParent,const QString &szName) -: KviWindow(KviWindow::ScriptObject,pParent,szName) +KviKvsScriptWindowWindow::KviKvsScriptWindowWindow(const QString &szName) +: KviWindow(KviWindow::ScriptObject,szName) { m_pCentralWidget = 0; m_pIcon = 0; @@ -116,11 +116,11 @@ KVSO_BEGIN_DESTRUCTOR(KvsObject_window) g_pMainWindow->closeWindow(((KviKvsScriptWindowWindow *)widget())); KVSO_END_CONSTRUCTOR(KvsObject_window) -bool KvsObject_window::init(KviKvsRunTimeContext * pContext,KviKvsVariantList *) +bool KvsObject_window::init(KviKvsRunTimeContext *,KviKvsVariantList *) { - KviKvsScriptWindowWindow * w = new KviKvsScriptWindowWindow(pContext->window()->frame(),getName()); + KviKvsScriptWindowWindow * w = new KviKvsScriptWindowWindow(getName()); setObject(w); - pContext->window()->frame()->addWindow(w,false); + g_pMainWindow->addWindow(w,false); w->minimize(); // must be minimized before children are added, otherwise the focus handling goes nuts... return true; diff --git a/src/modules/objects/KvsObject_window.h b/src/modules/objects/KvsObject_window.h index b074f1e32..c118c5c89 100644 --- a/src/modules/objects/KvsObject_window.h +++ b/src/modules/objects/KvsObject_window.h @@ -34,7 +34,7 @@ class KviKvsScriptWindowWindow : public KviWindow { Q_OBJECT public: - KviKvsScriptWindowWindow(KviMainWindow * pParent,const QString &szName); + KviKvsScriptWindowWindow(const QString &szName); ~KviKvsScriptWindowWindow(); protected: KvsObject_widget * m_pCentralWidgetObject; diff --git a/src/modules/options/libkvioptions.cpp b/src/modules/options/libkvioptions.cpp index 074878b5e..61bd7f630 100644 --- a/src/modules/options/libkvioptions.cpp +++ b/src/modules/options/libkvioptions.cpp @@ -112,9 +112,9 @@ static bool options_kvs_cmd_dialog(KviKvsModuleCommandCall * c) d->setGeometry(0,0,d->width(),d->height()); } } else { - if(d->parent() != c->window()->frame()->splitter()) + if(d->parent() != g_pMainWindow->splitter()) { - d->setParent(c->window()->frame()->splitter()); + d->setParent(g_pMainWindow->splitter()); d->setGeometry(0,0,d->width(),d->height()); d->show(); } @@ -124,7 +124,7 @@ static bool options_kvs_cmd_dialog(KviKvsModuleCommandCall * c) { d = new OptionsDialog(0,szGroup); } else { - d = new OptionsDialog(c->window()->frame()->splitter(),szGroup); + d = new OptionsDialog(g_pMainWindow->splitter(),szGroup); } g_pOptionsDialogDict->insert(szGroup,d); } diff --git a/src/modules/popupeditor/PopupEditorWindow.cpp b/src/modules/popupeditor/PopupEditorWindow.cpp index a74b2bc92..19ba52ef0 100644 --- a/src/modules/popupeditor/PopupEditorWindow.cpp +++ b/src/modules/popupeditor/PopupEditorWindow.cpp @@ -1368,8 +1368,8 @@ void PopupEditorWidget::getUniquePopupName(MenuTreeWidgetItem *item,QString &buf } -PopupEditorWindow::PopupEditorWindow(KviMainWindow * lpFrm) -: KviWindow(KviWindow::ScriptEditor,lpFrm,"popupeditor",0) +PopupEditorWindow::PopupEditorWindow() +: KviWindow(KviWindow::ScriptEditor,"popupeditor",0) { g_pPopupEditorWindow = this; diff --git a/src/modules/popupeditor/PopupEditorWindow.h b/src/modules/popupeditor/PopupEditorWindow.h index cb2873502..2e31a96ad 100644 --- a/src/modules/popupeditor/PopupEditorWindow.h +++ b/src/modules/popupeditor/PopupEditorWindow.h @@ -186,7 +186,7 @@ class PopupEditorWindow : public KviWindow { Q_OBJECT public: - PopupEditorWindow(KviMainWindow * lpFrm); + PopupEditorWindow(); ~PopupEditorWindow(); protected: PopupEditorWidget * m_pEditor; diff --git a/src/modules/popupeditor/libkvipopupeditor.cpp b/src/modules/popupeditor/libkvipopupeditor.cpp index e405e44e3..9fb5beb5c 100644 --- a/src/modules/popupeditor/libkvipopupeditor.cpp +++ b/src/modules/popupeditor/libkvipopupeditor.cpp @@ -46,12 +46,12 @@ PopupEditorWindow * g_pPopupEditorWindow = 0; Opens the script popup editor dialog. */ -static bool popupeditor_kvs_cmd_open(KviKvsModuleCommandCall * c) +static bool popupeditor_kvs_cmd_open(KviKvsModuleCommandCall *) { if(!g_pPopupEditorWindow) { - g_pPopupEditorWindow = new PopupEditorWindow(c->window()->frame()); - c->window()->frame()->addWindow(g_pPopupEditorWindow); + g_pPopupEditorWindow = new PopupEditorWindow(); + g_pMainWindow->addWindow(g_pPopupEditorWindow); } g_pPopupEditorWindow->setFocus(); diff --git a/src/modules/raweditor/RawEditorWindow.cpp b/src/modules/raweditor/RawEditorWindow.cpp index 21c3476ce..6d3d67386 100644 --- a/src/modules/raweditor/RawEditorWindow.cpp +++ b/src/modules/raweditor/RawEditorWindow.cpp @@ -463,8 +463,8 @@ void RawEditorWidget::exportAllEvents() } -RawEditorWindow::RawEditorWindow(KviMainWindow * lpFrm) -: KviWindow(KviWindow::ScriptEditor,lpFrm,"raweditor",0) +RawEditorWindow::RawEditorWindow() +: KviWindow(KviWindow::ScriptEditor,"raweditor",0) { g_pRawEditorWindow = this; diff --git a/src/modules/raweditor/RawEditorWindow.h b/src/modules/raweditor/RawEditorWindow.h index 6d2d9823c..81f45b3b0 100644 --- a/src/modules/raweditor/RawEditorWindow.h +++ b/src/modules/raweditor/RawEditorWindow.h @@ -122,7 +122,7 @@ class RawEditorWindow : public KviWindow { Q_OBJECT public: - RawEditorWindow(KviMainWindow * lpFrm); + RawEditorWindow(); ~RawEditorWindow(); protected: RawEditorWidget * m_pEditor; diff --git a/src/modules/raweditor/libkviraweditor.cpp b/src/modules/raweditor/libkviraweditor.cpp index 350c3fbbe..73ebac4f2 100644 --- a/src/modules/raweditor/libkviraweditor.cpp +++ b/src/modules/raweditor/libkviraweditor.cpp @@ -46,12 +46,12 @@ RawEditorWindow * g_pRawEditorWindow = 0; Opens the script raw events editor dialog. */ -static bool raweditor_kvs_cmd_open(KviKvsModuleCommandCall * c) +static bool raweditor_kvs_cmd_open(KviKvsModuleCommandCall *) { if(!g_pRawEditorWindow) { - g_pRawEditorWindow = new RawEditorWindow(c->window()->frame()); - c->window()->frame()->addWindow(g_pRawEditorWindow); + g_pRawEditorWindow = new RawEditorWindow(); + g_pMainWindow->addWindow(g_pRawEditorWindow); } g_pRawEditorWindow->setFocus(); return true; diff --git a/src/modules/reguser/libkvireguser.cpp b/src/modules/reguser/libkvireguser.cpp index 1263b0471..8af75b4a3 100644 --- a/src/modules/reguser/libkvireguser.cpp +++ b/src/modules/reguser/libkvireguser.cpp @@ -119,9 +119,9 @@ static bool reguser_kvs_cmd_edit(KviKvsModuleCommandCall * c) g_pRegisteredUsersDialog->setParent(0); } } else { - if(g_pRegisteredUsersDialog->parent() != c->window()->frame()->splitter()) + if(g_pRegisteredUsersDialog->parent() != g_pMainWindow->splitter()) { - g_pRegisteredUsersDialog->setParent(c->window()->frame()->splitter()); + g_pRegisteredUsersDialog->setParent(g_pMainWindow->splitter()); } } } else { @@ -129,7 +129,7 @@ static bool reguser_kvs_cmd_edit(KviKvsModuleCommandCall * c) { g_pRegisteredUsersDialog = new RegisteredUsersDialog(0); } else { - g_pRegisteredUsersDialog = new RegisteredUsersDialog(c->window()->frame()->splitter()); + g_pRegisteredUsersDialog = new RegisteredUsersDialog(g_pMainWindow->splitter()); } } g_pRegisteredUsersDialog->show(); diff --git a/src/modules/sharedfileswindow/SharedFilesWindow.cpp b/src/modules/sharedfileswindow/SharedFilesWindow.cpp index b99aff87c..dee47083d 100644 --- a/src/modules/sharedfileswindow/SharedFilesWindow.cpp +++ b/src/modules/sharedfileswindow/SharedFilesWindow.cpp @@ -206,8 +206,8 @@ SharedFilesTreeWidgetItem::~SharedFilesTreeWidgetItem() } -SharedFilesWindow::SharedFilesWindow(KviModuleExtensionDescriptor * d,KviMainWindow * lpFrm) -: KviWindow(KviWindow::Tool,lpFrm,"shared files window",0), KviModuleExtension(d) +SharedFilesWindow::SharedFilesWindow(KviModuleExtensionDescriptor * d) +: KviWindow(KviWindow::Tool,"shared files window",0), KviModuleExtension(d) { g_pSharedFilesWindow = this; m_pSplitter = new KviTalSplitter(Qt::Horizontal,this); diff --git a/src/modules/sharedfileswindow/SharedFilesWindow.h b/src/modules/sharedfileswindow/SharedFilesWindow.h index 157d47044..0faad1be8 100644 --- a/src/modules/sharedfileswindow/SharedFilesWindow.h +++ b/src/modules/sharedfileswindow/SharedFilesWindow.h @@ -79,7 +79,7 @@ class SharedFilesWindow : public KviWindow, public KviModuleExtension friend class KviSharedFilesItem; Q_OBJECT public: - SharedFilesWindow(KviModuleExtensionDescriptor * d,KviMainWindow * lpFrm); + SharedFilesWindow(KviModuleExtensionDescriptor * d); ~SharedFilesWindow(); protected: QSplitter * m_pVertSplitter; diff --git a/src/modules/sharedfileswindow/libkvisharedfileswindow.cpp b/src/modules/sharedfileswindow/libkvisharedfileswindow.cpp index 4045db69b..e9bb1e74b 100644 --- a/src/modules/sharedfileswindow/libkvisharedfileswindow.cpp +++ b/src/modules/sharedfileswindow/libkvisharedfileswindow.cpp @@ -57,7 +57,7 @@ static KviModuleExtension * sharedfileswindow_extension_alloc(KviModuleExtension } } - g_pSharedFilesWindow = new SharedFilesWindow(s->pDescriptor,g_pMainWindow); + g_pSharedFilesWindow = new SharedFilesWindow(s->pDescriptor); g_pMainWindow->addWindow(g_pSharedFilesWindow,!bCreateMinimized); if(bCreateMinimized)g_pSharedFilesWindow->minimize(); return g_pSharedFilesWindow; diff --git a/src/modules/socketspy/SocketSpyWindow.cpp b/src/modules/socketspy/SocketSpyWindow.cpp index b0a8ad251..e2bd6dd1b 100644 --- a/src/modules/socketspy/SocketSpyWindow.cpp +++ b/src/modules/socketspy/SocketSpyWindow.cpp @@ -34,13 +34,13 @@ extern KviPointerList<SocketSpyWindow> * g_pSocketSpyWindowList; -SocketSpyWindow::SocketSpyWindow(KviMainWindow * lpFrm,KviConsoleWindow * lpConsole) -: KviWindow(KviWindow::SocketSpy,lpFrm,"socket_spy",lpConsole), KviIrcDataStreamMonitor(lpConsole->context()) +SocketSpyWindow::SocketSpyWindow(KviConsoleWindow * lpConsole) +: KviWindow(KviWindow::SocketSpy,"socket_spy",lpConsole), KviIrcDataStreamMonitor(lpConsole->context()) { g_pSocketSpyWindowList->append(this); m_pSplitter = new KviTalSplitter(Qt::Horizontal,this); setObjectName("spysocket_splitter"); - m_pIrcView = new KviIrcView(m_pSplitter,lpFrm,this); + m_pIrcView = new KviIrcView(m_pSplitter,this); // Ensure proper focusing //setFocusHandler(m_pIrcView,this); } diff --git a/src/modules/socketspy/SocketSpyWindow.h b/src/modules/socketspy/SocketSpyWindow.h index 181f25e57..4281132d2 100644 --- a/src/modules/socketspy/SocketSpyWindow.h +++ b/src/modules/socketspy/SocketSpyWindow.h @@ -34,7 +34,7 @@ class SocketSpyWindow : public KviWindow, public KviIrcDataStreamMonitor { Q_OBJECT public: - SocketSpyWindow(KviMainWindow * lpFrm,KviConsoleWindow * lpConsole); + SocketSpyWindow(KviConsoleWindow * lpConsole); ~SocketSpyWindow(); protected: virtual QPixmap * myIconPtr(); diff --git a/src/modules/socketspy/libkvisocketspy.cpp b/src/modules/socketspy/libkvisocketspy.cpp index 7b845e232..1d9854bec 100644 --- a/src/modules/socketspy/libkvisocketspy.cpp +++ b/src/modules/socketspy/libkvisocketspy.cpp @@ -52,8 +52,8 @@ KviPointerList<SocketSpyWindow> * g_pSocketSpyWindowList = 0; static bool socketspy_kvs_cmd_open(KviKvsModuleCommandCall * c) { if(!c->window()->console())return c->context()->errorNoIrcContext(); - SocketSpyWindow *w = new SocketSpyWindow(c->window()->frame(),c->window()->console()); - c->window()->frame()->addWindow(w); + SocketSpyWindow *w = new SocketSpyWindow(c->window()->console()); + g_pMainWindow->addWindow(w); return true; } diff --git a/src/modules/term/TermWidget.cpp b/src/modules/term/TermWidget.cpp index 21bcf2549..31c740901 100644 --- a/src/modules/term/TermWidget.cpp +++ b/src/modules/term/TermWidget.cpp @@ -46,7 +46,7 @@ extern KviPointerList<TermWidget> * g_pTermWidgetList; extern KviPointerList<TermWindow> * g_pTermWindowList; - TermWidget::TermWidget(QWidget * par,KviMainWindow *,bool bIsStandalone) + TermWidget::TermWidget(QWidget * par,bool bIsStandalone) : QFrame(par) { setObjectName("term_widget"); diff --git a/src/modules/term/TermWidget.h b/src/modules/term/TermWidget.h index fc917a5c1..ed12e90b1 100644 --- a/src/modules/term/TermWidget.h +++ b/src/modules/term/TermWidget.h @@ -41,7 +41,7 @@ Q_OBJECT Q_PROPERTY( int KviProperty_ChildFocusOwner READ dummy ) public: - TermWidget(QWidget * par,KviMainWindow * lpFrm,bool bIsStandalone = false); + TermWidget(QWidget * par,bool bIsStandalone = false); ~TermWidget(); private: KviTalHBox * m_pHBox; diff --git a/src/modules/term/TermWindow.cpp b/src/modules/term/TermWindow.cpp index 590f06cec..e72a8195b 100644 --- a/src/modules/term/TermWindow.cpp +++ b/src/modules/term/TermWindow.cpp @@ -36,12 +36,12 @@ extern KviPointerList<TermWidget> * g_pTermWidgetList; extern KviIconManager * g_pIconManager; - TermWindow::TermWindow(KviMainWindow * lpFrm,const char * name) - : KviWindow(KviWindow::Terminal,lpFrm,name) + TermWindow::TermWindow(const char * name) + : KviWindow(KviWindow::Terminal,name) { g_pTermWindowList->append(this); m_pTermWidget = 0; - m_pTermWidget = new TermWidget(this,lpFrm); + m_pTermWidget = new TermWidget(this); // Ensure proper focusing // setFocusHandler(m_pTermWidget->konsoleWidget(),this); } diff --git a/src/modules/term/TermWindow.h b/src/modules/term/TermWindow.h index a199173f0..a0f5367c6 100644 --- a/src/modules/term/TermWindow.h +++ b/src/modules/term/TermWindow.h @@ -36,7 +36,7 @@ { Q_OBJECT public: - TermWindow(KviMainWindow * lpFrm,const char * name); + TermWindow(const char * name); ~TermWindow(); protected: TermWidget * m_pTermWidget; diff --git a/src/modules/term/libkviterm.cpp b/src/modules/term/libkviterm.cpp index 8d7cebb4d..b87024a27 100644 --- a/src/modules/term/libkviterm.cpp +++ b/src/modules/term/libkviterm.cpp @@ -69,10 +69,10 @@ static bool term_kvs_cmd_open(KviKvsModuleCommandCall * c) c->module()->lock(); // multiple locks are allowed if(c->hasSwitch('m',"mdi")) { - TermWindow *w = new TermWindow(c->window()->frame(),"Terminal emulator"); - c->window()->frame()->addWindow(w); + TermWindow *w = new TermWindow("Terminal emulator"); + g_pMainWindow->addWindow(w); } else { - TermWidget *w = new TermWidget(c->window()->frame()->splitter(), c->window()->frame(),true); + TermWidget *w = new TermWidget(g_pMainWindow->splitter(), true); w->show(); } #else diff --git a/src/modules/trayicon/libkvitrayicon.cpp b/src/modules/trayicon/libkvitrayicon.cpp index 109411532..f8c797285 100644 --- a/src/modules/trayicon/libkvitrayicon.cpp +++ b/src/modules/trayicon/libkvitrayicon.cpp @@ -60,15 +60,16 @@ #endif extern KVIRC_API KviPointerHashTable<QString,KviWindow> * g_pGlobalWindowDict; -static KviPointerList<TrayIcon> * g_pTrayIconList = 0; +static KviTrayIconWidget * g_pTrayIcon = 0; static QPixmap * g_pDock1 = 0; static QPixmap * g_pDock2 = 0; static QPixmap * g_pDock3 = 0; -TrayIcon::TrayIcon(KviMainWindow * frm) -: QSystemTrayIcon(frm), m_CurrentPixmap(ICON_SIZE,ICON_SIZE) +KviTrayIconWidget::KviTrayIconWidget() +: QSystemTrayIcon(g_pMainWindow), m_CurrentPixmap(ICON_SIZE,ICON_SIZE) { + g_pTrayIcon = this; m_pContextPopup = new KviTalPopupMenu(0); setContextMenu(m_pContextPopup); @@ -81,11 +82,10 @@ TrayIcon::TrayIcon(KviMainWindow * frm) m_pFlashingTimer->setObjectName("flashing_timer"); connect( m_pFlashingTimer, SIGNAL(timeout()), this, SLOT(flashingTimerShot()) ); m_bFlashed=0; - g_pTrayIconList->append(this); - m_pFrm = frm; - m_pFrm->setDockExtension(this); - m_pTip = new KviDynamicToolTip(frm,"dock_tooltip"); + g_pMainWindow->setTrayIcon(this); + + m_pTip = new KviDynamicToolTip(g_pMainWindow,"dock_tooltip"); m_pAwayPopup = new KviTalPopupMenu(0); m_pTitleLabel = new QLabel(__tr2qs("<b>KVIrc</b>"),m_pContextPopup); @@ -121,10 +121,10 @@ TrayIcon::TrayIcon(KviMainWindow * frm) } -TrayIcon::~TrayIcon() +KviTrayIconWidget::~KviTrayIconWidget() { - m_pFrm->setDockExtension(0); - g_pTrayIconList->removeRef(this); + g_pTrayIcon=0; + g_pMainWindow->setTrayIcon(0); delete m_pAwayPopup; delete m_pTitleLabel; delete m_pTip; @@ -133,20 +133,20 @@ TrayIcon::~TrayIcon() } -void TrayIcon::executeInternalCommand(bool) +void KviTrayIconWidget::executeInternalCommand(bool) { int iCmd; bool bOk; iCmd=(((QAction*)QObject::sender())->data()).toInt(&bOk); - if(m_pFrm && bOk) - m_pFrm->executeInternalCommand(iCmd); + if(bOk) + g_pMainWindow->executeInternalCommand(iCmd); } -void TrayIcon::die() +void KviTrayIconWidget::die() { delete this; } -void TrayIcon::flashingTimerShot() +void KviTrayIconWidget::flashingTimerShot() { m_bFlashed=!m_bFlashed; refresh(); @@ -176,14 +176,14 @@ static const char * idlemsgs[NIDLEMSGS]= __tr("idle idle idle idle!") }; -bool TrayIcon::event(QEvent *e) +bool KviTrayIconWidget::event(QEvent *e) { if(e->type()==QEvent::ToolTip) { - QPoint pos= m_pFrm->mapFromGlobal(QCursor::pos()); + QPoint pos= g_pMainWindow->mapFromGlobal(QCursor::pos()); QString tmp; - KviWindowListBase * t = m_pFrm->windowListWidget(); + KviWindowListBase * t = g_pMainWindow->windowListWidget(); QString line; bool first = true; @@ -226,14 +226,14 @@ bool TrayIcon::event(QEvent *e) return false; } -//int TrayIcon::message(int,void *) +//int KviTrayIconWidget::message(int,void *) //{ // qDebug("Message"); // update(); // return 0; //} -void TrayIcon::doAway(bool) +void KviTrayIconWidget::doAway(bool) { int id; bool ok; @@ -289,9 +289,9 @@ void TrayIcon::doAway(bool) } } -void TrayIcon::fillContextPopup() +void KviTrayIconWidget::fillContextPopup() { - m_pToggleFrame->setText(m_pFrm->isVisible() ? __tr2qs("Hide Window") : __tr2qs("Show Window")); + m_pToggleFrame->setText(g_pMainWindow->isVisible() ? __tr2qs("Hide Window") : __tr2qs("Show Window")); if(g_pApp->topmostConnectedConsole()) { m_pAwayMenuId->setVisible(true); @@ -347,50 +347,50 @@ void TrayIcon::fillContextPopup() } } -void TrayIcon::toggleParentFrame() +void KviTrayIconWidget::toggleParentFrame() { qDebug("TrayIcon::toggleParentFrame()"); - if(m_pFrm->isMinimized()) + if(g_pMainWindow->isMinimized()) { qDebug("- frame is minimized"); - m_pFrm->setWindowState(m_pFrm->windowState() & (~Qt::WindowMinimized | Qt::WindowActive)); + g_pMainWindow->setWindowState(g_pMainWindow->windowState() & (~Qt::WindowMinimized | Qt::WindowActive)); if(KVI_OPTION_BOOL(KviOption_boolFrameIsMaximized)) { qDebug("- window was maximized so calling showMaximized()"); - m_pFrm->showMaximized(); + g_pMainWindow->showMaximized(); } else { qDebug("- window wasn't maximized so calling plain show()"); - m_pFrm->show(); + g_pMainWindow->show(); } #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) // raise it - SetForegroundWindow((HWND)m_pFrm->winId()); + SetForegroundWindow((HWND)g_pMainWindow->winId()); #endif - } else if(!m_pFrm->isVisible()) + } else if(!g_pMainWindow->isVisible()) { qDebug("- frame is not visible"); //restore mainwindow if(KVI_OPTION_BOOL(KviOption_boolFrameIsMaximized)) { qDebug("- window was maximized so calling showMaximized()"); - m_pFrm->showMaximized(); + g_pMainWindow->showMaximized(); } else { qDebug("- window wasn't maximized so calling plain show()"); - m_pFrm->show(); + g_pMainWindow->show(); } #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) // raise it - SetForegroundWindow((HWND)m_pFrm->winId()); + SetForegroundWindow((HWND)g_pMainWindow->winId()); #endif } else { - qDebug("- frame is visible: maximized state=%d, hiding",m_pFrm->isMaximized()); - KVI_OPTION_BOOL(KviOption_boolFrameIsMaximized) = m_pFrm->isMaximized(); - m_pFrm->hide(); + qDebug("- frame is visible: maximized state=%d, hiding",g_pMainWindow->isMaximized()); + KVI_OPTION_BOOL(KviOption_boolFrameIsMaximized) = g_pMainWindow->isMaximized(); + g_pMainWindow->hide(); } } -void TrayIcon::refresh() +void KviTrayIconWidget::refresh() { grabActivityInfo(); @@ -437,7 +437,7 @@ void TrayIcon::refresh() updateIcon(); } -void TrayIcon::activatedSlot( QSystemTrayIcon::ActivationReason reason ) +void KviTrayIconWidget::activatedSlot( QSystemTrayIcon::ActivationReason reason ) { switch(reason) { @@ -448,7 +448,7 @@ void TrayIcon::activatedSlot( QSystemTrayIcon::ActivationReason reason ) // This activates the context menu and is quite confusing if it *also* hides the kvirc window. // So on mac we only _show_ the main window if it's hidden and the CloseInTray option is enabled. if((KVI_OPTION_BOOL(KviOption_boolCloseInTray) || KVI_OPTION_BOOL(KviOption_boolMinimizeInTray)) - && ((!m_pFrm->isVisible()) || m_pFrm->isMinimized())) + && ((!g_pMainWindow->isVisible()) || g_pMainWindow->isMinimized())) toggleParentFrame(); #else //!COMPILE_ON_MAC // on other platforms we always toggle the window @@ -461,9 +461,9 @@ void TrayIcon::activatedSlot( QSystemTrayIcon::ActivationReason reason ) } } -void TrayIcon::grabActivityInfo() +void KviTrayIconWidget::grabActivityInfo() { - KviWindowListBase * t = m_pFrm->windowListWidget(); + KviWindowListBase * t = g_pMainWindow->windowListWidget(); if(KVI_OPTION_BOOL(KviOption_boolUseLevelBasedTrayNotification)) { @@ -553,21 +553,11 @@ void TrayIcon::grabActivityInfo() } } -void TrayIcon::updateIcon() +void KviTrayIconWidget::updateIcon() { setIcon(QIcon(m_CurrentPixmap)); } -static TrayIcon * trayicon_find(KviMainWindow *f) -{ - if(!g_pTrayIconList)return 0; - for(TrayIcon * w = g_pTrayIconList->first();w;w = g_pTrayIconList->next()) - { - if(w->frame() == f)return w; - } - return 0; -} - /* @doc: trayicon.show @type: @@ -575,38 +565,35 @@ static TrayIcon * trayicon_find(KviMainWindow *f) @title: trayicon.show @short: - Shows the dock widget for the current frame window + Shows the tray icon (dock widget) @keyterms: dock widget, system tray @syntax: trayicon.show @description: - Shows the dock widget for the current frame window.[br] - The dock widget is a small widget that docks in the KDE panel.[br] - It shows a small icon of the earth and eventually displays four squares + Shows the tray icon (sometimes called dock widget).[br] + The tray icon is a small widget that docks in the window manager panel.[br] + It shows a small kvirc icon and eventually displays four squares that cover this icon: the bottom left square appears when there is some new text in any console window, the square becomes red if the text is highlighted.[br] The bottom right square appears when there is some new text in any channel window, and it becomes red when the text is highlighted.[br] The upper right square refers to query windows and the upper left one to any other kind of window (dcc, links...).[br] - If you move the mouse over the dock widget a tooltip will show you the last lines + If you move the mouse over the tray icon a tooltip will show you the last lines of the "new" text in all these windows.[br] This is useful when you keep the main KVIrc window minimized and you're working on something else: - if the dock widget shows nothing but the earth icon, nothing is happening in the main KVIrc window. - If the dock widget shows one or more white (or red) squares, you can move the mouse over - and check what's happened exactly and eventually bring up the main KVIrc window by clicking on the widget.[br] - [big]tecnical details[/big] - The dock widget is currently working in KDE compilation mode only: - it relies on the KWin implementation of the Window Manager interaction protocol. + if the tray icon shows nothing but the kvirc icon, nothing is happening in the main KVIrc window. + If the tray icon shows one or more white (or red) squares, you can move the mouse over + and check what's happened exactly and eventually bring up the main KVIrc window by clicking on the icon.[br] @seealso: [cmd]trayicon.hide[/cmd] */ -static bool trayicon_kvs_cmd_show(KviKvsModuleCommandCall * c) +static bool trayicon_kvs_cmd_show(KviKvsModuleCommandCall *) { - if(!(trayicon_find(c->window()->frame()))) + if(g_pTrayIcon==0) { - TrayIcon * w = new TrayIcon(c->window()->frame()); + KviTrayIconWidget * w = new KviTrayIconWidget(); w->show(); } return true; @@ -619,24 +606,25 @@ static bool trayicon_kvs_cmd_show(KviKvsModuleCommandCall * c) @title: trayicon.hide @short: - Hides the dock widget for the current frame window + Hides the tray icon for the current frame window @syntax: trayicon.hide @description: - Hides the dock widget for the current frame window + Hides the tray icon for the current frame window @seealso: [cmd]trayicon.show[/cmd] */ -static bool trayicon_kvs_cmd_hide(KviKvsModuleCommandCall * c) +static bool trayicon_kvs_cmd_hide(KviKvsModuleCommandCall *) { - TrayIcon * w= trayicon_find(c->window()->frame()); - if(w)delete w; + if(g_pTrayIcon) + delete g_pTrayIcon; + g_pTrayIcon=0; + // show the parent frame.. otherwise there will be no way to get it back - if(!c->window()->frame()->isVisible()) - { - c->window()->frame()->show(); - } + if(!g_pMainWindow->isVisible()) + g_pMainWindow->show(); + return true; } @@ -656,13 +644,11 @@ static bool trayicon_kvs_cmd_hide(KviKvsModuleCommandCall * c) [cmd]trayicon.show[/cmd], [cmd]trayicon.hide[/cmd] */ -static bool trayicon_kvs_cmd_hidewindow(KviKvsModuleCommandCall * c) +static bool trayicon_kvs_cmd_hidewindow(KviKvsModuleCommandCall *) { - TrayIcon * w= trayicon_find(c->window()->frame()); - if(w) - { - c->window()->frame()->hide(); - } + if(g_pMainWindow) + g_pMainWindow->hide(); + return true; } @@ -684,7 +670,7 @@ static bool trayicon_kvs_cmd_hidewindow(KviKvsModuleCommandCall * c) static bool trayicon_kvs_fnc_isvisible(KviKvsModuleFunctionCall * c) { - c->returnValue()->setBoolean(trayicon_find(c->window()->frame())); + c->returnValue()->setBoolean(g_pTrayIcon!=0); return true; } @@ -715,10 +701,6 @@ static bool trayicon_module_init(KviModule * m) #endif g_pDock3 = new QPixmap(buffer); - g_pTrayIconList = new KviPointerList<TrayIcon>; - g_pTrayIconList->setAutoDelete(false); - - KVSM_REGISTER_SIMPLE_COMMAND(m,"hide",trayicon_kvs_cmd_hide); KVSM_REGISTER_SIMPLE_COMMAND(m,"hidewindow",trayicon_kvs_cmd_hidewindow); KVSM_REGISTER_SIMPLE_COMMAND(m,"show",trayicon_kvs_cmd_show); @@ -729,9 +711,8 @@ static bool trayicon_module_init(KviModule * m) static bool trayicon_module_cleanup(KviModule *) { - while(g_pTrayIconList->first())delete g_pTrayIconList->first(); - delete g_pTrayIconList; - g_pTrayIconList = 0; + delete g_pTrayIcon; + g_pTrayIcon = 0; delete g_pDock1; g_pDock1 = 0; @@ -747,7 +728,7 @@ static bool trayicon_module_cleanup(KviModule *) static bool trayicon_module_can_unload(KviModule *) { - return g_pTrayIconList->isEmpty(); + return g_pTrayIcon==0; } // ======================================= diff --git a/src/modules/trayicon/libkvitrayicon.h b/src/modules/trayicon/libkvitrayicon.h index 05d736bb8..801bad625 100644 --- a/src/modules/trayicon/libkvitrayicon.h +++ b/src/modules/trayicon/libkvitrayicon.h @@ -28,7 +28,7 @@ #include "kvi_settings.h" #include "KviMainWindow.h" -#include "KviDockExtension.h" +#include "KviTrayIcon.h" #include <QSystemTrayIcon> #include <QLabel> @@ -39,14 +39,13 @@ class KviTalPopupMenu; class KviDynamicToolTip; //class KviMainWindow; -class TrayIcon : public QSystemTrayIcon, public KviDockExtension +class KviTrayIconWidget : public QSystemTrayIcon, public KviTrayIcon { Q_OBJECT public: - TrayIcon(KviMainWindow * win); - ~TrayIcon(); + KviTrayIconWidget(); + ~KviTrayIconWidget(); protected: - KviMainWindow * m_pFrm; KviDynamicToolTip * m_pTip; KviTalPopupMenu * m_pContextPopup; KviTalPopupMenu * m_pAwayPopup; @@ -64,8 +63,6 @@ protected: unsigned int m_iQueries; unsigned int m_iOther; public: - KviMainWindow * frame(){ return m_pFrm; }; -public: virtual void refresh(); virtual void die(); void updateIcon(); diff --git a/src/modules/url/libkviurl.cpp b/src/modules/url/libkviurl.cpp index ea0209eae..ae914f879 100644 --- a/src/modules/url/libkviurl.cpp +++ b/src/modules/url/libkviurl.cpp @@ -160,7 +160,7 @@ KviUrlAction::~KviUrlAction() // ---------------------------- CLASS URLDIALOG ------------------------begin // UrlDialog::UrlDialog(KviPointerList<KviUrl> *) - :KviWindow(KviWindow::Tool,g_pMainWindow,"URL List") + :KviWindow(KviWindow::Tool,"URL List") { setAutoFillBackground(false); diff --git a/src/modules/window/UserWindow.cpp b/src/modules/window/UserWindow.cpp index eb3ec3b19..0a347a2cb 100644 --- a/src/modules/window/UserWindow.cpp +++ b/src/modules/window/UserWindow.cpp @@ -31,8 +31,8 @@ extern KviPointerList<UserWindow> * g_pUserWindowList; -UserWindow::UserWindow(KviMainWindow * pFrm, const char * pcName, QString &szIcon, KviConsoleWindow * pConsole, int iCreationFlags) -: KviWindow(KviWindow::UserWindow,pFrm,pcName,pConsole) +UserWindow::UserWindow(const char * pcName, QString &szIcon, KviConsoleWindow * pConsole, int iCreationFlags) +: KviWindow(KviWindow::UserWindow,pcName,pConsole) { g_pUserWindowList->append(this); @@ -41,25 +41,12 @@ UserWindow::UserWindow(KviMainWindow * pFrm, const char * pcName, QString &szIco m_szPlainTextCaption = pcName; fillSingleColorCaptionBuffers(m_szPlainTextCaption); - // Register ourselves - //connection()->registerChannel(this); - // Central splitter -// m_pSplitter = new QSplitter(QSplitter::Horizontal,this,"main_splitter"); - // Spitted vertially on the left -// m_pVertSplitter = new QSplitter(QSplitter::Vertical,m_pSplitter, -// "vertical_splitter"); - // With the IRC view over - m_pIrcView = new KviIrcView(this,pFrm,this); - // connect(m_pIrcView,SIGNAL(rightClicked()),this,SLOT(textViewRightClicked())); - // The userlist on the right -// m_pUserListView = new KviUserListView(m_pSplitter,connection()->userDataBase(),this, -// AVERAGE_CHANNEL_USERS,__tr2qs("User List"),"user_list_view"); - // And finally the input line on the bottom + m_pIrcView = new KviIrcView(this,this); + if(iCreationFlags & HasInput) m_pInput = new KviInput(this,0); else m_pInput = 0; - // applyOptions(); if(context()) context()->registerContextWindow(this); diff --git a/src/modules/window/UserWindow.h b/src/modules/window/UserWindow.h index 4ebc0e3a0..de66b099f 100644 --- a/src/modules/window/UserWindow.h +++ b/src/modules/window/UserWindow.h @@ -33,7 +33,7 @@ class UserWindow : public KviWindow public: enum CreationFlags { HasInput = 1 }; public: - UserWindow(KviMainWindow * pFrm, const char * pcName, QString & szIcon, KviConsoleWindow * pConsole = 0, int iCreationFlags = 0); + UserWindow(const char * pcName, QString & szIcon, KviConsoleWindow * pConsole = 0, int iCreationFlags = 0); ~UserWindow(); protected: QString m_szIcon; diff --git a/src/modules/window/libkviwindow.cpp b/src/modules/window/libkviwindow.cpp index 3e07730f5..67a47aa5b 100644 --- a/src/modules/window/libkviwindow.cpp +++ b/src/modules/window/libkviwindow.cpp @@ -1173,13 +1173,12 @@ static bool window_kvs_fnc_open(KviKvsModuleFunctionCall * c) } UserWindow * pWnd = new UserWindow( - c->window()->frame(), szCaption.toUtf8().data(), szIcon, pConsole, iFlags); - c->window()->frame()->addWindow(pWnd,!szFlags.contains('m')); + g_pMainWindow->addWindow(pWnd,!szFlags.contains('m')); if(szFlags.contains('m')) pWnd->minimize(); |
