fixed notation for chatwidgetheader

This commit is contained in:
fourtf 2017-01-16 18:27:51 +01:00
parent 7901071408
commit ad87075743
3 changed files with 69 additions and 61 deletions

View file

@ -7,6 +7,7 @@
ChatWidget::ChatWidget(QWidget *parent) ChatWidget::ChatWidget(QWidget *parent)
: QWidget(parent) : QWidget(parent)
, m_header(this)
, m_vbox(this) , m_vbox(this)
{ {
m_vbox.setSpacing(0); m_vbox.setSpacing(0);

View file

@ -8,44 +8,49 @@
#include <QMimeData> #include <QMimeData>
#include <QPainter> #include <QPainter>
ChatWidgetHeader::ChatWidgetHeader() ChatWidgetHeader::ChatWidgetHeader(ChatWidget *parent)
: QWidget() : QWidget()
, m_chatWidget(parent)
, m_dragStart() , m_dragStart()
, m_dragging(false) , m_dragging(false)
, leftLabel() , m_leftLabel()
, middleLabel() , m_middleLabel()
, rightLabel() , m_rightLabel()
, leftMenu(this) , m_leftMenu(this)
, rightMenu(this) , m_rightMenu(this)
{ {
setFixedHeight(32); setFixedHeight(32);
updateColors(); updateColors();
setLayout(&hbox); setLayout(&m_hbox);
hbox.setMargin(0); m_hbox.setMargin(0);
hbox.addWidget(&leftLabel); m_hbox.addWidget(&m_leftLabel);
hbox.addWidget(&middleLabel, 1); m_hbox.addWidget(&m_middleLabel, 1);
hbox.addWidget(&rightLabel); m_hbox.addWidget(&m_rightLabel);
// left // left
leftLabel.label().setTextFormat(Qt::RichText); m_leftLabel.label().setTextFormat(Qt::RichText);
leftLabel.label().setText( m_leftLabel.label().setText(
"<img src=':/images/tool_moreCollapser_off16.png' />"); "<img src=':/images/tool_moreCollapser_off16.png' />");
QObject::connect(&leftLabel, &ChatWidgetHeaderButton::clicked, this, QObject::connect(&m_leftLabel, &ChatWidgetHeaderButton::clicked, this,
&ChatWidgetHeader::leftButtonClicked); &ChatWidgetHeader::leftButtonClicked);
// leftMenu.addAction("Add new split", this, &ChatWidgetHeader::menuAddSplit, // leftMenu.addAction("Add new split", this,
// &ChatWidgetHeader::menuAddSplit,
// QKeySequence(tr("Ctrl+T"))); // QKeySequence(tr("Ctrl+T")));
// leftMenu.addAction("Close split", this, &ChatWidgetHeader::menuCloseSplit, // leftMenu.addAction("Close split", this,
// &ChatWidgetHeader::menuCloseSplit,
// QKeySequence(tr("Ctrl+W"))); // QKeySequence(tr("Ctrl+W")));
// leftMenu.addAction("Move split", this, &ChatWidgetHeader::menuMoveSplit); // leftMenu.addAction("Move split", this,
// &ChatWidgetHeader::menuMoveSplit);
// leftMenu.addSeparator(); // leftMenu.addSeparator();
// leftMenu.addAction("Change channel", this, // leftMenu.addAction("Change channel", this,
// &ChatWidgetHeader::menuChangeChannel, // &ChatWidgetHeader::menuChangeChannel,
// QKeySequence(tr("Ctrl+R"))); // QKeySequence(tr("Ctrl+R")));
// leftMenu.addAction("Clear chat", this, &ChatWidgetHeader::menuClearChat); // leftMenu.addAction("Clear chat", this,
// &ChatWidgetHeader::menuClearChat);
// leftMenu.addAction("Open channel", this, // leftMenu.addAction("Open channel", this,
// &ChatWidgetHeader::menuOpenChannel); // &ChatWidgetHeader::menuOpenChannel);
// leftMenu.addAction("Open pop-out player", this, // leftMenu.addAction("Open pop-out player", this,
@ -60,13 +65,13 @@ ChatWidgetHeader::ChatWidgetHeader()
// &ChatWidgetHeader::menuShowChangelog); // &ChatWidgetHeader::menuShowChangelog);
// middle // middle
middleLabel.setAlignment(Qt::AlignCenter); m_middleLabel.setAlignment(Qt::AlignCenter);
middleLabel.setText("textString"); m_middleLabel.setText("textString");
// right // right
rightLabel.setMinimumWidth(height()); m_rightLabel.setMinimumWidth(height());
rightLabel.label().setTextFormat(Qt::RichText); m_rightLabel.label().setTextFormat(Qt::RichText);
rightLabel.label().setText("ayy"); m_rightLabel.label().setText("ayy");
} }
void void
@ -75,9 +80,9 @@ ChatWidgetHeader::updateColors()
QPalette palette; QPalette palette;
palette.setColor(QPalette::Foreground, ColorScheme::instance().Text); palette.setColor(QPalette::Foreground, ColorScheme::instance().Text);
leftLabel.setPalette(palette); m_leftLabel.setPalette(palette);
middleLabel.setPalette(palette); m_middleLabel.setPalette(palette);
rightLabel.setPalette(palette); m_rightLabel.setPalette(palette);
} }
void void
@ -104,7 +109,7 @@ ChatWidgetHeader::mouseMoveEvent(QMouseEvent *event)
if (m_dragging) { if (m_dragging) {
if (std::abs(m_dragStart.x() - event->pos().x()) > 12 || if (std::abs(m_dragStart.x() - event->pos().x()) > 12 ||
std::abs(m_dragStart.y() - event->pos().y()) > 12) { std::abs(m_dragStart.y() - event->pos().y()) > 12) {
auto chatWidget = getChatWidget(); auto chatWidget = m_chatWidget;
auto page = static_cast<NotebookPage *>(chatWidget->parentWidget()); auto page = static_cast<NotebookPage *>(chatWidget->parentWidget());
if (page != NULL) { if (page != NULL) {
@ -134,17 +139,11 @@ ChatWidgetHeader::mouseMoveEvent(QMouseEvent *event)
} }
} }
ChatWidget *
ChatWidgetHeader::getChatWidget()
{
return static_cast<ChatWidget *>(parentWidget());
}
void void
ChatWidgetHeader::leftButtonClicked() ChatWidgetHeader::leftButtonClicked()
{ {
leftMenu.move(leftLabel.mapToGlobal(QPoint(0, leftLabel.height()))); m_leftMenu.move(m_leftLabel.mapToGlobal(QPoint(0, m_leftLabel.height())));
leftMenu.show(); m_leftMenu.show();
} }
void void

View file

@ -19,8 +19,14 @@ class ChatWidgetHeader : public QWidget
Q_OBJECT Q_OBJECT
public: public:
ChatWidgetHeader(); ChatWidgetHeader(ChatWidget *parent);
ChatWidget *getChatWidget();
ChatWidget *
chatWidget()
{
return m_chatWidget;
}
void updateColors(); void updateColors();
protected: protected:
@ -29,17 +35,19 @@ protected:
void mouseMoveEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event);
private: private:
ChatWidget *m_chatWidget;
QPoint m_dragStart; QPoint m_dragStart;
bool m_dragging; bool m_dragging;
QHBoxLayout hbox; QHBoxLayout m_hbox;
ChatWidgetHeaderButton leftLabel; ChatWidgetHeaderButton m_leftLabel;
QLabel middleLabel; QLabel m_middleLabel;
ChatWidgetHeaderButton rightLabel; ChatWidgetHeaderButton m_rightLabel;
QMenu leftMenu; QMenu m_leftMenu;
QMenu rightMenu; QMenu m_rightMenu;
void leftButtonClicked(); void leftButtonClicked();
void rightButtonClicked(); void rightButtonClicked();