diff options
| author | 2006-12-18 01:34:15 +0000 | |
|---|---|---|
| committer | 2006-12-18 01:34:15 +0000 | |
| commit | c75b9f00eaeee4b8503ba662b3d7ccc9e1914096 (patch) | |
| tree | a5e7ee244fa4124588a114732c4ecbc248c7c199 /src/modules/sharedfileswindow | |
| parent | Switching from cvs to svn, initial import (diff) | |
| download | KVIrc-c75b9f00eaeee4b8503ba662b3d7ccc9e1914096.tar.gz KVIrc-c75b9f00eaeee4b8503ba662b3d7ccc9e1914096.tar.bz2 KVIrc-c75b9f00eaeee4b8503ba662b3d7ccc9e1914096.zip | |
Switching from cvs to svn, initial import
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@14 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/sharedfileswindow')
| -rw-r--r-- | src/modules/sharedfileswindow/.svnignore | 9 | ||||
| -rw-r--r-- | src/modules/sharedfileswindow/Makefile.am | 22 | ||||
| -rw-r--r-- | src/modules/sharedfileswindow/caps/.svnignore | 10 | ||||
| -rw-r--r-- | src/modules/sharedfileswindow/caps/Makefile.am | 9 | ||||
| -rw-r--r-- | src/modules/sharedfileswindow/caps/sharedfileswindow | 0 | ||||
| -rw-r--r-- | src/modules/sharedfileswindow/kvisharedfileswindow.dsp | 132 | ||||
| -rw-r--r-- | src/modules/sharedfileswindow/kvisharedfileswindow.dsw | 29 | ||||
| -rw-r--r-- | src/modules/sharedfileswindow/libkvisharedfileswindow.cpp | 158 | ||||
| -rw-r--r-- | src/modules/sharedfileswindow/sharedfileswindow.cpp | 739 | ||||
| -rw-r--r-- | src/modules/sharedfileswindow/sharedfileswindow.h | 114 | ||||
| -rwxr-xr-x | src/modules/sharedfileswindow/sharedfileswindow.vcproj | 170 | ||||
| -rw-r--r-- | src/modules/sharedfileswindow/sharedfileswindow_vc05.vcproj | 257 |
12 files changed, 1649 insertions, 0 deletions
diff --git a/src/modules/sharedfileswindow/.svnignore b/src/modules/sharedfileswindow/.svnignore new file mode 100644 index 000000000..05942bc9e --- /dev/null +++ b/src/modules/sharedfileswindow/.svnignore @@ -0,0 +1,9 @@ +Makefile.in +Makefile +.deps +*.o +*.lo +*.la +*.moc +.libs +moc_editor.cpp diff --git a/src/modules/sharedfileswindow/Makefile.am b/src/modules/sharedfileswindow/Makefile.am new file mode 100644 index 000000000..f43e1e671 --- /dev/null +++ b/src/modules/sharedfileswindow/Makefile.am @@ -0,0 +1,22 @@ +############################################################################### +# KVirc IRC client Makefile - 10.03.2000 Szymon Stefanek <stefanek@tin.it> +############################################################################### + +SUBDIRS = caps + +AM_CPPFLAGS = -I$(SS_TOPSRCDIR)/src/kvilib/include/ -I$(SS_TOPSRCDIR)/src/kvirc/include/ \ +$(SS_INCDIRS) $(SS_CPPFLAGS) -DGLOBAL_KVIRC_DIR=\"$(globalkvircdir)\" + +pluglib_LTLIBRARIES = libkvisharedfileswindow.la + +libkvisharedfileswindow_la_LDFLAGS = -module -avoid-version $(SS_LDFLAGS) $(SS_LIBDIRS) + +libkvisharedfileswindow_la_SOURCES = libkvisharedfileswindow.cpp sharedfileswindow.cpp +libkvisharedfileswindow_la_LIBADD = $(SS_LIBLINK) ../../kvilib/build/libkvilib.la + +noinst_HEADERS= sharedfileswindow.h + +m_%.moc: %.h + $(SS_QT_MOC) $< -o $@ + +sharedfileswindow.cpp: m_sharedfileswindow.moc diff --git a/src/modules/sharedfileswindow/caps/.svnignore b/src/modules/sharedfileswindow/caps/.svnignore new file mode 100644 index 000000000..3ebe7fb0c --- /dev/null +++ b/src/modules/sharedfileswindow/caps/.svnignore @@ -0,0 +1,10 @@ +Makefile.in +Makefile +.deps +*.o +*.lo +*.la +*.moc +.libs +.mospics +.pics
\ No newline at end of file diff --git a/src/modules/sharedfileswindow/caps/Makefile.am b/src/modules/sharedfileswindow/caps/Makefile.am new file mode 100644 index 000000000..bc03ac241 --- /dev/null +++ b/src/modules/sharedfileswindow/caps/Makefile.am @@ -0,0 +1,9 @@ +############################################################################### +# KVirc IRC client Makefile - 10.03.2000 Szymon Stefanek <stefanek@tin.it> +############################################################################### + +tmpdir = $(pluglibdir)/caps/tool/ + +tmp_DATA= sharedfileswindow + +EXTRA_DIST = $(tmp_DATA) diff --git a/src/modules/sharedfileswindow/caps/sharedfileswindow b/src/modules/sharedfileswindow/caps/sharedfileswindow new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/modules/sharedfileswindow/caps/sharedfileswindow diff --git a/src/modules/sharedfileswindow/kvisharedfileswindow.dsp b/src/modules/sharedfileswindow/kvisharedfileswindow.dsp new file mode 100644 index 000000000..0c3c5a511 --- /dev/null +++ b/src/modules/sharedfileswindow/kvisharedfileswindow.dsp @@ -0,0 +1,132 @@ +# Microsoft Developer Studio Project File - Name="kvisharedfileswindow" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=kvisharedfileswindow - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "kvisharedfileswindow.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "kvisharedfileswindow.mak" CFG="kvisharedfileswindow - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "kvisharedfileswindow - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "kvisharedfileswindow - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "kvisharedfileswindow - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACTION_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "_$(QTDIR)\include" /I "$(QTDIR)\include" /I "..\..\kvilib\tal" /I "..\..\kvilib\system" /I "..\..\kvilib\irc" /I "..\..\kvilib\file" /I "..\..\kvilib\ext" /I "..\..\kvilib\net" /I "..\..\kvilib\core\wstring" /I "..\..\kvilib\core" /I "..\..\kvilib\config" /I "..\..\kvirc\kvs" /I "..\..\kvirc\module" /I "..\..\kvirc\uparser\scripttoolbar" /I "..\..\kvirc\uparser" /I "..\..\kvirc\sparser" /I "..\..\kvirc\kernel" /I "..\..\kvirc\ui" /I "C:\ssl" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACTION_EXPORTS" /D "QT_DLL" /D "QT_THREAD_SUPPORT" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 imm32.lib wsock32.lib winmm.lib $(QTDIR)\lib\qt-mtnc321.lib $(QTDIR)\lib\qtmain.lib libeay32.lib SSLeay32.lib ws2_32.lib kvilib.lib kvirc.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /dll /machine:I386 /out:"..\..\..\win32build\bin\modules\kvisharedfileswindow.dll" /libpath:"C:\OpenSSL\lib\VC" /libpath:"..\..\kvilib\Release" /libpath:"..\..\kvirc\Release" + +!ELSEIF "$(CFG)" == "kvisharedfileswindow - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACTION_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "_$(QTDIR)\include" /I "$(QTDIR)\include" /I "..\..\kvilib\tal" /I "..\..\kvilib\system" /I "..\..\kvilib\irc" /I "..\..\kvilib\file" /I "..\..\kvilib\ext" /I "..\..\kvilib\net" /I "..\..\kvilib\core\wstring" /I "..\..\kvilib\core" /I "..\..\kvilib\config" /I "..\..\kvirc\kvs" /I "..\..\kvirc\module" /I "..\..\kvirc\uparser\scripttoolbar" /I "..\..\kvirc\uparser" /I "..\..\kvirc\sparser" /I "..\..\kvirc\kernel" /I "..\..\kvirc\ui" /I "C:\ssl" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACTION_EXPORTS" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 odbc32.lib odbccp32.lib $(QTDIR)\lib\qt-mtnc321.lib $(QTDIR)\lib\qtmain.lib libeay32.lib SSLeay32.lib ws2_32.lib kvilib.lib kvirc.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /dll /debug /machine:I386 /out:"..\..\..\win32build\KviDebug\modules\kvisharedfileswindow.dll" /pdbtype:sept /libpath:"C:\OpenSSL\lib\VC" /libpath:"..\..\kvilib\Debug" /libpath:"..\..\kvirc\Debug" + +!ENDIF + +# Begin Target + +# Name "kvisharedfileswindow - Win32 Release" +# Name "kvisharedfileswindow - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\libkvisharedfileswindow.cpp +# End Source File +# Begin Source File + +SOURCE=.\sharedfileswindow.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\sharedfileswindow.h + +!IF "$(CFG)" == "kvisharedfileswindow - Win32 Release" + +# Begin Custom Build +InputDir=. +InputPath=.\sharedfileswindow.h +InputName=sharedfileswindow + +"$(InputDir)\m_$(InputName).moc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + %qtdir%\bin\moc.exe $(InputDir)\$(InputName).h -o $(InputDir)\m_$(InputName).moc + +# End Custom Build + +!ELSEIF "$(CFG)" == "kvisharedfileswindow - Win32 Debug" + +!ENDIF + +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/src/modules/sharedfileswindow/kvisharedfileswindow.dsw b/src/modules/sharedfileswindow/kvisharedfileswindow.dsw new file mode 100644 index 000000000..8303aad15 --- /dev/null +++ b/src/modules/sharedfileswindow/kvisharedfileswindow.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "kvisharedfileswindow"=.\kvisharedfileswindow.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/src/modules/sharedfileswindow/libkvisharedfileswindow.cpp b/src/modules/sharedfileswindow/libkvisharedfileswindow.cpp new file mode 100644 index 000000000..dc774a4f7 --- /dev/null +++ b/src/modules/sharedfileswindow/libkvisharedfileswindow.cpp @@ -0,0 +1,158 @@ +//================================================================================== +// +// File : libkvisharedfileswindow.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. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// +//================================================================================== + +#include "kvi_module.h" + + +#include "sharedfileswindow.h" + +#include "kvi_app.h" +#include "kvi_frame.h" +#include "kvi_window.h" +#include "kvi_locale.h" +#include "kvi_iconmanager.h" + +#include <qsplitter.h> + +#define KVI_SHARED_FILES_WINDOW_EXTENSION_NAME "Shared files window extension" + +KviSharedFilesWindow * g_pSharedFilesWindow = 0; + +static KviModuleExtension * sharedfileswindow_extension_alloc(KviModuleExtensionAllocStruct * s) +{ + bool bCreateMinimized = false; + bool bNoRaise = false; + + if(!g_pSharedFilesWindow) + { + if(s->pParams) + { + if(QVariant * v = s->pParams->find("bCreateMinimized")) + { + if(v->isValid()) + { + if(v->type() == QVariant::Bool) + { + bCreateMinimized = v->toBool(); + } + } + } + } + + g_pSharedFilesWindow = new KviSharedFilesWindow(s->pDescriptor,g_pFrame); + g_pFrame->addWindow(g_pSharedFilesWindow,!bCreateMinimized); + if(bCreateMinimized)g_pSharedFilesWindow->minimize(); + return g_pSharedFilesWindow; + } + + 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_pSharedFilesWindow->delayedAutoRaise(); + return g_pSharedFilesWindow; +} + + +/* + @doc: sharedfileswindow.open + @type: + command + @title: + sharedfileswindow.open + @short: + Opens the shared files window + @syntax: + sharedfileswindow.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 shared files window +*/ + +static bool sharedfileswindow_kvs_cmd_open(KviKvsModuleCommandCall * c) +{ + KviModuleExtensionDescriptor * d = c->module()->findExtensionDescriptor("tool",KVI_SHARED_FILES_WINDOW_EXTENSION_NAME); + if(d) + { + QDict<QVariant> dict(17,true); + dict.setAutoDelete(true); + dict.replace("bCreateMinimized",new QVariant(c->hasSwitch('m',"minimized"))); + dict.replace("bNoRaise",new QVariant(c->hasSwitch('n',"noraise"))); + + d->allocate(c->window(),&dict,0); + } else { + c->warning("Ops.. internal error"); + } + return true; +} + +static bool sharedfileswindow_module_init(KviModule * m) +{ + KviModuleExtensionDescriptor * d = m->registerExtension("tool", + KVI_SHARED_FILES_WINDOW_EXTENSION_NAME, + __tr2qs_ctx("Manage S&hared Files","sharedfileswindow"), + sharedfileswindow_extension_alloc); + + if(d)d->setIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SHAREDFILES))); + + KVSM_REGISTER_SIMPLE_COMMAND(m,"open",sharedfileswindow_kvs_cmd_open); + return true; +} + +static bool sharedfileswindow_module_cleanup(KviModule *m) +{ + if(g_pSharedFilesWindow) + { + delete g_pSharedFilesWindow; + g_pSharedFilesWindow = 0; + } + return true; +} + +static bool sharedfileswindow_module_can_unload(KviModule *m) +{ + return (!g_pSharedFilesWindow); +} + +KVIRC_MODULE( + "SharedFilesWindow", + "1.0.0", + "Copyright (C) 2003 Szymon Stefanek (pragma at kvirc dot net)", + "Shared files window extension", + sharedfileswindow_module_init, + sharedfileswindow_module_can_unload, + 0, + sharedfileswindow_module_cleanup +) diff --git a/src/modules/sharedfileswindow/sharedfileswindow.cpp b/src/modules/sharedfileswindow/sharedfileswindow.cpp new file mode 100644 index 000000000..7d673aa3b --- /dev/null +++ b/src/modules/sharedfileswindow/sharedfileswindow.cpp @@ -0,0 +1,739 @@ +//================================================================================== +// +// File : sharedfileswindow.cpp +// Creation date : Mon Apr 21 2003 23:14:12 CEST by Szymon Stefanek +// +// This file is part of the KVirc irc client distribution +// Copyright (C) 1999-2001 Szymon Stefanek (pragma at kvirc dot net) +// +// This program is FREE software. You can redistribute it and/or +// modify it under the linkss 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. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// +//================================================================================== + +#include "sharedfileswindow.h" + +#include "kvi_debug.h" +#include "kvi_iconmanager.h" +#include "kvi_ircview.h" +#include "kvi_out.h" +#include "kvi_options.h" +#include "kvi_locale.h" +#include "kvi_out.h" +#include "kvi_mirccntrl.h" +#include "kvi_themedlabel.h" +#include "kvi_input.h" +#include "kvi_filedialog.h" +#include "kvi_styled_controls.h" + +#include <qdatetimeedit.h> +#include <qlabel.h> +#include <qlineedit.h> +#include <qpushbutton.h> +#include <qsplitter.h> +#include <qhbox.h> +#include <qvbox.h> +#include <qlayout.h> +#include <qcheckbox.h> +#include <qmessagebox.h> +#include <qfileinfo.h> + +extern KviSharedFilesWindow * g_pSharedFilesWindow; +extern KVIRC_API KviSharedFilesManager * g_pSharedFilesManager; + +KviSharedFileEditDialog::KviSharedFileEditDialog(QWidget * par,KviSharedFile * f) +: QDialog(par,"shared_file_editor",true) +{ + QGridLayout * g = new QGridLayout(this,1,1,11,6); + + setCaption(__tr2qs_ctx("Edit Shared File - KVIrc","sharedfileswindow")); + + QLabel * l = new QLabel(__tr2qs_ctx("Share name:","sharedfileswindow"),this); + g->addWidget(l, 0, 0 ); + + m_pShareNameEdit = new QLineEdit(this); + g->addMultiCellWidget( m_pShareNameEdit, 0, 0, 1, 3 ); + + l = new QLabel(__tr2qs_ctx("File path:","sharedfileswindow"),this); + g->addWidget(l, 1, 0 ); + + m_pFilePathEdit = new QLineEdit(this); + g->addMultiCellWidget( m_pFilePathEdit, 1, 1, 1, 2 ); + + m_pBrowseButton = new QPushButton(__tr2qs_ctx("&Browse...","sharedfileswindow"),this); + g->addWidget( m_pBrowseButton, 1, 3 ); + connect(m_pBrowseButton,SIGNAL(clicked()),this,SLOT(browse())); + + l = new QLabel(__tr2qs_ctx("User mask:","sharedfileswindow"),this); + g->addWidget(l, 2, 0 ); + + m_pUserMaskEdit = new QLineEdit(this); + g->addMultiCellWidget( m_pUserMaskEdit, 2, 2, 1, 3 ); + + m_pExpireCheckBox = new KviStyledCheckBox(__tr2qs_ctx("Expire at:","sharedfileswindow"),this); + g->addWidget(m_pExpireCheckBox,3,0); + + m_pExpireDateTimeEdit = new QDateTimeEdit(this); + g->addMultiCellWidget(m_pExpireDateTimeEdit, 3, 3, 1, 3 ); + + connect(m_pExpireCheckBox,SIGNAL(toggled(bool)),m_pExpireDateTimeEdit,SLOT(setEnabled(bool))); + + QPushButton * pb; + + pb = new QPushButton(__tr2qs_ctx("&OK","sharedfileswindow"),this); + connect(pb,SIGNAL(clicked()),this,SLOT(okClicked())); + pb->setIconSet(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_ACCEPT))); + g->addWidget(pb,5,2); + pb = new QPushButton(__tr2qs_ctx("Cancel","sharedfileswindow"),this); + connect(pb,SIGNAL(clicked()),this,SLOT(reject())); + pb->setIconSet(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_DISCARD))); + g->addWidget(pb,5,3); + + g->setRowStretch(4,1); + g->setColStretch(0,1); + + if(f) + { + m_pShareNameEdit->setText(f->name()); + m_pFilePathEdit->setText(f->absFilePath()); + m_pUserMaskEdit->setText(f->userMask()); + QDateTime dt; + dt.setTime_t(f->expireTime()); + m_pExpireDateTimeEdit->setDateTime(dt); + m_pExpireCheckBox->setChecked(f->expires()); + m_pExpireDateTimeEdit->setEnabled(f->expires()); + } else { + m_pExpireCheckBox->setChecked(false); + m_pExpireDateTimeEdit->setDateTime(QDateTime::currentDateTime()); + m_pExpireDateTimeEdit->setEnabled(false); + } + +} + +KviSharedFileEditDialog::~KviSharedFileEditDialog() +{ + +} + +void KviSharedFileEditDialog::browse() +{ + QString szBuf; + QString szTxt = m_pFilePathEdit->text(); + if(!KviFileDialog::askForOpenFileName(szBuf,__tr2qs("Choose the file to share"),szTxt))return; + m_pFilePathEdit->setText(szBuf); +} + +KviSharedFile * KviSharedFileEditDialog::getResult() +{ + QString szName = m_pShareNameEdit->text(); + QString szPath = m_pFilePathEdit->text(); + QString szMask = m_pUserMaskEdit->text(); + QDateTime dt = m_pExpireDateTimeEdit->dateTime(); + bool bExpires = m_pExpireCheckBox->isChecked(); + QFileInfo f(szPath); + return new KviSharedFile(szName,szPath,szMask,bExpires ? dt.toTime_t() : (time_t)0,f.size()); +} + +void KviSharedFileEditDialog::okClicked() +{ + QString szName = m_pShareNameEdit->text(); + QString szPath = m_pFilePathEdit->text(); + QDateTime dt = m_pExpireDateTimeEdit->dateTime(); + bool bExpires = m_pExpireCheckBox->isChecked(); + if(bExpires && (dt <= QDateTime::currentDateTime())) + { + QMessageBox::warning(this,__tr2qs_ctx("Invalid expire time","sharedfileswindow"), + __tr2qs_ctx("The expire date/time is in the past: please either remove the \"expires\"" \ + "check mark or specify a expire date/time in the future","sharedfileswindow"), + __tr2qs_ctx("OK","sharedfileswindow")); + return; + } + + if(szName.isEmpty()) + { + QMessageBox::warning(this,__tr2qs_ctx("Invalid share name","sharedfileswindow"), + __tr2qs_ctx("The share name can't be empty, please correct it","sharedfileswindow"), + __tr2qs_ctx("OK","sharedfileswindow")); + return; + } + + QFileInfo f(szPath); + if(!(f.exists() && f.isFile() && f.isReadable())) + { + QMessageBox::warning(this,__tr2qs_ctx("Can't open the file","sharedfileswindow"), + __tr2qs_ctx("The file doesn't exist or it is not readable, please check the path","sharedfileswindow"), + __tr2qs_ctx("OK","sharedfileswindow")); + return; + } + + accept(); +} + + +KviSharedFilesListViewItem::KviSharedFilesListViewItem(QListView * lv,KviSharedFile * f) +: QListViewItem(lv,f->name()) +{ + setText(1,f->absFilePath()); + setText(2,f->userMask()); + if(f->expires()) + { + QDateTime dt; + dt.setTime_t(f->expireTime()); + setText(3,dt.toString()); + } else { + setText(3,__tr2qs_ctx("Never","sharedfileswindow")); + } + m_pSharedFilePointer = f; +} + +KviSharedFilesListViewItem::~KviSharedFilesListViewItem() +{ +} + + +KviSharedFilesWindow::KviSharedFilesWindow(KviModuleExtensionDescriptor * d,KviFrame * lpFrm) +: KviWindow(KVI_WINDOW_TYPE_TOOL,lpFrm,"shared files window",0) , KviModuleExtension(d) +{ + g_pSharedFilesWindow = this; + + m_pSplitter = new QSplitter(QSplitter::Horizontal,this,"splitter"); + + QVBox * vbox = new QVBox(m_pSplitter); + + m_pListView = new QListView(vbox); + //m_pListView->header()->hide(); + m_pListView->setAllColumnsShowFocus(true); + m_pListView->addColumn(__tr2qs_ctx("Name","sharedfileswindow"),200); + m_pListView->addColumn(__tr2qs_ctx("Filename","sharedfileswindow"),300); + m_pListView->addColumn(__tr2qs_ctx("Mask","sharedfileswindow"),200); + m_pListView->addColumn(__tr2qs_ctx("Expires","sharedfileswindow"),200); + m_pListView->setSelectionMode(QListView::Single); + connect(m_pListView,SIGNAL(selectionChanged()),this,SLOT(enableButtons())); + + connect(g_pSharedFilesManager,SIGNAL(sharedFilesChanged()),this,SLOT(fillFileView())); + connect(g_pSharedFilesManager,SIGNAL(sharedFileAdded(KviSharedFile *)),this,SLOT(sharedFileAdded(KviSharedFile *))); + connect(g_pSharedFilesManager,SIGNAL(sharedFileRemoved(KviSharedFile *)),this,SLOT(sharedFileRemoved(KviSharedFile *))); + + QHBox * b = new QHBox(vbox); + + m_pAddButton = new QPushButton(__tr2qs_ctx("&Add...","sharedfileswindow"),b); + connect(m_pAddButton,SIGNAL(clicked()),this,SLOT(addClicked())); + m_pRemoveButton = new QPushButton(__tr2qs_ctx("Re&move","sharedfileswindow"),b); + connect(m_pRemoveButton,SIGNAL(clicked()),this,SLOT(removeClicked())); + m_pEditButton = new QPushButton(__tr2qs_ctx("&Edit","sharedfileswindow"),b); + connect(m_pEditButton,SIGNAL(clicked()),this,SLOT(editClicked())); + + fillFileView(); +} + +KviSharedFilesWindow::~KviSharedFilesWindow() +{ + g_pSharedFilesWindow = 0; +} + +void KviSharedFilesWindow::enableButtons() +{ + QListViewItem * it = m_pListView->currentItem(); + m_pEditButton->setEnabled(it); + m_pRemoveButton->setEnabled(it); +} + +void KviSharedFilesWindow::removeClicked() +{ + KviSharedFilesListViewItem * it = (KviSharedFilesListViewItem *)m_pListView->currentItem(); + if(!it)return; + + g_pSharedFilesManager->removeSharedFile(it->readOnlySharedFilePointer()->name(),it->readOnlySharedFilePointer()); +} + +void KviSharedFilesWindow::addClicked() +{ + KviSharedFileEditDialog dlg(0); + if(dlg.exec() != QDialog::Accepted)return; + + KviSharedFile * f = dlg.getResult(); + if(!f)return; + g_pSharedFilesManager->addSharedFile(f); +} + +void KviSharedFilesWindow::editClicked() +{ + KviSharedFilesListViewItem * it = (KviSharedFilesListViewItem *)m_pListView->currentItem(); + if(!it)return; + + KviSharedFileEditDialog dlg(0,it->readOnlySharedFilePointer()); + if(dlg.exec() != QDialog::Accepted)return; + + KviSharedFilesListViewItem * it2 = (KviSharedFilesListViewItem *)m_pListView->currentItem(); + if(it2 != it)return; // ooops ? + KviSharedFile * f = dlg.getResult(); + if(!f)return; // ooops 2 ? + + g_pSharedFilesManager->removeSharedFile(it->readOnlySharedFilePointer()->name(),it->readOnlySharedFilePointer()); + g_pSharedFilesManager->addSharedFile(f); +} + +void KviSharedFilesWindow::fillFileView() +{ + m_pListView->clear(); + QDictIterator<KviSharedFileList> it(*(g_pSharedFilesManager->sharedFileListDict())); + + KviSharedFilesListViewItem * itm; + + while(KviSharedFileList * l = it.current()) + { + for(KviSharedFile * o = l->first();o;o = l->next()) + { + itm = new KviSharedFilesListViewItem(m_pListView,o); + } + ++it; + } + enableButtons(); +} + +void KviSharedFilesWindow::sharedFileAdded(KviSharedFile * f) +{ + KviSharedFilesListViewItem * it; + it = new KviSharedFilesListViewItem(m_pListView,f); + enableButtons(); +} + +void KviSharedFilesWindow::sharedFileRemoved(KviSharedFile * f) +{ + QListViewItem * it = m_pListView->firstChild(); + while(it) + { + if(((KviSharedFilesListViewItem *)it)->readOnlySharedFilePointer() == f) + { + delete ((KviSharedFilesListViewItem *)it); + return; + } + it = it->nextSibling(); + } + enableButtons(); +} + + + +/* +void KviSharedFilesWindow::tipRequest(KviDynamicToolTip * tip,const QPoint &pnt) +{ + + KviSharedFilesItem * it = (KviSharedFilesItem *)m_pListView->itemAt(pnt); + if(!it)return; + QString txt = it->transfer()->tipText(); + tip->tip(m_pListView->itemRect(it),txt); + +} +*/ +/* +void KviSharedFilesWindow::fillTransferView() +{ + KviPtrList<KviSharedFiles> * l = KviSharedFilesManager::instance()->transferList(); + if(!l)return; + KviSharedFilesItem * it; + for(KviSharedFiles * t = l->first();t;t = l->next()) + { + it = new KviSharedFilesItem(m_pListView,t); + t->setDisplayItem(it); + } +} + +KviSharedFilesItem * KviSharedFilesWindow::findItem(KviSharedFiles * t) +{ + KviSharedFilesItem * it = (KviSharedFilesItem *)m_pListView->firstChild(); + while(it) + { + if(it->transfer() == t)return it; + it = (KviSharedFilesItem *)(it->nextSibling()); + } + return 0; +} + +void KviSharedFilesWindow::transferRegistered(KviSharedFiles * t) +{ + KviSharedFilesItem * it = new KviSharedFilesItem(m_pListView,t); + //t->setDisplayItem(it); +} + +void KviSharedFilesWindow::transferUnregistering(KviSharedFiles * t) +{ + KviSharedFilesItem * it = findItem(t); + //t->setDisplayItem(0); + if(it)delete it; +} + +void KviSharedFilesWindow::rightButtonPressed(QListViewItem *it,const QPoint &pnt,int col) +{ + if(!m_pContextPopup)m_pContextPopup = new QPopupMenu(this); + if(!m_pLocalFilePopup)m_pLocalFilePopup = new QPopupMenu(this); + if(!m_pOpenFilePopup) + { + m_pOpenFilePopup= new QPopupMenu(this); + connect(m_pOpenFilePopup,SIGNAL(activated(int)),this,SLOT(openFilePopupActivated(int))); + } + + m_pContextPopup->clear(); + + int id; + + + if(it) + { + KviSharedFilesItem * i = (KviSharedFilesItem *)it; + if(i->transfer()) + { + + QString szFile = i->transfer()->localFileName(); + if(!szFile.isEmpty()) + { + m_pLocalFilePopup->clear(); + + QString tmp = "<b>file:/"; + tmp += szFile; + tmp += "</b><br>"; + + QFileInfo fi(szFile); + if(fi.exists()) + { + tmp += "<nobr>"; + tmp += __tr2qs_ctx("Size: %1 bytes","filetransferwindow").arg(fi.size()); + tmp += "</nobr><br>"; + } + +#ifdef COMPILE_KDE_SUPPORT + tmp += "<nobr>Mime: "; + tmp += KMimeType::findByPath(szFile)->name(); + tmp += "</nobr>"; +#endif //COMPILE_KDE_SUPPORT + + QLabel * l = new QLabel(tmp,m_pLocalFilePopup); + l->setFrameStyle(QFrame::Raised | QFrame::Panel); + m_pLocalFilePopup->insertItem(l); + +#ifdef COMPILE_KDE_SUPPORT + QString mimetype = KMimeType::findByPath(szFile)->name(); + KServiceTypeProfile::OfferList offers = KServiceTypeProfile::offers(mimetype,"Application"); + + m_pOpenFilePopup->clear(); + + int id; + int idx = 0; + + for(KServiceTypeProfile::OfferList::Iterator itOffers = offers.begin(); + itOffers != offers.end(); ++itOffers) + { + id = m_pOpenFilePopup->insertItem((*itOffers).service()->pixmap(KIcon::Small),(*itOffers).service()->name()); + m_pOpenFilePopup->setItemParameter(id,idx); + idx++; + } + + m_pOpenFilePopup->insertSeparator(); + + id = m_pOpenFilePopup->insertItem(__tr2qs_ctx("Default application","filetransferwindow"),this,SLOT(openLocalFile())); + m_pOpenFilePopup->setItemParameter(id,-1); + id = m_pOpenFilePopup->insertItem(__tr2qs_ctx("&Other...","filetransferwindow"),this,SLOT(openLocalFileWith())); + m_pOpenFilePopup->setItemParameter(id,-1); + + m_pLocalFilePopup->insertItem(__tr2qs_ctx("Open with","filetransferwindow"),m_pOpenFilePopup); + m_pLocalFilePopup->insertSeparator(); + m_pLocalFilePopup->insertItem(__tr2qs_ctx("Open folder","filetransferwindow"),this,SLOT(openLocalFileFolder())); + m_pLocalFilePopup->insertItem(__tr2qs_ctx("Reach in terminal","filetransferwindow"),this,SLOT(openLocalFileTerminal())); + m_pLocalFilePopup->insertSeparator(); +#endif //COMPILE_KDE_SUPPORT + m_pLocalFilePopup->insertItem(__tr2qs_ctx("Copy path to clipboard","filetransferwindow"),this,SLOT(copyLocalFileToClipboard())); + + m_pContextPopup->insertItem(__tr2qs_ctx("Local file","filetransferwindow"),m_pLocalFilePopup); + } + + i->transfer()->fillContextPopup(m_pContextPopup,col); + m_pContextPopup->insertSeparator(); + } + } + + + bool bHaveTerminated = false; + KviSharedFilesItem * item = (KviSharedFilesItem *)m_pListView->firstChild(); + while(item) + { + if(item->transfer()->terminated()) + { + bHaveTerminated = true; + break; + } + item = (KviSharedFilesItem *)item->nextSibling(); + } + + id = m_pContextPopup->insertItem(__tr2qs_ctx("Clear terminated","filetransferwindow"),this,SLOT(clearTerminated())); + m_pContextPopup->setItemEnabled(id,bHaveTerminated); + + id = m_pContextPopup->insertItem(__tr2qs_ctx("Clear all","filetransferwindow"),this,SLOT(clearAll())); + m_pContextPopup->setItemEnabled(id,it); + + m_pContextPopup->popup(pnt); +} + + +KviSharedFiles * KviSharedFilesWindow::selectedTransfer() +{ + QListViewItem * it = m_pListView->selectedItem(); + if(!it)return 0; + KviSharedFilesItem * i = (KviSharedFilesItem *)it; + return i->transfer(); +} + +void KviSharedFilesWindow::openFilePopupActivated(int id) +{ +#ifdef COMPILE_KDE_SUPPORT + int ip = m_pOpenFilePopup->itemParameter(id); + if(ip < 0)return; + QString txt = m_pOpenFilePopup->text(id); + + KviSharedFiles * t = selectedTransfer(); + if(!t)return; + QString tmp = t->localFileName(); + if(tmp.isEmpty())return; + + QString mimetype = KMimeType::findByPath(tmp)->name(); + KServiceTypeProfile::OfferList offers = KServiceTypeProfile::offers(mimetype,"Application"); + + for(KServiceTypeProfile::OfferList::Iterator itOffers = offers.begin(); + itOffers != offers.end(); ++itOffers) + { + if(txt == (*itOffers).service()->name()) + { + KURL::List lst; + KURL url; + url.setPath(tmp); + lst.append(url); + KRun::run(*((*itOffers).service()), lst); + break; + } + } +#endif //COMPILE_KDE_SUPPORT +} + +void KviSharedFilesWindow::openLocalFileTerminal() +{ +#ifdef COMPILE_KDE_SUPPORT + KviSharedFiles * t = selectedTransfer(); + if(!t)return; + QString tmp = t->localFileName(); + if(tmp.isEmpty())return; + + int idx = tmp.findRev("/"); + if(idx == -1)return; + tmp = tmp.left(idx); + + tmp.prepend("konsole --workdir=\""); + tmp.append("\""); + + KRun::runCommand(tmp); +#endif //COMPILE_KDE_SUPPORT +} + +void KviSharedFilesWindow::openLocalFile() +{ +#ifdef COMPILE_KDE_SUPPORT + KviSharedFiles * t = selectedTransfer(); + if(!t)return; + QString tmp = t->localFileName(); + if(tmp.isEmpty())return; + + QString mimetype = KMimeType::findByPath(tmp)->name(); + KService::Ptr offer = KServiceTypeProfile::preferredService(mimetype,"Application"); + if(!offer) + { + openLocalFileWith(); + return; + } + + KURL::List lst; + KURL url; + url.setPath(tmp); + lst.append(url); + KRun::run(*offer, lst); +#endif //COMPILE_KDE_SUPPORT +} + +void KviSharedFilesWindow::openLocalFileWith() +{ +#ifdef COMPILE_KDE_SUPPORT + KviSharedFiles * t = selectedTransfer(); + if(!t)return; + QString tmp = t->localFileName(); + if(tmp.isEmpty())return; + + KURL::List lst; + KURL url; + url.setPath(tmp); + lst.append(url); + KRun::displayOpenWithDialog(lst); +#endif //COMPILE_KDE_SUPPORT +} + +void KviSharedFilesWindow::copyLocalFileToClipboard() +{ + KviSharedFiles * t = selectedTransfer(); + if(!t)return; + QString tmp = t->localFileName(); + if(tmp.isEmpty())return; + QApplication::clipboard()->setSelectionMode(false); + QApplication::clipboard()->setText(tmp); + QApplication::clipboard()->setSelectionMode(true); + QApplication::clipboard()->setText(tmp); +} + +void KviSharedFilesWindow::openLocalFileFolder() +{ +#ifdef COMPILE_KDE_SUPPORT + KviSharedFiles * t = selectedTransfer(); + if(!t)return; + QString tmp = t->localFileName(); + if(tmp.isEmpty())return; + + int idx = tmp.findRev("/"); + if(idx == -1)return; + tmp = tmp.left(idx); + + QString mimetype = KMimeType::findByPath(tmp)->name(); // inode/directory + KService::Ptr offer = KServiceTypeProfile::preferredService(mimetype,"Application"); + if(!offer)return; + + KURL::List lst; + KURL url; + url.setPath(tmp); + lst.append(url); + KRun::run(*offer, lst); +#endif //COMPILE_KDE_SUPPORT +} + +void KviSharedFilesWindow::heartbeat() +{ + if(m_pListView->childCount() < 1)return; + + QListViewItem * i1; + QListViewItem * i2; + + i1 = m_pListView->itemAt(QPoint(1,1)); + if(!i1) + { + m_pListView->viewport()->update(); + return; + } + i2 = m_pListView->itemAt(QPoint(1,m_pListView->viewport()->height() - 2)); + if(i2)i2 = i2->nextSibling(); + + while(i1 && (i1 != i2)) + { + if(((KviSharedFilesItem *)i1)->transfer()->active()) + { + m_pListView->repaintItem(i1); + } + i1 = i1->nextSibling(); + } +} + +void KviSharedFilesWindow::clearAll() +{ + if(QMessageBox::information(this,__tr2qs_ctx("Clear all transfers","filetransferwindow"), + __tr2qs_ctx("Remove all the transfers including the running ones ?","filetransferwindow"), + __tr2qs_ctx("Yes","filetransferwindow"),__tr2qs_ctx("No","filetransferwindow")) != 0)return; + + KviSharedFilesManager::instance()->killAllTransfers(); +} + +void KviSharedFilesWindow::clearTerminated() +{ + KviSharedFilesManager::instance()->killTerminatedTransfers(); +} +*/ +void KviSharedFilesWindow::getBaseLogFileName(KviStr &buffer) +{ + buffer.sprintf("SHAREDFILES"); +} + +QPixmap * KviSharedFilesWindow::myIconPtr() +{ + return g_pIconManager->getSmallIcon(KVI_SMALLICON_SHAREDFILES); +} + +void KviSharedFilesWindow::resizeEvent(QResizeEvent *e) +{ + //int h = m_pInput->heightHint(); + m_pSplitter->setGeometry(0,0,width(),height()); + //m_pInput->setGeometry(0,height() - h,width(),h); +} + +QSize KviSharedFilesWindow::sizeHint() const +{ + return m_pSplitter->sizeHint(); +} + +void KviSharedFilesWindow::fillCaptionBuffers() +{ + m_szPlainTextCaption = __tr2qs_ctx("Shared Files","sharedfileswindow"); + + m_szHtmlActiveCaption = "<nobr><font color=\""; + m_szHtmlActiveCaption += KVI_OPTION_COLOR(KviOption_colorCaptionTextActive).name(); + m_szHtmlActiveCaption += "\"><b>"; + m_szHtmlActiveCaption += m_szPlainTextCaption; + m_szHtmlActiveCaption += "</b></font></nobr>"; + + m_szHtmlInactiveCaption = "<nobr><font color=\""; + m_szHtmlInactiveCaption += KVI_OPTION_COLOR(KviOption_colorCaptionTextInactive).name(); + m_szHtmlInactiveCaption += "\"><b>"; + m_szHtmlInactiveCaption += m_szPlainTextCaption; + m_szHtmlInactiveCaption += "</b></font></nobr>"; + +} + +void KviSharedFilesWindow::die() +{ + close(); +} + + + +//#warning "Load & save properties of this kind of window" + +//void KviSharedFilesWindow::saveProperties() +//{ +// KviWindowProperty p; +// p.rect = externalGeometry(); +// p.isDocked = isAttacched(); +// QValueList<int> l(m_pSplitter->sizes()); +// if(l.count() >= 1)p.splitWidth1 = *(l.at(0)); +// if(l.count() >= 2)p.splitWidth2 = *(l.at(1)); +// p.timestamp = m_pView->timestamp(); +// p.imagesVisible = m_pView->imagesVisible(); +// p.isMaximized = isAttacched() && isMaximized(); +// p.topSplitWidth1 = 0; +// p.topSplitWidth2 = 0; +// p.topSplitWidth3 = 0; +// g_pOptions->m_pWinPropertiesList->setProperty(caption(),&p); +//} +// +//void KviSharedFilesWindow::setProperties(KviWindowProperty *p) +//{ +// QValueList<int> l; +// l.append(p->splitWidth1); +// l.append(p->splitWidth2); +// m_pVertSplitter->setSizes(l); +// m_pIrcView->setTimestamp(p->timestamp); +// m_pIrcView->setShowImages(p->imagesVisible); +//} + + +#include "m_sharedfileswindow.moc" diff --git a/src/modules/sharedfileswindow/sharedfileswindow.h b/src/modules/sharedfileswindow/sharedfileswindow.h new file mode 100644 index 000000000..663223e5b --- /dev/null +++ b/src/modules/sharedfileswindow/sharedfileswindow.h @@ -0,0 +1,114 @@ +#ifndef _SHAREDFILESWINDOW_H_ +#define _SHAREDFILESWINDOW_H_ +//================================================================================== +// +// File : sharedfileswindow.h +// Creation date : Mon Apr 21 2003 23:14:12 CEST by Szymon Stefanek +// +// This file is part of the KVirc irc client distribution +// 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 linkss 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. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// +//================================================================================== + +#include "kvi_window.h" +#include "kvi_string.h" +#include "kvi_sparser.h" +#include "kvi_console.h" +#include "kvi_moduleextension.h" +#include "kvi_sharedfiles.h" + +#include <qlistview.h> +#include <qdialog.h> + +class QGridLayout; +class QDateTimeEdit; +class QLabel; +class QLineEdit; +class QPushButton; +class KviStyledCheckBox; + +class KviSharedFilesListViewItem : public QListViewItem +{ +public: + KviSharedFilesListViewItem(QListView * lv,KviSharedFile * f); + ~KviSharedFilesListViewItem(); +protected: + KviSharedFile * m_pSharedFilePointer; // THIS IS READ ONLY! +public: + KviSharedFile * readOnlySharedFilePointer(){ return m_pSharedFilePointer; }; +}; + + + +class KviSharedFileEditDialog : public QDialog +{ + Q_OBJECT +public: + KviSharedFileEditDialog(QWidget* par,KviSharedFile * f = 0); + ~KviSharedFileEditDialog(); + + QDateTimeEdit * m_pExpireDateTimeEdit; + QLineEdit * m_pFilePathEdit; + QLineEdit * m_pUserMaskEdit; + QPushButton * m_pBrowseButton; + QLineEdit * m_pShareNameEdit; + KviStyledCheckBox * m_pExpireCheckBox; +public: + KviSharedFile * getResult(); +protected slots: + void okClicked(); + void browse(); +}; + + + + +class KviSharedFilesWindow : public KviWindow , public KviModuleExtension +{ + friend class KviSharedFilesItem; + Q_OBJECT +public: + KviSharedFilesWindow(KviModuleExtensionDescriptor * d,KviFrame * lpFrm); + ~KviSharedFilesWindow(); +protected: + QSplitter * m_pVertSplitter; + + QListView * m_pListView; + + QPushButton * m_pRemoveButton; + QPushButton * m_pEditButton; + QPushButton * m_pAddButton; +public: // Methods + virtual void die(); +protected: + virtual QPixmap * myIconPtr(); + virtual void fillCaptionBuffers(); + virtual void resizeEvent(QResizeEvent *e); + virtual void getBaseLogFileName(KviStr &buffer); +public: + virtual QSize sizeHint() const; +protected slots: + void fillFileView(); + void sharedFileAdded(KviSharedFile * f); + void sharedFileRemoved(KviSharedFile * f); + void enableButtons(); + void removeClicked(); + void addClicked(); + void editClicked(); +}; + +#endif //_SHAREDFILESWINDOW_H_ diff --git a/src/modules/sharedfileswindow/sharedfileswindow.vcproj b/src/modules/sharedfileswindow/sharedfileswindow.vcproj new file mode 100755 index 000000000..52c63f6a9 --- /dev/null +++ b/src/modules/sharedfileswindow/sharedfileswindow.vcproj @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="sharedfileswindow" + ProjectGUID="{0BBE0DA4-4ECB-4515-8497-6EBEB3A51C17}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)\win32build\bin\modules" + IntermediateDirectory="Debug" + ConfigurationType="2" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories=""$(ProjectDir)\..\..\kvirc\ui";"$(ProjectDir)\..\..\kvilib\core";"$(ProjectDir)\..\..\kvirc\module";"$(ProjectDir)\..\..\kvilib\config";"$(QTDIR)\include";"$(ProjectDir)\..\..\kvilib\system";"$(ProjectDir)\..\..\kvirc\uparser";"$(ProjectDir)\..\..\kvirc\sparser";"$(ProjectDir)\..\..\kvirc\kernel";"$(ProjectDir)\..\..\kvilib\ext";"$(ProjectDir)\..\..\kvilib\irc";"$(ProjectDir)\..\..\kvilib\tal";"$(ProjectDir)\..\..\kvirc\kvs";"$(ProjectDir)\..\..\kvilib\file";"$(ProjectDir)\..\..\kvilib\net"" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SHAREDFILESWINDOW_EXPORTS" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="qt-mtnc321.lib qtmain.lib libeay32.lib SSLeay32.lib ws2_32.lib kvilib.lib kvirc.lib msvcrt.lib" + OutputFile="$(OutDir)/kvi$(ProjectName).dll" + LinkIncremental="2" + AdditionalLibraryDirectories=""$(SSLLIBDIR)";"$(QTDIR)\lib";"$(SolutionDir)\win32build\bin"" + IgnoreAllDefaultLibraries="TRUE" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="$(OutDir)/sharedfileswindow.pdb" + SubSystem="2" + ImportLibrary="$(OutDir)/sharedfileswindow.lib" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)\win32build\bin\modules" + IntermediateDirectory="Release" + ConfigurationType="2" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + GlobalOptimizations="TRUE" + InlineFunctionExpansion="2" + FavorSizeOrSpeed="1" + OmitFramePointers="TRUE" + EnableFiberSafeOptimizations="TRUE" + AdditionalIncludeDirectories=""$(ProjectDir)\..\..\kvirc\ui";"$(ProjectDir)\..\..\kvilib\core";"$(ProjectDir)\..\..\kvirc\module";"$(ProjectDir)\..\..\kvilib\config";"$(QTDIR)\include";"$(ProjectDir)\..\..\kvilib\system";"$(ProjectDir)\..\..\kvirc\uparser";"$(ProjectDir)\..\..\kvirc\sparser";"$(ProjectDir)\..\..\kvirc\kernel";"$(ProjectDir)\..\..\kvilib\ext";"$(ProjectDir)\..\..\kvilib\irc";"$(ProjectDir)\..\..\kvilib\tal";"$(ProjectDir)\..\..\kvirc\kvs";"$(ProjectDir)\..\..\kvilib\file";"$(ProjectDir)\..\..\kvilib\net"" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SHAREDFILESWINDOW_EXPORTS" + RuntimeLibrary="0" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="qt-mtnc321.lib qtmain.lib libeay32.lib SSLeay32.lib ws2_32.lib kvilib.lib kvirc.lib msvcrt.lib" + OutputFile="$(OutDir)/kvi$(ProjectName).dll" + LinkIncremental="1" + AdditionalLibraryDirectories=""$(SSLLIBDIR)";"$(QTDIR)\lib";"$(SolutionDir)\win32build\bin"" + IgnoreAllDefaultLibraries="TRUE" + GenerateDebugInformation="TRUE" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + OptimizeForWindows98="1" + ImportLibrary="$(OutDir)/sharedfileswindow.lib" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + <File + RelativePath=".\libkvisharedfileswindow.cpp"> + </File> + <File + RelativePath=".\sharedfileswindow.cpp"> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + <File + RelativePath=".\sharedfileswindow.h"> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCustomBuildTool" + CommandLine="$(QTDIR)\bin\moc -o "$(InputDir)\m_$(InputName).moc" "$(InputDir)\$(InputFileName)" +" + Outputs="$(InputDir)\m_$(InputName).moc"/> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCustomBuildTool" + CommandLine="$(QTDIR)\bin\moc -o "$(InputDir)\m_$(InputName).moc" "$(InputDir)\$(InputFileName)" +" + Outputs="$(InputDir)\m_$(InputName).moc"/> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/src/modules/sharedfileswindow/sharedfileswindow_vc05.vcproj b/src/modules/sharedfileswindow/sharedfileswindow_vc05.vcproj new file mode 100644 index 000000000..5a241d2b7 --- /dev/null +++ b/src/modules/sharedfileswindow/sharedfileswindow_vc05.vcproj @@ -0,0 +1,257 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="sharedfileswindow" + ProjectGUID="{0BBE0DA4-4ECB-4515-8497-6EBEB3A51C17}" + RootNamespace="sharedfileswindow" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)\win32build\bin\modules\" + IntermediateDirectory="Debug" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories=""$(ProjectDir)\..\..\kvirc\ui";"$(ProjectDir)\..\..\kvilib\core";"$(ProjectDir)\..\..\kvirc\module";"$(ProjectDir)\..\..\kvilib\config";"$(QTDIR)\include";"$(ProjectDir)\..\..\kvilib\system";"$(ProjectDir)\..\..\kvirc\uparser";"$(ProjectDir)\..\..\kvirc\sparser";"$(ProjectDir)\..\..\kvirc\kernel";"$(ProjectDir)\..\..\kvilib\ext";"$(ProjectDir)\..\..\kvilib\irc";"$(ProjectDir)\..\..\kvilib\tal";"$(ProjectDir)\..\..\kvirc\kvs";"$(ProjectDir)\..\..\kvilib\file";"$(ProjectDir)\..\..\kvilib\net"" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SHAREDFILESWINDOW_EXPORTS;_CRT_SECURE_NO_DEPRECATE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="qt-$(QTTAG).lib qtmain.lib libeay32.lib SSLeay32.lib ws2_32.lib kvilib.lib kvirc.lib msvcrt.lib perl58.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib winmm.lib" + OutputFile="$(OutDir)/kvi$(ProjectName).dll" + LinkIncremental="2" + AdditionalLibraryDirectories=""$(SSLLIBDIR)";"$(PERLDIR)\lib\CORE";"$(QTDIR)\lib";"$(SolutionDir)\win32build\bin";"$(ZLIBLIBDIR)"" + GenerateManifest="true" + IgnoreAllDefaultLibraries="true" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/sharedfileswindow.pdb" + SubSystem="2" + TurnOffAssemblyGeneration="true" + ImportLibrary="$(OutDir)/sharedfileswindow.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + EmbedManifest="true" + VerboseOutput="true" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)\win32build\bin\modules" + IntermediateDirectory="Release" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="1" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="2" + OmitFramePointers="true" + EnableFiberSafeOptimizations="true" + WholeProgramOptimization="true" + AdditionalIncludeDirectories=""$(ProjectDir)\..\..\kvirc\ui";"$(ProjectDir)\..\..\kvilib\core";"$(ProjectDir)\..\..\kvirc\module";"$(ProjectDir)\..\..\kvilib\config";"$(QTDIR)\include";"$(ProjectDir)\..\..\kvilib\system";"$(ProjectDir)\..\..\kvirc\uparser";"$(ProjectDir)\..\..\kvirc\sparser";"$(ProjectDir)\..\..\kvirc\kernel";"$(ProjectDir)\..\..\kvilib\ext";"$(ProjectDir)\..\..\kvilib\irc";"$(ProjectDir)\..\..\kvilib\tal";"$(ProjectDir)\..\..\kvirc\kvs";"$(ProjectDir)\..\..\kvilib\file";"$(ProjectDir)\..\..\kvilib\net"" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SHAREDFILESWINDOW_EXPORTS;_CRT_SECURE_NO_DEPRECATE" + StringPooling="true" + MinimalRebuild="true" + ExceptionHandling="1" + RuntimeLibrary="0" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="qt-$(QTTAG).lib qtmain.lib libeay32.lib SSLeay32.lib ws2_32.lib kvilib.lib kvirc.lib msvcrt.lib perl58.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib winmm.lib" + OutputFile="$(OutDir)/kvi$(ProjectName).dll" + LinkIncremental="1" + AdditionalLibraryDirectories=""$(SSLLIBDIR)";"$(PERLDIR)\lib\CORE";"$(QTDIR)\lib";"$(SolutionDir)\win32build\bin";"$(ZLIBLIBDIR)"" + GenerateManifest="true" + IgnoreAllDefaultLibraries="true" + GenerateDebugInformation="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + OptimizeForWindows98="1" + LinkTimeCodeGeneration="1" + TurnOffAssemblyGeneration="true" + ImportLibrary="$(OutDir)/sharedfileswindow.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + EmbedManifest="true" + VerboseOutput="true" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath=".\libkvisharedfileswindow.cpp" + > + </File> + <File + RelativePath=".\sharedfileswindow.cpp" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath=".\sharedfileswindow.h" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCustomBuildTool" + CommandLine="$(QTDIR)\bin\moc -o "$(InputDir)\m_$(InputName).moc" "$(InputDir)\$(InputFileName)"
" + Outputs="$(InputDir)\m_$(InputName).moc" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCustomBuildTool" + CommandLine="$(QTDIR)\bin\moc -o "$(InputDir)\m_$(InputName).moc" "$(InputDir)\$(InputFileName)"
" + Outputs="$(InputDir)\m_$(InputName).moc" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> |
