Added a first version of the BufferViewWidget for QuasselTopia. It even works already :)
authorManuel Nickschas <sputnick@quassel-irc.org>
Tue, 13 Nov 2007 01:18:42 +0000 (01:18 +0000)
committerManuel Nickschas <sputnick@quassel-irc.org>
Tue, 13 Nov 2007 01:18:42 +0000 (01:18 +0000)
Quassel.kdevelop.filelist
src/qtopia/bufferviewwidget.cpp [new file with mode: 0644]
src/qtopia/bufferviewwidget.h [new file with mode: 0644]
src/qtopia/qtopia.pri
src/qtopia/qtopiamainwin.cpp
src/qtopia/qtopiamainwin.h
src/qtopia/ui/bufferviewwidget.ui [new file with mode: 0644]

index cfc3fb2..1b7ed65 100644 (file)
@@ -98,6 +98,8 @@ src/core/userinputhandler.h
 src/plugins
 src/plugins/plugin.h
 src/qtopia
 src/plugins
 src/plugins/plugin.h
 src/qtopia
+src/qtopia/bufferviewwidget.cpp
+src/qtopia/bufferviewwidget.h
 src/qtopia/chatline.cpp
 src/qtopia/chatline.h
 src/qtopia/chatwidget.cpp
 src/qtopia/chatline.cpp
 src/qtopia/chatline.h
 src/qtopia/chatwidget.cpp
@@ -118,6 +120,7 @@ src/qtopia/topicbar.cpp
 src/qtopia/topicbar.h
 src/qtopia/ui
 src/qtopia/ui/bufferview.ui
 src/qtopia/topicbar.h
 src/qtopia/ui
 src/qtopia/ui/bufferview.ui
+src/qtopia/ui/bufferviewwidget.ui
 src/qtopia/ui/coreconnectdlg.ui
 src/qtopia/ui/coreconnectprogressdlg.ui
 src/qtopia/ui/editcoreacctdlg.ui
 src/qtopia/ui/coreconnectdlg.ui
 src/qtopia/ui/coreconnectprogressdlg.ui
 src/qtopia/ui/editcoreacctdlg.ui
diff --git a/src/qtopia/bufferviewwidget.cpp b/src/qtopia/bufferviewwidget.cpp
new file mode 100644 (file)
index 0000000..2ef5711
--- /dev/null
@@ -0,0 +1,55 @@
+/***************************************************************************
+ *   Copyright (C) 2005-07 by the Quassel IRC Team                         *
+ *   devel@quassel-irc.org                                                 *
+ *                                                                         *
+ *   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 option) 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 "bufferviewwidget.h"
+#include "client.h"
+
+
+BufferViewWidget::BufferViewWidget(QWidget *parent) : QDialog(parent) {
+  ui.setupUi(this);
+  setModal(true);
+  setStyleSheet("background-color: rgba(255, 255, 255, 40%); color: rgb(0, 0, 0); font-size: 5pt;");
+  //ui.tabWidget->tabBar()->setStyleSheet("font-size: 5pt;");
+
+  // get rid of the default tab page designer forces upon us :(
+  QWidget *w = ui.tabWidget->widget(0);
+  ui.tabWidget->removeTab(0);
+  delete w;
+
+  addPage(tr("Bufs"), BufferViewFilter::AllNets, QList<uint>());
+  addPage(tr("Chans"), BufferViewFilter::AllNets|BufferViewFilter::NoQueries|BufferViewFilter::NoServers, QList<uint>());
+  addPage(tr("Queries"), BufferViewFilter::AllNets|BufferViewFilter::NoChannels|BufferViewFilter::NoServers, QList<uint>());
+  addPage(tr("Nets"), BufferViewFilter::AllNets|BufferViewFilter::NoChannels|BufferViewFilter::NoQueries, QList<uint>());
+
+  connect(Client::bufferModel(), SIGNAL(bufferSelected(Buffer *)), this, SLOT(accept()));
+
+}
+
+BufferViewWidget::~BufferViewWidget() {
+
+
+}
+
+void BufferViewWidget::addPage(const QString &title, const BufferViewFilter::Modes &mode, const QList<uint> &nets) {
+  BufferView *view = new BufferView(ui.tabWidget);
+  view->setFilteredModel(Client::bufferModel(), mode, nets);
+  Client::bufferModel()->synchronizeView(view);
+  ui.tabWidget->addTab(view, title);
+}
diff --git a/src/qtopia/bufferviewwidget.h b/src/qtopia/bufferviewwidget.h
new file mode 100644 (file)
index 0000000..347626e
--- /dev/null
@@ -0,0 +1,43 @@
+/***************************************************************************
+ *   Copyright (C) 2005-07 by the Quassel IRC Team                         *
+ *   devel@quassel-irc.org                                                 *
+ *                                                                         *
+ *   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 option) 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.             *
+ ***************************************************************************/
+
+#ifndef _BUFFERVIEWWIDGET_H_
+#define _BUFFERVIEWWIDGET_H_
+
+#include "ui_bufferviewwidget.h"
+
+#include "bufferview.h"
+
+class BufferViewWidget : public QDialog {
+  Q_OBJECT
+
+
+  public:
+    BufferViewWidget(QWidget *parent = 0);
+    ~BufferViewWidget();
+
+
+  private:
+    void addPage(const QString &title, const BufferViewFilter::Modes &mode, const QList<uint> &nets);
+    Ui::BufferViewWidget ui;
+
+};
+
+#endif
index db647e8..38ca702 100644 (file)
@@ -1,6 +1,6 @@
 DEPMOD = uisupport common client
 QT_MOD = core gui network
 
 DEPMOD = uisupport common client
 QT_MOD = core gui network
 
