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

116 lines
5.6 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/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
@@ -280,6 +280,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()) {
@@ -365,6 +375,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;
@@ -1005,7 +1029,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"));
@@ -1314,7 +1339,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
@@ -160,6 +160,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);
--- a/pcmanfm/desktop-preferences.ui
+++ b/pcmanfm/desktop-preferences.ui
@@ -664,6 +664,17 @@ are left clicked, even when it is not th
</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>
</item>