X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtopia%2Fqtopiamainwin.cpp;h=081201f77ccfb945c1542be18b1e3e72df623218;hp=8625e0247654e8f224f88b533922e3f42e7ef2d6;hb=ec17201104f75eafaddccc174de8709b42b15ccb;hpb=ec9528b2997470953e3c4e456271e696026e9717 diff --git a/src/qtopia/qtopiamainwin.cpp b/src/qtopia/qtopiamainwin.cpp index 8625e024..081201f7 100644 --- a/src/qtopia/qtopiamainwin.cpp +++ b/src/qtopia/qtopiamainwin.cpp @@ -20,37 +20,67 @@ #include "qtopiamainwin.h" +#include "buffertreemodel.h" +#include "bufferviewwidget.h" +#include "nicklistwidget.h" +#include "chatline.h" +#include "coreconnectdlg.h" #include "global.h" +#include "mainwidget.h" #include "message.h" -#include "qtopiagui.h" -#include "coreconnectdlg.h" +#include "qtopiaui.h" +#include "signalproxy.h" + +#include // This constructor is the first thing to be called for a Qtopia app, so we do the init stuff // here (rather than in a main.cpp). QtopiaMainWin::QtopiaMainWin(QWidget *parent, Qt::WFlags flags) : QMainWindow(parent, flags) { qRegisterMetaType("QVariant"); qRegisterMetaType("Message"); - qRegisterMetaType("BufferId"); + qRegisterMetaType("BufferInfo"); qRegisterMetaTypeStreamOperators("QVariant"); qRegisterMetaTypeStreamOperators("Message"); - qRegisterMetaTypeStreamOperators("BufferId"); + qRegisterMetaTypeStreamOperators("BufferInfo"); Global::runMode = Global::ClientOnly; QCoreApplication::setOrganizationDomain("quassel-irc.org"); QCoreApplication::setApplicationName("Quassel IRC"); - QCoreApplication::setOrganizationName("Quassel IRC Development Team"); + QCoreApplication::setOrganizationName("Quassel IRC Team"); - //Style::init(); - QtopiaGui *gui = new QtopiaGui(this); + QtopiaUi *gui = new QtopiaUi(this); Client::init(gui); - //gui->init(); setWindowTitle("Quassel IRC"); - //setWindowTitle(QString::fromUtf8("Κυασελ Εγαρζη")); setWindowIcon(QIcon(":/qirc-icon.png")); setWindowIconText("Quassel IRC"); + mainWidget = new MainWidget(this); + setCentralWidget(mainWidget); + + BufferTreeModel *model = Client::bufferModel(); + connect(model, SIGNAL(bufferSelected(Buffer *)), this, SLOT(showBuffer(Buffer *))); + + toolBar = new QToolBar(this); + toolBar->setIconSize(QSize(16, 16)); + addToolBar(toolBar); + + bufferViewWidget = new BufferViewWidget(this); + nickListWidget = new NickListWidget(this); + + setupActions(); + + init(); + //gui->init(); + +} + +// at this point, client is fully initialized +void QtopiaMainWin::init() { + Client::signalProxy()->attachSignal(this, SIGNAL(requestBacklog(BufferInfo, QVariant, QVariant))); + connect(Client::bufferModel(), SIGNAL(bufferSelected(Buffer *)), this, SLOT(showBuffer(Buffer *))); + CoreConnectDlg *dlg = new CoreConnectDlg(this); //setCentralWidget(dlg); dlg->showMaximized(); @@ -60,12 +90,23 @@ QtopiaMainWin::QtopiaMainWin(QWidget *parent, Qt::WFlags flags) : QMainWindow(pa QtopiaMainWin::~QtopiaMainWin() { +} + +void QtopiaMainWin::setupActions() { + showBuffersAction = toolBar->addAction(QIcon(":icon/options-hide"), "Show Buffers", this, SLOT(showBufferView())); // FIXME provide real icon + showNicksAction = toolBar->addAction(QIcon(":icon/list"), "Show Nicks", this, SLOT(showNickList())); + } void QtopiaMainWin::connectedToCore() { - foreach(BufferId id, Client::allBufferIds()) { + foreach(BufferInfo id, Client::allBufferInfos()) { emit requestBacklog(id, 100, -1); } + // FIXME just for testing: select first available buffer + if(Client::allBufferInfos().count() > 1) { + Buffer *b = Client::buffer(Client::allBufferInfos()[1]); + Client::bufferModel()->selectBuffer(b); + } } void QtopiaMainWin::disconnectedFromCore() { @@ -74,6 +115,23 @@ void QtopiaMainWin::disconnectedFromCore() { } AbstractUiMsg *QtopiaMainWin::layoutMsg(const Message &msg) { - //return new ChatLine(msg); - return 0; + return new ChatLine(msg); + //return 0; +} + +void QtopiaMainWin::showBuffer(Buffer *b) { + mainWidget->setBuffer(b); + //nickListWidget-> + } + +void QtopiaMainWin::showBufferView() { + bufferViewWidget->showMaximized(); + +} + +void QtopiaMainWin::showNickList() { + nickListWidget->showMaximized(); +} + +