From: Manuel Nickschas Date: Tue, 13 Nov 2007 01:18:42 +0000 (+0000) Subject: Added a first version of the BufferViewWidget for QuasselTopia. It even works already :) X-Git-Tag: 0.1.0~74 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=9b577202cff410b8a2f179fd9f3e33353e913cc7 Added a first version of the BufferViewWidget for QuasselTopia. It even works already :) --- diff --git a/Quassel.kdevelop.filelist b/Quassel.kdevelop.filelist index cfc3fb22..1b7ed653 100644 --- a/Quassel.kdevelop.filelist +++ b/Quassel.kdevelop.filelist @@ -98,6 +98,8 @@ src/core/userinputhandler.h 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 @@ -118,6 +120,7 @@ src/qtopia/topicbar.cpp 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 diff --git a/src/qtopia/bufferviewwidget.cpp b/src/qtopia/bufferviewwidget.cpp new file mode 100644 index 00000000..2ef57112 --- /dev/null +++ b/src/qtopia/bufferviewwidget.cpp @@ -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()); + addPage(tr("Chans"), BufferViewFilter::AllNets|BufferViewFilter::NoQueries|BufferViewFilter::NoServers, QList()); + addPage(tr("Queries"), BufferViewFilter::AllNets|BufferViewFilter::NoChannels|BufferViewFilter::NoServers, QList()); + addPage(tr("Nets"), BufferViewFilter::AllNets|BufferViewFilter::NoChannels|BufferViewFilter::NoQueries, QList()); + + connect(Client::bufferModel(), SIGNAL(bufferSelected(Buffer *)), this, SLOT(accept())); + +} + +BufferViewWidget::~BufferViewWidget() { + + +} + +void BufferViewWidget::addPage(const QString &title, const BufferViewFilter::Modes &mode, const QList &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 index 00000000..347626e2 --- /dev/null +++ b/src/qtopia/bufferviewwidget.h @@ -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 &nets); + Ui::BufferViewWidget ui; + +}; + +#endif diff --git a/src/qtopia/qtopia.pri b/src/qtopia/qtopia.pri index db647e87..38ca7022 100644 --- a/src/qtopia/qtopia.pri +++ b/src/qtopia/qtopia.pri @@ -1,6 +1,6 @@ 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 diff --git a/src/qtopia/qtopiamainwin.cpp b/src/qtopia/qtopiamainwin.cpp index 225823f6..5d615940 100644 --- a/src/qtopia/qtopiamainwin.cpp +++ b/src/qtopia/qtopiamainwin.cpp @@ -21,6 +21,7 @@ #include "qtopiamainwin.h" #include "buffertreemodel.h" +#include "bufferviewwidget.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); - 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->addAction(QIcon(":icon/trash"), "Trash"); addToolBar(toolBar); + bufferViewWidget = new BufferViewWidget(this); + + setupActions(); + init(); //gui->init(); @@ -83,6 +90,12 @@ void QtopiaMainWin::init() { QtopiaMainWin::~QtopiaMainWin() { +} + +void QtopiaMainWin::setupActions() { + showBuffersAction = toolBar->addAction(QIcon(":icon/options-hide"), "Show Buffers", this, SLOT(showBufferView())); // FIXME provide real icon + + } void QtopiaMainWin::connectedToCore() { @@ -110,3 +123,10 @@ void QtopiaMainWin::showBuffer(Buffer *b) { mainWidget->setBuffer(b); } + +void QtopiaMainWin::showBufferView() { + bufferViewWidget->showMaximized(); + +} + + diff --git a/src/qtopia/qtopiamainwin.h b/src/qtopia/qtopiamainwin.h index 37f73161..c1a26baf 100644 --- a/src/qtopia/qtopiamainwin.h +++ b/src/qtopia/qtopiamainwin.h @@ -26,6 +26,7 @@ #include "client.h" #include "global.h" +class BufferViewWidget; class MainWidget; class QtopiaMainWin : public QMainWindow { @@ -48,11 +49,16 @@ class QtopiaMainWin : public QMainWindow { private slots: void showBuffer(Buffer *); + void showBufferView(); private: void init(); + void setupActions(); MainWidget *mainWidget; + QToolBar *toolBar; + QAction *showBuffersAction; + BufferViewWidget *bufferViewWidget; friend class QtopiaUi; }; diff --git a/src/qtopia/ui/bufferviewwidget.ui b/src/qtopia/ui/bufferviewwidget.ui new file mode 100644 index 00000000..7835aec8 --- /dev/null +++ b/src/qtopia/ui/bufferviewwidget.ui @@ -0,0 +1,39 @@ + + BufferViewWidget + + + + 0 + 0 + 240 + 286 + + + + Select Buffer + + + + + + QTabWidget::South + + + QTabWidget::Triangular + + + 0 + + + + Tab 1 + + + + + + + + + +