mirror of
https://invent.kde.org/network/falkon.git
synced 2024-09-22 02:02:10 +02:00
TabIcon: Draw audio icon in topright corner for pinned tabs
This commit is contained in:
parent
9bceb3f8b3
commit
20abaaf9f9
|
@ -175,7 +175,8 @@ void TabIcon::paintEvent(QPaintEvent* event)
|
||||||
|
|
||||||
if (m_animationRunning) {
|
if (m_animationRunning) {
|
||||||
p.drawPixmap(r, s_data->animationPixmap, QRect(m_currentFrame * pixmapSize, 0, pixmapSize, pixmapSize));
|
p.drawPixmap(r, s_data->animationPixmap, QRect(m_currentFrame * pixmapSize, 0, pixmapSize, pixmapSize));
|
||||||
} else if (m_audioIconDisplayed && (!m_tab || !m_tab->isPinned())) {
|
} else if (m_audioIconDisplayed && !m_tab->isPinned()) {
|
||||||
|
m_audioIconRect = r;
|
||||||
p.drawPixmap(r, m_tab->isMuted() ? s_data->audioMutedPixmap : s_data->audioPlayingPixmap);
|
p.drawPixmap(r, m_tab->isMuted() ? s_data->audioMutedPixmap : s_data->audioPlayingPixmap);
|
||||||
} else if (!m_sitePixmap.isNull()) {
|
} else if (!m_sitePixmap.isNull()) {
|
||||||
p.drawPixmap(r, m_sitePixmap);
|
p.drawPixmap(r, m_sitePixmap);
|
||||||
|
@ -184,7 +185,15 @@ void TabIcon::paintEvent(QPaintEvent* event)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw audio icon on top of site icon for pinned tabs
|
// Draw audio icon on top of site icon for pinned tabs
|
||||||
if (!m_animationRunning && m_audioIconDisplayed && m_tab && m_tab->isPinned()) {
|
if (!m_animationRunning && m_audioIconDisplayed && m_tab->isPinned()) {
|
||||||
|
const int s = size - 4;
|
||||||
|
const QRect r(width() - s, 0, s, s);
|
||||||
|
m_audioIconRect = r;
|
||||||
|
QColor c = palette().color(QPalette::Window);
|
||||||
|
c.setAlpha(180);
|
||||||
|
p.setPen(c);
|
||||||
|
p.setBrush(c);
|
||||||
|
p.drawEllipse(r);
|
||||||
p.drawPixmap(r, m_tab->isMuted() ? s_data->audioMutedPixmap : s_data->audioPlayingPixmap);
|
p.drawPixmap(r, m_tab->isMuted() ? s_data->audioMutedPixmap : s_data->audioPlayingPixmap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -192,8 +201,10 @@ void TabIcon::paintEvent(QPaintEvent* event)
|
||||||
void TabIcon::mousePressEvent(QMouseEvent *event)
|
void TabIcon::mousePressEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
// If audio icon is clicked - we don't propagate mouse press to the tab
|
// If audio icon is clicked - we don't propagate mouse press to the tab
|
||||||
if (m_audioIconDisplayed && event->button() == Qt::LeftButton)
|
if (m_audioIconDisplayed && event->button() == Qt::LeftButton && m_audioIconRect.contains(event->pos())) {
|
||||||
m_tab->toggleMuted();
|
m_tab->toggleMuted();
|
||||||
else
|
return;
|
||||||
QWidget::mousePressEvent(event);
|
}
|
||||||
|
|
||||||
|
QWidget::mousePressEvent(event);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
* QupZilla - WebKit based browser
|
* QupZilla - Qt web browser
|
||||||
* Copyright (C) 2014-2016 David Rosca <nowrep@gmail.com>
|
* Copyright (C) 2014-2017 David Rosca <nowrep@gmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -62,6 +62,7 @@ private:
|
||||||
int m_currentFrame;
|
int m_currentFrame;
|
||||||
bool m_animationRunning;
|
bool m_animationRunning;
|
||||||
bool m_audioIconDisplayed;
|
bool m_audioIconDisplayed;
|
||||||
|
QRect m_audioIconRect;
|
||||||
|
|
||||||
struct Data {
|
struct Data {
|
||||||
int framesCount;
|
int framesCount;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user