|
|
|
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>
|