[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [rkward] rkward/windows: Add a note of caution.
From:       Thomas Friedrichsmeier <null () kde ! org>
Date:       2018-09-28 20:28:42
Message-ID: E1g5zNS-0007fo-Fq () code ! kde ! org
[Download RAW message or body]

Git commit cc3a16798a44d6ee8a6565141c74489354cb9146 by Thomas Friedrichsmeier.
Committed on 28/09/2018 at 20:20.
Pushed by tfry into branch 'master'.

Add a note of caution.

M  +14   -1    rkward/windows/rkcommandeditorwindow.cpp
M  +1    -0    rkward/windows/rkcommandeditorwindow.h

https://commits.kde.org/rkward/cc3a16798a44d6ee8a6565141c74489354cb9146

diff --git a/rkward/windows/rkcommandeditorwindow.cpp \
b/rkward/windows/rkcommandeditorwindow.cpp index e530e171..5e8e224b 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 ();
 };
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic