[rkward/work/render_rmd] rkward/windows: Add a note of caution.
Thomas Friedrichsmeier
null at kde.org
Fri Sep 28 21:11:22 BST 2018
Git commit 08f840159f47a8db061f044767d1680dae724621 by Thomas Friedrichsmeier.
Committed on 28/09/2018 at 20:09.
Pushed by tfry into branch 'work/render_rmd'.
Add a note of caution.
M +14 -1 rkward/windows/rkcommandeditorwindow.cpp
M +1 -0 rkward/windows/rkcommandeditorwindow.h
https://commits.kde.org/rkward/08f840159f47a8db061f044767d1680dae724621
diff --git a/rkward/windows/rkcommandeditorwindow.cpp b/rkward/windows/rkcommandeditorwindow.cpp
index cab5439c..4b2d0bef 100644
--- a/rkward/windows/rkcommandeditorwindow.cpp
+++ b/rkward/windows/rkcommandeditorwindow.cpp
@@ -344,7 +344,7 @@ void RKCommandEditorWindow::initializeActions (KActionCollection* ac) {
actionmenu_preview->setCurrentItem (NoPreview);
actionmenu_preview->setToolBarMode (KSelectAction::MenuMode);
connect (preview, &RKXMLGUIPreviewArea::previewClosed, [this]() { actionmenu_preview->setCurrentItem (NoPreview); discardPreview (); });
- connect (actionmenu_preview, static_cast<void (KSelectAction::*)(int)>(&KSelectAction::triggered), this, &RKCommandEditorWindow::textChanged);
+ connect (actionmenu_preview, static_cast<void (KSelectAction::*)(int)>(&KSelectAction::triggered), this, &RKCommandEditorWindow::changePreviewMode);
ac->addAction ("render_preview", actionmenu_preview);
file_save = findAction (m_view, "file_save");
@@ -498,6 +498,19 @@ void RKCommandEditorWindow::autoSaveHandlerModifiedChanged () {
}
}
+void RKCommandEditorWindow::changePreviewMode (int mode) {
+ RK_TRACE (COMMANDEDITOR);
+
+ if (mode != NoPreview) {
+ if (!preview_dir) { // triggered on change from no preview to some preview, but not between previews
+ if (KMessageBox::warningContinueCancel (this, i18n ("<p>The preview feature <b>tries</b> to avoid making any lasting changes to your workspace (technically, by making use of a <i>local()</i> evaluation environment). <b>However, there are cases where using the preview feature may cause unexpected side-effects</b>.</p><p>In particular, this is the case for scripts that contain explicit assignments to <i>globalenv()</i>, or to scripts that alter files on your filesystem. Further, attaching/detaching packages or package namespaces will affect the entire running R session.</p><p>Please keep this in mind when using the preview feature, and especially when using the feature on scripts originating from untrusted sources.</p>"), i18n ("Potential side-effects of previews"), KStandardGuiItem::cont (), KStandardGuiItem::cancel (), QStringLiteral ("preview_side_effects")) != KMessageBox::Continue) {
+ actionmenu_preview->setCurrentItem (NoPreview);
+ }
+ }
+ textChanged ();
+ }
+}
+
void RKCommandEditorWindow::discardPreview () {
RK_TRACE (COMMANDEDITOR);
diff --git a/rkward/windows/rkcommandeditorwindow.h b/rkward/windows/rkcommandeditorwindow.h
index d7132ac4..179a6869 100644
--- a/rkward/windows/rkcommandeditorwindow.h
+++ b/rkward/windows/rkcommandeditorwindow.h
@@ -286,6 +286,7 @@ private:
QTimer preview_timer;
RKPreviewManager *preview_manager;
QTemporaryDir *preview_dir;
+ void changePreviewMode (int mode);
void discardPreview ();
};
More information about the rkward-tracker
mailing list