From ea46326c2e439d4244528afc9d9f6b4b281c51d0 Mon Sep 17 00:00:00 2001 From: Juraj Oravec Date: Fri, 8 Dec 2023 23:58:47 +0100 Subject: [PATCH] SpeedDial: Add option to lock the dials position BUG: 403684 FIXED-IN: 24.04.0 Signed-off-by: Juraj Oravec --- src/lib/data/html/speeddial.html | 7 ++++++- src/lib/data/html/speeddial.user.js | 4 ++++ .../network/schemehandlers/falkonschemehandler.cpp | 2 ++ src/lib/plugins/speeddial.cpp | 14 ++++++++++++++ src/lib/plugins/speeddial.h | 3 +++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/lib/data/html/speeddial.html b/src/lib/data/html/speeddial.html index 0258f387f..b84553f3d 100644 --- a/src/lib/data/html/speeddial.html +++ b/src/lib/data/html/speeddial.html @@ -527,7 +527,8 @@ input[type=checkbox] { data-max-pages-row="%ROW-PAGES%" data-dial-width="%SD-SIZE%" data-sd-center="%SD-CENTER%" - data-initial-script='%INITIAL-SCRIPT%'> + data-initial-script='%INITIAL-SCRIPT%' + data-lock-dials='%LOCK-DIALS%'>

@@ -544,6 +545,10 @@ input[type=checkbox] {      %TXT_CNTRDLS% +
+ +      %TXT_LOCKDIALS% +

diff --git a/src/lib/data/html/speeddial.user.js b/src/lib/data/html/speeddial.user.js index 5d15e986f..90bc72adc 100644 --- a/src/lib/data/html/speeddial.user.js +++ b/src/lib/data/html/speeddial.user.js @@ -37,6 +37,7 @@ function configureSpeedDial() $('#BgImgSelSiz').val(scriptData.bSize).attr('selected', 'selected'); $('#BgImgToggle').prop('checked', scriptData.imgBackground != ""); $('#SdCntrToggle').prop('checked', scriptData.sdCenter == "true"); + $('#SdLockDials').prop('checked', scriptData.lockDials == "true"); $('#BgImgToggle').is(':checked') ? $('#BgImgSel').removeAttr('disabled') : $('#BgImgSel').attr('disabled', 'disabled'); $('#BgImgToggle').is(':checked') ? $('#BgImgSelSiz').removeAttr('disabled') : $('#BgImgSelSiz').attr('disabled', 'disabled'); $('#SdSizeToggle').is(':checked') ? $('#SdSize').removeAttr('disabled') : $('#SdSize').attr('disabled', 'disabled'); @@ -343,11 +344,13 @@ function saveSettings() { scriptData.maxPagesRow = $('#PgInRow').val(); scriptData.dialWidth = $('#SdSize').val(); scriptData.sdCenter = $('#SdCntrToggle').prop('checked'); + scriptData.lockDials = $('#SdLockDials').prop('checked'); external.speedDial.setBackgroundImage($('#BgImgHoldUrl').val()); external.speedDial.setBackgroundImageSize($('#BgImgSelSiz').val()); external.speedDial.setPagesInRow(scriptData.maxPagesRow); external.speedDial.setSdSize(scriptData.dialWidth); external.speedDial.setSdCentered(scriptData.sdCenter == "true"); + external.speedDial.setLockDials(scriptData.lockDials == "true"); alignPage(); } @@ -479,6 +482,7 @@ function init() { containment: 'document', opacity: 0.8, distance: 40, + disabled: scriptData.lockDials == "true", start: function(event, ui) { disableCentering(); }, diff --git a/src/lib/network/schemehandlers/falkonschemehandler.cpp b/src/lib/network/schemehandlers/falkonschemehandler.cpp index b26140ad5..bedd0509b 100644 --- a/src/lib/network/schemehandlers/falkonschemehandler.cpp +++ b/src/lib/network/schemehandlers/falkonschemehandler.cpp @@ -235,6 +235,7 @@ QString FalkonSchemeReply::speeddialPage() dPage.replace(QLatin1String("%TXT_NRROWS%"), tr("Maximum pages in a row:")); dPage.replace(QLatin1String("%TXT_SDSIZE%"), tr("Change size of pages:")); dPage.replace(QLatin1String("%TXT_CNTRDLS%"), tr("Center speed dials")); + dPage.replace(QLatin1String("%TXT_LOCKDIALS%"), tr("Lock the position of SpeedDial entries.")); dPage = QzTools::applyDirectionToPage(dPage); } @@ -248,6 +249,7 @@ QString FalkonSchemeReply::speeddialPage() page.replace(QLatin1String("%ROW-PAGES%"), QString::number(dial->pagesInRow())); page.replace(QLatin1String("%SD-SIZE%"), QString::number(dial->sdSize())); page.replace(QLatin1String("%SD-CENTER%"), dial->sdCenter() ? QSL("true") : QSL("false")); + page.replace(QLatin1String("%LOCK-DIALS%"), dial->lockDials() ? QSL("true") : QSL("false")); return page; } diff --git a/src/lib/plugins/speeddial.cpp b/src/lib/plugins/speeddial.cpp index cce0cc24d..fd115e445 100644 --- a/src/lib/plugins/speeddial.cpp +++ b/src/lib/plugins/speeddial.cpp @@ -60,6 +60,7 @@ void SpeedDial::loadSettings() m_maxPagesInRow = settings.value(QSL("pagesrow"), 4).toInt(); m_sizeOfSpeedDials = settings.value(QSL("sdsize"), 231).toInt(); m_sdcentered = settings.value(QSL("sdcenter"), false).toBool(); + m_lockDials = settings.value(QSL("lock-dials"), false).toBool(); settings.endGroup(); if (allPages.isEmpty()) { @@ -90,6 +91,7 @@ void SpeedDial::saveSettings() settings.setValue(QSL("pagesrow"), m_maxPagesInRow); settings.setValue(QSL("sdsize"), m_sizeOfSpeedDials); settings.setValue(QSL("sdcenter"), m_sdcentered); + settings.setValue(QSL("lock-dials"), m_lockDials); settings.endGroup(); } @@ -175,6 +177,13 @@ bool SpeedDial::sdCenter() return m_sdcentered; } +bool SpeedDial::lockDials() +{ + ENSURE_LOADED; + + return m_lockDials; +} + QString SpeedDial::backgroundImage() { ENSURE_LOADED; @@ -324,6 +333,11 @@ void SpeedDial::setSdCentered(bool centered) m_autoSaver->changeOccurred(); } +void SpeedDial::setLockDials(bool lockDials) +{ + m_lockDials = lockDials; +} + void SpeedDial::thumbnailCreated(const QPixmap &pixmap) { auto* thumbnailer = qobject_cast(sender()); diff --git a/src/lib/plugins/speeddial.h b/src/lib/plugins/speeddial.h index a8e9c5802..e23b347b4 100644 --- a/src/lib/plugins/speeddial.h +++ b/src/lib/plugins/speeddial.h @@ -62,6 +62,7 @@ public: int pagesInRow(); int sdSize(); bool sdCenter(); + bool lockDials(); QString backgroundImage(); QString backgroundImageUrl(); @@ -86,6 +87,7 @@ public Q_SLOTS: void setPagesInRow(int count); void setSdSize(int count); void setSdCentered(bool centered); + void setLockDials(bool lockDials); private Q_SLOTS: void thumbnailCreated(const QPixmap &pixmap); @@ -105,6 +107,7 @@ private: int m_maxPagesInRow; int m_sizeOfSpeedDials; bool m_sdcentered; + bool m_lockDials; QList m_pages; AutoSaver* m_autoSaver;