diff options
| author | 2012-04-10 11:28:11 +0000 | |
|---|---|---|
| committer | 2012-04-10 11:28:11 +0000 | |
| commit | 1caf073a94f0dd9c57ca4ff52db02c100aa676b7 (patch) | |
| tree | 54009e222b10a84b03c4b4dc1d0af8b9a2f4f349 | |
| parent | updated italian translation (diff) | |
| download | KVIrc-1caf073a94f0dd9c57ca4ff52db02c100aa676b7.tar.gz KVIrc-1caf073a94f0dd9c57ca4ff52db02c100aa676b7.tar.bz2 KVIrc-1caf073a94f0dd9c57ca4ff52db02c100aa676b7.zip | |
fixed filetransferwindow window not opening up automatically
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@6136 17fca916-40b9-46aa-a4ea-0a15b648b75c
4 files changed, 67 insertions, 15 deletions
diff --git a/src/kvirc/kernel/KviFileTransfer.cpp b/src/kvirc/kernel/KviFileTransfer.cpp index f53f98274..82e77abd7 100644 --- a/src/kvirc/kernel/KviFileTransfer.cpp +++ b/src/kvirc/kernel/KviFileTransfer.cpp @@ -99,7 +99,7 @@ void KviFileTransferManager::invokeTransferWindow(KviWindow * pWnd,bool bCreateM d.replace("bNoRaise",new QVariant(bNoRaise)); KviModuleExtensionManager::instance()->allocateExtension( - "tool", + "transfer", KVI_FILE_TRANSFER_WINDOW_EXTENSION_NAME, pWnd,&d,0, "filetransferwindow"); diff --git a/src/modules/filetransferwindow/FileTransferWindow.cpp b/src/modules/filetransferwindow/FileTransferWindow.cpp index b30487f98..6c0239150 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() -: KviWindow(KviWindow::Tool,"file transfer window",0) +FileTransferWindow::FileTransferWindow(KviModuleExtensionDescriptor * d) +: KviWindow(KviWindow::Tool,"file transfer window",0), KviModuleExtension(d) { g_pFileTransferWindow = this; setAutoFillBackground(false); diff --git a/src/modules/filetransferwindow/FileTransferWindow.h b/src/modules/filetransferwindow/FileTransferWindow.h index 5672c4187..2a6ed35c0 100644 --- a/src/modules/filetransferwindow/FileTransferWindow.h +++ b/src/modules/filetransferwindow/FileTransferWindow.h @@ -85,13 +85,13 @@ public: void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const; }; -class FileTransferWindow : public KviWindow +class FileTransferWindow : public KviWindow, public KviModuleExtension { friend class FileTransferItem; friend class FileTransferItemDelegate; Q_OBJECT public: - FileTransferWindow(); + FileTransferWindow(KviModuleExtensionDescriptor * d); ~FileTransferWindow(); protected: QSplitter * m_pVertSplitter; diff --git a/src/modules/filetransferwindow/libkvifiletransferwindow.cpp b/src/modules/filetransferwindow/libkvifiletransferwindow.cpp index 23362253a..30a76f302 100644 --- a/src/modules/filetransferwindow/libkvifiletransferwindow.cpp +++ b/src/modules/filetransferwindow/libkvifiletransferwindow.cpp @@ -34,6 +34,50 @@ FileTransferWindow * g_pFileTransferWindow = 0; +static KviModuleExtension * filetransferwindow_extension_alloc(KviModuleExtensionAllocStruct * s) +{ + bool bCreateMinimized = false; + bool bNoRaise = false; + + if(!g_pFileTransferWindow) + { + if(s->pParams) + { + if(QVariant * v = s->pParams->find("bCreateMinimized")) + { + if(v->isValid()) + { + if(v->type() == QVariant::Bool) + { + bCreateMinimized = v->toBool(); + } + } + } + } + + g_pFileTransferWindow = new FileTransferWindow(s->pDescriptor); + g_pMainWindow->addWindow(g_pFileTransferWindow,!bCreateMinimized); + return g_pFileTransferWindow; + } + + if(s->pParams) + { + if(QVariant * v = s->pParams->find("bNoRaise")) + { + if(v) + { + if(v->isValid() && v->type() == QVariant::Bool) + bNoRaise = v->toBool(); + } + } + } + + if(!bNoRaise) + g_pFileTransferWindow->delayedAutoRaise(); + return g_pFileTransferWindow; +} + + /* @doc: filetransferwindow.open @type: @@ -55,25 +99,33 @@ FileTransferWindow * g_pFileTransferWindow = 0; static bool filetransferwindow_kvs_cmd_open(KviKvsModuleCommandCall * c) { - QString dummy; - bool bCreateMinimized = c->hasSwitch('m',dummy); - bool bNoRaise = c->hasSwitch('n',dummy); + KviModuleExtensionDescriptor * d = c->module()->findExtensionDescriptor("tool",KVI_FILE_TRANSFER_WINDOW_EXTENSION_NAME); - if(!g_pFileTransferWindow) + if(d) { + KviPointerHashTable<QString,QVariant> dict(17,true); + dict.setAutoDelete(true); + QString dummy; + dict.replace("bCreateMinimized",new QVariant(c->hasSwitch('m',dummy))); + dict.replace("bNoRaise",new QVariant(c->hasSwitch('n',dummy))); - g_pFileTransferWindow = new FileTransferWindow(); - g_pMainWindow->addWindow(g_pFileTransferWindow,!bCreateMinimized); - return true; + d->allocate(c->window(),&dict,0); + } else { + c->warning(__tr("Ops.. internal error")); } - - if(!bNoRaise) - g_pFileTransferWindow->delayedAutoRaise(); return true; } static bool filetransferwindow_module_init(KviModule * m) { + KviModuleExtensionDescriptor * d = m->registerExtension("transfer", + KVI_FILE_TRANSFER_WINDOW_EXTENSION_NAME, + __tr2qs("Manage File &Transfers"), + filetransferwindow_extension_alloc); + + if(d)d->setIcon(*(g_pIconManager->getSmallIcon(KviIconManager::FileTransfer))); + + KVSM_REGISTER_SIMPLE_COMMAND(m,"open",filetransferwindow_kvs_cmd_open); return true; |
