[rkward-cvs] SF.net SVN: rkward:[2493] trunk/rkward/rkward/windows

tfry at users.sourceforge.net tfry at users.sourceforge.net
Wed May 20 16:13:46 UTC 2009


Revision: 2493
          http://rkward.svn.sourceforge.net/rkward/?rev=2493&view=rev
Author:   tfry
Date:     2009-05-20 16:13:46 +0000 (Wed, 20 May 2009)

Log Message:
-----------
Start working on configurable shortcuts.
RKStandardActions are split out into a separate container, so they can have application-global shortcuts.
TODO: shortcut-settings are not applied to all mdi
TODO: reloadXML causes havoc on customized xml clients

Modified Paths:
--------------
    trunk/rkward/rkward/windows/CMakeLists.txt
    trunk/rkward/rkward/windows/rkcommandeditorwindow.cpp
    trunk/rkward/rkward/windows/rkcommandeditorwindowpart.rc
    trunk/rkward/rkward/windows/rkcommandlog.cpp
    trunk/rkward/rkward/windows/rkcommandlog.h
    trunk/rkward/rkward/windows/rkcommandlogpart.rc
    trunk/rkward/rkward/windows/rkhelpwindow.rc
    trunk/rkward/rkward/windows/rkhtmlwindow.cpp
    trunk/rkward/rkward/windows/rkmdiwindow.cpp
    trunk/rkward/rkward/windows/rkmdiwindow.h
    trunk/rkward/rkward/windows/rktoplevelwindowgui.cpp
    trunk/rkward/rkward/windows/rktoplevelwindowgui.h
    trunk/rkward/rkward/windows/rktoplevelwindowgui.rc

Added Paths:
-----------
    trunk/rkward/rkward/windows/rkstandardactions.rc

Modified: trunk/rkward/rkward/windows/CMakeLists.txt
===================================================================
--- trunk/rkward/rkward/windows/CMakeLists.txt	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/CMakeLists.txt	2009-05-20 16:13:46 UTC (rev 2493)
@@ -33,4 +33,5 @@
 	rkcatchedx11windowpart.rc
 	rkcommandlogpart.rc
 	rktoplevelwindowgui.rc
+	rkstandardactions.rc
 	DESTINATION ${DATA_INSTALL_DIR}/rkward)

