From eaa92c3648f551569e504971ebc75021a7e3e720 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Wed, 28 Nov 2007 17:24:51 +0000 Subject: [PATCH] IrcChannel::ircUserDestroyed() now sends appropriate signals. Plus some other small stuff that I can't remember right now, but I should sync before starting to move files around again... --- src/client/buffer.cpp | 2 +- src/client/nickmodel.cpp | 8 ++++---- src/client/nickmodel.h | 2 +- src/common/ircchannel.cpp | 2 ++ src/common/ircchannel.h | 1 + src/common/settings.cpp | 4 +--- src/qtopia/bufferviewwidget.cpp | 9 ++++++++- src/qtopia/bufferviewwidget.h | 3 ++- src/qtopia/qtopiamainwin.cpp | 2 +- 9 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/client/buffer.cpp b/src/client/buffer.cpp index 023263bb..b0e28621 100644 --- a/src/client/buffer.cpp +++ b/src/client/buffer.cpp @@ -159,7 +159,7 @@ IrcChannel *Buffer::ircChannel() const { return _ircChannel; } -void Buffer::setIrcChannel(IrcChannel *ircchan) { +void Buffer::setIrcChannel(IrcChannel *ircchan) { return; if(_ircChannel) { disconnect(_ircChannel, 0, this, 0); } diff --git a/src/client/nickmodel.cpp b/src/client/nickmodel.cpp index a3e7692f..a1e8bcd3 100644 --- a/src/client/nickmodel.cpp +++ b/src/client/nickmodel.cpp @@ -50,6 +50,7 @@ void NickModel::setIrcChannel(IrcChannel *channel) { _ircChannel = channel; reset(); if(_ircChannel) { + connect(channel, SIGNAL(destroyed()), this, SLOT(setIrcChannel())); connect(channel, SIGNAL(ircUserJoined(IrcUser *)), this, SLOT(addUser(IrcUser *))); connect(channel, SIGNAL(ircUserParted(IrcUser *)), this, SLOT(removeUser(IrcUser *))); connect(channel, SIGNAL(ircUserNickSet(IrcUser *, QString)), this, SLOT(renameUser(IrcUser *))); @@ -60,7 +61,6 @@ void NickModel::setIrcChannel(IrcChannel *channel) { addUser(ircuser); } } - } QVariant NickModel::headerData(int section, Qt::Orientation orientation, int role) const { @@ -194,14 +194,14 @@ int NickModel::categoryFromIndex(const QModelIndex &index) const { return index.internalId(); } -void NickModel::addUser(IrcUser *user) { +void NickModel::addUser(IrcUser *user) { //qDebug() << "adding" << user->nick(); int cat = userCategory(user); beginInsertRows(createIndex(cat-1, 0, 0), 0, 0); users[cat-1].prepend(user); endInsertRows(); } -void NickModel::removeUser(IrcUser *user) { +void NickModel::removeUser(IrcUser *user) { //qDebug() << "removing" << user->nick(); // we don't know for sure which category this user was in, so we have to search QModelIndex index = indexOfUser(user); removeUser(index); @@ -214,7 +214,7 @@ void NickModel::removeUser(const QModelIndex &index) { endRemoveRows(); } -void NickModel::renameUser(IrcUser *user) { +void NickModel::renameUser(IrcUser *user) { //qDebug() << "renaming" << user->nick(); QModelIndex index = indexOfUser(user); emit dataChanged(index, index); } diff --git a/src/client/nickmodel.h b/src/client/nickmodel.h index 828f21d4..8a65e9d7 100644 --- a/src/client/nickmodel.h +++ b/src/client/nickmodel.h @@ -59,7 +59,7 @@ class NickModel : public QAbstractItemModel { int userCategory(IrcUser *) const; public slots: - void setIrcChannel(IrcChannel *); + void setIrcChannel(IrcChannel *chan = 0); void addUser(IrcUser *); void removeUser(IrcUser *); void removeUser(const QModelIndex &); diff --git a/src/common/ircchannel.cpp b/src/common/ircchannel.cpp index c669d1f0..577270d6 100644 --- a/src/common/ircchannel.cpp +++ b/src/common/ircchannel.cpp @@ -207,6 +207,8 @@ void IrcChannel::initSetUserModes(const QVariantMap &usermodes) { void IrcChannel::ircUserDestroyed() { IrcUser *ircUser = static_cast(sender()); Q_ASSERT(ircUser); + emit ircUserParted(ircUser); + emit ircUserDestroyed(ircUser); _userModes.remove(ircUser); } diff --git a/src/common/ircchannel.h b/src/common/ircchannel.h index c66bf2b0..6dab1e20 100644 --- a/src/common/ircchannel.h +++ b/src/common/ircchannel.h @@ -90,6 +90,7 @@ signals: void ircUserJoined(IrcUser *ircuser); void ircUserParted(IrcUser *ircuser); + void ircUserDestroyed(IrcUser *ircuser); void ircUserNickSet(IrcUser *ircuser, QString nick); void ircUserModeAdded(IrcUser *ircuser, QString mode); void ircUserModeRemoved(IrcUser *ircuser, QString mode); diff --git a/src/common/settings.cpp b/src/common/settings.cpp index b5ca9167..b337184f 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -38,16 +38,14 @@ Settings::Settings(QString g) : group(g) { //if(Qtopia::sandboxDir().isEmpty()) QSettings(); //else QSettings(Qtopia::sandboxDir() + "/etc/QuasselIRC.conf", QSettings::NativeFormat); // ...so we have to use a workaround: - /* QString appPath = QCoreApplication::applicationFilePath(); if(appPath.startsWith(Qtopia::packagePath())) { QString sandboxPath = appPath.left(Qtopia::packagePath().length() + 32); QSettings(sandboxPath + "/etc/QuasselIRC.conf", QSettings::IniFormat); + qDebug() << sandboxPath + "/etc/QuasselIRC.conf"; } else { QSettings(); } - */ - QSettings(); #endif } diff --git a/src/qtopia/bufferviewwidget.cpp b/src/qtopia/bufferviewwidget.cpp index 2ef57112..b884cdef 100644 --- a/src/qtopia/bufferviewwidget.cpp +++ b/src/qtopia/bufferviewwidget.cpp @@ -38,7 +38,7 @@ BufferViewWidget::BufferViewWidget(QWidget *parent) : QDialog(parent) { 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())); + //connect(Client::bufferModel(), SIGNAL(bufferSelected(Buffer *)), this, SLOT(accept())); } @@ -53,3 +53,10 @@ void BufferViewWidget::addPage(const QString &title, const BufferViewFilter::Mod Client::bufferModel()->synchronizeView(view); ui.tabWidget->addTab(view, title); } + +void BufferViewWidget::accept() { + qDebug() << "accepting"; + QDialog::accept(); + //hide(); + qDebug() << "...done."; +} diff --git a/src/qtopia/bufferviewwidget.h b/src/qtopia/bufferviewwidget.h index 347626e2..d161e98e 100644 --- a/src/qtopia/bufferviewwidget.h +++ b/src/qtopia/bufferviewwidget.h @@ -31,8 +31,9 @@ class BufferViewWidget : public QDialog { public: BufferViewWidget(QWidget *parent = 0); - ~BufferViewWidget(); + virtual ~BufferViewWidget(); + virtual void accept(); private: void addPage(const QString &title, const BufferViewFilter::Modes &mode, const QList &nets); diff --git a/src/qtopia/qtopiamainwin.cpp b/src/qtopia/qtopiamainwin.cpp index 081201f7..6348a028 100644 --- a/src/qtopia/qtopiamainwin.cpp +++ b/src/qtopia/qtopiamainwin.cpp @@ -79,7 +79,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); @@ -121,6 +120,7 @@ AbstractUiMsg *QtopiaMainWin::layoutMsg(const Message &msg) { void QtopiaMainWin::showBuffer(Buffer *b) { mainWidget->setBuffer(b); + bufferViewWidget->hide(); //nickListWidget-> } -- 2.20.1