dcc: Add rudimentary view for file transfers
authorManuel Nickschas <sputnick@quassel-irc.org>
Fri, 10 Jun 2016 22:10:33 +0000 (00:10 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 28 Sep 2016 21:06:03 +0000 (23:06 +0200)
For now this is just a stock QTableView for visualizing the
TransferModel. Will be replaced by a proper view later.

src/qtui/mainwin.cpp
src/qtui/mainwin.h

index 20430f1..efe1819 100644 (file)
@@ -24,6 +24,7 @@
 #include <QMenuBar>
 #include <QMessageBox>
 #include <QStatusBar>
 #include <QMenuBar>
 #include <QMessageBox>
 #include <QStatusBar>
+#include <QTableView>
 #include <QToolBar>
 #include <QInputDialog>
 
 #include <QToolBar>
 #include <QInputDialog>
 
@@ -98,6 +99,7 @@
 #include "statusnotifieritem.h"
 #include "toolbaractionprovider.h"
 #include "topicwidget.h"
 #include "statusnotifieritem.h"
 #include "toolbaractionprovider.h"
 #include "topicwidget.h"
+#include "transfermodel.h"
 #include "verticaldock.h"
 
 #ifndef HAVE_KDE
 #include "verticaldock.h"
 
 #ifndef HAVE_KDE
@@ -221,10 +223,11 @@ void MainWin::init()
     setupActions();
     setupBufferWidget();
     setupMenus();
     setupActions();
     setupBufferWidget();
     setupMenus();
+    setupTransferWidget();
+    setupChatMonitor();
     setupTopicWidget();
     setupTopicWidget();
-    setupNickWidget();
     setupInputWidget();
     setupInputWidget();
-    setupChatMonitor();
+    setupNickWidget();
     setupViewMenuTail();
     setupStatusBar();
     setupToolBars();
     setupViewMenuTail();
     setupStatusBar();
     setupToolBars();
@@ -232,6 +235,9 @@ void MainWin::init()
     setupTitleSetter();
     setupHotList();
 
     setupTitleSetter();
     setupHotList();
 
+    _bufferWidget->setFocusProxy(_inputWidget);
+    _chatMonitorView->setFocusProxy(_inputWidget);
+
 #ifndef HAVE_KDE
 #  ifdef HAVE_QTMULTIMEDIA
     QtUi::registerNotificationBackend(new QtMultimediaNotificationBackend(this));
 #ifndef HAVE_KDE
 #  ifdef HAVE_QTMULTIMEDIA
     QtUi::registerNotificationBackend(new QtMultimediaNotificationBackend(this));
@@ -915,7 +921,6 @@ void MainWin::setupChatMonitor()
 
     ChatMonitorFilter *filter = new ChatMonitorFilter(Client::messageModel(), this);
     _chatMonitorView = new ChatMonitorView(filter, this);
 
     ChatMonitorFilter *filter = new ChatMonitorFilter(Client::messageModel(), this);
     _chatMonitorView = new ChatMonitorView(filter, this);
-    _chatMonitorView->setFocusProxy(_inputWidget);
     _chatMonitorView->show();
     dock->setWidget(_chatMonitorView);
     dock->hide();
     _chatMonitorView->show();
     dock->setWidget(_chatMonitorView);
     dock->hide();
@@ -942,8 +947,6 @@ void MainWin::setupInputWidget()
     _inputWidget->setModel(Client::bufferModel());
     _inputWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel());
 
     _inputWidget->setModel(Client::bufferModel());
     _inputWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel());
 
-    _bufferWidget->setFocusProxy(_inputWidget);
-
     _inputWidget->inputLine()->installEventFilter(_bufferWidget);
 
     connect(_topicWidget, SIGNAL(switchedPlain()), _bufferWidget, SLOT(setFocus()));
     _inputWidget->inputLine()->installEventFilter(_bufferWidget);
 
     connect(_topicWidget, SIGNAL(switchedPlain()), _bufferWidget, SLOT(setFocus()));
@@ -968,6 +971,27 @@ void MainWin::setupTopicWidget()
 }
 
 
 }
 
 
+void MainWin::setupTransferWidget()
+{
+    auto dock = new QDockWidget(tr("Transfers"), this);
+    dock->setObjectName("TransferDock");
+    dock->setAllowedAreas(Qt::TopDockWidgetArea|Qt::BottomDockWidgetArea);
+
+    auto view = new QTableView(dock); // to be replaced by the real thing
+    view->setModel(Client::transferModel());
+    dock->setWidget(view);
+    dock->hide(); // hidden by default
+    addDockWidget(Qt::TopDockWidgetArea, dock, Qt::Vertical);
+
+    auto action = dock->toggleViewAction();
+    action->setText(tr("Show File Transfers"));
+    action->setIcon(QIcon::fromTheme("download"));
+    action->setShortcut(QKeySequence(Qt::Key_F6));
+    QtUi::actionCollection("General")->addAction("ShowTransferWidget", action);
+    _viewMenu->addAction(action);
+}
+
+
 void MainWin::setupViewMenuTail()
 {
     _viewMenu->addSeparator();
 void MainWin::setupViewMenuTail()
 {
     _viewMenu->addSeparator();
index efe91c6..afe099f 100644 (file)
@@ -192,6 +192,7 @@ private:
     void setupChatMonitor();
     void setupInputWidget();
     void setupTopicWidget();
     void setupChatMonitor();
     void setupInputWidget();
     void setupTopicWidget();
+    void setupTransferWidget();
     void setupViewMenuTail();
     void setupStatusBar();
     void setupSystray();
     void setupViewMenuTail();
     void setupStatusBar();
     void setupSystray();