From f074dff095153f6c25a5e8f7664736fa32a8666d Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 16 Mar 2015 20:52:35 +0100 Subject: [PATCH] Some minor improvements * Allow to toggle word wrap for text messages * set default ICAO code when simulator isn't connected --- src/blackgui/components/logincomponent.cpp | 3 +- src/blackgui/textmessagetextedit.cpp | 33 +++++++++++++++++++--- src/blackgui/textmessagetextedit.h | 9 ++++++ 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/src/blackgui/components/logincomponent.cpp b/src/blackgui/components/logincomponent.cpp index 764693fd4..2e3c89366 100644 --- a/src/blackgui/components/logincomponent.cpp +++ b/src/blackgui/components/logincomponent.cpp @@ -345,7 +345,7 @@ namespace BlackGui Q_ASSERT(this->getIContextOwnAircraft()); Q_ASSERT(this->getIContextSimulator()); - static const CAircraftIcao defaultIcao("C172", "L1P", "FOO", "", ""); // default values + static const CAircraftIcao defaultIcao("C172", "L1P", "", "", ""); // default values CAircraftIcao icao; bool simConnected = this->getIContextSimulator() && this->getIContextSimulator()->isSimulating(); @@ -367,6 +367,7 @@ namespace BlackGui //! \todo Currently not working in OBS mode this->ui->gbp_LoginMode->setLoginMode(INetwork::LoginNormal); this->ui->le_SimulatorModel->setText("No simulator"); + icao = defaultIcao; } if (icao.hasAircraftDesignator()) diff --git a/src/blackgui/textmessagetextedit.cpp b/src/blackgui/textmessagetextedit.cpp index 928b9581a..5f5fbaba5 100644 --- a/src/blackgui/textmessagetextedit.cpp +++ b/src/blackgui/textmessagetextedit.cpp @@ -24,7 +24,7 @@ namespace BlackGui this->m_textDocument = new QTextDocument(this); this->setDocument(m_textDocument); this->setReadOnly(true); - this->setWordWrapMode(QTextOption::NoWrap); + this->setWordWrap(true); // menu this->setContextMenuPolicy(Qt::CustomContextMenu); @@ -34,11 +34,10 @@ namespace BlackGui m_actionAll = new QAction("Keep all messages", this); m_actionWithRecipient = new QAction("With recipient", this); m_actionWithSender = new QAction("With sender", this); + m_actionWordWrap = new QAction("Word wrap", this); m_actionWithRecipient->setCheckable(true); m_actionWithSender->setCheckable(true); - m_actionWithRecipient->setChecked(this->m_withRecipient); - m_actionWithSender->setCheckable(true); - m_actionWithSender->setChecked(this->m_withSender); + m_actionWordWrap->setCheckable(true); connect(this->m_actionClearTextEdit, &QAction::triggered, this, &CTextMessageTextEdit::clear); connect(this->m_actionAll, &QAction::triggered, this, &CTextMessageTextEdit::ps_keepLastNMessages); @@ -46,6 +45,7 @@ namespace BlackGui connect(this->m_actionLast25, &QAction::triggered, this, &CTextMessageTextEdit::ps_keepLastNMessages); connect(this->m_actionWithSender, &QAction::triggered, this, &CTextMessageTextEdit::ps_setVisibleFields); connect(this->m_actionWithRecipient, &QAction::triggered, this, &CTextMessageTextEdit::ps_setVisibleFields); + connect(this->m_actionWordWrap, &QAction::triggered, this, &CTextMessageTextEdit::ps_setWordWrap); connect(this, &QTextEdit::customContextMenuRequested, this, &CTextMessageTextEdit::ps_showContextMenuForTextEdit); @@ -146,9 +146,14 @@ namespace BlackGui void CTextMessageTextEdit::ps_showContextMenuForTextEdit(const QPoint &pt) { + m_actionWithRecipient->setChecked(this->m_withRecipient); + m_actionWithSender->setChecked(this->m_withSender); + m_actionWordWrap->setChecked(this->m_wordWrap); + QScopedPointer menu(this->createStandardContextMenu()); menu->setObjectName(this->objectName().append("_contextMenu")); menu->addSeparator(); + menu->addAction(this->m_actionWordWrap); QMenu *subMenu = menu->addMenu("Max.messages"); subMenu->addAction(this->m_actionLast10); subMenu->addAction(this->m_actionLast25); @@ -197,4 +202,24 @@ namespace BlackGui } } + void CTextMessageTextEdit::setWordWrap(bool wordWrap) + { + m_wordWrap = wordWrap; + if (m_wordWrap) + { + this->setWordWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere); + } + else + { + this->setWordWrapMode(QTextOption::NoWrap); + } + } + + void CTextMessageTextEdit::ps_setWordWrap() + { + QObject *sender = QObject::sender(); + if (sender != m_actionWordWrap) { return; } + this->setWordWrap(m_actionWordWrap->isChecked()); + } + } // namespace diff --git a/src/blackgui/textmessagetextedit.h b/src/blackgui/textmessagetextedit.h index 6d9cf6f4c..d26f7b2b7 100644 --- a/src/blackgui/textmessagetextedit.h +++ b/src/blackgui/textmessagetextedit.h @@ -54,6 +54,9 @@ namespace BlackGui //! Visible fields void ps_setVisibleFields(); + //! Toggle word wrap + void ps_setWordWrap(); + private: //! Convert to HTML static QString toHtml(const BlackMisc::Network::CTextMessageList &messages, bool withFrom, bool withTo); @@ -64,11 +67,15 @@ namespace BlackGui //! Stylesheet for content void setStyleSheetForContent(const QString &styleSheet); + //! Word wrap + void setWordWrap(bool wordWrap); + BlackMisc::Network::CTextMessageList m_messages; QTextDocument *m_textDocument = nullptr; int m_keepMaxMessages = 10; bool m_withSender = true; bool m_withRecipient = false; + bool m_wordWrap = true; QAction *m_actionClearTextEdit = nullptr; QAction *m_actionLast10 = nullptr; @@ -76,6 +83,8 @@ namespace BlackGui QAction *m_actionAll = nullptr; QAction *m_actionWithSender = nullptr; QAction *m_actionWithRecipient = nullptr; + QAction *m_actionWordWrap = nullptr; + }; } // namespace