diff --git a/src/widgets/chatwidget.cpp b/src/widgets/chatwidget.cpp
index e82cecbe..62486635 100644
--- a/src/widgets/chatwidget.cpp
+++ b/src/widgets/chatwidget.cpp
@@ -235,5 +235,28 @@ void ChatWidget::doChangeChannel()
this->showChangeChannelPopup();
}
+void ChatWidget::doPopup()
+{
+ // TODO: Copy signals and stuff too
+ auto widget = new ChatWidget();
+ widget->setChannelName(this->getChannelName());
+ widget->show();
+}
+
+void ChatWidget::doClearChat()
+{
+ qDebug() << "[UNIMPLEMENTED]: Clear chat";
+}
+
+void ChatWidget::doOpenChannel()
+{
+ qDebug() << "[UNIMPLEMENTED]: Open twitch.tv/" << this->getChannelName();
+}
+
+void ChatWidget::doOpenPopupPlayer()
+{
+ qDebug() << "[UNIMPLEMENTED]: Open twitch.tv/" << this->getChannelName() << "/popout";
+}
+
} // namespace widgets
} // namespace chatterino
diff --git a/src/widgets/chatwidget.h b/src/widgets/chatwidget.h
index 95507767..1df61850 100644
--- a/src/widgets/chatwidget.h
+++ b/src/widgets/chatwidget.h
@@ -82,6 +82,19 @@ public slots:
// Show a dialog for changing the current splits/chat widgets channel
void doChangeChannel();
+
+ // Open popup copy of this chat widget
+ // XXX: maybe make current chatwidget a popup instead?
+ void doPopup();
+
+ // Clear chat from all messages
+ void doClearChat();
+
+ // Open link to twitch channel in default browser
+ void doOpenChannel();
+
+ // Open popup player of twitch channel in default browser
+ void doOpenPopupPlayer();
};
} // namespace widgets
diff --git a/src/widgets/chatwidgetheader.cpp b/src/widgets/chatwidgetheader.cpp
index 4ad1c359..3a720222 100644
--- a/src/widgets/chatwidgetheader.cpp
+++ b/src/widgets/chatwidgetheader.cpp
@@ -14,62 +14,55 @@ namespace widgets {
ChatWidgetHeader::ChatWidgetHeader(ChatWidget *_chatWidget)
: QWidget(_chatWidget)
, chatWidget(_chatWidget)
- , _dragStart()
- , _dragging(false)
- , _leftLabel()
- , _middleLabel()
- , _rightLabel()
- , _leftMenu(this)
- , _rightMenu(this)
+ , leftMenu(this)
+ , rightMenu(this)
{
- setFixedHeight(32);
+ this->setFixedHeight(32);
- updateColors();
- updateChannelText();
+ this->updateColors();
+ this->updateChannelText();
- setLayout(&_hbox);
- _hbox.setMargin(0);
- _hbox.addWidget(&_leftLabel);
- _hbox.addWidget(&_middleLabel, 1);
- _hbox.addWidget(&_rightLabel);
+ this->setLayout(&this->hbox);
+ this->hbox.setMargin(0);
+ this->hbox.addWidget(&this->leftLabel);
+ this->hbox.addWidget(&this->channelNameLabel, 1);
+ this->hbox.addWidget(&this->rightLabel);
// left
- _leftLabel.getLabel().setTextFormat(Qt::RichText);
- _leftLabel.getLabel().setText("
");
+ this->leftLabel.getLabel().setTextFormat(Qt::RichText);
+ this->leftLabel.getLabel().setText("
");
- QObject::connect(&_leftLabel, &ChatWidgetHeaderButton::clicked, this,
- &ChatWidgetHeader::leftButtonClicked);
+ connect(&this->leftLabel, &ChatWidgetHeaderButton::clicked, this,
+ &ChatWidgetHeader::leftButtonClicked);
- _leftMenu.addAction("Add new split", this->chatWidget, &ChatWidget::doAddSplit,
- QKeySequence(tr("Ctrl+T")));
- _leftMenu.addAction("Close split", this->chatWidget, &ChatWidget::doCloseSplit,
- QKeySequence(tr("Ctrl+W")));
- _leftMenu.addAction("Move split", this, SLOT(menuMoveSplit()));
- _leftMenu.addAction("Popup", this, SLOT(menuPopup()));
- _leftMenu.addSeparator();
- _leftMenu.addAction("Change channel", this->chatWidget, &ChatWidget::doChangeChannel,
- QKeySequence(tr("Ctrl+R")));
- _leftMenu.addAction("Clear chat", this, SLOT(menuClearChat()));
- _leftMenu.addAction("Open channel", this, SLOT(menuOpenChannel()));
- _leftMenu.addAction("Open pop-out player", this, SLOT(menuPopupPlayer()));
- _leftMenu.addSeparator();
- _leftMenu.addAction("Reload channel emotes", this, SLOT(menuReloadChannelEmotes()));
- _leftMenu.addAction("Manual reconnect", this, SLOT(menuManualReconnect()));
- _leftMenu.addSeparator();
- _leftMenu.addAction("Show changelog", this, SLOT(menuShowChangelog()));
+ this->leftMenu.addAction("Add new split", this->chatWidget, &ChatWidget::doAddSplit,
+ QKeySequence(tr("Ctrl+T")));
+ this->leftMenu.addAction("Close split", this->chatWidget, &ChatWidget::doCloseSplit,
+ QKeySequence(tr("Ctrl+W")));
+ this->leftMenu.addAction("Move split", this, SLOT(menuMoveSplit()));
+ this->leftMenu.addAction("Popup", this->chatWidget, &ChatWidget::doPopup);
+ this->leftMenu.addSeparator();
+ this->leftMenu.addAction("Change channel", this->chatWidget, &ChatWidget::doChangeChannel,
+ QKeySequence(tr("Ctrl+R")));
+ this->leftMenu.addAction("Clear chat", this->chatWidget, &ChatWidget::doClearChat);
+ this->leftMenu.addAction("Open channel", this->chatWidget, &ChatWidget::doOpenChannel);
+ this->leftMenu.addAction("Open popup player", this->chatWidget, &ChatWidget::doOpenPopupPlayer);
+ this->leftMenu.addSeparator();
+ this->leftMenu.addAction("Reload channel emotes", this, SLOT(menuReloadChannelEmotes()));
+ this->leftMenu.addAction("Manual reconnect", this, SLOT(menuManualReconnect()));
+ this->leftMenu.addSeparator();
+ this->leftMenu.addAction("Show changelog", this, SLOT(menuShowChangelog()));
// middle
- _middleLabel.setAlignment(Qt::AlignCenter);
+ this->channelNameLabel.setAlignment(Qt::AlignCenter);
- connect(&_middleLabel, &SignalLabel::mouseDoubleClick, this,
+ connect(&this->channelNameLabel, &SignalLabel::mouseDoubleClick, this,
&ChatWidgetHeader::mouseDoubleClickEvent);
- // connect(&this->middleLabel, &SignalLabel::mouseDown, this,
- // &ChatWidgetHeader::mouseDoubleClickEvent);
// right
- _rightLabel.setMinimumWidth(height());
- _rightLabel.getLabel().setTextFormat(Qt::RichText);
- _rightLabel.getLabel().setText("ayy");
+ this->rightLabel.setMinimumWidth(this->height());
+ this->rightLabel.getLabel().setTextFormat(Qt::RichText);
+ this->rightLabel.getLabel().setText("ayy");
}
void ChatWidgetHeader::updateColors()
@@ -77,16 +70,16 @@ void ChatWidgetHeader::updateColors()
QPalette palette;
palette.setColor(QPalette::Foreground, ColorScheme::getInstance().Text);
- _leftLabel.setPalette(palette);
- _middleLabel.setPalette(palette);
- _rightLabel.setPalette(palette);
+ this->leftLabel.setPalette(palette);
+ this->channelNameLabel.setPalette(palette);
+ this->rightLabel.setPalette(palette);
}
void ChatWidgetHeader::updateChannelText()
{
const QString &c = this->chatWidget->getChannelName();
- _middleLabel.setText(c.isEmpty() ? "" : c);
+ this->channelNameLabel.setText(c.isEmpty() ? "" : c);
}
void ChatWidgetHeader::paintEvent(QPaintEvent *)
@@ -100,16 +93,16 @@ void ChatWidgetHeader::paintEvent(QPaintEvent *)
void ChatWidgetHeader::mousePressEvent(QMouseEvent *event)
{
- _dragging = true;
+ this->dragging = true;
- _dragStart = event->pos();
+ this->dragStart = event->pos();
}
void ChatWidgetHeader::mouseMoveEvent(QMouseEvent *event)
{
- if (_dragging) {
- if (std::abs(_dragStart.x() - event->pos().x()) > 12 ||
- std::abs(_dragStart.y() - event->pos().y()) > 12) {
+ if (this->dragging) {
+ if (std::abs(this->dragStart.x() - event->pos().x()) > 12 ||
+ std::abs(this->dragStart.y() - event->pos().y()) > 12) {
auto page = static_cast(this->chatWidget->parentWidget());
if (page != nullptr) {
@@ -148,8 +141,8 @@ void ChatWidgetHeader::mouseDoubleClickEvent(QMouseEvent *event)
void ChatWidgetHeader::leftButtonClicked()
{
- _leftMenu.move(_leftLabel.mapToGlobal(QPoint(0, _leftLabel.height())));
- _leftMenu.show();
+ this->leftMenu.move(this->leftLabel.mapToGlobal(QPoint(0, this->leftLabel.height())));
+ this->leftMenu.show();
}
void ChatWidgetHeader::rightButtonClicked()
@@ -160,25 +153,6 @@ void ChatWidgetHeader::menuMoveSplit()
{
}
-void ChatWidgetHeader::menuPopup()
-{
- auto widget = new ChatWidget();
- widget->setChannelName(this->chatWidget->getChannelName());
- widget->show();
-}
-
-void ChatWidgetHeader::menuClearChat()
-{
-}
-
-void ChatWidgetHeader::menuOpenChannel()
-{
-}
-
-void ChatWidgetHeader::menuPopupPlayer()
-{
-}
-
void ChatWidgetHeader::menuReloadChannelEmotes()
{
}
diff --git a/src/widgets/chatwidgetheader.h b/src/widgets/chatwidgetheader.h
index 758bf3ba..f2088b32 100644
--- a/src/widgets/chatwidgetheader.h
+++ b/src/widgets/chatwidgetheader.h
@@ -36,29 +36,29 @@ protected:
virtual void mouseDoubleClickEvent(QMouseEvent *event) override;
private:
- ChatWidget *chatWidget;
+ ChatWidget *const chatWidget;
- QPoint _dragStart;
- bool _dragging;
+ QPoint dragStart;
+ bool dragging = false;
- QHBoxLayout _hbox;
+ QHBoxLayout hbox;
- ChatWidgetHeaderButton _leftLabel;
- SignalLabel _middleLabel;
- ChatWidgetHeaderButton _rightLabel;
+ // top left
+ ChatWidgetHeaderButton leftLabel;
+ QMenu leftMenu;
- QMenu _leftMenu;
- QMenu _rightMenu;
+ // center
+ SignalLabel channelNameLabel;
+
+ // top right
+ ChatWidgetHeaderButton rightLabel;
+ QMenu rightMenu;
void leftButtonClicked();
void rightButtonClicked();
public slots:
void menuMoveSplit();
- void menuPopup();
- void menuClearChat();
- void menuOpenChannel();
- void menuPopupPlayer();
void menuReloadChannelEmotes();
void menuManualReconnect();
void menuShowChangelog();