Modified: trunk/rkward/rkward/windows/rkcommandeditorwindow.cpp
===================================================================
--- trunk/rkward/rkward/windows/rkcommandeditorwindow.cpp	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rkcommandeditorwindow.cpp	2009-05-20 16:13:46 UTC (rev 2493)
@@ -150,12 +150,12 @@
 void RKCommandEditorWindow::initializeActions (KActionCollection* ac) {
 	RK_TRACE (COMMANDEDITOR);
 
-	action_run_all = RKStandardActions::runAll (ac, "run_all", this, SLOT (runAll()));
-	action_run_selection = RKStandardActions::runSelection (ac, "run_selection", this, SLOT (runSelection()));
+	action_run_all = RKStandardActions::runAll (this, "run_all", this, SLOT (runAll()));
+	action_run_selection = RKStandardActions::runSelection (this, "run_selection", this, SLOT (runSelection()));
 	action_run_selection->setEnabled (false);
-	action_run_line = RKStandardActions::runLine (ac, "run_line", this, SLOT (runLine()));
+	action_run_line = RKStandardActions::runLine (this, "run_line", this, SLOT (runLine()));
 
-	action_help_function = RKStandardActions::functionHelp (ac, "function_reference", this, SLOT (showHelp()));
+	action_help_function = RKStandardActions::functionHelp (this, "function_reference", this, SLOT (showHelp()));
 
 	actionmenu_run_block = new KActionMenu (i18n ("Run block"), this);
 	actionmenu_run_block->setDelayed (false);	// KDE4: TODO does not work correctly in the tool bar.

Modified: trunk/rkward/rkward/windows/rkcommandeditorwindowpart.rc
===================================================================
--- trunk/rkward/rkward/windows/rkcommandeditorwindowpart.rc	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rkcommandeditorwindowpart.rc	2009-05-20 16:13:46 UTC (rev 2493)
@@ -10,47 +10,35 @@
 			<Action name="mark_block"/>
 			<Action name="unmark_block"/>
 		</Menu>
-		<Menu name="run"><text>&Run</text>
-			<Action name="run_line"/>
-			<Action name="run_selection"/>
-			<Action name="run_all"/>
-			<Separator/>
-			<Action name="run_block"/>
-			<Separator/>
-			<Action name="setwd_to_script"/>
+		<Menu name="run" noMerge="1"><text>&Run</text>
+			<Action name="run_block" group="postrun_actions_merge"/>
+			<Separator group="postrun_actions_merge"/>
+			<Action name="setwd_to_script" group="postrun_actions_merge"/>
 		</Menu>
 		<Menu name="settings"><text>&Settings</text>
 			<Action name="configure_commandeditor"></Action>
 		</Menu>
-		<Menu name="help"><text>&Help</text>
-			<Action name="function_reference"></Action>
-		</Menu>
 	</MenuBar>
+
 	<ToolBar fullWidth="true" name="mdiToolBar">
-		<Action name="run_line"/>
-		<Action name="run_selection"/>
-		<Action name="run_all"/>
-		<Separator/>
-		<Action name="run_block"/>
-		<Separator/>
-		<Action name="setwd_to_script"/>
+		<Separator group="posttoolbar_actions_merge"/>
+		<Action name="run_block" group="posttoolbar_actions_merge"/>
+		<Action name="setwd_to_script" group="posttoolbar_actions_merge"/>
 	</ToolBar>
+
 	<Menu name="ktexteditor_popup">
 		<Merge/>
 		<Action name="mark_block"/>
 		<Action name="unmark_block"/>
-		<Separator/>
 		<Menu name="run"><text>&Run</text>
-			<Action name="run_line"/>
-			<Action name="run_selection"/>
-			<Action name="run_all"/>
-			<Separator/>
+			<DefineGroup name="run_actions_merge" append="run_actions_merge"/>
 			<Action name="run_block"/>
 			<Separator/>
 			<Action name="setwd_to_script"/>
 		</Menu>
-		<Action name="function_reference"/>
 		<Separator/>
+		<DefineGroup name="ktexteditor_popup_merge2" append="ktexteditor_popup_merge2"/>
+		<Separator/>
 		<Action name="configure_commandeditor"/>
 	</Menu>
 </kpartgui>
\ No newline at end of file

Modified: trunk/rkward/rkward/windows/rkcommandlog.cpp
===================================================================
--- trunk/rkward/rkward/windows/rkcommandlog.cpp	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rkcommandlog.cpp	2009-05-20 16:13:46 UTC (rev 2493)
@@ -2,7 +2,7 @@
                           rkcommandlog  -  description
                              -------------------
     begin                : Sun Nov 3 2002
-    copyright            : (C) 2002, 2004, 2005 2006, 2007 by Thomas Friedrichsmeier
+    copyright            : (C) 2002, 2004, 2005 2006, 2007, 2009 by Thomas Friedrichsmeier
     email                : tfry at users.sourceforge.net
  ***************************************************************************/
 
@@ -59,7 +59,9 @@
 	last_raised_command = 0;
 	command_input_shown = 0;
 
-	setPart (new RKCommandLogPart (this));
+	RKCommandLogPart *part = new RKCommandLogPart (this);
+	setPart (part);
+	part->initActions ();
 	initializeActivationSignals ();
 	setFocusPolicy (Qt::ClickFocus);
 
@@ -265,29 +267,29 @@
 	RK_TRACE (APP);
 
 	setComponentData (KGlobal::mainComponent ());
-
 	setWidget (log = for_log);
-
 	setXMLFile ("rkcommandlogpart.rc");
+}
 
+RKCommandLogPart::~RKCommandLogPart () {
+	RK_TRACE (APP);
+}
+
+void RKCommandLogPart::initActions () {
+	RK_TRACE (APP);
+
 	copy = actionCollection ()->addAction (KStandardAction::Copy, "log_copy", log->getView (), SLOT (copy()));
 	actionCollection ()->addAction (KStandardAction::Clear, "log_clear", log, SLOT (clearLog()));
 	actionCollection ()->addAction (KStandardAction::SelectAll, "log_select_all", log->getView (), SLOT (selectAll()));
 	QAction *configure = actionCollection ()->addAction ("log_configure", log, SLOT(configureLog()));
 	configure->setText (i18n ("Configure"));
 
-	run_selection = RKStandardActions::runSelection (actionCollection (), "log_run_selection", log, SLOT(runSelection()));
+	run_selection = RKStandardActions::runSelection (log, "run_selection", log, SLOT(runSelection()));
 
 	connect (log->getView (), SIGNAL (popupMenuRequest (const QPoint &)), this, SLOT (doPopupMenu (const QPoint &)));
 }
 
