From f3fc0324c8860dff6af722dafbeb05fcb69a0c41 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Fri, 25 Apr 2008 22:11:45 +0000 Subject: [PATCH] Message flags are now consistently used as Message::Flags rather than quint8. Also some non-compiling WiP in SPUTDEV. --- src/client/messagemodel.cpp | 25 +++++ src/client/messagemodel.h | 20 +++- src/common/message.cpp | 8 +- src/common/message.h | 16 ++-- src/core/basichandler.cpp | 6 +- src/core/basichandler.h | 4 +- src/core/coresession.cpp | 9 +- src/core/coresession.h | 2 +- src/core/ctcphandler.cpp | 2 +- src/core/networkconnection.h | 2 +- src/core/sqlitestorage.cpp | 8 +- src/core/userinputhandler.cpp | 2 + src/qtui/bufferwidget.cpp | 7 +- src/qtui/chatline.cpp | 94 +------------------ src/qtui/chatline.h | 79 ++-------------- src/qtui/mainwin.cpp | 7 +- .../settingspages/networkssettingspage.ui | 38 ++++---- 17 files changed, 108 insertions(+), 221 deletions(-) diff --git a/src/client/messagemodel.cpp b/src/client/messagemodel.cpp index d53449e4..4e4b264f 100644 --- a/src/client/messagemodel.cpp +++ b/src/client/messagemodel.cpp @@ -81,3 +81,28 @@ int MessageModel::indexForId(MsgId id) { /**********************************************************************************/ +MessageItem::MessageItem(const Message &msg) { + _timestamp = msg.timestamp(); + _msgId = msg.msgId(); + _bufferId = msg.bufferInfo().bufferId(); + _type = msg.type(); + _flags = msg.flags(); + +} + +MessageItem::~MessageItem() { + +} + +QVariant MessageItem::data(int column, int role) const { + if(column < TimestampRole || column > TextRole) return QVariant(); + switch(role) { + case MsgIdRole: return _msgId; + case BufferIdRole: return _bufferId; + case TypeRole: return _type; + case FlagsRole: return _flags; + case TimestampRole: return _timestamp; + default: return QVariant(); + } +} + diff --git a/src/client/messagemodel.h b/src/client/messagemodel.h index 1a41f264..336c07eb 100644 --- a/src/client/messagemodel.h +++ b/src/client/messagemodel.h @@ -22,8 +22,11 @@ #define MESSAGEMODEL_H_ #include +#include + +#include "message.h" +#include "types.h" -class Message; class MessageItem; class MsgId; @@ -67,15 +70,24 @@ class MessageModel : public QAbstractItemModel { }; class MessageItem { - + public: + enum { + TimestampColumn, SenderColumn, TextColumn + }; + MessageItem(const Message &); virtual ~MessageItem(); - - virtual QVariant data(int column, int role) const = 0; + virtual QVariant data(int column, int role) const; virtual bool setData(int column, const QVariant &value, int role) = 0; + private: + QDateTime _timestamp; + MsgId _msgId; + BufferId _bufferId; + Message::Type _type; + Message::Flags _flags; }; #endif diff --git a/src/common/message.cpp b/src/common/message.cpp index 8c0ebb31..15708b37 100644 --- a/src/common/message.cpp +++ b/src/common/message.cpp @@ -24,7 +24,7 @@ #include -Message::Message(BufferInfo bufferInfo, Type type, QString text, QString sender, quint8 flags) +Message::Message(BufferInfo bufferInfo, Type type, QString text, QString sender, Flags flags) : _timestamp(QDateTime::currentDateTime().toUTC()), _bufferInfo(bufferInfo), _text(text), @@ -34,7 +34,7 @@ Message::Message(BufferInfo bufferInfo, Type type, QString text, QString sender, { } -Message::Message(QDateTime ts,BufferInfo bufferInfo, Type type, QString text, QString sender, quint8 flags) +Message::Message(QDateTime ts,BufferInfo bufferInfo, Type type, QString text, QString sender, Flags flags) : _timestamp(ts), _bufferInfo(bufferInfo), _text(text), @@ -44,7 +44,7 @@ Message::Message(QDateTime ts,BufferInfo bufferInfo, Type type, QString text, QS { } -void Message::setFlags(quint8 flags) { +void Message::setFlags(Flags flags) { _flags = flags; } @@ -191,7 +191,7 @@ QDataStream &operator>>(QDataStream &in, Message &msg) { BufferInfo buf; in >> msg._msgId >> ts >> t >> f >> buf >> s >> m; msg._type = (Message::Type)t; - msg._flags = (quint8)f; + msg._flags = (Message::Flags)f; msg._bufferInfo = buf; msg._timestamp = QDateTime::fromTime_t(ts); msg._sender = QString::fromUtf8(s); diff --git a/src/common/message.h b/src/common/message.h index 08c70c6f..9070b05e 100644 --- a/src/common/message.h +++ b/src/common/message.h @@ -48,18 +48,18 @@ public: Error = 0x1000 }; - enum Flags { + enum Flag { None = 0, Self = 1, Highlight = 2, Redirected = 4 }; - Q_DECLARE_FLAGS(MessageFlags, Flags) + Q_DECLARE_FLAGS(Flags, Flag) - Message(BufferInfo bufferInfo = BufferInfo(), Type type = Plain, QString text = "", QString sender = "", quint8 flags = None); + Message(BufferInfo bufferInfo = BufferInfo(), Type type = Plain, QString text = "", QString sender = "", Flags flags = None); - Message(QDateTime ts, BufferInfo buffer = BufferInfo(), Type type = Plain, QString text = "", QString sender = "", quint8 flags = None); + Message(QDateTime ts, BufferInfo buffer = BufferInfo(), Type type = Plain, QString text = "", QString sender = "", Flags flags = None); inline MsgId msgId() const { return _msgId; } inline void setMsgId(MsgId id) { _msgId = id; } @@ -68,10 +68,10 @@ public: inline QString text() const { return _text; } inline QString sender() const { return _sender; } inline Type type() const { return _type; } - inline quint8 flags() const { return _flags; } + inline Flags flags() const { return _flags; } inline QDateTime timestamp() const { return _timestamp; } - void setFlags(quint8 flags); + void setFlags(Flags flags); QString formattedTimestamp(); QString formattedSender(); @@ -91,7 +91,7 @@ private: QString _text; QString _sender; Type _type; - quint8 _flags; + Flags _flags; QString _formattedTimestamp, _formattedSender, _formattedText; // cache @@ -103,6 +103,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) +Q_DECLARE_OPERATORS_FOR_FLAGS(Message::Flags) #endif diff --git a/src/core/basichandler.cpp b/src/core/basichandler.cpp index 02483d25..a00966d2 100644 --- a/src/core/basichandler.cpp +++ b/src/core/basichandler.cpp @@ -30,8 +30,8 @@ BasicHandler::BasicHandler(NetworkConnection *parent) _networkConnection(parent), initDone(false) { - connect(this, SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, quint8)), - networkConnection(), SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, quint8))); + connect(this, SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, Message::Flags)), + networkConnection(), SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, Message::Flags))); connect(this, SIGNAL(putCmd(QString, const QVariantList &, const QByteArray &)), networkConnection(), SLOT(putCmd(QString, const QVariantList &, const QByteArray &))); @@ -189,7 +189,7 @@ void BasicHandler::putCmd(const QString &cmd, const QList ¶ms, c emit putCmd(cmd, list, prefix); } -void BasicHandler::displayMsg(Message::Type msgType, QString target, QString text, QString sender, quint8 flags) { +void BasicHandler::displayMsg(Message::Type msgType, QString target, QString text, QString sender, Message::Flags flags) { IrcChannel *channel = network()->ircChannel(target); if(!channel && (target.startsWith('$') || target.startsWith('#'))) target = nickFromMask(sender); diff --git a/src/core/basichandler.h b/src/core/basichandler.h index 757af6e8..f641a30b 100644 --- a/src/core/basichandler.h +++ b/src/core/basichandler.h @@ -55,12 +55,12 @@ public: QList userEncode(const QString &userNick, const QStringList &stringlist); signals: - void displayMsg(Message::Type, BufferInfo::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None); + void displayMsg(Message::Type, BufferInfo::Type, QString target, QString text, QString sender = "", Message::Flags flags = Message::None); void putCmd(const QString &cmd, const QVariantList ¶ms, const QByteArray &prefix); void putRawLine(const QByteArray &msg); protected: - void displayMsg(Message::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None); + void displayMsg(Message::Type, QString target, QString text, QString sender = "", Message::Flags flags = Message::None); void putCmd(const QString &cmd, const QByteArray ¶m, const QByteArray &prefix = QByteArray()); void putCmd(const QString &cmd, const QList ¶ms, const QByteArray &prefix = QByteArray()); diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index b5768542..68f31271 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -192,8 +192,8 @@ void CoreSession::attachNetworkConnection(NetworkConnection *conn) { //signalProxy()->attachSignal(conn, SIGNAL(connected(NetworkId)), SIGNAL(networkConnected(NetworkId))); //signalProxy()->attachSignal(conn, SIGNAL(disconnected(NetworkId)), SIGNAL(networkDisconnected(NetworkId))); - connect(conn, SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, quint8)), - this, SLOT(recvMessageFromServer(Message::Type, BufferInfo::Type, QString, QString, QString, quint8))); + connect(conn, SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, Message::Flags)), + this, SLOT(recvMessageFromServer(Message::Type, BufferInfo::Type, QString, QString, QString, Message::Flags))); connect(conn, SIGNAL(displayStatusMsg(QString)), this, SLOT(recvStatusMsgFromServer(QString))); connect(conn, SIGNAL(nickChanged(const NetworkId &, const QString &, const QString &)), @@ -282,10 +282,11 @@ void CoreSession::msgFromClient(BufferInfo bufinfo, QString msg) { // ALL messages coming pass through these functions before going to the GUI. // So this is the perfect place for storing the backlog and log stuff. -void CoreSession::recvMessageFromServer(Message::Type type, BufferInfo::Type bufferType, QString target, QString text, QString sender, quint8 flags) { +void CoreSession::recvMessageFromServer(Message::Type type, BufferInfo::Type bufferType, + QString target, QString text, QString sender, Message::Flags flags) { NetworkConnection *netCon = qobject_cast(this->sender()); Q_ASSERT(netCon); - + BufferInfo bufferInfo = Core::bufferInfo(user(), netCon->networkId(), bufferType, target); Message msg(bufferInfo, type, text, sender, flags); msg.setMsgId(Core::storeMessage(msg)); diff --git a/src/core/coresession.h b/src/core/coresession.h index 482fa76a..1403c744 100644 --- a/src/core/coresession.h +++ b/src/core/coresession.h @@ -153,7 +153,7 @@ private slots: void removeClient(QIODevice *dev); void recvStatusMsgFromServer(QString msg); - void recvMessageFromServer(Message::Type, BufferInfo::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None); + void recvMessageFromServer(Message::Type, BufferInfo::Type, QString target, QString text, QString sender = "", Message::Flags flags = Message::None); void networkConnected(NetworkId networkid); void networkDisconnected(NetworkId networkid); diff --git a/src/core/ctcphandler.cpp b/src/core/ctcphandler.cpp index 95fe173c..ba489648 100644 --- a/src/core/ctcphandler.cpp +++ b/src/core/ctcphandler.cpp @@ -94,7 +94,7 @@ void CtcpHandler::parse(Message::Type messageType, const QString &prefix, const ? CtcpReply : CtcpQuery; - quint8 flags = (messageType == Message::Notice && !network()->isChannelName(target)) + Message::Flags flags = (messageType == Message::Notice && !network()->isChannelName(target)) ? Message::Redirected : Message::None; diff --git a/src/core/networkconnection.h b/src/core/networkconnection.h index 959eb740..0745e9ef 100644 --- a/src/core/networkconnection.h +++ b/src/core/networkconnection.h @@ -109,7 +109,7 @@ signals: void recvRawServerMsg(QString); void displayStatusMsg(QString); //void displayMsg(Message msg); - void displayMsg(Message::Type, BufferInfo::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None); + void displayMsg(Message::Type, BufferInfo::Type, QString target, QString text, QString sender = "", Message::Flags flags = Message::None); void connected(NetworkId networkId); ///< Emitted after receipt of 001 to indicate that we can now send data to the IRC server void disconnected(NetworkId networkId); void connectionStateChanged(Network::ConnectionState); diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index 8cd4d5b0..68120e12 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -629,7 +629,7 @@ MsgId SqliteStorage::logMessage(Message msg) { logMessageQuery->bindValue(":time", msg.timestamp().toTime_t()); logMessageQuery->bindValue(":bufferid", msg.bufferInfo().bufferId().toInt()); logMessageQuery->bindValue(":type", msg.type()); - logMessageQuery->bindValue(":flags", msg.flags()); + logMessageQuery->bindValue(":flags", (int)msg.flags()); logMessageQuery->bindValue(":sender", msg.sender()); logMessageQuery->bindValue(":message", msg.text()); logMessageQuery->exec(); @@ -688,7 +688,7 @@ QList SqliteStorage::requestMsgs(UserId user, BufferId bufferId, int la (Message::Type)msgQuery->value(2).toUInt(), msgQuery->value(5).toString(), msgQuery->value(4).toString(), - msgQuery->value(3).toUInt()); + (Message::Flags)msgQuery->value(3).toUInt()); msg.setMsgId(msgQuery->value(0).toInt()); messagelist << msg; } @@ -726,7 +726,7 @@ QList SqliteStorage::requestMsgs(UserId user, BufferId bufferId, QDateT (Message::Type)msgQuery->value(2).toUInt(), msgQuery->value(5).toString(), msgQuery->value(4).toString(), - msgQuery->value(3).toUInt()); + (Message::Flags)msgQuery->value(3).toUInt()); msg.setMsgId(msgQuery->value(0).toInt()); messagelist << msg; } @@ -756,7 +756,7 @@ QList SqliteStorage::requestMsgRange(UserId user, BufferId bufferId, in (Message::Type)rangeQuery->value(2).toUInt(), rangeQuery->value(5).toString(), rangeQuery->value(4).toString(), - rangeQuery->value(3).toUInt()); + (Message::Flags)rangeQuery->value(3).toUInt()); msg.setMsgId(rangeQuery->value(0).toInt()); messagelist << msg; } diff --git a/src/core/userinputhandler.cpp b/src/core/userinputhandler.cpp index 0ef5aba0..9c7e03ba 100644 --- a/src/core/userinputhandler.cpp +++ b/src/core/userinputhandler.cpp @@ -168,6 +168,7 @@ void UserInputHandler::handleKick(const BufferInfo &bufferInfo, const QString &m } void UserInputHandler::handleKill(const BufferInfo &bufferInfo, const QString &msg) { + Q_UNUSED(bufferInfo) QString nick = msg.section(' ', 0, 0, QString::SectionSkipEmpty); QString pass = msg.section(' ', 1, -1, QString::SectionSkipEmpty); QList params; @@ -222,6 +223,7 @@ void UserInputHandler::handleOp(const BufferInfo &bufferInfo, const QString &msg } void UserInputHandler::handleOper(const BufferInfo &bufferInfo, const QString &msg) { + Q_UNUSED(bufferInfo) emit putRawLine(serverEncode(QString("OPER %1").arg(msg))); } diff --git a/src/qtui/bufferwidget.cpp b/src/qtui/bufferwidget.cpp index c614bb70..0acb5beb 100644 --- a/src/qtui/bufferwidget.cpp +++ b/src/qtui/bufferwidget.cpp @@ -19,8 +19,11 @@ ***************************************************************************/ #include "bufferwidget.h" -#include "chatline.h" -#include "chatline-old.h" +#ifdef SPUTDEV +# include "chatline.h" +#else +# include "chatline-old.h" +#endif #include "chatview.h" #include "chatwidget.h" #include "settings.h" diff --git a/src/qtui/chatline.cpp b/src/qtui/chatline.cpp index 2e659d1c..edb89f14 100644 --- a/src/qtui/chatline.cpp +++ b/src/qtui/chatline.cpp @@ -18,103 +18,11 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include -#include -#include - -#include "bufferinfo.h" -#include "chatitem.h" #include "chatline.h" -#include "qtui.h" - -ChatLine::ChatLine(Message msg) : QGraphicsItem(), AbstractUiMsg() { - _styledTimestamp = QtUi::style()->styleString(msg.formattedTimestamp()); - _styledSender = QtUi::style()->styleString(msg.formattedSender()); - _styledText = QtUi::style()->styleString(msg.formattedText()); - _msgId = msg.msgId(); - _timestamp = msg.timestamp(); - - _tsColWidth = _senderColWidth = _textColWidth = 0; - QTextOption option; - option.setWrapMode(QTextOption::NoWrap); - _tsItem = new ChatItem(this); - _tsItem->setTextOption(option); - _tsItem->setText(_styledTimestamp); - - option.setAlignment(Qt::AlignRight); - _senderItem = new ChatItem(this); - _senderItem->setTextOption(option); - _senderItem->setText(_styledSender); - - option.setAlignment(Qt::AlignLeft); - option.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere); - _textItem = new ChatItem(this); - _textItem->setTextOption(option); - _textItem->setText(_styledText); - -} -ChatLine::~ChatLine() { - -} - -QString ChatLine::sender() const { - return QString(); -} - -QString ChatLine::text() const { - return QString(); -} - -MsgId ChatLine::msgId() const { - return 0; -} - -BufferInfo ChatLine::bufferInfo() const { - Q_ASSERT(false); // do we actually need this function??? - return BufferInfo(); -} - -QDateTime ChatLine::timestamp() const { - return QDateTime(); -} - -QRectF ChatLine::boundingRect () const { - return childrenBoundingRect(); -} - -void ChatLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { - -} - -void ChatLine::setColumnWidths(int tsColWidth, int senderColWidth, int textColWidth) { - if(tsColWidth >= 0) { - _tsColWidth = tsColWidth; - _tsItem->setWidth(tsColWidth); - } - if(senderColWidth >= 0) { - _senderColWidth = senderColWidth; - _senderItem->setWidth(senderColWidth); - } - if(textColWidth >= 0) { - _textColWidth = textColWidth; - _textItem->setWidth(textColWidth); - } - layout(); -} - -void ChatLine::layout() { - prepareGeometryChange(); - _tsItem->setPos(QPointF(0, 0)); - _senderItem->setPos(QPointF(_tsColWidth + QtUi::style()->sepTsSender(), 0)); - _textItem->setPos(QPointF(_tsColWidth + QtUi::style()->sepTsSender() + _senderColWidth + QtUi::style()->sepSenderText(), 0)); -} +Chatline::Chatline(const QMessage &msg) : MessageItem(msg) { -bool ChatLine::sceneEvent ( QEvent * event ) { - qDebug() <<(void*)this<< "receiving event"; - event->ignore(); - return false; } diff --git a/src/qtui/chatline.h b/src/qtui/chatline.h index fca296fa..c16de805 100644 --- a/src/qtui/chatline.h +++ b/src/qtui/chatline.h @@ -18,84 +18,17 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _CHATLINE_H_ -#define _CHATLINE_H_ +#ifndef CHATLINE_H_ +#define CHATLINE_H_ -#include - -#include "message.h" -#include "quasselui.h" -#include "uistyle.h" - -class ChatItem; -class ChatLineData; - -/* Concept Ideas -* Probably makes sense to have ChatLineData be the AbstractUiMsg instead, if it turns out that creating ChatLineData -is the expensive part... In that case, we could have a QHash in the Client, and ChatLine just -gets a data pointer. This would allow us to share most data between AbstractUiMsgs, and ChatLines themselves could -be pretty cheap - that'd be a clean solution for having a monitor buffer, highlight buffer etcpp. - -* ItemLayoutData - -*/ - -class ChatLine : public QGraphicsItem, public AbstractUiMsg { - - public: - ChatLine(Message); - virtual ~ChatLine(); - virtual QString sender() const; - virtual QString text() const; - virtual MsgId msgId() const; - virtual BufferInfo bufferInfo() const; - virtual QDateTime timestamp() const; - - virtual QRectF boundingRect () const; - virtual void paint (QPainter * painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); - void layout(); - - void setColumnWidths(int tsColWidth, int senderColWidth, int textColWidth); - - void myMousePressEvent ( QGraphicsSceneMouseEvent * event ) { qDebug() << "press"; mousePressEvent(event); } - - protected: - bool sceneEvent ( QEvent * event ); - - private: - UiStyle::StyledText _styledTimestamp, _styledText, _styledSender; - - QDateTime _timestamp; - MsgId _msgId; - - ChatItem *_tsItem, *_senderItem, *_textItem; - int _tsColWidth, _senderColWidth, _textColWidth; -}; - -//! This contains the data of a ChatLine, i.e. mainly the styled message contents. -/** By separating ChatLine and ChatLineData, ChatLine itself is very small and we can reuse the - * same contents in several ChatLine objects without duplicating data. - */ -class ChatLineData { +class Chatline : public MessageItem { public: - ChatLineData(const Message &msg); - - inline UiStyle::StyledText styledSender() const { return _styledSender; } - inline UiStyle::StyledText styledTimestamp() const { return _styledTimestamp; } - inline UiStyle::StyledText styledText() const { return _styledText; } + Chatline(const Message &); - inline QString sender() const { return _styledSender.text; } - inline QString text() const { return _styledText.text; } - inline QDateTime timestamp() const { return _timestamp; } - inline MsgId msgId() const { return _msgId; } - - private: - UiStyle::StyledText _styledSender, _styledText, _styledTimestamp; - QDateTime _timestamp; - MsgId _msgId; + virtual QVariant data(int column, int role) const; + virtual bool setData(int column, const QVariant &value, int role); }; - #endif diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 8c77f4ce..c0f07a21 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -25,8 +25,11 @@ #include "bufferviewconfig.h" #include "bufferviewfilter.h" #include "bufferviewmanager.h" -#include "chatline.h" -#include "chatline-old.h" +#ifdef SPUTDEV +# include "chatline.h" +#else +# include "chatline-old.h" +#endif #include "client.h" #include "clientbacklogmanager.h" #include "coreconnectdlg.h" diff --git a/src/qtui/settingspages/networkssettingspage.ui b/src/qtui/settingspages/networkssettingspage.ui index aae2401c..7eb64488 100644 --- a/src/qtui/settingspages/networkssettingspage.ui +++ b/src/qtui/settingspages/networkssettingspage.ui @@ -161,7 +161,7 @@ Unless you *really* know what you do, leave this as ISO-8859-1! - 1 + 0 @@ -171,8 +171,8 @@ Unless you *really* know what you do, leave this as ISO-8859-1! 0 0 - 301 - 326 + 244 + 332 @@ -337,8 +337,8 @@ Unless you *really* know what you do, leave this as ISO-8859-1! 0 0 - 301 - 326 + 244 + 332 @@ -377,13 +377,6 @@ Unless you *really* know what you do, leave this as ISO-8859-1! true - - - - Service: - - - @@ -394,23 +387,30 @@ Unless you *really* know what you do, leave this as ISO-8859-1! - - + + true + + QLineEdit::Password + + + + + - Password: + Service: - - + + true - - QLineEdit::Password + + Password: -- 2.20.1