diff --git a/chatwidget.cpp b/chatwidget.cpp index 9cdea969f..38900e07e 100644 --- a/chatwidget.cpp +++ b/chatwidget.cpp @@ -7,6 +7,7 @@ ChatWidget::ChatWidget(QWidget *parent) : QWidget(parent) + , m_header(this) , m_vbox(this) { m_vbox.setSpacing(0); diff --git a/chatwidgetheader.cpp b/chatwidgetheader.cpp index 086ec0645..d1f1b6840 100644 --- a/chatwidgetheader.cpp +++ b/chatwidgetheader.cpp @@ -8,65 +8,70 @@ #include #include -ChatWidgetHeader::ChatWidgetHeader() +ChatWidgetHeader::ChatWidgetHeader(ChatWidget *parent) : QWidget() + , m_chatWidget(parent) , m_dragStart() , m_dragging(false) - , leftLabel() - , middleLabel() - , rightLabel() - , leftMenu(this) - , rightMenu(this) + , m_leftLabel() + , m_middleLabel() + , m_rightLabel() + , m_leftMenu(this) + , m_rightMenu(this) { setFixedHeight(32); updateColors(); - setLayout(&hbox); - hbox.setMargin(0); - hbox.addWidget(&leftLabel); - hbox.addWidget(&middleLabel, 1); - hbox.addWidget(&rightLabel); + setLayout(&m_hbox); + m_hbox.setMargin(0); + m_hbox.addWidget(&m_leftLabel); + m_hbox.addWidget(&m_middleLabel, 1); + m_hbox.addWidget(&m_rightLabel); // left - leftLabel.label().setTextFormat(Qt::RichText); - leftLabel.label().setText( + m_leftLabel.label().setTextFormat(Qt::RichText); + m_leftLabel.label().setText( ""); - QObject::connect(&leftLabel, &ChatWidgetHeaderButton::clicked, this, + QObject::connect(&m_leftLabel, &ChatWidgetHeaderButton::clicked, this, &ChatWidgetHeader::leftButtonClicked); -// leftMenu.addAction("Add new split", this, &ChatWidgetHeader::menuAddSplit, -// QKeySequence(tr("Ctrl+T"))); -// leftMenu.addAction("Close split", this, &ChatWidgetHeader::menuCloseSplit, -// QKeySequence(tr("Ctrl+W"))); -// leftMenu.addAction("Move split", this, &ChatWidgetHeader::menuMoveSplit); -// leftMenu.addSeparator(); -// leftMenu.addAction("Change channel", this, -// &ChatWidgetHeader::menuChangeChannel, -// QKeySequence(tr("Ctrl+R"))); -// leftMenu.addAction("Clear chat", this, &ChatWidgetHeader::menuClearChat); -// leftMenu.addAction("Open channel", this, -// &ChatWidgetHeader::menuOpenChannel); -// leftMenu.addAction("Open pop-out player", this, -// &ChatWidgetHeader::menuPopupPlayer); -// leftMenu.addSeparator(); -// leftMenu.addAction("Reload channel emotes", this, -// &ChatWidgetHeader::menuReloadChannelEmotes); -// leftMenu.addAction("Manual reconnect", this, -// &ChatWidgetHeader::menuManualReconnect); -// leftMenu.addSeparator(); -// leftMenu.addAction("Show changelog", this, -// &ChatWidgetHeader::menuShowChangelog); + // leftMenu.addAction("Add new split", this, + // &ChatWidgetHeader::menuAddSplit, + // QKeySequence(tr("Ctrl+T"))); + // leftMenu.addAction("Close split", this, + // &ChatWidgetHeader::menuCloseSplit, + // QKeySequence(tr("Ctrl+W"))); + // leftMenu.addAction("Move split", this, + // &ChatWidgetHeader::menuMoveSplit); + // leftMenu.addSeparator(); + // leftMenu.addAction("Change channel", this, + // &ChatWidgetHeader::menuChangeChannel, + // QKeySequence(tr("Ctrl+R"))); + // leftMenu.addAction("Clear chat", this, + // &ChatWidgetHeader::menuClearChat); + // leftMenu.addAction("Open channel", this, + // &ChatWidgetHeader::menuOpenChannel); + // leftMenu.addAction("Open pop-out player", this, + // &ChatWidgetHeader::menuPopupPlayer); + // leftMenu.addSeparator(); + // leftMenu.addAction("Reload channel emotes", this, + // &ChatWidgetHeader::menuReloadChannelEmotes); + // leftMenu.addAction("Manual reconnect", this, + // &ChatWidgetHeader::menuManualReconnect); + // leftMenu.addSeparator(); + // leftMenu.addAction("Show changelog", this, + // &ChatWidgetHeader::menuShowChangelog); // middle - middleLabel.setAlignment(Qt::AlignCenter); - middleLabel.setText("textString"); + m_middleLabel.setAlignment(Qt::AlignCenter); + m_middleLabel.setText("textString"); // right - rightLabel.setMinimumWidth(height()); - rightLabel.label().setTextFormat(Qt::RichText); - rightLabel.label().setText("ayy"); + m_rightLabel.setMinimumWidth(height()); + m_rightLabel.label().setTextFormat(Qt::RichText); + m_rightLabel.label().setText("ayy"); } void @@ -75,9 +80,9 @@ ChatWidgetHeader::updateColors() QPalette palette; palette.setColor(QPalette::Foreground, ColorScheme::instance().Text); - leftLabel.setPalette(palette); - middleLabel.setPalette(palette); - rightLabel.setPalette(palette); + m_leftLabel.setPalette(palette); + m_middleLabel.setPalette(palette); + m_rightLabel.setPalette(palette); } void @@ -104,7 +109,7 @@ ChatWidgetHeader::mouseMoveEvent(QMouseEvent *event) if (m_dragging) { if (std::abs(m_dragStart.x() - event->pos().x()) > 12 || std::abs(m_dragStart.y() - event->pos().y()) > 12) { - auto chatWidget = getChatWidget(); + auto chatWidget = m_chatWidget; auto page = static_cast(chatWidget->parentWidget()); if (page != NULL) { @@ -134,17 +139,11 @@ ChatWidgetHeader::mouseMoveEvent(QMouseEvent *event) } } -ChatWidget * -ChatWidgetHeader::getChatWidget() -{ - return static_cast(parentWidget()); -} - void ChatWidgetHeader::leftButtonClicked() { - leftMenu.move(leftLabel.mapToGlobal(QPoint(0, leftLabel.height()))); - leftMenu.show(); + m_leftMenu.move(m_leftLabel.mapToGlobal(QPoint(0, m_leftLabel.height()))); + m_leftMenu.show(); } void diff --git a/chatwidgetheader.h b/chatwidgetheader.h index 3bedf36c0..7bb7bb2fd 100644 --- a/chatwidgetheader.h +++ b/chatwidgetheader.h @@ -19,8 +19,14 @@ class ChatWidgetHeader : public QWidget Q_OBJECT public: - ChatWidgetHeader(); - ChatWidget *getChatWidget(); + ChatWidgetHeader(ChatWidget *parent); + + ChatWidget * + chatWidget() + { + return m_chatWidget; + } + void updateColors(); protected: @@ -29,17 +35,19 @@ protected: void mouseMoveEvent(QMouseEvent *event); private: + ChatWidget *m_chatWidget; + QPoint m_dragStart; bool m_dragging; - QHBoxLayout hbox; + QHBoxLayout m_hbox; - ChatWidgetHeaderButton leftLabel; - QLabel middleLabel; - ChatWidgetHeaderButton rightLabel; + ChatWidgetHeaderButton m_leftLabel; + QLabel m_middleLabel; + ChatWidgetHeaderButton m_rightLabel; - QMenu leftMenu; - QMenu rightMenu; + QMenu m_leftMenu; + QMenu m_rightMenu; void leftButtonClicked(); void rightButtonClicked();