mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-20 18:56:34 +01:00
Address of hovered link won't stuck at screen when changing to other
window anymore.
This commit is contained in:
parent
9801c59535
commit
a8881c1d73
@ -2,38 +2,60 @@
|
|||||||
#include "qupzilla.h"
|
#include "qupzilla.h"
|
||||||
#include "squeezelabelv1.h"
|
#include "squeezelabelv1.h"
|
||||||
|
|
||||||
|
TipLabel::TipLabel(QupZilla* parent) : SqueezeLabelV1(parent) , p_QupZilla(parent)
|
||||||
|
{
|
||||||
|
m_timer = new QTimer();
|
||||||
|
m_timer->setInterval(300);
|
||||||
|
connect(m_timer, SIGNAL(timeout()), this, SLOT(checkMainWindowFocus()));
|
||||||
|
|
||||||
class TipLabel : public SqueezeLabelV1 {
|
setWindowFlags(Qt::ToolTip);
|
||||||
public:
|
setForegroundRole(QPalette::ToolTipText);
|
||||||
TipLabel()
|
setBackgroundRole(QPalette::ToolTipBase);
|
||||||
{
|
setPalette(QToolTip::palette());
|
||||||
setWindowFlags(Qt::ToolTip);
|
ensurePolished();
|
||||||
setForegroundRole(QPalette::ToolTipText);
|
setFrameStyle(QFrame::NoFrame);
|
||||||
setBackgroundRole(QPalette::ToolTipBase);
|
setMargin(2);
|
||||||
setPalette(QToolTip::palette());
|
}
|
||||||
ensurePolished();
|
|
||||||
setFrameStyle(QFrame::NoFrame);
|
|
||||||
setMargin(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
void paintEvent(QPaintEvent *ev)
|
void TipLabel::paintEvent(QPaintEvent *ev)
|
||||||
{
|
{
|
||||||
QStylePainter p(this);
|
QStylePainter p(this);
|
||||||
QStyleOptionFrame opt;
|
QStyleOptionFrame opt;
|
||||||
opt.init(this);
|
opt.init(this);
|
||||||
p.drawPrimitive(QStyle::PE_PanelTipLabel, opt);
|
p.drawPrimitive(QStyle::PE_PanelTipLabel, opt);
|
||||||
p.end();
|
p.end();
|
||||||
|
|
||||||
|
SqueezeLabelV1::paintEvent(ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TipLabel::show()
|
||||||
|
{
|
||||||
|
if (!p_QupZilla->weView()->hasFocus())
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_timer->start();
|
||||||
|
SqueezeLabelV1::show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TipLabel::hide()
|
||||||
|
{
|
||||||
|
m_timer->stop();
|
||||||
|
SqueezeLabelV1::hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TipLabel::checkMainWindowFocus()
|
||||||
|
{
|
||||||
|
if (!p_QupZilla->weView()->hasFocus())
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
|
||||||
SqueezeLabelV1::paintEvent(ev);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
StatusBarMessage::StatusBarMessage(QupZilla* mainClass)
|
StatusBarMessage::StatusBarMessage(QupZilla* mainClass)
|
||||||
: QObject()
|
: QObject()
|
||||||
, p_QupZilla(mainClass)
|
, p_QupZilla(mainClass)
|
||||||
{
|
{
|
||||||
m_statusBarText = new TipLabel();
|
m_statusBarText = new TipLabel(mainClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define STATUS_Y_OFFSET -35
|
#define STATUS_Y_OFFSET -35
|
||||||
|
@ -3,9 +3,28 @@
|
|||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QToolTip>
|
#include <QToolTip>
|
||||||
|
#include "squeezelabelv1.h"
|
||||||
|
|
||||||
class QupZilla;
|
class QupZilla;
|
||||||
class TipLabel;
|
class TipLabel;
|
||||||
|
|
||||||
|
class TipLabel : public SqueezeLabelV1 {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
TipLabel(QupZilla* parent);
|
||||||
|
void paintEvent(QPaintEvent *ev);
|
||||||
|
void show();
|
||||||
|
void hide();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void checkMainWindowFocus();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QTimer* m_timer;
|
||||||
|
QupZilla* p_QupZilla;
|
||||||
|
};
|
||||||
|
|
||||||
class StatusBarMessage : public QObject
|
class StatusBarMessage : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
Loading…
Reference in New Issue
Block a user