Merging r726:730 from trunk to branches/0.3. This forwardports everything except... 0.3.0-pre
authorManuel Nickschas <sputnick@quassel-irc.org>
Sun, 13 Apr 2008 20:02:30 +0000 (20:02 +0000)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sun, 13 Apr 2008 20:02:30 +0000 (20:02 +0000)
quassel.desktop
src/client/networkmodel.cpp
src/common/ircuser.cpp
src/common/ircuser.h
src/core/ircserverhandler.cpp
src/core/ircserverhandler.h
src/qtui/chatline-old.cpp
src/qtui/inputwidget.cpp
src/qtui/mainwin.cpp
src/qtui/settingspages/colorsettingspage.ui
version.inc

index 1dbf9e0..728d3b2 100644 (file)
@@ -1,10 +1,10 @@
 [Desktop Entry]
 Type=Application
-Version=0.2.0-alpha1
+Version=1.0
 Name=Quassel IRC
 GenericName=IRC Client
 Comment=Distributed IRC client with central core component
 Icon=quassel
 TryExec=quassel
 Exec=quassel
-Categories=Network;Chat;IRCClient;
+Categories=Qt;Network;Chat;IRCClient;
index 0dfb533..713198a 100644 (file)
@@ -590,7 +590,10 @@ QString IrcUserItem::toolTip(int column) const {
   if(_ircUser->isAway()) toolTip[0].append(" is away");
   if(!_ircUser->awayMessage().isEmpty()) toolTip[0].append(QString(" (%1)").arg(_ircUser->awayMessage()));
   if(!_ircUser->realName().isEmpty()) toolTip.append(_ircUser->realName());
-  if(!_ircUser->ircOperator().isEmpty()) toolTip.append(_ircUser->ircOperator());
+  if(!_ircUser->ircOperator().isEmpty()) toolTip.append(QString("%1 %2").arg(nickName()).arg(_ircUser->ircOperator()));
+  if(!_ircUser->suserHost().isEmpty()) toolTip.append(_ircUser->suserHost());
+  if(!_ircUser->whoisServiceReply().isEmpty()) toolTip.append(_ircUser->whoisServiceReply());
+
   toolTip.append(_ircUser->hostmask().remove(0, _ircUser->hostmask().indexOf("!")+1));
 
   if(_ircUser->idleTime().isValid()) {
index e911d33..eee29a8 100644 (file)
@@ -40,6 +40,7 @@ IrcUser::IrcUser(const QString &hostmask, Network *network) : SyncableObject(net
     // _idleTime(QDateTime::currentDateTime()),
     _ircOperator(),
     _lastAwayMessage(0),
+    _whoisServiceReply(),
     _network(network),
     _codecForEncoding(0),
     _codecForDecoding(0)
@@ -54,60 +55,16 @@ IrcUser::~IrcUser() {
 //  PUBLIC:
 // ====================
 
-QString IrcUser::user() const {
-  return _user;
-}
-
-QString IrcUser::host() const {
-  return _host;
-}
-
-QString IrcUser::nick() const {
-  return _nick;
-}
-
-QString IrcUser::realName() const {
-  return _realName;
-}
-
 QString IrcUser::hostmask() const {
   return QString("%1!%2@%3").arg(nick()).arg(user()).arg(host());
 }
 
-bool IrcUser::isAway() const {
-  return _away;
-}
-
-QString IrcUser::awayMessage() const {
-  return _awayMessage;
-}
-
-QString IrcUser::server() const {
-  return _server;
-}
-
 QDateTime IrcUser::idleTime() {
   if(QDateTime::currentDateTime().toTime_t() - _idleTimeSet.toTime_t() > 1200)
     _idleTime = QDateTime();
   return _idleTime;
 }
 
-QDateTime IrcUser::loginTime() const {
-  return _loginTime;
-}
-
-QString IrcUser::ircOperator() const {
-  return _ircOperator;
-}
-
-int IrcUser::lastAwayMessage() const {
-  return _lastAwayMessage;
-}
-
-QString IrcUser::userModes() const {
-  return _userModes;
-}
-
 QStringList IrcUser::channels() const {
   QStringList chanList;
   IrcChannel *channel;
@@ -117,13 +74,6 @@ QStringList IrcUser::channels() const {
   return chanList;
 }
 
-Network* IrcUser::network() const {
-  return _network;
-}
-
-QTextCodec *IrcUser::codecForEncoding() const {
-  return _codecForEncoding;
-}
 
 void IrcUser::setCodecForEncoding(const QString &name) {
   setCodecForEncoding(QTextCodec::codecForName(name.toAscii()));
@@ -133,10 +83,6 @@ void IrcUser::setCodecForEncoding(QTextCodec *codec) {
   _codecForEncoding = codec;
 }
 
-QTextCodec *IrcUser::codecForDecoding() const {
-  return _codecForDecoding;
-}
-
 void IrcUser::setCodecForDecoding(const QString &name) {
   setCodecForDecoding(QTextCodec::codecForName(name.toAscii()));
 }
@@ -239,6 +185,20 @@ void IrcUser::setNick(const QString &nick) {
   }
 }
 
+void IrcUser::setWhoisServiceReply(const QString &whoisServiceReply) {
+  if(!whoisServiceReply.isEmpty() && whoisServiceReply != _whoisServiceReply) {
+    _whoisServiceReply = whoisServiceReply;
+    emit whoisServiceReplySet(whoisServiceReply);
+  }
+}
+
+void IrcUser::setSuserHost(const QString &suserHost) {
+  if(!suserHost.isEmpty() && suserHost != _suserHost) {
+    _suserHost = suserHost;
+    emit suserHostSet(suserHost);
+  }
+}
+
 void IrcUser::updateObjectName() {
   renameObject(QString::number(network()->networkId().toInt()) + "/" + _nick);
 }
index 6916f0e..00df169 100644 (file)
@@ -47,6 +47,8 @@ class IrcUser : public SyncableObject {
   Q_PROPERTY(QString server READ server WRITE setServer STORED false)
   Q_PROPERTY(QString ircOperator READ ircOperator WRITE setIrcOperator STORED false)
   Q_PROPERTY(int lastAwayMessage READ lastAwayMessage WRITE setLastAwayMessage STORED false)
+  Q_PROPERTY(QString whoisServiceReply READ whoisServiceReply WRITE setWhoisServiceReply STORED false)
+  Q_PROPERTY(QString suserHost READ suserHost WRITE setSuserHost STORED false)
 
   Q_PROPERTY(QStringList channels READ channels STORED false)
   Q_PROPERTY(QString userModes READ userModes WRITE setUserModes)
@@ -55,27 +57,29 @@ public:
   IrcUser(const QString &hostmask, Network *network);
   virtual ~IrcUser();
 
-  QString user() const;
-  QString host() const;
-  QString nick() const;
-  QString realName() const; 
+  inline QString user() const { return _user; }
+  inline QString host() const { return _host; }
+  inline QString nick() const { return _nick; }
+  inline QString realName() const { return _realName; }
   QString hostmask() const;
-  bool isAway() const;
-  QString awayMessage() const;
+  inline bool isAway() const { return _away; }
+  inline QString awayMessage() const { return _awayMessage; }
   QDateTime idleTime();
-  QDateTime loginTime() const;
-  QString server() const;
-  QString ircOperator() const;
-  int lastAwayMessage() const;
-  Network *network() const;
+  inline QDateTime loginTime() const { return _loginTime; }
+  inline QString server() const { return _server; }
+  inline QString ircOperator() const { return _ircOperator; }
+  inline int lastAwayMessage() const { return _lastAwayMessage; }
+  inline QString whoisServiceReply() const { return _whoisServiceReply; }
+  inline QString suserHost() const { return _suserHost; }
+  inline Network *network() const { return _network; }
 
-  QString userModes() const;
+  inline QString userModes() const { return _userModes; }
 
   QStringList channels() const;
 
   // user-specific encodings
-  QTextCodec *codecForEncoding() const;
-  QTextCodec *codecForDecoding() const;
+  inline QTextCodec *codecForEncoding() const { return _codecForEncoding; }
+  inline QTextCodec *codecForDecoding() const { return _codecForDecoding; }
   void setCodecForEncoding(const QString &codecName);
   void setCodecForEncoding(QTextCodec *codec);
   void setCodecForDecoding(const QString &codecName);
@@ -96,6 +100,8 @@ public slots:
   void setServer(const QString &server);
   void setIrcOperator(const QString &ircOperator);
   void setLastAwayMessage(const int &lastAwayMessage);
+  void setWhoisServiceReply(const QString &whoisServiceReply);
+  void setSuserHost(const QString &suserHost);
   void updateHostmask(const QString &mask);
 
   void setUserModes(const QString &modes);
@@ -120,6 +126,8 @@ signals:
   void serverSet(QString server);
   void ircOperatorSet(QString ircOperator);
   void lastAwayMessageSet(int lastAwayMessage);
+  void whoisServiceReplySet(QString whoisServiceReply);
+  void suserHostSet(QString suserHost);
   void hostmaskUpdated(QString mask);
 
   void userModesSet(QString modes);
@@ -157,7 +165,9 @@ private:
   QDateTime _loginTime;
   QString _ircOperator;
   int _lastAwayMessage;
-  
+  QString _whoisServiceReply;
+  QString _suserHost;
+
   // QSet<QString> _channels;
   QSet<IrcChannel *> _channels;
   QString _userModes;
index 74192f1..138b753 100644 (file)
@@ -389,7 +389,7 @@ void IrcServerHandler::handle005(const QString &prefix, const QList<QByteArray>
     qWarning() << "IrcServerHandler::handle005(): received RPL_ISUPPORT (005) with too few parameters:" << serverDecode(params);
     return;
   }
-    
+
   QString rpl_isupport_suffix = serverDecode(params.last());
   if(!rpl_isupport_suffix.toLower().contains("supported")) {
     qWarning() << "Received invalid RPL_ISUPPORT! Suffix is:" << rpl_isupport_suffix << "Excpected: are supported by this server";
@@ -406,6 +406,33 @@ void IrcServerHandler::handle005(const QString &prefix, const QList<QByteArray>
   }
 }
 
+/* RPL_UMODEIS - "<user_modes> [<user_mode_params>]" */
+void IrcServerHandler::handle221(const QString &prefix, const QList<QByteArray> &params) {
+  Q_UNUSED(prefix)
+  //TODO: save information in network object
+  emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("%1").arg(serverDecode(params).join(" ")));
+}
+
+/* RPL_STATSCONN - "Highest connection cout: 8000 (7999 clients)" */
+void IrcServerHandler::handle250(const QString &prefix, const QList<QByteArray> &params) {
+  Q_UNUSED(prefix)
+  //TODO: save information in network object
+  emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("%1").arg(serverDecode(params).join(" ")));
+}
+
+/* RPL_LOCALUSERS - "Current local user: 5024  Max: 7999 */
+void IrcServerHandler::handle265(const QString &prefix, const QList<QByteArray> &params) {
+  Q_UNUSED(prefix)
+  //TODO: save information in network object
+  emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("%1").arg(serverDecode(params).join(" ")));
+}
+
+/* RPL_GLOBALUSERS - "Current global users: 46093  Max: 47650" */
+void IrcServerHandler::handle266(const QString &prefix, const QList<QByteArray> &params) {
+  Q_UNUSED(prefix)
+  //TODO: save information in network object
+  emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("%1").arg(serverDecode(params).join(" ")));
+}
 
 /* 
 WHOIS-Message: 
@@ -451,6 +478,28 @@ void IrcServerHandler::handle301(const QString &prefix, const QList<QByteArray>
   }
 }
 
+/* RPL_WHOISSERVICE - "<user> is registered nick" */
+void IrcServerHandler::handle307(const QString &prefix, const QList<QByteArray> &params) {
+  Q_UNUSED(prefix)
+  QString whoisServiceReply = serverDecode(params).join(" ");
+  IrcUser *ircuser = network()->ircUser(serverDecode(params[0]));
+  if(ircuser) {
+    ircuser->setWhoisServiceReply(whoisServiceReply);
+  }
+  emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("[Whois] %1").arg(whoisServiceReply));
+}
+
+/* RPL_SUSERHOST - "<user> is available for help." */
+void IrcServerHandler::handle310(const QString &prefix, const QList<QByteArray> &params) {
+  Q_UNUSED(prefix)
+  QString suserHost = serverDecode(params).join(" ");
+  IrcUser *ircuser = network()->ircUser(serverDecode(params[0]));
+  if(ircuser) {
+    ircuser->setSuserHost(suserHost);
+  }
+  emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("[Whois] %1").arg(suserHost));
+}
+
 /*  RPL_WHOISUSER - "<nick> <user> <host> * :<real name>" */
 void IrcServerHandler::handle311(const QString &prefix, const QList<QByteArray> &params) {
   Q_UNUSED(prefix)
index 562c422..fe62904 100644 (file)
@@ -46,7 +46,13 @@ public slots:
 
   void handle001(const QString &prefix, const QList<QByteArray> &params);   // RPL_WELCOME
   void handle005(const QString &prefix, const QList<QByteArray> &params);   // RPL_ISUPPORT
+  void handle221(const QString &prefix, const QList<QByteArray> &params);   // RPL_UMODEIS
+  void handle250(const QString &prefix, const QList<QByteArray> &params);   // RPL_STATSDLINE
+  void handle265(const QString &prefix, const QList<QByteArray> &params);   // RPL_LOCALUSERS
+  void handle266(const QString &prefix, const QList<QByteArray> &params);   // RPL_GLOBALUSERS
   void handle301(const QString &prefix, const QList<QByteArray> &params);   // RPL_AWAY
+  void handle307(const QString &prefix, const QList<QByteArray> &params);   // RPL_WHOISSERVICE
+  void handle310(const QString &prefix, const QList<QByteArray> &params);   // RPL_SUSERHOST
   void handle311(const QString &prefix, const QList<QByteArray> &params);   // RPL_WHOISUSER
   void handle312(const QString &prefix, const QList<QByteArray> &params);   // RPL_WHOISSERVER
   void handle313(const QString &prefix, const QList<QByteArray> &params);   // RPL_WHOISOPERATOR
index 0a3cc20..c1cd7d2 100644 (file)
@@ -23,6 +23,8 @@
 #include "network.h"
 #include "qtui.h"
 
+#include "qtuisettings.h"
+
 //! Construct a ChatLineOld object from a message.
 /**
  * \param m   The message to be layouted and rendered
@@ -316,8 +318,10 @@ void ChatLineOld::draw(QPainter *p, const QPointF &pos) {
     p->drawRect(QRectF(pos, QSizeF(tsWidth + QtUi::style()->sepTsSender() + senderWidth + QtUi::style()->sepSenderText() + textWidth, height())));
   } else {
     if(isHighlight) {
+      QtUiSettings s("QtUi/Colors");
+      QColor highlightColor = s.value("highlightColor", QVariant(QColor("lightcoral"))).value<QColor>();
       p->setPen(Qt::NoPen);
-      p->setBrush(QColor("lightcoral") /*pal.brush(QPalette::AlternateBase) */);
+      p->setBrush(highlightColor /*pal.brush(QPalette::AlternateBase) */);
       p->drawRect(QRectF(pos, QSizeF(tsWidth + QtUi::style()->sepTsSender() + senderWidth + QtUi::style()->sepSenderText() + textWidth, height())));
     }
     if(selectionMode == Partial) {
index 53b64c8..a126717 100644 (file)
@@ -139,7 +139,7 @@ void InputWidget::updateNickSelector() const {
   }
 
   if(net->me() && nickIdx < nicks.count())
-    nicks[nickIdx] = net->myNick() + QString(" (%1)").arg(net->me()->userModes());
+    nicks[nickIdx] = net->myNick() + QString(" (+%1)").arg(net->me()->userModes());
       
   ui.ownNick->addItems(nicks);
   ui.ownNick->setCurrentIndex(nickIdx);
index b87d31c..cf7a6e0 100644 (file)
@@ -297,7 +297,6 @@ void MainWin::setupStatusBar() {
 
   UiSettings uiSettings;
 
-  //TODO: save status
   bool enabled = uiSettings.value("ShowStatusBar", QVariant(true)).toBool();
   showStatusbar->setChecked(enabled);
   enabled ? statusBar()->show() : statusBar()->hide();
index e617127..ab646f2 100644 (file)
            <item row="5" column="2" >
             <widget class="ColorButton" name="highlightColor" >
              <property name="enabled" >
-              <bool>false</bool>
+              <bool>true</bool>
              </property>
              <property name="text" >
               <string/>
index 7758224..a294d20 100644 (file)
@@ -4,8 +4,8 @@
 { using namespace Global;
 
   quasselVersion = "0.2.0-beta1-pre";
-  quasselDate = "2008-04-11";
-  quasselBuild = 725;
+  quasselDate = "2008-04-13";
+  quasselBuild = 729;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 642;