-RKCommandLogPart::~RKCommandLogPart () {
-	RK_TRACE (APP);
-}
-
 void RKCommandLogPart::doPopupMenu (const QPoint &pos) {
-	RK_TRACE (APP);
-
 	QMenu *menu = static_cast<QMenu *> (factory ()->container ("rkcommandlog_context_menu", this));
 	copy->setEnabled (log->getView ()->textCursor ().hasSelection ());
 	run_selection->setEnabled (log->getView ()->textCursor ().hasSelection ());

Modified: trunk/rkward/rkward/windows/rkcommandlog.h
===================================================================
--- trunk/rkward/rkward/windows/rkcommandlog.h	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rkcommandlog.h	2009-05-20 16:13:46 UTC (rev 2493)
@@ -2,7 +2,7 @@
                           rkcommandlog  -  description
                              -------------------
     begin                : Sun Nov 3 2002
-    copyright            : (C) 2002, 2004, 2005, 2006, 2007 by Thomas Friedrichsmeier
+    copyright            : (C) 2002, 2004, 2005, 2006, 2007, 2009 by Thomas Friedrichsmeier
     email                : tfry at users.sourceforge.net
  ***************************************************************************/
 
@@ -98,6 +98,8 @@
 public:
 	explicit RKCommandLogPart (RKCommandLog *for_log);
 	~RKCommandLogPart ();
+
+	void initActions ();
 public slots:
 	void doPopupMenu (const QPoint &pos);
 private:

Modified: trunk/rkward/rkward/windows/rkcommandlogpart.rc
===================================================================
--- trunk/rkward/rkward/windows/rkcommandlogpart.rc	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rkcommandlogpart.rc	2009-05-20 16:13:46 UTC (rev 2493)
@@ -1,21 +1,18 @@
 <!DOCTYPE kpartgui>
-<kpartgui name="rkward" version="0.5.0">
+<kpartgui name="rkward" version="0.5.1">
 	<Menubar>
 		<Menu name="edit"><text>&Edit</text>
 			<Action name="log_select_all"/>
 			<Action name="log_copy"/>
 			<Action name="log_clear"/>
 		</Menu>
-		<Menu name="run"><text>&Run</text>
-			<Action name="log_run_selection"/>
-		</Menu>
 		<Menu name="settings"><text>&Settings</text>
 			<Action name="log_configure"/>
 		</Menu>
 	</Menubar>
 	<Menu name="rkcommandlog_context_menu">
 		<Action name="log_copy"/>
-		<Action name="log_run_selection"/>
+		<DefineGroup name="rkcommandlog_context_merge1" append="rkcommandlog_context_merge1"/>
 		<Separator/>
 		<Action name="log_select_all"/>
 		<Separator/>
@@ -23,7 +20,4 @@
 		<Separator/>
 		<Action name="log_configure"/>
 	</Menu>
-	<ToolBar fullWidth="true" name="mdiToolBar">
-		<Action name="log_run_selection"/>
-	</ToolBar>
 </kpartgui>

Modified: trunk/rkward/rkward/windows/rkhelpwindow.rc
===================================================================
--- trunk/rkward/rkward/windows/rkhelpwindow.rc	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rkhelpwindow.rc	2009-05-20 16:13:46 UTC (rev 2493)
@@ -7,15 +7,10 @@
 		<Menu name="edit"><text>&Edit</text>
 			<Action name="copy"/>
 		</Menu>
-		<Menu name="run"><text>&Run</text>
-			<Action name="run_selection"/>
-		</Menu>
-		<Merge/>
 	</MenuBar>
 	<ToolBar fullWidth="true" name="mdiToolBar">
-		<Action name="help_back"/>
-		<Action name="help_forward"/>
-		<Separator/>
-		<Action name="run_selection"/>
+		<Action name="help_back" group="pretoolbar_actions_merge"/>
+		<Action name="help_forward" group="pretoolbar_actions_merge"/>
+		<Separator group="pretoolbar_actions_merge"/>
 	</ToolBar>
 </kpartgui>

Modified: trunk/rkward/rkward/windows/rkhtmlwindow.cpp
===================================================================
--- trunk/rkward/rkward/windows/rkhtmlwindow.cpp	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rkhtmlwindow.cpp	2009-05-20 16:13:46 UTC (rev 2493)
@@ -124,7 +124,7 @@
 
 	print = actionCollection ()->addAction (KStandardAction::Print, "print_html", this, SLOT (slotPrint()));
 
-	run_selection = RKStandardActions::runSelection (actionCollection (), "run_selection", this, SLOT (runSelection()));
+	run_selection = RKStandardActions::runSelection (this, "run_selection", this, SLOT (runSelection()));
 
 		// needed to enable / disable the run selection action
 	connect (khtmlpart, SIGNAL (selectionChanged()), this, SLOT (selectionChanged()));
@@ -384,6 +384,8 @@
 		else RK_ASSERT (false);		// we should know about this
 
 		setXMLFile ("rkoutputwindow.rc");
+		run_selection->setVisible (false);
+
 		khtmlpart->removeChildClient (this);
 		khtmlpart->insertChildClient (this);
 	} else {
@@ -398,6 +400,8 @@
 		else RK_ASSERT (false);		// we should know about this
 
 		setXMLFile ("rkhelpwindow.rc");
+		run_selection->setVisible (true);
+
 		khtmlpart->removeChildClient (this);
 		khtmlpart->insertChildClient (this);
 	}

