X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtopia%2Fqtopiamainwin.cpp;h=b927e72faa44b568f1b1ad2dd76b03dbf6a982ee;hp=68b2ef1e262b4b6e97e755dcf51f2d771e7ee705;hb=fc81975a545211f3ccd3d25e266477adad2c9445;hpb=d1f2e1324046ad4108d30434c92fc0a2d688ef09 diff --git a/src/qtopia/qtopiamainwin.cpp b/src/qtopia/qtopiamainwin.cpp index 68b2ef1e..b927e72f 100644 --- a/src/qtopia/qtopiamainwin.cpp +++ b/src/qtopia/qtopiamainwin.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-07 by the Quassel IRC Team * + * Copyright (C) 2005-08 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -24,10 +24,12 @@ #include "bufferviewwidget.h" #include "nicklistwidget.h" #include "chatline.h" +#include "clientbacklogmanager.h" #include "coreconnectdlg.h" #include "global.h" #include "mainwidget.h" #include "message.h" +#include "network.h" #include "qtopiaui.h" #include "signalproxy.h" @@ -39,41 +41,45 @@ // 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("BufferInfo"); - qRegisterMetaTypeStreamOperators("QVariant"); - qRegisterMetaTypeStreamOperators("Message"); - qRegisterMetaTypeStreamOperators("BufferInfo"); + Global::registerMetaTypes(); + +#include "../../version.inc" Global::runMode = Global::ClientOnly; Global::defaultPort = 4242; + Global::DEBUG = true; + + Network::setDefaultCodecForServer("ISO-8859-1"); + Network::setDefaultCodecForEncoding("UTF-8"); + Network::setDefaultCodecForDecoding("ISO-8859-15"); QCoreApplication::setOrganizationDomain("quassel-irc.org"); QCoreApplication::setApplicationName("Quassel IRC"); - QCoreApplication::setOrganizationName("Quassel IRC Team"); + QCoreApplication::setOrganizationName("Quassel Project"); QtopiaUi *gui = new QtopiaUi(this); Client::init(gui); setWindowTitle("Quassel IRC"); - setWindowIcon(QIcon(":/qirc-icon.png")); + setWindowIcon(QIcon(":icons/quassel-icon.png")); setWindowIconText("Quassel IRC"); mainWidget = new MainWidget(this); + mainWidget->setModel(Client::bufferModel()); + mainWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); setCentralWidget(mainWidget); - NetworkModel *model = Client::networkModel(); - connect(model, SIGNAL(bufferSelected(Buffer *)), this, SLOT(showBuffer(Buffer *))); - toolBar = new QToolBar(this); toolBar->setIconSize(QSize(16, 16)); toolBar->setWindowTitle(tr("Show Toolbar")); addToolBar(toolBar); - bufferViewWidget = new BufferViewWidget(this); + //bufferViewWidget = new BufferViewWidget(this); + bufferViewWidget = 0; // delayed creation to avoid QPainter warnings nickListWidget = new NickListWidget(this); + connect(mainWidget, SIGNAL(currentChanged(BufferId)), this, SLOT(showBuffer(BufferId))); + setupActions(); init(); @@ -83,8 +89,6 @@ QtopiaMainWin::QtopiaMainWin(QWidget *parent, Qt::WFlags flags) : QMainWindow(pa // at this point, client is fully initialized void QtopiaMainWin::init() { - Client::signalProxy()->attachSignal(this, SIGNAL(requestBacklog(BufferInfo, QVariant, QVariant))); - showMaximized(); CoreConnectDlg *dlg = new CoreConnectDlg(this); //setCentralWidget(dlg); @@ -129,16 +133,8 @@ void QtopiaMainWin::setupActions() { void QtopiaMainWin::connectedToCore() { foreach(BufferInfo id, Client::allBufferInfos()) { - emit requestBacklog(id, 100, -1); + Client::backlogManager()->requestBacklog(id.bufferId(), 500, -1); } - -#ifdef DEVELMODE - // FIXME just for testing: select first available buffer - if(Client::allBufferInfos().count() > 1) { - Buffer *b = Client::buffer(Client::allBufferInfos()[1]); - Client::networkModel()->selectBuffer(b); - } -#endif } void QtopiaMainWin::disconnectedFromCore() { @@ -151,15 +147,18 @@ AbstractUiMsg *QtopiaMainWin::layoutMsg(const Message &msg) { //return 0; } -void QtopiaMainWin::showBuffer(Buffer *b) { - bufferViewWidget->hide(); - mainWidget->setBuffer(b); - nickListWidget->setBuffer(b); - showNicksAction->setEnabled(b && b->bufferType() == Buffer::ChannelType); +void QtopiaMainWin::showBuffer(BufferId id) { + nickListWidget->setBuffer(id); + Buffer *b = Client::buffer(id); + //showNicksAction->setEnabled(b && b->bufferInfo().type() == BufferInfo::ChannelBuffer); FIXME enable again when we have a nicklist! } void QtopiaMainWin::showBufferView() { + if(!bufferViewWidget) { + bufferViewWidget = new BufferViewWidget(this); + connect(mainWidget, SIGNAL(currentChanged(BufferId)), bufferViewWidget, SLOT(accept())); + } bufferViewWidget->showMaximized(); }