You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pcmanfm-qt-packaging/debian/patches/add-manual.patch

246 lines
10 KiB

Description: Add a desktop shortcut for the Lubuntu Manual
Forwarded: eventually
Author: Simon Quigley <tsimonq2@lubuntu.me>
Last-Update: 2022-06-16
---
--- a/pcmanfm/desktop-preferences.ui
+++ b/pcmanfm/desktop-preferences.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>534</width>
- <height>434</height>
+ <width>609</width>
+ <height>720</height>
</rect>
</property>
<property name="windowTitle">
@@ -485,27 +485,17 @@ are left clicked, even when it is not th
<bool>false</bool>
</property>
<layout class="QGridLayout" name="gridLayout_4">
- <item row="0" column="0" colspan="7">
- <widget class="QLabel" name="label_10">
- <property name="text">
- <string>Wallpaper image folder:</string>
+ <item row="1" column="0" colspan="6">
+ <widget class="QLineEdit" name="imageFolder">
+ <property name="placeholderText">
+ <string>Wallpaper folder</string>
</property>
</widget>
</item>
- <item row="1" column="6">
- <widget class="QPushButton" name="folderBrowse">
+ <item row="3" column="0" colspan="6">
+ <widget class="QCheckBox" name="randomize">
<property name="text">
- <string>Browse</string>
- </property>
- </widget>
- </item>
- <item row="2" column="2">
- <widget class="QSpinBox" name="hours">
- <property name="suffix">
- <string> hour(s)</string>
- </property>
- <property name="maximum">
- <number>24</number>
+ <string>Randomize the slide show</string>
</property>
</widget>
</item>
@@ -522,6 +512,20 @@ are left clicked, even when it is not th
</property>
</widget>
</item>
+ <item row="0" column="0" colspan="7">
+ <widget class="QLabel" name="label_10">
+ <property name="text">
+ <string>Wallpaper image folder:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="6">
+ <widget class="QPushButton" name="folderBrowse">
+ <property name="text">
+ <string>Browse</string>
+ </property>
+ </widget>
+ </item>
<item row="2" column="0">
<widget class="QLabel" name="label_11">
<property name="toolTip">
@@ -545,46 +549,42 @@ are left clicked, even when it is not th
</property>
</widget>
</item>
- <item row="2" column="5">
- <spacer name="horizontalSpacer_2">
+ <item row="2" column="1">
+ <spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Minimum</enum>
+ </property>
<property name="sizeHint" stdset="0">
<size>
- <width>10</width>
+ <width>5</width>
<height>5</height>
</size>
</property>
</spacer>
</item>
- <item row="1" column="0" colspan="6">
- <widget class="QLineEdit" name="imageFolder">
- <property name="placeholderText">
- <string>Wallpaper folder</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <spacer name="horizontalSpacer_3">
+ <item row="2" column="5">
+ <spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeType">
- <enum>QSizePolicy::Minimum</enum>
- </property>
<property name="sizeHint" stdset="0">
<size>
- <width>5</width>
+ <width>10</width>
<height>5</height>
</size>
</property>
</spacer>
</item>
- <item row="3" column="0" colspan="6">
- <widget class="QCheckBox" name="randomize">
- <property name="text">
- <string>Randomize the slide show</string>
+ <item row="2" column="2">
+ <widget class="QSpinBox" name="hours">
+ <property name="suffix">
+ <string> hour(s)</string>
+ </property>
+ <property name="maximum">
+ <number>24</number>
</property>
</widget>
</item>
@@ -663,6 +663,17 @@ are left clicked, even when it is not th
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="lubuntuManualBox">
+ <property name="text">
+ <string>Lubuntu Manual</string>
+ </property>
+ <property name="icon">
+ <iconset theme="help-browser">
+ <normaloff>.</normaloff>.</iconset>
+ </property>
+ </widget>
</item>
</layout>
</widget>
--- a/pcmanfm/desktoppreferencesdialog.cpp
+++ b/pcmanfm/desktoppreferencesdialog.cpp
@@ -120,6 +120,7 @@ DesktopPreferencesDialog::DesktopPrefere
ui.trashBox->setChecked(ds.contains(QLatin1String("Trash")));
ui.computerBox->setChecked(ds.contains(QLatin1String("Computer")));
ui.networkBox->setChecked(ds.contains(QLatin1String("Network")));
+ ui.lubuntuManualBox->setChecked(ds.contains(QLatin1String("Lubuntu Manual")));
connect(ui.buttonBox->button(QDialogButtonBox::Apply), &QPushButton::clicked,
this, &DesktopPreferencesDialog::onApplyClicked);
@@ -208,6 +209,9 @@ void DesktopPreferencesDialog::applySett
if(ui.networkBox->isChecked()) {
ds << QLatin1String("Network");
}
+ if(ui.lubuntuManualBox->isChecked()) {
+ ds << QLatin1String("Lubuntu Manual");
+ }
settings.setDesktopShortcuts(ds);
settings.setDesktopCellMargins(QSize(ui.hMargin->value(), ui.vMargin->value()));
--- a/pcmanfm/desktopwindow.cpp
+++ b/pcmanfm/desktopwindow.cpp
@@ -277,6 +277,16 @@ void DesktopWindow::updateShortcutsFromS
paths.push_back(Fm::FilePath::fromLocalPath(network.toStdString().c_str()));
}
}
+ // Lubuntu Manual
+ if(ds.contains(QLatin1String("Lubuntu Manual"))) {
+ createLubuntuManualShortcut();
+ }
+ else if(!firstCall) {
+ QString network = XdgDir::readDesktopDir() + QLatin1String("/lubuntu-manual.desktop");
+ if(QFile::exists(network)) {
+ paths.push_back(Fm::FilePath::fromLocalPath(network.toStdString().c_str()));
+ }
+ }
// WARNING: QFile::remove() is not compatible with libfm-qt and should not be used.
if(!paths.empty()) {
@@ -362,6 +372,20 @@ void DesktopWindow::createNetworkShortcu
g_key_file_free(kf);
}
+void DesktopWindow::createLubuntuManualShortcut() {
+ GKeyFile* kf = g_key_file_new();
+ g_key_file_set_string(kf, "Desktop Entry", "Type", "Application");
+ g_key_file_set_string(kf, "Desktop Entry", "Exec", "firefox manual.lubuntu.me");
+ g_key_file_set_string(kf, "Desktop Entry", "Icon", "help-browser");
+ const QString name = tr("Lubuntu Manual");
+ g_key_file_set_string(kf, "Desktop Entry", "Name", name.toStdString().c_str());
+
+ auto path = Fm::FilePath::fromLocalPath(XdgDir::readDesktopDir().toStdString().c_str()).localPath();
+ auto trash_can = Fm::CStrPtr{g_build_filename(path.get(), "lubuntu-manual.desktop", nullptr)};
+ g_key_file_save_to_file(kf, trash_can.get(), nullptr);
+ g_key_file_free(kf);
+}
+
void DesktopWindow::createTrash() {
if(trashMonitor_) {
return;
@@ -987,7 +1011,8 @@ void DesktopWindow::onFileClicked(int ty
if((fileName == QLatin1String("trash-can.desktop") && ds.contains(QLatin1String("Trash")))
|| (fileName == QLatin1String("user-home.desktop") && ds.contains(QLatin1String("Home")))
|| (fileName == QLatin1String("computer.desktop") && ds.contains(QLatin1String("Computer")))
- || (fileName == QLatin1String("network.desktop") && ds.contains(QLatin1String("Network")))) {
+ || (fileName == QLatin1String("network.desktop") && ds.contains(QLatin1String("Network")))
+ || (fileName == QLatin1String("lubuntu-manual.desktop") && ds.contains(QLatin1String("Lubuntu Manual")))) {
QMenu* menu = new QMenu(this);
// "Open" action for all
QAction* action = menu->addAction(tr("Open"));
@@ -1297,7 +1322,8 @@ void DesktopWindow::trustOurDesktopShort
const char* execStr = isHome ? homeExec.get() :
fileName == QLatin1String("trash-can.desktop") && ds.contains(QLatin1String("Trash")) ? "pcmanfm-qt trash:///" :
fileName == QLatin1String("computer.desktop") && ds.contains(QLatin1String("Computer")) ? "pcmanfm-qt computer:///" :
- fileName == QLatin1String("network.desktop") && ds.contains(QLatin1String("Network")) ? "pcmanfm-qt network:///" : nullptr;
+ fileName == QLatin1String("network.desktop") && ds.contains(QLatin1String("Network")) ? "pcmanfm-qt network:///" :
+ fileName == QLatin1String("lubuntu-manual.desktop") && ds.contains(QLatin1String("Lubuntu Manual")) ? "firefox manual.lubuntu.me" : nullptr ;
if(execStr) {
GKeyFile* kf = g_key_file_new();
if(g_key_file_load_from_file(kf, file->path().toString().get(), G_KEY_FILE_NONE, nullptr)) {
--- a/pcmanfm/desktopwindow.h
+++ b/pcmanfm/desktopwindow.h
@@ -158,6 +158,7 @@ private:
void createHomeShortcut();
void createComputerShortcut();
void createNetworkShortcut();
+ void createLubuntuManualShortcut();
void createTrash();
static void onTrashChanged(GFileMonitor* monitor, GFile* gf, GFile* other, GFileMonitorEvent evt, DesktopWindow* pThis);