IrcChannel::ircUserDestroyed() now sends appropriate signals. Plus some other small...
authorManuel Nickschas <sputnick@quassel-irc.org>
Wed, 28 Nov 2007 17:24:51 +0000 (17:24 +0000)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 28 Nov 2007 17:24:51 +0000 (17:24 +0000)
that I can't remember right now, but I should sync before starting to move files around
again...

src/client/buffer.cpp
src/client/nickmodel.cpp
src/client/nickmodel.h
src/common/ircchannel.cpp
src/common/ircchannel.h
src/common/settings.cpp
src/qtopia/bufferviewwidget.cpp
src/qtopia/bufferviewwidget.h
src/qtopia/qtopiamainwin.cpp

index 023263b..b0e2862 100644 (file)
@@ -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);
   }
index a3e7692..a1e8bcd 100644 (file)
@@ -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);
 }
index 828f21d..8a65e9d 100644 (file)
@@ -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 &);
index c669d1f..577270d 100644 (file)
@@ -207,6 +207,8 @@ void IrcChannel::initSetUserModes(const QVariantMap &usermodes) {
 void IrcChannel::ircUserDestroyed() {
   IrcUser *ircUser = static_cast<IrcUser *>(sender());
   Q_ASSERT(ircUser);
+  emit ircUserParted(ircUser);
+  emit ircUserDestroyed(ircUser);
   _userModes.remove(ircUser);
 }
 
index c66bf2b..6dab1e2 100644 (file)
@@ -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);
index b5ca916..b337184 100644 (file)
@@ -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
 }
 
index 2ef5711..b884cde 100644 (file)
@@ -38,7 +38,7 @@ BufferViewWidget::BufferViewWidget(QWidget *parent) : QDialog(parent) {
   addPage(tr("Queries"), BufferViewFilter::AllNets|BufferViewFilter::NoChannels|BufferViewFilter::NoServers, QList<uint>());
   addPage(tr("Nets"), BufferViewFilter::AllNets|BufferViewFilter::NoChannels|BufferViewFilter::NoQueries, QList<uint>());
 
-  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.";
+}
index 347626e..d161e98 100644 (file)
@@ -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<uint> &nets);
index 081201f..6348a02 100644 (file)
@@ -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->
 
 }