add automatic downscaling to prevent horizontal scrollbar for no-web-engine article viewer

This commit is contained in:
Martin Rotter 2023-12-04 07:49:35 +01:00
parent 58b567e82d
commit 6fc0bdd988
4 changed files with 27 additions and 9 deletions

View File

@ -17,7 +17,7 @@ RSS Guard is a simple RSS/ATOM feed reader for Windows, Linux, BSD, OS/2 or macO
* [Nextcloud News](https://apps.nextcloud.com/apps/news)
* [Tiny Tiny RSS](https://tt-rss.org)
RSS Guard is also podcast player as it can play everything via its built-in `mpv-based` media player.
RSS Guard is also podcast player as it can play everything via its built-in `mpv`-based (or `ffmpeg`-based) media player.
![RSS Guard](resources/graphics/official_pictures/main-window-linux.png)

View File

@ -85,11 +85,14 @@ LibMpvBackend::LibMpvBackend(Application* app, QWidget* parent)
mpv_set_option_string(m_mpvHandle, "save-position-on-quit", "no");
mpv_set_option_string(m_mpvHandle, "no-resume-playback", "yes");
#if !defined(NDEBUG)
mpv_set_option_string(m_mpvHandle, "terminal", "yes");
#endif
//
// NOTE: Just random options for testing here.
//
// mpv_set_option_string(m_mpvHandle, "keep-open", "no");
// mpv_set_option_string(m_mpvHandle, "terminal", "yes");
// mpv_set_option_string(m_mpvHandle, "osd-italic", "yes");
// mpv_set_option_string(m_mpvHandle, "osd-color", "1.0/0.0/0.0");
// mpv_set_option_string(m_mpvHandle, "watch-later-dir", "mpv");

View File

@ -35,8 +35,10 @@ void SettingsMediaPlayer::loadSettings() {
m_ui.m_gbMpvCustomConfigFolder
->setChecked(settings()->value(GROUP(VideoPlayer), SETTING(VideoPlayer::MpvUseCustomConfigFolder)).toBool());
m_ui.m_txtMpvConfigFolder
->setText(settings()->value(GROUP(VideoPlayer), SETTING(VideoPlayer::MpvCustomConfigFolder)).toString());
m_ui.m_txtMpvConfigFolder->setText(QDir::toNativeSeparators(settings()
->value(GROUP(VideoPlayer),
SETTING(VideoPlayer::MpvCustomConfigFolder))
.toString()));
#elif defined(ENABLE_MEDIAPLAYER_QTMULTIMEDIA)
m_ui.m_txtBackend->setText(QSL("QtMultimedia"));
m_ui.m_helpInfo->setHelpText(tr("You use lightweight QtMultimedia-based media player backend. If some videos do not "

View File

@ -69,13 +69,25 @@ QVariant TextBrowserViewer::loadOneResource(int type, const QUrl& name) {
// Resources are enabled and we already have the resource.
QByteArray resource_data = m_loadedResources.value(resolved_name);
QImage img;
if (resource_data.isEmpty()) {
return m_placeholderImageError;
img = m_placeholderImageError.toImage();
}
else {
return QImage::fromData(m_loadedResources.value(resolved_name));
img = QImage::fromData(m_loadedResources.value(resolved_name));
}
int acceptable_width = int(width() * 0.9);
if (img.width() > acceptable_width) {
qWarningNN << LOGSEC_GUI << "Picture" << QUOTE_W_SPACE(name)
<< "is too wide, down-scaling to prevent horizontal scrollbars.";
img = img.scaledToWidth(acceptable_width);
}
return img;
}
void TextBrowserViewer::bindToBrowser(WebBrowser* browser) {
@ -202,6 +214,9 @@ void TextBrowserViewer::loadMessages(const QList<Message>& messages, RootItem* r
int found_width = exp_match.captured(1).toInt();
if (found_width > acceptable_width) {
qWarningNN << LOGSEC_GUI << "Element" << QUOTE_W_SPACE(exp_match.captured())
<< "is too wide, setting smaller value to prevent horizontal scrollbars.";
html_messages.m_html = html_messages.m_html.replace(exp_match.capturedStart(1),
exp_match.capturedLength(1),
QString::number(acceptable_width));
@ -215,11 +230,9 @@ void TextBrowserViewer::loadMessages(const QList<Message>& messages, RootItem* r
html_messages.m_html = html_messages.m_html.replace(exp_symbols, QString());
/*
#if !defined(NDEBUG)
IOFactory::writeFile("aaa.html", html_messages.m_html.toUtf8());
// IOFactory::writeFile("aaa.html", html_messages.m_html.toUtf8());
#endif
*/
setHtml(html_messages.m_html, html_messages.m_baseUrl);