X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtopia%2Fqtopiamainwin.cpp;h=02bbe7125e6993da5e22007ee7cbd0bcf25d66d5;hb=69952553cf2f5248a0c7e964d6d5844065d26612;hp=b821b6a635f226318df1cf37d82c65ce3c3b0e91;hpb=d079afedcfa1357afef4a20faf208588b4e97269;p=quassel.git diff --git a/src/qtopia/qtopiamainwin.cpp b/src/qtopia/qtopiamainwin.cpp index b821b6a6..02bbe712 100644 --- a/src/qtopia/qtopiamainwin.cpp +++ b/src/qtopia/qtopiamainwin.cpp @@ -21,14 +21,21 @@ #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 "qtopiaui.h" #include "signalproxy.h" +#include +#include + +#define DEBUGMODE + // 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) { @@ -43,9 +50,8 @@ QtopiaMainWin::QtopiaMainWin(QWidget *parent, Qt::WFlags flags) : QMainWindow(pa QCoreApplication::setOrganizationDomain("quassel-irc.org"); QCoreApplication::setApplicationName("Quassel IRC"); - QCoreApplication::setOrganizationName("Quassel IRC Development Team"); + QCoreApplication::setOrganizationName("Quassel IRC Team"); - //Style::init(); QtopiaUi *gui = new QtopiaUi(this); Client::init(gui); @@ -56,11 +62,18 @@ 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); + nickListWidget = new NickListWidget(this); + + setupActions(); + init(); //gui->init(); @@ -69,7 +82,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))); - connect(Client::bufferModel(), SIGNAL(bufferSelected(Buffer *)), this, SLOT(showBuffer(Buffer *))); CoreConnectDlg *dlg = new CoreConnectDlg(this); //setCentralWidget(dlg); @@ -82,15 +94,42 @@ QtopiaMainWin::~QtopiaMainWin() { } +void QtopiaMainWin::closeEvent(QCloseEvent *event) { +#ifndef DEBUGMODE + QMessageBox *box = new QMessageBox(QMessageBox::Question, tr("Quit Quassel IRC?"), tr("Do you really want to quit Quassel IRC?"), + QMessageBox::Cancel, this); + QAbstractButton *quit = box->addButton(tr("Quit"), QMessageBox::AcceptRole); + box->exec(); + if(box->clickedButton() == quit) event->accept(); + else event->ignore(); + box->deleteLater(); +#else + event->accept(); +#endif +} + +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())); + + QMenu *menu = new QMenu(this); + menu->addAction(showBuffersAction); + menu->addAction(showNicksAction); + QSoftMenuBar::addMenuTo(this, menu); +} + void QtopiaMainWin::connectedToCore() { foreach(BufferInfo id, Client::allBufferInfos()) { emit requestBacklog(id, 100, -1); } + +#ifdef DEBUGMODE // FIXME just for testing: select first available buffer if(Client::allBufferInfos().count() > 1) { Buffer *b = Client::buffer(Client::allBufferInfos()[1]); Client::bufferModel()->selectBuffer(b); } +#endif } void QtopiaMainWin::disconnectedFromCore() { @@ -105,5 +144,18 @@ AbstractUiMsg *QtopiaMainWin::layoutMsg(const Message &msg) { void QtopiaMainWin::showBuffer(Buffer *b) { mainWidget->setBuffer(b); + bufferViewWidget->hide(); + nickListWidget->setBuffer(b); + +} + +void QtopiaMainWin::showBufferView() { + bufferViewWidget->showMaximized(); } + +void QtopiaMainWin::showNickList() { + nickListWidget->showMaximized(); +} + +