-HDRS += chatline.h chatwidget.h coreconnectdlg.h mainwidget.h qtopiaui.h qtopiamainwin.h qtopiauistyle.h topicbar.h
-SRCS += chatline.cpp chatwidget.cpp coreconnectdlg.cpp main.cpp mainwidget.cpp qtopiaui.cpp qtopiamainwin.cpp qtopiauistyle.cpp topicbar.cpp
-FRMS += ui/coreconnectdlg.ui ui/coreconnectprogressdlg.ui ui/editcoreacctdlg.ui ui/mainwidget.ui
+HDRS += bufferviewwidget.h chatline.h chatwidget.h coreconnectdlg.h mainwidget.h qtopiaui.h qtopiamainwin.h qtopiauistyle.h topicbar.h
+SRCS += bufferviewwidget.cpp chatline.cpp chatwidget.cpp coreconnectdlg.cpp main.cpp mainwidget.cpp qtopiaui.cpp qtopiamainwin.cpp qtopiauistyle.cpp topicbar.cpp
+FRMS += ui/bufferviewwidget.ui ui/coreconnectdlg.ui ui/coreconnectprogressdlg.ui ui/editcoreacctdlg.ui ui/mainwidget.ui
index 225823f..5d61594 100644 (file)
@@ -21,6 +21,7 @@
 #include "qtopiamainwin.h"
 
 #include "buffertreemodel.h"
 #include "qtopiamainwin.h"
 
 #include "buffertreemodel.h"
+#include "bufferviewwidget.h"
 #include "chatline.h"
 #include "coreconnectdlg.h"
 #include "global.h"
 #include "chatline.h"
 #include "coreconnectdlg.h"
 #include "global.h"
@@ -59,11 +60,17 @@ QtopiaMainWin::QtopiaMainWin(QWidget *parent, Qt::WFlags flags) : QMainWindow(pa
   mainWidget = new MainWidget(this);
   setCentralWidget(mainWidget);
 
   mainWidget = new MainWidget(this);
   setCentralWidget(mainWidget);
 
-  QToolBar *toolBar = new QToolBar(this);
+  BufferTreeModel *model = Client::bufferModel();
+  connect(model, SIGNAL(bufferSelected(Buffer *)), this, SLOT(showBuffer(Buffer *)));
+
+  toolBar = new QToolBar(this);
   toolBar->setIconSize(QSize(16, 16));
   toolBar->setIconSize(QSize(16, 16));
-  toolBar->addAction(QIcon(":icon/trash"), "Trash");
   addToolBar(toolBar);
 
   addToolBar(toolBar);
 
+  bufferViewWidget = new BufferViewWidget(this);
+
+  setupActions();
+
   init();
   //gui->init();
 
   init();
   //gui->init();
 
@@ -83,6 +90,12 @@ void QtopiaMainWin::init() {
 QtopiaMainWin::~QtopiaMainWin() {
 
 
 QtopiaMainWin::~QtopiaMainWin() {
 
 
+}
+
+void QtopiaMainWin::setupActions() {
+  showBuffersAction = toolBar->addAction(QIcon(":icon/options-hide"), "Show Buffers", this, SLOT(showBufferView()));  // FIXME provide real icon
+
+
 }
 
 void QtopiaMainWin::connectedToCore() {
 }
 
 void QtopiaMainWin::connectedToCore() {
@@ -110,3 +123,10 @@ void QtopiaMainWin::showBuffer(Buffer *b) {
   mainWidget->setBuffer(b);
 
 }
   mainWidget->setBuffer(b);
 
 }
+
+void QtopiaMainWin::showBufferView() {
+  bufferViewWidget->showMaximized();
+
+}
+
+
index 37f7316..c1a26ba 100644 (file)
@@ -26,6 +26,7 @@
 #include "client.h"
 #include "global.h"
 
 #include "client.h"
 #include "global.h"
 
+class BufferViewWidget;
 class MainWidget;
 
 class QtopiaMainWin : public QMainWindow {
 class MainWidget;
 
 class QtopiaMainWin : public QMainWindow {
@@ -48,11 +49,16 @@ class QtopiaMainWin : public QMainWindow {
 
   private slots:
     void showBuffer(Buffer *);
 
   private slots:
     void showBuffer(Buffer *);
+    void showBufferView();
 
   private:
     void init();
 
   private:
     void init();
+    void setupActions();
 
     MainWidget *mainWidget;
 
     MainWidget *mainWidget;
+    QToolBar *toolBar;
+    QAction *showBuffersAction;
+    BufferViewWidget *bufferViewWidget;
 
     friend class QtopiaUi;
 };
 
     friend class QtopiaUi;
 };
diff --git a/src/qtopia/ui/bufferviewwidget.ui b/src/qtopia/ui/bufferviewwidget.ui
new file mode 100644 (file)
index 0000000..7835aec
--- /dev/null
@@ -0,0 +1,39 @@
+<ui version="4.0" >
+ <class>BufferViewWidget</class>
+ <widget class="QDialog" name="BufferViewWidget" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>240</width>
+    <height>286</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Select Buffer</string>
+  </property>
+  <layout class="QVBoxLayout" >
+   <item>
+    <widget class="QTabWidget" name="tabWidget" >
+     <property name="tabPosition" >
+      <enum>QTabWidget::South</enum>
+     </property>
+     <property name="tabShape" >
+      <enum>QTabWidget::Triangular</enum>
+     </property>
+     <property name="currentIndex" >
+      <number>0</number>
+     </property>
+     <widget class="QWidget" name="tab" >
+      <attribute name="title" >
+       <string>Tab 1</string>
+      </attribute>
+      <layout class="QVBoxLayout" />
+     </widget>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>