diff options
Diffstat (limited to 'src/modules/filetransferwindow/libkvifiletransferwindow.cpp')
-rw-r--r-- | src/modules/filetransferwindow/libkvifiletransferwindow.cpp | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/src/modules/filetransferwindow/libkvifiletransferwindow.cpp b/src/modules/filetransferwindow/libkvifiletransferwindow.cpp new file mode 100644 index 00000000..6427e5eb --- /dev/null +++ b/src/modules/filetransferwindow/libkvifiletransferwindow.cpp @@ -0,0 +1,161 @@ +//================================================================================== +// +// File : libkvifiletransferwindow.cpp +// Creation date : Mon Apr 21 2003 23:14:12 CEST by Szymon Stefanek +// +// Copyright (C) 2003 Szymon Stefanek (pragma at kvirc dot net) +// +// This program is FREE software. You can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your opinion) any later version. +// +// This program is distributed in the HOPE that it will be USEFUL, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, write to the Free Software Foundation, +// Inc. ,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// +//================================================================================== + +#include "kvi_module.h" + + +#include "filetransferwindow.h" + +#include "kvi_app.h" +#include "kvi_frame.h" +#include "kvi_window.h" +#include "kvi_locale.h" +#include "kvi_iconmanager.h" + +#include <qsplitter.h> + +KviFileTransferWindow * 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 KviFileTransferWindow(s->pDescriptor,g_pFrame); + g_pFrame->addWindow(g_pFileTransferWindow,!bCreateMinimized); + if(bCreateMinimized)g_pFileTransferWindow->minimize(); + 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: + command + @title: + filetransferwindow.open + @short: + Opens the file transfer window + @syntax: + filetransferwindow.open [-m] [-n] + @switches: + !sw: -m + Causes the window to be created as minimized + !sw: -n + Causes the window to be not raised if already open + @description: + Opens the file transfer window +*/ + +static bool filetransferwindow_kvs_cmd_open(KviKvsModuleCommandCall * c) +{ + KviModuleExtensionDescriptor * d = c->module()->findExtensionDescriptor("tool",KVI_FILE_TRANSFER_WINDOW_EXTENSION_NAME); + + 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))); + + d->allocate(c->window(),&dict,0); + } else { + c->warning(__tr("Ops.. internal error")); + } + return true; +} + +static bool filetransferwindow_module_init(KviModule * m) +{ + KviModuleExtensionDescriptor * d = m->registerExtension("tool", + KVI_FILE_TRANSFER_WINDOW_EXTENSION_NAME, + __tr2qs("Manage File &Transfers"), + filetransferwindow_extension_alloc); + + if(d)d->setIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_FILETRANSFER))); + + + KVSM_REGISTER_SIMPLE_COMMAND(m,"open",filetransferwindow_kvs_cmd_open); + + + return true; +} + +static bool filetransferwindow_module_cleanup(KviModule *m) +{ + if(g_pFileTransferWindow) + { + delete g_pFileTransferWindow; + g_pFileTransferWindow = 0; + } + return true; +} + +static bool filetransferwindow_module_can_unload(KviModule *m) +{ + return (!g_pFileTransferWindow); +} + +KVIRC_MODULE( + "FileTransferWindow", + "1.0.0", + "Copyright (C) 2003 Szymon Stefanek (pragma at kvirc dot net)", + "Links window extension", + filetransferwindow_module_init, + filetransferwindow_module_can_unload, + 0, + filetransferwindow_module_cleanup +) |