aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/filetransferwindow/FileTransferWindow.h
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2011-01-01 20:19:56 +0000
committerGravatar Szymon Tomasz Stefanek2011-01-01 20:19:56 +0000
commitc601b5a27f74b16158adafe429faefbe573e64a2 (patch)
treea3cde3206a45628f8ac86e8dfbdab70b20c3a831 /src/modules/filetransferwindow/FileTransferWindow.h
parentprobable compilation fix for rijndaled/crypto++ (diff)
downloadKVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.tar.gz
KVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.tar.bz2
KVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.zip
The big rename for modules. Still some details remaining.
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5284 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/filetransferwindow/FileTransferWindow.h')
-rw-r--r--src/modules/filetransferwindow/FileTransferWindow.h139
1 files changed, 139 insertions, 0 deletions
diff --git a/src/modules/filetransferwindow/FileTransferWindow.h b/src/modules/filetransferwindow/FileTransferWindow.h
new file mode 100644
index 000000000..2fcac8689
--- /dev/null
+++ b/src/modules/filetransferwindow/FileTransferWindow.h
@@ -0,0 +1,139 @@
+#ifndef _FILETRANSFERWINDOW_H_
+#define _FILETRANSFERWINDOW_H_
+//=============================================================================
+//
+// File : FileTransferWindow.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-2010 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+//=============================================================================
+
+#include "KviWindow.h"
+#include "KviCString.h"
+#include "KviIrcSocket.h"
+#include "KviIrcServerParser.h"
+#include "KviConsoleWindow.h"
+#include "KviModuleExtension.h"
+#include "KviFileTransfer.h"
+#include "KviDynamicToolTip.h"
+#include "KviTalTableWidget.h"
+#include "KviTalPopupMenu.h"
+#include "KviTalIconAndRichTextItemDelegate.h"
+
+#include <QTimer>
+#include <QPixmap>
+
+class FileTransferItem;
+
+class FileTransferWidget : public KviTalTableWidget
+{
+ friend class FileTransferItemDelegate;
+ Q_OBJECT
+ Q_PROPERTY(int TransparencyCapable READ dummyRead)
+public:
+ FileTransferWidget(QWidget * pParent);
+ ~FileTransferWidget() {};
+ void paintEvent(QPaintEvent * event);
+ int dummyRead() const { return 0; };
+protected:
+ void mousePressEvent (QMouseEvent *e);
+ void mouseDoubleClickEvent (QMouseEvent *e);
+signals:
+ void rightButtonPressed(FileTransferItem *,QPoint pnt);
+ void doubleClicked(FileTransferItem *,QPoint pnt);
+};
+
+class FileTransferItem : public KviTalTableWidgetItemEx
+{
+public:
+ FileTransferItem(FileTransferWidget * v,KviFileTransfer * t);
+ ~FileTransferItem();
+protected:
+ KviFileTransfer * m_pTransfer;
+ KviTalTableWidgetItem * col1Item; //item on the second column
+ KviTalTableWidgetItem * col2Item; //item on the third column
+public:
+ KviFileTransfer * transfer(){ return m_pTransfer; };
+ virtual QString key(int column,bool bAcending) const;
+ virtual void displayUpdate();
+};
+
+class FileTransferItemDelegate : public KviTalIconAndRichTextItemDelegate
+{
+ Q_OBJECT
+public:
+ FileTransferItemDelegate(QAbstractItemView * pWidget=0)
+ : KviTalIconAndRichTextItemDelegate(pWidget) {};
+ ~FileTransferItemDelegate(){};
+ QSize sizeHint(const QStyleOptionViewItem &option,const QModelIndex &index) const;
+ void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
+};
+
+class FileTransferWindow : public KviWindow, public KviModuleExtension
+{
+ friend class FileTransferItem;
+ friend class FileTransferItemDelegate;
+ Q_OBJECT
+public:
+ FileTransferWindow(KviModuleExtensionDescriptor * d,KviMainWindow * lpFrm);
+ ~FileTransferWindow();
+protected:
+ QSplitter * m_pVertSplitter;
+ FileTransferWidget * m_pTableWidget;
+ QAbstractItemDelegate * m_pItemDelegate;
+ KviTalPopupMenu * m_pContextPopup;
+ KviTalPopupMenu * m_pLocalFilePopup;
+ KviTalPopupMenu * m_pOpenFilePopup;
+ QTimer * m_pTimer;
+ int m_iLineSpacing; // cached fm value
+public: // Methods
+ virtual void die();
+protected:
+ virtual QPixmap * myIconPtr();
+ virtual void fillCaptionBuffers();
+ virtual void applyOptions();
+ virtual void resizeEvent(QResizeEvent *e);
+ virtual void getBaseLogFileName(QString &buffer);
+ FileTransferItem * findItem(KviFileTransfer * t);
+ void fillTransferView();
+ KviFileTransfer * selectedTransfer();
+ virtual void fontChange(const QFont &oldFont);
+ bool eventFilter( QObject *obj, QEvent *ev );
+public:
+ virtual QSize sizeHint() const;
+ int lineSpacing(){ return m_iLineSpacing; };
+protected slots:
+ void transferRegistered(KviFileTransfer *t);
+ void transferUnregistering(KviFileTransfer *t);
+ void rightButtonPressed(FileTransferItem *it,const QPoint &pnt);
+ void doubleClicked(FileTransferItem *it,const QPoint &pnt);
+ void heartbeat();
+ void clearTerminated();
+ void clearAll();
+ void tipRequest(KviDynamicToolTip * tip,const QPoint &pnt);
+ void openLocalFile();
+ void openLocalFileWith();
+ void copyLocalFileToClipboard();
+ void openLocalFileFolder();
+ void openFilePopupActivated(int id);
+ void openLocalFileTerminal();
+ void deleteLocalFile();
+};
+
+#endif //_FILETRANSFERWINDOW_H_