[education/rkward] /: Documentation updates
Thomas Friedrichsmeier
null at kde.org
Sat Jun 8 23:21:01 BST 2024
Git commit 57d3ecd7d44fc4671a0ed0b2884c89bb6b87aeee by Thomas Friedrichsmeier.
Committed on 08/06/2024 at 22:10.
Pushed by tfry into branch 'master'.
Documentation updates
M +8 -3 doc/rkward/man-rkward.1.docbook
M +4 -3 rkward/main.cpp
M +4 -4 rkward/rkward.cpp
M +1 -1 rkward/rkward.h
https://invent.kde.org/education/rkward/-/commit/57d3ecd7d44fc4671a0ed0b2884c89bb6b87aeee
diff --git a/doc/rkward/man-rkward.1.docbook b/doc/rkward/man-rkward.1.docbook
index c7caae5a8..03a2bf739 100644
--- a/doc/rkward/man-rkward.1.docbook
+++ b/doc/rkward/man-rkward.1.docbook
@@ -21,8 +21,8 @@ SPDX-License-Identifier: GFDL-1.2-no-invariants-or-later OR GPL-2.0-or-later
<address><email>rkward-devel at kde.org</email></address>
</affiliation>
</author>
-<date>2023-11-30</date>
-<releaseinfo>RKWard 0.7.5</releaseinfo>
+<date>2024-05-26</date>
+<releaseinfo>RKWard 0.8.0</releaseinfo>
<productname>KDE Applications</productname>
</refentryinfo>
@@ -98,7 +98,12 @@ SPDX-License-Identifier: GFDL-1.2-no-invariants-or-later OR GPL-2.0-or-later
</varlistentry>
<varlistentry>
<term><option>--nowarn-external</option></term>
-<listitem><para>Usually, when invoking &rkward; plugins from the command line (&ie; when <replaceable>files_to_open</replaceable> contains &URL;s of the form <replaceable>rkward://runplugin/...</replaceable>), &rkward; will show a warning that such &URL;s <emphasis>could</emphasis> be used to trigger malicious actions on your system. This warning applies specifically to links found on untrusted websites, or other untrusted external sources. If you want to script &rkward; locally, you can avoid this warning by adding --nowarn-external to the command line.</para></listitem>
+<listitem><para>Usually, when invoking &rkward; plugins from the command line (&ie; when <replaceable>files_to_open</replaceable> contains &URL;s of the form <replaceable>rkward://runplugin/...</replaceable>), &rkward; will show a warning that such &URL;s <emphasis>could</emphasis> be used to trigger malicious actions on your system. This warning applies specifically to links found on untrusted websites, or other untrusted external sources. If you want to script &rkward; locally, you can avoid this warning by adding --nowarn-external to the command line.</para>
+<para>(If used in combination with --reuse, then *both* commands in question will need to be invoked with --nowarn-external, in order to suppress the warning.)</para></listitem>
+</varlistentry>
+<varlistentry>
+<term><option>--setup</option></term>
+<listitem><para>Act as if a new version of RKWard had been installed, importantly re-installing the R support package, and showing the setup wizard. This feature is mostly targetted at developers, and testers.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--quirkmode</option></term>
diff --git a/rkward/main.cpp b/rkward/main.cpp
index 9deb10d0d..8029ccbb3 100644
--- a/rkward/main.cpp
+++ b/rkward/main.cpp
@@ -325,8 +325,7 @@ int main (int argc, char *argv[]) {
if (!app_singleton.isPrimaryInstance()) {
QByteArray call;
QDataStream stream(&call, QIODevice::WriteOnly);
- // TODO: nowarn-external
- stream << QVariant(QStringLiteral("openAnyUrl")) << QVariant(url_args) << QVariant(parser.isSet("nowarn-external"));
+ stream << QVariant(QStringLiteral("openAnyUrl")) << args[RKCommandLineArgs::UrlArgs] << args[RKCommandLineArgs::NoWarnExternal];
app_singleton.sendMessageWithTimeout(call, 1000);
// TODO: should always debug to terminal in this case!
RK_DEBUG (DEBUG_ALL, DL_INFO, "Reusing running instance");
@@ -392,7 +391,9 @@ int main (int argc, char *argv[]) {
stream >> urls;
stream >> nowarn;
if (call == QStringLiteral("openAnyUrl")) {
- main->openUrlsFromCommandLineOrDBus(!nowarn.toBool(), urls.toStringList());
+ QTimer::singleShot(0, main, [nowarn, urls, main]() {
+ main->openUrlsFromCommandLineOrExternal(nowarn.toBool(), urls.toStringList());
+ });
} else {
RK_DEBUG (APP, DL_ERROR, "Unrecognized SingleApplication call");
}
diff --git a/rkward/rkward.cpp b/rkward/rkward.cpp
index 1905784d1..73fa7329a 100644
--- a/rkward/rkward.cpp
+++ b/rkward/rkward.cpp
@@ -224,7 +224,6 @@ void RKWardMainWindow::doPostInit () {
RK_TRACE (APP);
QStringList open_urls = RKCommandLineArgs::get(RKCommandLineArgs::UrlArgs).toStringList();
- bool warn_external = !RKCommandLineArgs::get(RKCommandLineArgs::NoWarnExternal).toBool();
QString evaluate_code = RKCommandLineArgs::get(RKCommandLineArgs::Evaluate).toString();
initPlugins ();
@@ -258,7 +257,7 @@ void RKWardMainWindow::doPostInit () {
// the help window will be on top
if (RKSettingsModuleGeneral::showHelpOnStartup ()) toplevel_actions->showRKWardHelp ();
- openUrlsFromCommandLineOrDBus (warn_external, open_urls);
+ openUrlsFromCommandLineOrExternal(true, open_urls);
} else {
if (RKSettingsModuleGeneral::openRestoreFileOnLoad() && QFile::exists(".RData")) {
// setNoAskSave(true); was called earlier
@@ -284,7 +283,7 @@ void RKWardMainWindow::doPostInit () {
setCaption (QString ()); // our version of setCaption takes care of creating a correct caption, so we do not need to provide it here
}
-void RKWardMainWindow::openUrlsFromCommandLineOrDBus (bool warn_external, QStringList _urls) {
+void RKWardMainWindow::openUrlsFromCommandLineOrExternal(bool no_warn_external, QStringList _urls) {
RK_TRACE (APP);
bool any_dangerous_urls = false;
@@ -297,7 +296,8 @@ void RKWardMainWindow::openUrlsFromCommandLineOrDBus (bool warn_external, QStrin
urls.append (url);
}
- if (warn_external && any_dangerous_urls) {
+ // --nowarn-external, if used cross-process, must be set on the commandline in both this, *and* the calling process
+ if (any_dangerous_urls && !(no_warn_external && RKCommandLineArgs::get(RKCommandLineArgs::NoWarnExternal).toBool())) {
RK_ASSERT (urls.size () == 1);
QString message = i18n ("<p>You are about to start an RKWard dialog from outside of RKWard, probably by clicking on an 'rkward://'-link, somewhere. In case you have found this link on an external website, please bear in mind that R can be used to run arbitrary commands on your computer, <b>potentially including downloading and installing malicious software</b>. If you do not trust the source of the link you were following, you should press 'Cancel', below.</p><p>In case you click 'Continue', no R code will be run, unless and until you click 'Submit' in the dialog window, and you are encouraged to review the generated R code, before doing so.</p><p><i>Note</i>: Checking 'Do not ask again' will suppress this message for the remainder of this session, only.");
if (KMessageBox::warningContinueCancel (this, message, i18n ("A note on external links"), KStandardGuiItem::cont (), KStandardGuiItem::cancel (), "external_link_warning") != KMessageBox::Continue) return;
diff --git a/rkward/rkward.h b/rkward/rkward.h
index c1138fdf6..4636da6b8 100644
--- a/rkward/rkward.h
+++ b/rkward/rkward.h
@@ -118,7 +118,7 @@ public Q_SLOTS:
void setCaption (const QString &) override;
/** HACK this is only to make the compiler happy with -Woverloaded-virtual */
void setCaption (const QString &dummy, bool) override { setCaption (dummy); };
- void openUrlsFromCommandLineOrDBus (bool warn_external, QStringList urls);
+ void openUrlsFromCommandLineOrExternal(bool no_warn_external, QStringList urls);
private Q_SLOTS:
void partChanged (KParts::Part *new_part);
private:
More information about the kde-doc-english
mailing list