/***************************************************************************
- * 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 *
#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"
// 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>("QVariant");
- qRegisterMetaType<Message>("Message");
- qRegisterMetaType<BufferInfo>("BufferInfo");
- qRegisterMetaTypeStreamOperators<QVariant>("QVariant");
- qRegisterMetaTypeStreamOperators<Message>("Message");
- qRegisterMetaTypeStreamOperators<BufferInfo>("BufferInfo");
+ Global::registerMetaTypes();
+
+#include "../../version.inc"
Global::runMode = Global::ClientOnly;
+ Global::defaultPort = 4242;
+
+ 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();
// 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);
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() {
//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();
}