aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Fabio Bas2012-04-10 11:28:11 +0000
committerGravatar Fabio Bas2012-04-10 11:28:11 +0000
commit1caf073a94f0dd9c57ca4ff52db02c100aa676b7 (patch)
tree54009e222b10a84b03c4b4dc1d0af8b9a2f4f349
parentupdated italian translation (diff)
downloadKVIrc-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
-rw-r--r--src/kvirc/kernel/KviFileTransfer.cpp2
-rw-r--r--src/modules/filetransferwindow/FileTransferWindow.cpp4
-rw-r--r--src/modules/filetransferwindow/FileTransferWindow.h4
-rw-r--r--src/modules/filetransferwindow/libkvifiletransferwindow.cpp72
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;