Modified: trunk/rkward/rkward/windows/rkmdiwindow.cpp
===================================================================
--- trunk/rkward/rkward/windows/rkmdiwindow.cpp	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rkmdiwindow.cpp	2009-05-20 16:13:46 UTC (rev 2493)
@@ -2,7 +2,7 @@
                           rkmdiwindow  -  description
                              -------------------
     begin                : Tue Sep 26 2006
-    copyright            : (C) 2006, 2007, 2008 by Thomas Friedrichsmeier
+    copyright            : (C) 2006, 2007, 2008, 2009 by Thomas Friedrichsmeier
     email                : tfry at users.sourceforge.net
  ***************************************************************************/
 
@@ -34,6 +34,18 @@
 
 #include "../debug.h"
 
+RKMDIStandardActionClient::RKMDIStandardActionClient () : KXMLGUIClient () {
+	RK_TRACE (APP);
+
+	setComponentData (KGlobal::mainComponent ());
+	setXMLFile ("rkstandardactions.rc", true);
+}
+
+RKMDIStandardActionClient::~RKMDIStandardActionClient () {
+	RK_TRACE (APP);
+}
+
+
 // TODO: remove name parameter
 RKMDIWindow::RKMDIWindow (QWidget *parent, int type, bool tool_window, const char *) : QFrame (parent) {
 	RK_TRACE (APP);
@@ -48,14 +60,27 @@
 	tool_window_bar = 0;
 	part = 0;
 	active = false;
+	standard_client = 0;
 
 	setWindowIcon (RKStandardIcons::iconForWindow (this));
 }
 
 RKMDIWindow::~RKMDIWindow () {
 	RK_TRACE (APP);
+
+	delete standard_client;
 }
 
