Fix URL clicks in NOTE labels
This commit is contained in:
committed by
Craig Drummond
parent
60315420d6
commit
5d713012a1
@@ -523,11 +523,6 @@
|
||||
<extends>QLabel</extends>
|
||||
<header>widgets/actionlabel.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>UrlNoteLabel</class>
|
||||
<extends>QLabel</extends>
|
||||
<header>widgets/notelabel.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>SplitLabelWidget</class>
|
||||
<extends>QLabel</extends>
|
||||
|
||||
@@ -29,10 +29,12 @@
|
||||
|
||||
UrlLabel::UrlLabel(QWidget *p)
|
||||
: QLabel(p)
|
||||
, pressed(false)
|
||||
{
|
||||
setCursor(QCursor(Qt::PointingHandCursor));
|
||||
setContextMenuPolicy(Qt::NoContextMenu);
|
||||
setTextInteractionFlags(Qt::TextBrowserInteraction);
|
||||
setOpenExternalLinks(false);
|
||||
connect(this, SIGNAL(linkActivated(QString)), this, SIGNAL(leftClickedUrl()));
|
||||
}
|
||||
|
||||
void UrlLabel::setText(const QString &t)
|
||||
@@ -47,19 +49,3 @@ void UrlLabel::setProperty(const char *name, const QVariant &value)
|
||||
}
|
||||
}
|
||||
|
||||
void UrlLabel::mousePressEvent(QMouseEvent *ev)
|
||||
{
|
||||
if (Qt::LeftButton==ev->buttons()) {
|
||||
pressed=true;
|
||||
}
|
||||
}
|
||||
|
||||
void UrlLabel::mouseReleaseEvent(QMouseEvent *)
|
||||
{
|
||||
if (pressed) {
|
||||
pressed=false;
|
||||
if (this==QApplication::widgetAt(QCursor::pos())) {
|
||||
emit leftClickedUrl();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,13 +40,6 @@ public:
|
||||
|
||||
Q_SIGNALS:
|
||||
void leftClickedUrl();
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *ev) override;
|
||||
void mouseReleaseEvent(QMouseEvent *) override;
|
||||
|
||||
private:
|
||||
bool pressed;
|
||||
};
|
||||
|
||||
#endif // URLLABEL_H
|
||||
|
||||
@@ -265,11 +265,6 @@
|
||||
<extends>QLabel</extends>
|
||||
<header>widgets/notelabel.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>PlainUrlNoteLabel</class>
|
||||
<extends>QLabel</extends>
|
||||
<header>widgets/notelabel.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>RatingWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "support/utils.h"
|
||||
#include <QVBoxLayout>
|
||||
#include <QFont>
|
||||
#include <QVariant>
|
||||
|
||||
static void init(QLabel *label)
|
||||
{
|
||||
@@ -32,7 +33,6 @@ static void init(QLabel *label)
|
||||
|
||||
label->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
|
||||
label->setWordWrap(true);
|
||||
label->setTextInteractionFlags(Qt::NoTextInteraction);
|
||||
if (label->font().pointSize()>constMinFontSize) {
|
||||
label->setFont(Utils::smallFont(label->font()));
|
||||
}
|
||||
@@ -61,9 +61,9 @@ static QLabel * init(QWidget *p, bool url)
|
||||
return label;
|
||||
}
|
||||
|
||||
void NoteLabel::setText(QLabel *l, const QString &text)
|
||||
QString NoteLabel::formatText(const QString &text)
|
||||
{
|
||||
l->setText(tr("<i><b>NOTE:</b> %1</i>").arg(text));
|
||||
return tr("<i><b>NOTE:</b> %1</i>").arg(text);
|
||||
}
|
||||
|
||||
NoteLabel::NoteLabel(QWidget *parent)
|
||||
@@ -72,6 +72,13 @@ NoteLabel::NoteLabel(QWidget *parent)
|
||||
label=static_cast<StateLabel *>(init(this, false));
|
||||
}
|
||||
|
||||
void NoteLabel::setProperty(const char *name, const QVariant &value)
|
||||
{
|
||||
if (name && !strcmp(name, "text") && QVariant::String==value.type()) {
|
||||
setText(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
UrlNoteLabel::UrlNoteLabel(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
@@ -79,6 +86,13 @@ UrlNoteLabel::UrlNoteLabel(QWidget *parent)
|
||||
connect(label, SIGNAL(leftClickedUrl()), this, SIGNAL(leftClickedUrl()));
|
||||
}
|
||||
|
||||
void UrlNoteLabel::setProperty(const char *name, const QVariant &value)
|
||||
{
|
||||
if (name && !strcmp(name, "text") && QVariant::String==value.type()) {
|
||||
setText(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
PlainNoteLabel::PlainNoteLabel(QWidget *parent)
|
||||
: StateLabel(parent)
|
||||
{
|
||||
|
||||
@@ -32,11 +32,12 @@ class NoteLabel : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
static void setText(QLabel *l, const QString &text);
|
||||
static QString formatText(const QString &text);
|
||||
NoteLabel(QWidget *parent=nullptr);
|
||||
void setText(const QString &text) { setText(label, text); }
|
||||
void setText(const QString &text) { label->setText(formatText(text)); }
|
||||
void appendText(const QString &text) { label->setText(label->text()+text); }
|
||||
QString text() const { return label->text(); }
|
||||
void setProperty(const char *name, const QVariant &value);
|
||||
void setOn(bool o) { label->setOn(o); }
|
||||
private:
|
||||
StateLabel *label;
|
||||
@@ -47,9 +48,10 @@ class UrlNoteLabel : public QWidget
|
||||
Q_OBJECT
|
||||
public:
|
||||
UrlNoteLabel(QWidget *parent=nullptr);
|
||||
void setText(const QString &text) { NoteLabel::setText(label, text); }
|
||||
void setText(const QString &text) { label->setText(NoteLabel::formatText(text)); }
|
||||
void appendText(const QString &text) { label->setText(label->text()+text); }
|
||||
QString text() const { return label->text(); }
|
||||
void setProperty(const char *name, const QVariant &value);
|
||||
Q_SIGNALS:
|
||||
void leftClickedUrl();
|
||||
private:
|
||||
@@ -60,14 +62,14 @@ class PlainNoteLabel : public StateLabel
|
||||
{
|
||||
public:
|
||||
PlainNoteLabel(QWidget *parent=nullptr);
|
||||
void setText(const QString &text) { NoteLabel::setText(this, text); }
|
||||
void setText(const QString &text) { StateLabel::setText(NoteLabel::formatText(text)); }
|
||||
};
|
||||
|
||||
class PlainUrlNoteLabel : public UrlLabel
|
||||
{
|
||||
public:
|
||||
PlainUrlNoteLabel(QWidget *parent=nullptr);
|
||||
void setText(const QString &text) { NoteLabel::setText(this, text); }
|
||||
void setText(const QString &text) { UrlLabel::setText(NoteLabel::formatText(text)); }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user