From 9d12f8189a0dfd8ac76e41aea86ac56bdf907fde Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Sun, 3 Feb 2008 14:22:34 +0000 Subject: [PATCH] More Code Cleanup - CTCP Replys are working now - /query asdf opens now a new buffer - highlights are now determined in the client --- src/client/networkmodel.cpp | 3 +- src/common/message.h | 25 +++++++- .../SQLite/{2 => 3}/delete_backlog_by_uid.sql | 0 .../SQLite/{2 => 3}/delete_buffers_by_uid.sql | 0 .../{2 => 3}/delete_networks_by_uid.sql | 0 .../SQLite/{2 => 3}/delete_quasseluser.sql | 0 .../SQL/SQLite/{2 => 3}/insert_buffer.sql | 0 .../SQL/SQLite/{2 => 3}/insert_message.sql | 0 .../SQL/SQLite/{2 => 3}/insert_network.sql | 0 .../SQLite/{2 => 3}/insert_quasseluser.sql | 0 .../SQL/SQLite/{2 => 3}/insert_sender.sql | 0 .../SQL/SQLite/{2 => 3}/select_authuser.sql | 0 .../SQLite/{2 => 3}/select_bufferByName.sql | 0 .../SQL/SQLite/{2 => 3}/select_buffers.sql | 0 .../SQLite/{2 => 3}/select_lastMessage.sql | 0 .../SQLite/{2 => 3}/select_messageRange.sql | 0 .../SQL/SQLite/{2 => 3}/select_messages.sql | 0 .../SQLite/{2 => 3}/select_messagesOffset.sql | 0 .../SQLite/{2 => 3}/select_messagesSince.sql | 0 .../{2 => 3}/select_messagesSinceOffset.sql | 0 .../SQL/SQLite/{2 => 3}/select_userid.sql | 0 .../SQLite/{2 => 3}/setup_000_quasseluser.sql | 0 .../SQL/SQLite/{2 => 3}/setup_010_sender.sql | 0 .../SQL/SQLite/{2 => 3}/setup_020_network.sql | 0 .../SQL/SQLite/{2 => 3}/setup_040_buffer.sql | 0 .../SQLite/{2 => 3}/setup_050_buffer_idx.sql | 0 .../SQL/SQLite/{2 => 3}/setup_060_backlog.sql | 0 .../SQLite/{2 => 3}/setup_070_coreinfo.sql | 0 .../SQL/SQLite/{2 => 3}/setup_080_version.sql | 0 .../SQL/SQLite/{2 => 3}/update_username.sql | 0 .../SQLite/{2 => 3}/update_userpassword.sql | 0 .../3/upgrade_000_update_backlog_flags.sql | 1 + .../3/upgrade_010_update_schemaversion.sql | 3 + src/core/coresession.cpp | 10 +--- src/core/ctcphandler.cpp | 22 ++++--- src/core/ctcphandler.h | 2 +- src/core/ircserverhandler.cpp | 57 +++++++++--------- src/core/sql.qrc | 60 ++++++++++--------- src/core/userinputhandler.cpp | 31 +++++----- version.inc | 2 +- 40 files changed, 120 insertions(+), 96 deletions(-) rename src/core/SQL/SQLite/{2 => 3}/delete_backlog_by_uid.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/delete_buffers_by_uid.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/delete_networks_by_uid.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/delete_quasseluser.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/insert_buffer.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/insert_message.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/insert_network.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/insert_quasseluser.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/insert_sender.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/select_authuser.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/select_bufferByName.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/select_buffers.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/select_lastMessage.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/select_messageRange.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/select_messages.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/select_messagesOffset.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/select_messagesSince.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/select_messagesSinceOffset.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/select_userid.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/setup_000_quasseluser.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/setup_010_sender.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/setup_020_network.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/setup_040_buffer.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/setup_050_buffer_idx.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/setup_060_backlog.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/setup_070_coreinfo.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/setup_080_version.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/update_username.sql (100%) rename src/core/SQL/SQLite/{2 => 3}/update_userpassword.sql (100%) create mode 100644 src/core/SQL/SQLite/3/upgrade_000_update_backlog_flags.sql create mode 100644 src/core/SQL/SQLite/3/upgrade_010_update_schemaversion.sql diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index 1676e339..2970fb63 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -705,7 +705,8 @@ void NetworkModel::updateBufferActivity(const Message &msg) { if(msg.type() == Message::Plain || msg.type() == Message::Notice) level |= BufferItem::NewMessage; - if(msg.flags() & Message::Highlight) + const Network *net = Client::network(msg.bufferInfo().networkId()); + if(net && msg.text().contains(net->myNick())) level |= BufferItem::Highlight; bufferItem(msg.bufferInfo())->updateActivity(level); diff --git a/src/common/message.h b/src/common/message.h index 1411f3b4..0c9c3d36 100644 --- a/src/common/message.h +++ b/src/common/message.h @@ -32,8 +32,28 @@ class Message { public: /** The different types a message can have for display */ - enum Type { Plain, Notice, Action, Nick, Mode, Join, Part, Quit, Kick, Kill, Server, Info, Error }; - enum Flags { None = 0, Self = 1, PrivMsg = 2, Highlight = 4 }; + enum Type { + Plain, + Notice, + Action, + Nick, + Mode, + Join, + Part, + Quit, + Kick, + Kill, + Server, + Info, + Error + }; + + enum Flags { + None = 0, + Self = 1 + }; + Q_DECLARE_FLAGS(MessageFlags, Flags) + Message(BufferInfo bufferInfo = BufferInfo(), Type type = Plain, QString text = "", QString sender = "", quint8 flags = None); @@ -78,5 +98,6 @@ QDataStream &operator<<(QDataStream &out, const Message &msg); QDataStream &operator>>(QDataStream &in, Message &msg); Q_DECLARE_METATYPE(Message); +Q_DECLARE_OPERATORS_FOR_FLAGS(Message::MessageFlags) #endif diff --git a/src/core/SQL/SQLite/2/delete_backlog_by_uid.sql b/src/core/SQL/SQLite/3/delete_backlog_by_uid.sql similarity index 100% rename from src/core/SQL/SQLite/2/delete_backlog_by_uid.sql rename to src/core/SQL/SQLite/3/delete_backlog_by_uid.sql diff --git a/src/core/SQL/SQLite/2/delete_buffers_by_uid.sql b/src/core/SQL/SQLite/3/delete_buffers_by_uid.sql similarity index 100% rename from src/core/SQL/SQLite/2/delete_buffers_by_uid.sql rename to src/core/SQL/SQLite/3/delete_buffers_by_uid.sql diff --git a/src/core/SQL/SQLite/2/delete_networks_by_uid.sql b/src/core/SQL/SQLite/3/delete_networks_by_uid.sql similarity index 100% rename from src/core/SQL/SQLite/2/delete_networks_by_uid.sql rename to src/core/SQL/SQLite/3/delete_networks_by_uid.sql diff --git a/src/core/SQL/SQLite/2/delete_quasseluser.sql b/src/core/SQL/SQLite/3/delete_quasseluser.sql similarity index 100% rename from src/core/SQL/SQLite/2/delete_quasseluser.sql rename to src/core/SQL/SQLite/3/delete_quasseluser.sql diff --git a/src/core/SQL/SQLite/2/insert_buffer.sql b/src/core/SQL/SQLite/3/insert_buffer.sql similarity index 100% rename from src/core/SQL/SQLite/2/insert_buffer.sql rename to src/core/SQL/SQLite/3/insert_buffer.sql diff --git a/src/core/SQL/SQLite/2/insert_message.sql b/src/core/SQL/SQLite/3/insert_message.sql similarity index 100% rename from src/core/SQL/SQLite/2/insert_message.sql rename to src/core/SQL/SQLite/3/insert_message.sql diff --git a/src/core/SQL/SQLite/2/insert_network.sql b/src/core/SQL/SQLite/3/insert_network.sql similarity index 100% rename from src/core/SQL/SQLite/2/insert_network.sql rename to src/core/SQL/SQLite/3/insert_network.sql diff --git a/src/core/SQL/SQLite/2/insert_quasseluser.sql b/src/core/SQL/SQLite/3/insert_quasseluser.sql similarity index 100% rename from src/core/SQL/SQLite/2/insert_quasseluser.sql rename to src/core/SQL/SQLite/3/insert_quasseluser.sql diff --git a/src/core/SQL/SQLite/2/insert_sender.sql b/src/core/SQL/SQLite/3/insert_sender.sql similarity index 100% rename from src/core/SQL/SQLite/2/insert_sender.sql rename to src/core/SQL/SQLite/3/insert_sender.sql diff --git a/src/core/SQL/SQLite/2/select_authuser.sql b/src/core/SQL/SQLite/3/select_authuser.sql similarity index 100% rename from src/core/SQL/SQLite/2/select_authuser.sql rename to src/core/SQL/SQLite/3/select_authuser.sql diff --git a/src/core/SQL/SQLite/2/select_bufferByName.sql b/src/core/SQL/SQLite/3/select_bufferByName.sql similarity index 100% rename from src/core/SQL/SQLite/2/select_bufferByName.sql rename to src/core/SQL/SQLite/3/select_bufferByName.sql diff --git a/src/core/SQL/SQLite/2/select_buffers.sql b/src/core/SQL/SQLite/3/select_buffers.sql similarity index 100% rename from src/core/SQL/SQLite/2/select_buffers.sql rename to src/core/SQL/SQLite/3/select_buffers.sql diff --git a/src/core/SQL/SQLite/2/select_lastMessage.sql b/src/core/SQL/SQLite/3/select_lastMessage.sql similarity index 100% rename from src/core/SQL/SQLite/2/select_lastMessage.sql rename to src/core/SQL/SQLite/3/select_lastMessage.sql diff --git a/src/core/SQL/SQLite/2/select_messageRange.sql b/src/core/SQL/SQLite/3/select_messageRange.sql similarity index 100% rename from src/core/SQL/SQLite/2/select_messageRange.sql rename to src/core/SQL/SQLite/3/select_messageRange.sql diff --git a/src/core/SQL/SQLite/2/select_messages.sql b/src/core/SQL/SQLite/3/select_messages.sql similarity index 100% rename from src/core/SQL/SQLite/2/select_messages.sql rename to src/core/SQL/SQLite/3/select_messages.sql diff --git a/src/core/SQL/SQLite/2/select_messagesOffset.sql b/src/core/SQL/SQLite/3/select_messagesOffset.sql similarity index 100% rename from src/core/SQL/SQLite/2/select_messagesOffset.sql rename to src/core/SQL/SQLite/3/select_messagesOffset.sql diff --git a/src/core/SQL/SQLite/2/select_messagesSince.sql b/src/core/SQL/SQLite/3/select_messagesSince.sql similarity index 100% rename from src/core/SQL/SQLite/2/select_messagesSince.sql rename to src/core/SQL/SQLite/3/select_messagesSince.sql diff --git a/src/core/SQL/SQLite/2/select_messagesSinceOffset.sql b/src/core/SQL/SQLite/3/select_messagesSinceOffset.sql similarity index 100% rename from src/core/SQL/SQLite/2/select_messagesSinceOffset.sql rename to src/core/SQL/SQLite/3/select_messagesSinceOffset.sql diff --git a/src/core/SQL/SQLite/2/select_userid.sql b/src/core/SQL/SQLite/3/select_userid.sql similarity index 100% rename from src/core/SQL/SQLite/2/select_userid.sql rename to src/core/SQL/SQLite/3/select_userid.sql diff --git a/src/core/SQL/SQLite/2/setup_000_quasseluser.sql b/src/core/SQL/SQLite/3/setup_000_quasseluser.sql similarity index 100% rename from src/core/SQL/SQLite/2/setup_000_quasseluser.sql rename to src/core/SQL/SQLite/3/setup_000_quasseluser.sql diff --git a/src/core/SQL/SQLite/2/setup_010_sender.sql b/src/core/SQL/SQLite/3/setup_010_sender.sql similarity index 100% rename from src/core/SQL/SQLite/2/setup_010_sender.sql rename to src/core/SQL/SQLite/3/setup_010_sender.sql diff --git a/src/core/SQL/SQLite/2/setup_020_network.sql b/src/core/SQL/SQLite/3/setup_020_network.sql similarity index 100% rename from src/core/SQL/SQLite/2/setup_020_network.sql rename to src/core/SQL/SQLite/3/setup_020_network.sql diff --git a/src/core/SQL/SQLite/2/setup_040_buffer.sql b/src/core/SQL/SQLite/3/setup_040_buffer.sql similarity index 100% rename from src/core/SQL/SQLite/2/setup_040_buffer.sql rename to src/core/SQL/SQLite/3/setup_040_buffer.sql diff --git a/src/core/SQL/SQLite/2/setup_050_buffer_idx.sql b/src/core/SQL/SQLite/3/setup_050_buffer_idx.sql similarity index 100% rename from src/core/SQL/SQLite/2/setup_050_buffer_idx.sql rename to src/core/SQL/SQLite/3/setup_050_buffer_idx.sql diff --git a/src/core/SQL/SQLite/2/setup_060_backlog.sql b/src/core/SQL/SQLite/3/setup_060_backlog.sql similarity index 100% rename from src/core/SQL/SQLite/2/setup_060_backlog.sql rename to src/core/SQL/SQLite/3/setup_060_backlog.sql diff --git a/src/core/SQL/SQLite/2/setup_070_coreinfo.sql b/src/core/SQL/SQLite/3/setup_070_coreinfo.sql similarity index 100% rename from src/core/SQL/SQLite/2/setup_070_coreinfo.sql rename to src/core/SQL/SQLite/3/setup_070_coreinfo.sql diff --git a/src/core/SQL/SQLite/2/setup_080_version.sql b/src/core/SQL/SQLite/3/setup_080_version.sql similarity index 100% rename from src/core/SQL/SQLite/2/setup_080_version.sql rename to src/core/SQL/SQLite/3/setup_080_version.sql diff --git a/src/core/SQL/SQLite/2/update_username.sql b/src/core/SQL/SQLite/3/update_username.sql similarity index 100% rename from src/core/SQL/SQLite/2/update_username.sql rename to src/core/SQL/SQLite/3/update_username.sql diff --git a/src/core/SQL/SQLite/2/update_userpassword.sql b/src/core/SQL/SQLite/3/update_userpassword.sql similarity index 100% rename from src/core/SQL/SQLite/2/update_userpassword.sql rename to src/core/SQL/SQLite/3/update_userpassword.sql diff --git a/src/core/SQL/SQLite/3/upgrade_000_update_backlog_flags.sql b/src/core/SQL/SQLite/3/upgrade_000_update_backlog_flags.sql new file mode 100644 index 00000000..482505a5 --- /dev/null +++ b/src/core/SQL/SQLite/3/upgrade_000_update_backlog_flags.sql @@ -0,0 +1 @@ +UPDATE backlog SET flags = flags & 1 diff --git a/src/core/SQL/SQLite/3/upgrade_010_update_schemaversion.sql b/src/core/SQL/SQLite/3/upgrade_010_update_schemaversion.sql new file mode 100644 index 00000000..4ef71dcd --- /dev/null +++ b/src/core/SQL/SQLite/3/upgrade_010_update_schemaversion.sql @@ -0,0 +1,3 @@ +UPDATE coreinfo +SET value='3' +WHERE key = 'schemaversion' diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index e974c216..8e667380 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -292,14 +292,8 @@ void CoreSession::msgFromClient(BufferInfo bufinfo, QString msg) { void CoreSession::recvMessageFromServer(Message::Type type, QString target, QString text, QString sender, quint8 flags) { NetworkConnection *netCon = qobject_cast(this->sender()); Q_ASSERT(netCon); - - QString bufferName; - if((flags & Message::PrivMsg) && !(flags & Message::Self)) - bufferName = nickFromMask(sender); - else - bufferName = target; - - BufferInfo bufferInfo = Core::bufferInfo(user(), netCon->networkId(), bufferName); + + BufferInfo bufferInfo = Core::bufferInfo(user(), netCon->networkId(), target); Message msg(bufferInfo, type, text, sender, flags); msg.setMsgId(Core::storeMessage(msg)); Q_ASSERT(msg.msgId() != 0); diff --git a/src/core/ctcphandler.cpp b/src/core/ctcphandler.cpp index 26697f82..153f6c0f 100644 --- a/src/core/ctcphandler.cpp +++ b/src/core/ctcphandler.cpp @@ -81,17 +81,21 @@ QString CtcpHandler::XdelimDequote(QString message) { return dequotedMessage; } -QStringList CtcpHandler::parse(CtcpType ctcptype, QString prefix, QString target, QString message) { - QStringList messages; +void CtcpHandler::parse(Message::Type messageType, QString prefix, QString target, QString message) { QString ctcp; //lowlevel message dequote QString dequotedMessage = dequote(message); - + + CtcpType ctcptype = (messageType == Message::Notice) + ? CtcpReply + : CtcpQuery; + // extract tagged / extended data while(dequotedMessage.contains(XDELIM)) { - if(dequotedMessage.indexOf(XDELIM) > 0) - messages << dequotedMessage.section(XDELIM,0,0); + if(dequotedMessage.indexOf(XDELIM) > 0) + emit displayMsg(messageType, target, dequotedMessage.section(XDELIM,0,0), prefix); + // messages << dequotedMessage.section(XDELIM,0,0), prefix); ctcp = XdelimDequote(dequotedMessage.section(XDELIM,1,1)); dequotedMessage = dequotedMessage.section(XDELIM,2,2); @@ -101,10 +105,10 @@ QStringList CtcpHandler::parse(CtcpType ctcptype, QString prefix, QString target handle(ctcpcmd, Q_ARG(CtcpType, ctcptype), Q_ARG(QString, prefix), Q_ARG(QString, target), Q_ARG(QString, ctcpparam)); } - if(!dequotedMessage.isEmpty()) { - messages << dequotedMessage; - } - return messages; + + if(!dequotedMessage.isEmpty()) + emit displayMsg(messageType, target, dequotedMessage, prefix); + } QString CtcpHandler::pack(QString ctcpTag, QString message) { diff --git a/src/core/ctcphandler.h b/src/core/ctcphandler.h index 3f1eecb3..59db0767 100644 --- a/src/core/ctcphandler.h +++ b/src/core/ctcphandler.h @@ -34,7 +34,7 @@ public: enum CtcpType {CtcpQuery, CtcpReply}; - QStringList parse(CtcpType, QString prefix, QString target, QString message); + void parse(Message::Type, QString prefix, QString target, QString message); QString dequote(QString); QString XdelimDequote(QString); diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index cb4c1534..6a220dbc 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -272,10 +272,24 @@ void IrcServerHandler::handleNick(QString prefix, QList params) { } void IrcServerHandler::handleNotice(QString prefix, QList params) { - if(network()->currentServer().isEmpty() || network()->currentServer() == prefix) + if(params.count() < 2) { + qWarning() << "IrcServerHandler::handleNotice(): not enoug Parameters:" << prefix << serverDecode(params); + return; + } + + // check if it's only a Server Message or if it's a regular Notice + if(network()->currentServer().isEmpty() || network()->currentServer() == prefix) { emit displayMsg(Message::Server, "", serverDecode(params[1]), prefix); - else - emit displayMsg(Message::Notice, "", userDecode(prefix, params[1]), prefix); + return; + } + + QString target = serverDecode(params[0]); + + // are we the target? + if(network()->isMyNick(target)) + target = nickFromMask(target); + + networkConnection->ctcpHandler()->parse(Message::Notice, prefix, target, userDecode(prefix, params[1])); } void IrcServerHandler::handlePart(QString prefix, QList params) { @@ -305,34 +319,19 @@ void IrcServerHandler::handlePrivmsg(QString prefix, QList params) { QString target = serverDecode(params[0]); - // are we the target or is it a channel? - if(network()->isMyNick(target)) { - // it's possible to pack multiple privmsgs into one param using ctcp - QStringList messages = networkConnection->ctcpHandler()->parse(CtcpHandler::CtcpQuery, prefix, target, userDecode(ircuser->nick(), params[1])); - quint8 flags; - foreach(QString message, messages) { - flags = Message::PrivMsg; - if(message.contains(network()->myNick())) - flags |= Message::Highlight; - emit displayMsg(Message::Plain, "", message, prefix, flags); - } - } else { - // so it's probably a channel.. - if(!isChannelName(target)) { - qWarning() << "received PRIVMSG with target" << target << "which is neither us nor a channel!"; - return; - } + // are we the target? + if(network()->isMyNick(target)) + target = nickFromMask(target); - QStringList messages = networkConnection->ctcpHandler()->parse(CtcpHandler::CtcpQuery, prefix, target, bufferDecode(target, params[1])); - quint8 flags; - foreach(QString message, messages) { - flags = Message::None; - if(message.contains(network()->myNick())) - flags |= Message::Highlight; - emit displayMsg(Message::Plain, target, message, prefix, flags); - } - } + // it's possible to pack multiple privmsgs into one param using ctcp + // - > we let the ctcpHandler do the work + networkConnection->ctcpHandler()->parse(Message::Plain, prefix, target, userDecode(ircuser->nick(), params[1])); +// QStringList messages = +// foreach(QString message, messages) { +// emit displayMsg(Message::Plain, target, message, prefix); +// } + } void IrcServerHandler::handleQuit(QString prefix, QList params) { diff --git a/src/core/sql.qrc b/src/core/sql.qrc index 6498a91d..73ed98d9 100644 --- a/src/core/sql.qrc +++ b/src/core/sql.qrc @@ -3,36 +3,38 @@ ./SQL/SQLite/1/upgrade_000_drop_coreinfo.sql ./SQL/SQLite/1/upgrade_010_create_coreinfo.sql ./SQL/SQLite/1/upgrade_020_update_schemaversion.sql - ./SQL/SQLite/2/delete_backlog_by_uid.sql - ./SQL/SQLite/2/delete_buffers_by_uid.sql - ./SQL/SQLite/2/delete_networks_by_uid.sql - ./SQL/SQLite/2/delete_quasseluser.sql - ./SQL/SQLite/2/insert_buffer.sql - ./SQL/SQLite/2/insert_message.sql - ./SQL/SQLite/2/insert_network.sql - ./SQL/SQLite/2/insert_quasseluser.sql - ./SQL/SQLite/2/insert_sender.sql - ./SQL/SQLite/2/select_authuser.sql - ./SQL/SQLite/2/select_bufferByName.sql - ./SQL/SQLite/2/select_buffers.sql - ./SQL/SQLite/2/select_lastMessage.sql - ./SQL/SQLite/2/select_messageRange.sql - ./SQL/SQLite/2/select_messages.sql - ./SQL/SQLite/2/select_messagesOffset.sql - ./SQL/SQLite/2/select_messagesSince.sql - ./SQL/SQLite/2/select_messagesSinceOffset.sql - ./SQL/SQLite/2/select_userid.sql - ./SQL/SQLite/2/setup_000_quasseluser.sql - ./SQL/SQLite/2/setup_010_sender.sql - ./SQL/SQLite/2/setup_020_network.sql - ./SQL/SQLite/2/setup_040_buffer.sql - ./SQL/SQLite/2/setup_050_buffer_idx.sql - ./SQL/SQLite/2/setup_060_backlog.sql - ./SQL/SQLite/2/setup_070_coreinfo.sql - ./SQL/SQLite/2/setup_080_version.sql - ./SQL/SQLite/2/update_username.sql - ./SQL/SQLite/2/update_userpassword.sql ./SQL/SQLite/2/upgrade_000_drop_buffergroup.sql ./SQL/SQLite/2/upgrade_010_update_schemaversion.sql + ./SQL/SQLite/3/delete_backlog_by_uid.sql + ./SQL/SQLite/3/delete_buffers_by_uid.sql + ./SQL/SQLite/3/delete_networks_by_uid.sql + ./SQL/SQLite/3/delete_quasseluser.sql + ./SQL/SQLite/3/insert_buffer.sql + ./SQL/SQLite/3/insert_message.sql + ./SQL/SQLite/3/insert_network.sql + ./SQL/SQLite/3/insert_quasseluser.sql + ./SQL/SQLite/3/insert_sender.sql + ./SQL/SQLite/3/select_authuser.sql + ./SQL/SQLite/3/select_bufferByName.sql + ./SQL/SQLite/3/select_buffers.sql + ./SQL/SQLite/3/select_lastMessage.sql + ./SQL/SQLite/3/select_messageRange.sql + ./SQL/SQLite/3/select_messages.sql + ./SQL/SQLite/3/select_messagesOffset.sql + ./SQL/SQLite/3/select_messagesSince.sql + ./SQL/SQLite/3/select_messagesSinceOffset.sql + ./SQL/SQLite/3/select_userid.sql + ./SQL/SQLite/3/setup_000_quasseluser.sql + ./SQL/SQLite/3/setup_010_sender.sql + ./SQL/SQLite/3/setup_020_network.sql + ./SQL/SQLite/3/setup_040_buffer.sql + ./SQL/SQLite/3/setup_050_buffer_idx.sql + ./SQL/SQLite/3/setup_060_backlog.sql + ./SQL/SQLite/3/setup_070_coreinfo.sql + ./SQL/SQLite/3/setup_080_version.sql + ./SQL/SQLite/3/update_username.sql + ./SQL/SQLite/3/update_userpassword.sql + ./SQL/SQLite/3/upgrade_000_update_backlog_flags.sql + ./SQL/SQLite/3/upgrade_010_update_schemaversion.sql diff --git a/src/core/userinputhandler.cpp b/src/core/userinputhandler.cpp index ee65f5f6..69d08c41 100644 --- a/src/core/userinputhandler.cpp +++ b/src/core/userinputhandler.cpp @@ -146,12 +146,14 @@ void UserInputHandler::handleMode(QString bufname, QString msg) { // TODO: show privmsgs void UserInputHandler::handleMsg(QString bufname, QString msg) { Q_UNUSED(bufname) - QString nick = msg.section(" ", 0, 0); - msg = msg.section(" ", 1); - if(nick.isEmpty() || msg.isEmpty()) return; + if(!msg.contains(' ')) + return; + QStringList params; - params << nick << msg; - emit putCmd("PRIVMSG", params); + params << msg.section(' ', 0, 0); + params << msg.section(' ', 1); + + emit putCmd("PRIVMSG", msg.split(' ')); } void UserInputHandler::handleNick(QString bufname, QString msg) { @@ -176,13 +178,14 @@ void UserInputHandler::handlePart(QString bufname, QString msg) { // TODO: implement queries void UserInputHandler::handleQuery(QString bufname, QString msg) { - // QString nick = msg.section(' ', 0, 0); - + Q_UNUSED(bufname) + QString target = msg.section(' ', 0, 0); + QString message = msg.section(' ', 1); + if(message.isEmpty()) + emit displayMsg(Message::Server, target, "Starting query with " + target, network()->myNick(), Message::Self); + else + emit displayMsg(Message::Plain, target, message, network()->myNick(), Message::Self); handleMsg(bufname, msg); - - // TODO: usenetworkids -// if(!nick.isEmpty()) -// emit queryRequested(network, nick); } void UserInputHandler::handleQuit(QString bufname, QString msg) { @@ -200,11 +203,7 @@ void UserInputHandler::handleSay(QString bufname, QString msg) { QStringList params; params << bufname << msg; emit putCmd("PRIVMSG", params); - if(isChannelName(bufname)) { - emit displayMsg(Message::Plain, params[0], msg, network()->myNick(), Message::Self); - } else { - emit displayMsg(Message::Plain, params[0], msg, network()->myNick(), Message::Self|Message::PrivMsg); - } + emit displayMsg(Message::Plain, params[0], msg, network()->myNick(), Message::Self); } void UserInputHandler::handleTopic(QString bufname, QString msg) { diff --git a/version.inc b/version.inc index 9876fc63..4a3ac035 100644 --- a/version.inc +++ b/version.inc @@ -5,7 +5,7 @@ quasselVersion = "0.2.0-pre"; quasselDate = "2008-02-03"; - quasselBuild = 445; + quasselBuild = 447; //! Minimum client build number the core needs clientBuildNeeded = 437; -- 2.20.1