+KActionCollection *RKMDIWindow::standardActionCollection () {
+	if (!standard_client) {
+		RK_TRACE (APP);
+		standard_client = new RKMDIStandardActionClient ();
+		RK_ASSERT (part);	// call setPart () first!
+		part->insertChildClient (standard_client);
+	}
+	return standard_client->actionCollection ();
+}
+
 //virtual
 QString RKMDIWindow::fullCaption () {
 	RK_TRACE (APP);

Modified: trunk/rkward/rkward/windows/rkmdiwindow.h
===================================================================
--- trunk/rkward/rkward/windows/rkmdiwindow.h	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rkmdiwindow.h	2009-05-20 16:13:46 UTC (rev 2493)
@@ -2,7 +2,7 @@
                           rkmdiwindow  -  description
                              -------------------
     begin                : Tue Sep 26 2006
-    copyright            : (C) 2006, 2007, 2008 by Thomas Friedrichsmeier
+    copyright            : (C) 2006, 2007, 2008, 2009 by Thomas Friedrichsmeier
     email                : tfry at users.sourceforge.net
  ***************************************************************************/
 
@@ -28,6 +28,12 @@
 class RKWorkplace;
 class RKToolWindowBar;
 
+class RKMDIStandardActionClient : public KXMLGUIClient {
+public:
+	RKMDIStandardActionClient ();
+	~RKMDIStandardActionClient ();
+};
+
 /** Base class for rkward document mdi windows */
 class RKMDIWindow : public QFrame {
 	Q_OBJECT
@@ -97,6 +103,8 @@
 	bool acceptsEventsFor (QObject *object);
 /** Whether the window is active. This seems to be more reliable than hasFocus () */
 	bool isActive ();
+
+	KActionCollection *standardActionCollection ();
 signals:
 /** This signal is emitted, whenever the window caption was changed.
 @param RKMDIWindow* a pointer to this window */
@@ -121,6 +129,7 @@
 	State state;
 	RKToolWindowBar *tool_window_bar;
 	bool active;
+	RKMDIStandardActionClient *standard_client;
 };
 
 #endif

Added: trunk/rkward/rkward/windows/rkstandardactions.rc
===================================================================
--- trunk/rkward/rkward/windows/rkstandardactions.rc	                        (rev 0)
+++ trunk/rkward/rkward/windows/rkstandardactions.rc	2009-05-20 16:13:46 UTC (rev 2493)
@@ -0,0 +1,42 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="rkward" version="0.5.1">
+<!-- What is this for, wouldn't it be easier to just inline these actions in the parts where they
+     end up? Yes, but then they would be separate actions, internally, and each could be assigned
+     a shortcut of its own. This is needed to tie them all together. -->
+	<MenuBar>
+		<Menu name="run">
+			<Action name="run_line" group="run_actions_merge"/>
+			<Action name="run_selection" group="run_actions_merge"/>
+			<Action name="run_all" group="run_actions_merge"/>
+			<WeakSeparator group="postrun_actions_merge"/>
+			<Action name="interrupt" group="postrun_actions_merge"/>
+		</Menu>
+		<Menu name="help">
+			<Action name="function_reference" group="help_actions_merge"/>
+		</Menu>
+	</MenuBar>
+	<ToolBar fullWidth="true" name="mdiToolBar">
+		<Action name="run_line" group="toolbar_actions_merge"/>
+		<Action name="run_selection" group="toolbar_actions_merge"/>
+		<Action name="run_all" group="toolbar_actions_merge"/>
+		<WeakSeparator group="postrun_actions_merge"/>
+		<Action name="interrupt" group="postrun_actions_merge"/>
+	</ToolBar>
+
+
+	<Menu name="ktexteditor_popup">
+		<Menu name="run">
+			<Action name="run_line" group="run_actions_merge"/>
+			<Action name="run_selection" group="run_actions_merge"/>
+			<Action name="run_all" group="run_actions_merge"/>
+		</Menu>
+		<Action name="function_reference" group="ktexteditor_popup_merge2"/>
+	</Menu>
+	<Menu name="rkconsole_context_menu">
+		<Action name="run_selection" group="rkconsole_context_merge1"/>
+		<Action name="function_reference" group="rkconsole_context_merge2"/>
+	</Menu>
+	<Menu name="rkcommandlog_context_menu">
+		<Action name="run_selection" group="rkcommandlog_context_merge1"/>
+	</Menu>
+</kpartgui>
\ No newline at end of file

Modified: trunk/rkward/rkward/windows/rktoplevelwindowgui.cpp
===================================================================
--- trunk/rkward/rkward/windows/rktoplevelwindowgui.cpp	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rktoplevelwindowgui.cpp	2009-05-20 16:13:46 UTC (rev 2493)
@@ -22,6 +22,8 @@
 #include <kaboutapplicationdialog.h>
 #include <kcmdlineargs.h>
 #include <kactioncollection.h>
+#include <kxmlguifactory.h>
+#include <kshortcutsdialog.h>
 
 #include <QWhatsThis>
 
@@ -98,12 +100,48 @@
 	action = actionCollection ()->addAction ("output_show", this, SLOT (slotOutputShow()));
 	action->setText (i18n ("Show &Output"));
 	action->setIcon (RKStandardIcons::getIcon (RKStandardIcons::WindowOutput));
+
+	// settings
+	KStandardAction::keyBindings (this, SLOT (configureShortcuts ()), actionCollection ());
 }
 
 RKTopLevelWindowGUI::~RKTopLevelWindowGUI () {
 	RK_TRACE (APP);
 }
 
