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)
: QWidget(parent)
, m_header(this)
, m_vbox(this)
{
m_vbox.setSpacing(0);

View file

@ -8,44 +8,49 @@
#include <QMimeData>
#include <QPainter>
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(
"<img src=':/images/tool_moreCollapser_off16.png' />");
QObject::connect(&leftLabel, &ChatWidgetHeaderButton::clicked, this,
QObject::connect(&m_leftLabel, &ChatWidgetHeaderButton::clicked, this,
&ChatWidgetHeader::leftButtonClicked);
// leftMenu.addAction("Add new split", this, &ChatWidgetHeader::menuAddSplit,
// leftMenu.addAction("Add new split", this,
// &ChatWidgetHeader::menuAddSplit,
// QKeySequence(tr("Ctrl+T")));
// leftMenu.addAction("Close split", this, &ChatWidgetHeader::menuCloseSplit,
// leftMenu.addAction("Close split", this,
// &ChatWidgetHeader::menuCloseSplit,
// QKeySequence(tr("Ctrl+W")));
// leftMenu.addAction("Move split", this, &ChatWidgetHeader::menuMoveSplit);
// 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("Clear chat", this,
// &ChatWidgetHeader::menuClearChat);
// leftMenu.addAction("Open channel", this,
// &ChatWidgetHeader::menuOpenChannel);
// leftMenu.addAction("Open pop-out player", this,
@ -60,13 +65,13 @@ ChatWidgetHeader::ChatWidgetHeader()
// &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<NotebookPage *>(chatWidget->parentWidget());
if (page != NULL) {
@ -134,17 +139,11 @@ ChatWidgetHeader::mouseMoveEvent(QMouseEvent *event)
}
}
ChatWidget *
ChatWidgetHeader::getChatWidget()
{
return static_cast<ChatWidget *>(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

View file

@ -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();