[rkward-cvs] rkward/rkward rkconsole.cpp,1.14,1.15 rkconsole.h,1.10,1.11 rkconsolepart.rc,1.2,1.3 rkwardui.rc,1.25,1.26
Thomas Friedrichsmeier
tfry at users.sourceforge.net
Sun Oct 16 20:44:19 UTC 2005
- Previous message: [rkward-cvs] rkward/rkward rkconsole.cpp,1.13,1.14 rkconsole.h,1.9,1.10 rkconsolepart.rc,1.1,1.2 rkward.cpp,1.106,1.107 rkward.h,1.48,1.49 rkwardui.rc,1.24,1.25
- Next message: [rkward-cvs] rkward/rkward rkconsole.cpp,1.15,1.16 rkward.cpp,1.107,1.108 rkward.h,1.49,1.50 rkwatch.cpp,1.38,1.39 rkwatch.h,1.17,1.18
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/rkward/rkward/rkward
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20055/rkward
Modified Files:
rkconsole.cpp rkconsole.h rkconsolepart.rc rkwardui.rc
Log Message:
Make Ctrl+C work in RKConsole. Add custom popup menu to RKConsole
Index: rkconsole.cpp
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/rkconsole.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** rkconsole.cpp 16 Oct 2005 18:48:34 -0000 1.14
--- rkconsole.cpp 16 Oct 2005 20:44:16 -0000 1.15
***************
*** 21,25 ****
#include <qclipboard.h>
#include <qapplication.h>
!
#include <klocale.h>
#include <kaction.h>
--- 21,25 ----
#include <qclipboard.h>
#include <qapplication.h>
!
#include <klocale.h>
#include <kaction.h>
***************
*** 252,255 ****
--- 252,263 ----
}
+ QPopupMenu *RKConsole::createPopupMenu (const QPoint &pos) {
+ QPopupMenu *mp;
+ emit (fetchPopupMenu (&mp));
+ if (mp) return mp;
+
+ return KTextEdit::createPopupMenu (pos);
+ }
+
///################### END RKConsole ########################
///################### BEGIN RKConsolePart ####################
***************
*** 270,273 ****
--- 278,288 ----
interrupt_command->setIcon ("player_stop");
interrupt_command->setEnabled (false);
+ // ugly HACK: we need this to override the default Ctrl+C binding
+ interrupt_command->setShortcut ("Ctrl+C");
+
+ copy = new KAction (i18n ("Copy selection"), 0, console, SLOT (copy ()), actionCollection ());
+ paste = new KAction (i18n ("Paste"), KShortcut ("Ctrl+V"), console, SLOT (paste ()), actionCollection ());
+
+ connect (console, SIGNAL (fetchPopupMenu (QPopupMenu**)), this, SLOT (makePopupMenu (QPopupMenu**)));
}
***************
*** 300,302 ****
--- 315,333 ----
}
+ void RKConsolePart::makePopupMenu (QPopupMenu **menu) {
+ RK_TRACE (APP);
+
+ /* // won't work, as both the factory (), and the KTextEdit will think, they own the menu -> crash
+ *menu = static_cast<QPopupMenu *>(factory ()->container ("rkconsole_context_menu", this));
+ factory ()->resetContainer ("rkconsole_context_menu"); */
+ *menu = new QPopupMenu (console);
+ copy->plug (*menu, 9);
+ copy->setEnabled (console->hasSelectedText ());
+ paste->plug (*menu, 10);
+ (*menu)->insertSeparator (11);
+ context_help->plug (*menu, 12);
+ (*menu)->insertSeparator (13);
+ interrupt_command->plug (*menu, 14);
+ }
+
#include "rkconsole.moc"
Index: rkconsole.h
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/rkconsole.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** rkconsole.h 16 Oct 2005 18:48:34 -0000 1.10
--- rkconsole.h 16 Oct 2005 20:44:16 -0000 1.11
***************
*** 28,31 ****
--- 28,32 ----
class KAction;
class RCommand;
+ class QPopupMenu;
/**
***************
*** 56,61 ****
--- 57,65 ----
void keyPressEvent (QKeyEvent * e);
void rCommandDone (RCommand *command);
+ /** reimplemented to provide our own context menu */
+ QPopupMenu *createPopupMenu (const QPoint &pos);
signals:
void doingCommand (bool busy);
+ void fetchPopupMenu (QPopupMenu **menu);
private:
friend class RKConsolePart;
***************
*** 119,125 ****
/** interrupt current command. */
void slotInterruptCommand ();
private:
! KAction *context_help;
KAction* interrupt_command;
RKConsole *console;
--- 123,132 ----
/** interrupt current command. */
void slotInterruptCommand ();
+ void makePopupMenu (QPopupMenu **menu);
private:
! KAction* context_help;
KAction* interrupt_command;
+ KAction* copy;
+ KAction* paste;
RKConsole *console;
Index: rkconsolepart.rc
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/rkconsolepart.rc,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** rkconsolepart.rc 16 Oct 2005 18:48:34 -0000 1.2
--- rkconsolepart.rc 16 Oct 2005 20:44:16 -0000 1.3
***************
*** 1,4 ****
<!DOCTYPE kpartgui>
! <kpartgui name="rkward" version="0.3.3">
<MenuBar>
<Menu name="run"><text>&Run</text>
--- 1,4 ----
<!DOCTYPE kpartgui>
! <kpartgui name="rkward" version="0.3.4">
<MenuBar>
<Menu name="run"><text>&Run</text>
***************
*** 16,18 ****
--- 16,25 ----
<Merge/>
</ToolBar>
+ <!-- unfortunately this won't work due to the internal going ons in KTextEdit
+ <Menu name="rkconsole_context_menu">
+ <Action name="rkconsole_copy"></Action>
+ <Action name="rkconsole_paste"></Action>
+ <Action name="function_reference"></Action>
+ <Action name="interrupt"></Action>
+ </Menu> -->
</kpartgui>
\ No newline at end of file
Index: rkwardui.rc
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/rkwardui.rc,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** rkwardui.rc 16 Oct 2005 18:48:34 -0000 1.25
--- rkwardui.rc 16 Oct 2005 20:44:16 -0000 1.26
***************
*** 67,74 ****
<Action name="paste_to_table"/>
</ToolBar>
- <ToolBar fullWidth="true" name="runToolBar">
- <Separator/>
- <Action name="run_selection"/>
- <Action name="run_all"/>
- </ToolBar>
</kpartgui>
--- 67,69 ----
- Previous message: [rkward-cvs] rkward/rkward rkconsole.cpp,1.13,1.14 rkconsole.h,1.9,1.10 rkconsolepart.rc,1.1,1.2 rkward.cpp,1.106,1.107 rkward.h,1.48,1.49 rkwardui.rc,1.24,1.25
- Next message: [rkward-cvs] rkward/rkward rkconsole.cpp,1.15,1.16 rkward.cpp,1.107,1.108 rkward.h,1.49,1.50 rkwatch.cpp,1.38,1.39 rkwatch.h,1.17,1.18
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the rkward-tracker
mailing list