+void RKTopLevelWindowGUI::configureShortcuts () {
+	RK_TRACE (APP);
+
+	KMessageBox::information (for_window, i18n ("For technical reasons, the following dialog allows you to configure the keyboard shortcuts only for those parts of RKWard that are currently active.\n\nTherefore, if you want to configure keyboard shortcuts e.g. for use inside the script editor, you need to open a script editor window, and activate it."), i18n ("Note"), "configure_shortcuts_kparts");
+
+#warning TODO: improve this mess
+	KShortcutsDialog dlg (KShortcutsEditor::AllActions, KShortcutsEditor::LetterShortcutsAllowed, qobject_cast<QWidget*> (parent()));
+	foreach (KXMLGUIClient *client, factory ()->clients ()) {
+		if (client && !client->xmlFile ().isEmpty ()) dlg.addCollection (client->actionCollection());
+	}
+	dlg.configure (true);
+
+	// WORKAROUND:
+	// KXML forgets to reload the child clients as well
+	// TODO: perhaps reimplement setXMLFile where needed, instead?
+	// TODO: Also we need to iterate over all existing mdi windows, even if they are not in the factory at this moment
+	foreach (KXMLGUIClient *client, factory ()->clients ()) {
+		foreach (KXMLGUIClient *clientc, client->childClients ()) {
+			// no need for deeper nesting in our usecase
+			clientc->reloadXML ();
+		}
+		client->reloadXML ();
+	}
+	// TODO: the above causes havoc when we called RKCommonFunctions::(re)moveContainer, previously
+
+/*	KConfig *config = KGlobal::config ().data ();
+	KConfigGroup cg = config->group ("cuts");
+	foreach (KActionCollection *ac, dlg.actionCollections ()) {
+		ac->writeSettings (&cg);
+	}
+	config->sync (); */
+}
+
 void RKTopLevelWindowGUI::invokeRHelp () {
 	RK_TRACE (APP);
 

Modified: trunk/rkward/rkward/windows/rktoplevelwindowgui.h
===================================================================
--- trunk/rkward/rkward/windows/rktoplevelwindowgui.h	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rktoplevelwindowgui.h	2009-05-20 16:13:46 UTC (rev 2493)
@@ -63,6 +63,10 @@
 	void reportRKWardBug ();
 	/** not quite sure, why I have to reimplement this from KMainWindow */
 	void showAboutApplication ();
+
+	// settings menu
+	/** configure key bindings. Implemented to show notice before the actual dialog. */
+	void configureShortcuts ();
 private:
 	QWidget *for_window;
 	void toggleToolView (RKMDIWindow *tool_window);

Modified: trunk/rkward/rkward/windows/rktoplevelwindowgui.rc
===================================================================
--- trunk/rkward/rkward/windows/rktoplevelwindowgui.rc	2009-05-19 16:13:10 UTC (rev 2492)
+++ trunk/rkward/rkward/windows/rktoplevelwindowgui.rc	2009-05-20 16:13:46 UTC (rev 2493)
@@ -1,5 +1,5 @@
 <!DOCTYPE kpartgui>
-<kpartgui name="rkward" version="0.4.8">
+<kpartgui name="rkward" version="0.5.1">
 	<MenuBar>
 		<Merge/>
 		<Menu name="window"><text>&Window</text>
@@ -18,16 +18,19 @@
 			</Menu>
 			<Merge/>
 		</Menu>
+		<Menu name="settings"><text>&Settings</text>
+			<Action name="options_configure_keybinding"/>
+		</Menu>
 		<Menu name="help"><text>&Help</text>
-			<Action name="rkward_help"/>
-			<Action name="whats_this"/>
-			<Separator/>
-			<Action name="invoke_r_help"/>
-			<Action name="show_help_search"/>
-			<Action name="report_bug"/>
-			<Separator/>
-			<Action name="about_app"/>
-			<Merge/>
+			<Action name="rkward_help" group="prehelp_actions_merge"/>
+			<Action name="whats_this" group="prehelp_actions_merge"/>
+			<Separator group="prehelp_actions_merge"/>
+			<Action name="invoke_r_help" group="prehelp_actions_merge"/>
+
+			<Action name="show_help_search" group="posthelp_actions_merge"/>
+			<Separator group="posthelp_actions_merge"/>
+			<Action name="report_bug" group="posthelp_actions_merge"/>
+			<Action name="about_app" group="posthelp_actions_merge"/>
 		</Menu>
 	</MenuBar>
 </kpartgui>


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the rkward-tracker mailing list