kdeui: enable opening of external links for KMessageWidget and disable text selection

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2024-04-30 21:31:32 +03:00
parent e86c7d9264
commit 53dc9fede5
2 changed files with 7 additions and 5 deletions

View file

@ -212,7 +212,7 @@ int KMessageBox::createKMessageBox(KDialog *dialog, const QIcon &icon, const QSt
styleOption.initFrom(listWidget); styleOption.initFrom(listWidget);
QFontMetrics fm(styleOption.font); QFontMetrics fm(styleOption.font);
int w = listWidget->width(); int w = listWidget->width();
Q_FOREACH(const QString &str, strlist) { foreach (const QString &str, strlist) {
w = qMax(w, fm.width(str)); w = qMax(w, fm.width(str));
} }
const int borderWidth = listWidget->width() - listWidget->viewport()->width() + listWidget->verticalScrollBar()->height(); const int borderWidth = listWidget->width() - listWidget->viewport()->width() + listWidget->verticalScrollBar()->height();
@ -246,8 +246,9 @@ int KMessageBox::createKMessageBox(KDialog *dialog, const QIcon &icon, const QSt
detailTextBrowser->setMinimumHeight(detailTextBrowser->fontMetrics().lineSpacing() * 11); detailTextBrowser->setMinimumHeight(detailTextBrowser->fontMetrics().lineSpacing() * 11);
detailTextBrowser->setOpenExternalLinks(options & KMessageBox::AllowLink); detailTextBrowser->setOpenExternalLinks(options & KMessageBox::AllowLink);
Qt::TextInteractionFlags flags = Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard; Qt::TextInteractionFlags flags = Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard;
if ( options & KMessageBox::AllowLink ) if (options & KMessageBox::AllowLink) {
flags |= Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard; flags |= Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard;
}
detailTextBrowser->setTextInteractionFlags(flags); detailTextBrowser->setTextInteractionFlags(flags);
detailsLayout->addWidget(detailTextBrowser, 50); detailsLayout->addWidget(detailTextBrowser, 50);
if (!usingListWidget) { if (!usingListWidget) {

View file

@ -122,8 +122,8 @@ void KMessageWidgetPrivate::updateColors()
const KColorScheme scheme(QPalette::Active, KColorScheme::Window); const KColorScheme scheme(QPalette::Active, KColorScheme::Window);
switch (messagetype) { switch (messagetype) {
case KMessageWidget::Information: { case KMessageWidget::Information: {
// even tho the selection color may be more suitable for that it cannot be used because // even tho the selection color may be more suitable for that there is KColorScheme
// the text is selectable // background type for it
textlabel->bg = scheme.background(KColorScheme::PositiveBackground).color(); textlabel->bg = scheme.background(KColorScheme::PositiveBackground).color();
break; break;
} }
@ -185,7 +185,8 @@ KMessageWidget::KMessageWidget(QWidget *parent)
d->textlabel = new KMessageLabel(this); d->textlabel = new KMessageLabel(this);
d->textlabel->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum); d->textlabel->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
d->textlabel->setTextInteractionFlags(Qt::TextBrowserInteraction | Qt::LinksAccessibleByMouse); d->textlabel->setOpenExternalLinks(true);
d->textlabel->setTextInteractionFlags(Qt::LinksAccessibleByMouse);
d->textlabel->setAlignment(Qt::AlignCenter); d->textlabel->setAlignment(Qt::AlignCenter);
connect(d->textlabel, SIGNAL(linkActivated(QString)), this, SIGNAL(linkActivated(QString))); connect(d->textlabel, SIGNAL(linkActivated(QString)), this, SIGNAL(linkActivated(QString)));
connect(d->textlabel, SIGNAL(linkHovered(QString)), this, SIGNAL(linkHovered(QString))); connect(d->textlabel, SIGNAL(linkHovered(QString)), this, SIGNAL(linkHovered(QString)));