aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/filetransferwindow
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/filetransferwindow')
-rw-r--r--src/modules/filetransferwindow/filetransferwindow.cpp113
-rw-r--r--src/modules/filetransferwindow/filetransferwindow.h14
2 files changed, 89 insertions, 38 deletions
diff --git a/src/modules/filetransferwindow/filetransferwindow.cpp b/src/modules/filetransferwindow/filetransferwindow.cpp
index 0c6dfbe48..985c413e7 100644
--- a/src/modules/filetransferwindow/filetransferwindow.cpp
+++ b/src/modules/filetransferwindow/filetransferwindow.cpp
@@ -77,7 +77,7 @@ KviFileTransferItem::KviFileTransferItem(KviFileTransferWidget * v,KviFileTransf
col1Item = new KviTalTableWidgetItem(v, row(), 1);
col2Item = new KviTalTableWidgetItem(v, row(), 2);
//FIXME fixed row height
- tableWidget()->setRowHeight( row(), 68 );
+ tableWidget()->setRowHeight( row(), 70 );
}
KviFileTransferItem::~KviFileTransferItem()
@@ -89,6 +89,7 @@ KviFileTransferItem::~KviFileTransferItem()
void KviFileTransferItem::displayUpdate()
{
+ //FIXME this hurts
int dummy = (int) time(NULL);
tableWidget()->model()->setData(tableWidget()->model()->index(row(),0), dummy, Qt::DisplayRole);
tableWidget()->model()->setData(tableWidget()->model()->index(row(),1), dummy, Qt::DisplayRole);
@@ -109,6 +110,72 @@ QString KviFileTransferItem::key(int column,bool bAcending) const
return ret;
}
+
+
+KviFileTransferWidget::KviFileTransferWidget(QWidget * pParent)
+: KviTalTableWidget(pParent)
+{
+ //hide the header
+ verticalHeader()->hide();
+ //hide cells grids
+ setShowGrid(false);
+ //disable cell content editing
+ setEditTriggers(QAbstractItemView::NoEditTriggers);
+
+ //select one row at once
+ setSelectionBehavior(QAbstractItemView::SelectRows);
+ setSelectionMode(QAbstractItemView::SingleSelection);
+
+ //prepare columns
+ setColumnCount(3);
+
+ QStringList colHeaders;
+ colHeaders << __tr2qs_ctx("Type","filetransferwindow")
+ << __tr2qs_ctx("Information","filetransferwindow")
+ << __tr2qs_ctx("Progress","filetransferwindow");
+ setHorizontalHeaderLabels(colHeaders);
+ horizontalHeader()->setResizeMode(QHeaderView::Interactive);
+
+ //default column widths
+ setColumnWidth(0, 68);
+ horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);
+ horizontalHeader()->setResizeMode(1, QHeaderView::Stretch);
+ horizontalHeader()->setResizeMode(2, QHeaderView::Stretch);
+
+ //focus policy
+ setFocusPolicy(Qt::NoFocus);
+ viewport()->setFocusPolicy(Qt::NoFocus);
+}
+
+void KviFileTransferWidget::mousePressEvent (QMouseEvent *e)
+{
+ if (e->button() == Qt::RightButton)
+ {
+ // we have 3 items: the one on the first column is the real one (has a transfer() member)
+ // others are just fakes
+ QTableWidgetItem *clicked = itemAt(e->pos());
+ if(clicked)
+ {
+ KviFileTransferItem *i = (KviFileTransferItem*) item(clicked->row(),0);
+ if (i) emit rightButtonPressed(i, QCursor::pos());
+ }
+ }
+ QTableWidget::mousePressEvent(e);
+}
+
+void KviFileTransferWidget::mouseDoubleClickEvent (QMouseEvent *e)
+{
+ // we have 3 items: the one on the first column is the real one (has a transfer() member)
+ // others are just fakes
+ QTableWidgetItem *clicked = itemAt(e->pos());
+ if(clicked)
+ {
+ KviFileTransferItem *i = (KviFileTransferItem*) item(clicked->row(),0);
+ if (i) emit doubleClicked(i,QCursor::pos());
+ }
+ QTableWidget::mouseDoubleClickEvent(e);
+}
+
void KviFileTransferWidget::paintEvent(QPaintEvent * event)
{
QPainter *p = new QPainter(viewport());
@@ -141,8 +208,10 @@ void KviFileTransferItemDelegate::paint(QPainter * p, const QStyleOptionViewItem
KviFileTransferWidget* tableWidget = (KviFileTransferWidget*)parent();
KviFileTransferItem* item = (KviFileTransferItem*) tableWidget->itemFromIndex(index);
+ if(!item) return;
KviFileTransfer* transfer = ((KviFileTransferItem*)tableWidget->item(item->row(), 0))->transfer();
+
p->setFont(option.font);
p->setPen(option.state & QStyle::State_Selected ? option.palette.highlight().color() : option.palette.base().color());
@@ -188,53 +257,27 @@ KviFileTransferWindow::KviFileTransferWindow(KviModuleExtensionDescriptor * d,Kv
m_pSplitter->setObjectName("transferwindow_hsplitter");
m_pVertSplitter = new QSplitter(Qt::Vertical,m_pSplitter);
m_pVertSplitter->setObjectName("transferwindow_vsplitter");
-
+
m_pTableWidget = new KviFileTransferWidget(m_pVertSplitter);
//ad-hoc itemdelegate for this view
m_pItemDelegate = new KviFileTransferItemDelegate(m_pTableWidget);
m_pTableWidget->setItemDelegate(m_pItemDelegate);
- m_pTableWidget->verticalHeader()->hide();
- m_pTableWidget->setShowGrid(false);
-
- m_pTableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
- m_pTableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
-
- m_pTableWidget->setColumnCount(3);
-
- QStringList colHeaders;
- colHeaders.append(__tr2qs_ctx("Type","filetransferwindow"));
- colHeaders.append(__tr2qs_ctx("Information","filetransferwindow"));
- colHeaders.append(__tr2qs_ctx("Progress","filetransferwindow"));
- m_pTableWidget->setHorizontalHeaderLabels(colHeaders);
- m_pTableWidget->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
- m_pTableWidget->horizontalHeader()->setMinimumSectionSize(50);
-
- //default column widths
- m_pTableWidget->setColumnWidth(0, 68);
- m_pTableWidget->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);
- m_pTableWidget->horizontalHeader()->setResizeMode(1, QHeaderView::Stretch);
- m_pTableWidget->horizontalHeader()->setResizeMode(2, QHeaderView::Stretch);
-
KviDynamicToolTip * tp = new KviDynamicToolTip(m_pTableWidget->viewport());
//TODO
//connect(tp,SIGNAL(tipRequest(KviDynamicToolTip *,const QPoint &)),this,SLOT(tipRequest(KviDynamicToolTip *,const QPoint &)));
- m_pTableWidget->setFocusPolicy(Qt::NoFocus);
- m_pTableWidget->viewport()->setFocusPolicy(Qt::NoFocus);
-
- //connect(m_pTableWidget,SIGNAL(rightButtonPressed(KviTalTableWidgetItem *,const QPoint &,int)),
- // this,SLOT(showHostPopup(KviTalTableWidgetItem *,const QPoint &,int)));
-
QFontMetrics fm(font());
m_iLineSpacing = fm.lineSpacing();
m_pIrcView = new KviIrcView(m_pVertSplitter,lpFrm,this);
m_pTableWidget->installEventFilter(this);
- connect(m_pTableWidget,SIGNAL(rightButtonPressed(KviTalTableWidgetItem *,const QPoint &,int)),this,SLOT(rightButtonPressed(KviTalTableWidgetItem *,const QPoint &,int)));
- connect(m_pTableWidget,SIGNAL(doubleClicked(KviTalTableWidgetItem *,const QPoint &,int)),this,SLOT(doubleClicked(KviTalTableWidgetItem *,const QPoint &,int)));
+
+ connect(m_pTableWidget,SIGNAL(rightButtonPressed(KviFileTransferItem *,QPoint)),
+ this,SLOT(rightButtonPressed(KviFileTransferItem *,QPoint)));
+ connect(m_pTableWidget,SIGNAL(doubleClicked(KviFileTransferItem *,const QPoint &)),this,SLOT(doubleClicked(KviFileTransferItem *,const QPoint &)));
fillTransferView();
connect(KviFileTransferManager::instance(),SIGNAL(transferRegistered(KviFileTransfer *)),this,SLOT(transferRegistered(KviFileTransfer *)));
@@ -327,12 +370,12 @@ void KviFileTransferWindow::transferUnregistering(KviFileTransfer * t)
it = 0;
}
-void KviFileTransferWindow::doubleClicked(KviFileTransferItem *it,const QPoint &pnt,int col)
+void KviFileTransferWindow::doubleClicked(KviFileTransferItem *it,const QPoint &)
{
if(it) openLocalFile();
}
-void KviFileTransferWindow::rightButtonPressed(KviFileTransferItem *it,const QPoint &pnt,int col)
+void KviFileTransferWindow::rightButtonPressed(KviFileTransferItem *it,const QPoint &pnt)
{
if(!m_pContextPopup)m_pContextPopup = new KviTalPopupMenu(this);
if(!m_pLocalFilePopup)m_pLocalFilePopup = new KviTalPopupMenu(this);
@@ -437,7 +480,7 @@ void KviFileTransferWindow::rightButtonPressed(KviFileTransferItem *it,const QPo
}
- i->transfer()->fillContextPopup(m_pContextPopup,col);
+ i->transfer()->fillContextPopup(m_pContextPopup);
m_pContextPopup->insertSeparator();
}
}
diff --git a/src/modules/filetransferwindow/filetransferwindow.h b/src/modules/filetransferwindow/filetransferwindow.h
index a388bec16..a3a3b381f 100644
--- a/src/modules/filetransferwindow/filetransferwindow.h
+++ b/src/modules/filetransferwindow/filetransferwindow.h
@@ -39,16 +39,24 @@
#include <QTimer>
#include <QPixmap>
+class KviFileTransferItem;
+
class KviFileTransferWidget : public KviTalTableWidget
{
friend class KviFileTransferItemDelegate;
Q_OBJECT
Q_PROPERTY(int TransparencyCapable READ dummyRead)
public:
- KviFileTransferWidget(QWidget * pParent) : KviTalTableWidget(pParent) {};
+ KviFileTransferWidget(QWidget * pParent);
~KviFileTransferWidget() {};
void paintEvent(QPaintEvent * event);
int dummyRead() const { return 0; };
+protected:
+ void mousePressEvent (QMouseEvent *e);
+ void mouseDoubleClickEvent (QMouseEvent *e);
+signals:
+ void rightButtonPressed(KviFileTransferItem *,QPoint pnt);
+ void doubleClicked(KviFileTransferItem *,QPoint pnt);
};
class KviFileTransferItem : public KviTalTableWidgetItemEx
@@ -115,8 +123,8 @@ public:
protected slots:
void transferRegistered(KviFileTransfer *t);
void transferUnregistering(KviFileTransfer *t);
- void rightButtonPressed(KviFileTransferItem *it,const QPoint &pnt,int col);
- void doubleClicked(KviFileTransferItem *it,const QPoint &pnt,int col);
+ void rightButtonPressed(KviFileTransferItem *it,const QPoint &pnt);
+ void doubleClicked(KviFileTransferItem *it,const QPoint &pnt);
void heartbeat();
void clearTerminated();
void clearAll();