changeset 16442:aaf024ac8015

Add editor print menu/toolbutton implementation * libgui/src/icons/fileprint.png: New file. * file-editor-tab.cc, file-editor-tab.h (file_editor_tab::print_file): New function. (includes): Added include for Qsci/qsciprinter.h, QPrintDialog. * file-editor.cc, file-editor.h (file_editor::request_print_file): New function. (file_editor::construct): Add new print QAction to menu and toolbar. (file::editor::fetab_print_file): New signal. * libgui/src/resource.qrc: Added fileprint.png as a resource. * libgui/src/module.mk: Added fileprint.png as an icon.
author John Donoghue <john.donoghue@ieee.org>
date Thu, 04 Apr 2013 22:22:17 -0400
parents 7762d56dbc8a
children ee652dcc9ecc
files libgui/src/icons/fileprint.png libgui/src/m-editor/file-editor-tab.cc libgui/src/m-editor/file-editor-tab.h libgui/src/m-editor/file-editor.cc libgui/src/m-editor/file-editor.h libgui/src/module.mk libgui/src/resource.qrc
diffstat 7 files changed, 49 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..bbbac94c15b45ab65c0148ddd5169d196eada9bf
GIT binary patch
literal 1482
zc$@*s1vUDKP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000G%Nkl<ZScUCZ
z%WqUw82_Df?#$dfcV3-=zMv1FFGD0@L+!XRK{2h7r0GHuDmz1ruISo70ax;JTQ^iT
zKtN2a8?XzYX(GW;5ef>ewjJ6sGxv2~E~f9!RB4TF{3YL=`<?IH`~ALe&i9>jiPjpG
z(A(SFS5;M&7D9^kHbN>swhYD?b6qc(p8jKSczC$HBdv8=>Fetwmo8nJ(OPSz^p?@x
z-F^J><twz3AEOd`&N+PF^RxyW$61VeW7y@!mJkky(ca$PaP;W=s?r=<$v_B!)}>Sv
zLMl3{6xotwvu}P@k>O?p{w@4ZpdtazIbyMx+^&OIET#ts2P^uiXsEBRXSQu`sQ*`m
zX_`29?tDdiMFJljJC+HBLiL<)or9DThG9fbocNHvGJ#OYumdhEr7D*2U!qis$~biB
z(4O0OZkMg&HI3-}`3vUc<RmkrrfzI#Ac=SqQc7^nL4Y;=SFgIR8(ew0VIc4Wj6WYI
zH*emGUcdGY>gwv{$&(*>OLNH5Uhu`4b8T&HE!V43RlEJb_ob8uB_!I~+6JXm>D^ib
zq~xfitF=BiC<H&=y9d)W11UJt>5R(da!()r@~HdMPd=VlL!hUpr)O~Rt81~CjhBT2
zz8<;=-}k{NgVH6Bgb+~1KxruxOTS7gXlN*<A*Fy`oUc(@2c~JFzrP=LG>UvakN*DS
zhi}~Y_WLz|K{A<4QcB>u9t!z9cJFRLYfBp<kuV6QfYzXlVRmK~gaGMu)pC0lLL!%&
zg^&uhwY88!f-I9{c>e4+<nwt@LO>}+B9TmPSOazSyQ&GLP)dP-KyZ#nj~*hO&cL!P
z5K0gUM_}7ggu`J(!V!4B2O%VE+eS@o9fS~2QleNaqEN`gaa<JhdCbgCqp`6ON^4L`
zQNL?f^#%g*c&wID3MCal03ifi$HC0>G=va~sV%JoLMaFcT+am$I84)o9|Z7R2cGM}
z_kB37gTN2qxh|}zjl*xh1E7?FSS(h%hQO(T0ovT$+)OA12tYvaa()4v2arlZ2m!$b
zgy7(ugL47FIh0Zmk|Xc~2q7V*gcJf&Do9n*xd`CR2XGt*=}ZQcQe-ljJ*Nf+=;x<T
ztN(m2FaRKC$7nK<Y-E&zF$Sd-ip9cmL|n*H7DOova+S^nU(C*;NDd(sq~H)jAm9Ol
zAb{f(VHgaQF(ebo#yNYA0#F73jEs!X*AE=XFveg2a2*#Tw|;=u8cHcBtstd>k`hv>
z(wJ0GYL&hyQb}m3AeDkv3PMVFu7ibz1sI_a7$Gn%YsbjQ2wl#A;}qH4+>3<gd6=2a
z;n}n2@P&Y3gaAgt05Ah<I^p`xxN=LDj941-eGdyS^O&6c9Xm5sn45c%betkvCcrtz
z<Hr+rzEH%Ir@!LCg9n(OUw~y=*wA0M0MGaF<jGTHcI<>131ed7iOo4*Sp!Ndy(5#h
z48uTsYYX<j){bn~8&F!|Z=Ak2g$6(=1tAnQwKXsdhICcRR9fj}0+wZo(b3V1<3Eq@
zHzOt~7K@QcB+`;jr$bV1?@U4|#pKkah}rhI2DtD0x=<*LS(YV$ReQm~g9nM@I?+%l
zL|n(UdwY8?_xJaA77B$;kKUU`uQlTFI4*p7;r7)lSKmveQeMCV9krv**yz|w1^{4e
zY)k_vE~<s0p&_THrUtfcZ;L=8kwCU9JA3xb+1YY)%6^zoN)vbQ-fgI^u0}i_-;(ns
zSeAu-`}Q>vLZVu0r!33$($v({k;~-@TmK+ii>axpxtiLVz2$tBZN=Gawl$SX+1m<z
z71HT+s;jGOZ#i380-c?m9hCla+eA1VMz$;4QO>qp1*>u7-6LHc?HzAPDZMh!yfPSL
kk^4X0A0Ga0_|AIUpYQdhxg}6*(*OVf07*qoM6N<$f{dBDfdBvi
--- a/libgui/src/m-editor/file-editor-tab.cc
+++ b/libgui/src/m-editor/file-editor-tab.cc
@@ -35,6 +35,7 @@
 #include <Qsci/qscilexerperl.h>
 #include <Qsci/qscilexerbatch.h>
 #include <Qsci/qscilexerdiff.h>
+#include <Qsci/qsciprinter.h>
 #include "resource-manager.h"
 #include <QApplication>
 #include <QFileDialog>
@@ -42,6 +43,7 @@
 #include <QTextStream>
 #include <QVBoxLayout>
 #include <QInputDialog>
+#include <QPrintDialog>
 
 #include "file-editor-tab.h"
 #include "file-editor.h"
@@ -332,6 +334,24 @@
 }
 
 void
+file_editor_tab::print_file (const QWidget* ID)
+{
+  if (ID != this)
+    return;
+
+  QsciPrinter * printer = new QsciPrinter( QPrinter::HighResolution );
+
+  QPrintDialog printDlg(printer, this);
+
+  if(printDlg.exec() == QDialog::Accepted)
+    {
+       printer->printRange(_edit_area);
+    }
+  delete printer;
+}
+
+
+void
 file_editor_tab::run_file_callback (void)
 {
   // Maybe someday we will do something here?
--- a/libgui/src/m-editor/file-editor-tab.h
+++ b/libgui/src/m-editor/file-editor-tab.h
@@ -62,6 +62,7 @@
   void save_file (const QWidget* ID);
   void save_file (const QWidget* ID, const QString& fileName, bool remove_on_success);
   void save_file_as (const QWidget* ID);
+  void print_file (const QWidget* ID);
   void run_file (const QWidget* ID);
   void toggle_bookmark (const QWidget* ID);
   void next_bookmark (const QWidget* ID);
--- a/libgui/src/m-editor/file-editor.cc
+++ b/libgui/src/m-editor/file-editor.cc
@@ -397,6 +397,13 @@
 }
 
 void
+file_editor::request_print_file ()
+{
+   emit fetab_print_file (_tab_widget->currentWidget ());
+}
+
+
+void
 file_editor::request_run_file ()
 {
   emit fetab_run_file (_tab_widget->currentWidget ());
@@ -626,6 +633,10 @@
     = new QAction (QIcon(":/actions/icons/filesaveas.png"),
                    tr("Save File &As"), _tool_bar);
 
+  QAction *print_action
+    = new QAction ( QIcon(":/actions/icons/fileprint.png"),
+                    tr ("Print"), _tool_bar);
+
   QAction *undo_action = new QAction (QIcon(":/actions/icons/undo.png"),
                                       tr("&Undo"), _tool_bar);
 
@@ -689,6 +700,10 @@
   save_action->setShortcutContext               (Qt::WindowShortcut);
   save_as_action->setShortcut                   (QKeySequence::SaveAs);
   save_as_action->setShortcutContext            (Qt::WindowShortcut);
+
+  print_action->setShortcut                     (QKeySequence::Print);
+  print_action->setShortcutContext              (Qt::WindowShortcut);
+
   next_bookmark_action->setShortcut             (Qt::Key_F2);
   next_bookmark_action->setShortcutContext      (Qt::WindowShortcut);
   previous_bookmark_action->setShortcut         (Qt::SHIFT + Qt::Key_F2);
@@ -710,6 +725,8 @@
   _tool_bar->addAction (save_action);
   _tool_bar->addAction (save_as_action);
   _tool_bar->addSeparator ();
+  _tool_bar->addAction(print_action);
+  _tool_bar->addSeparator ();
   _tool_bar->addAction (undo_action);
   _tool_bar->addAction (redo_action);
   _tool_bar->addAction (_copy_action);
@@ -739,6 +756,9 @@
   fileMenu->addMenu (_mru_file_menu);
   _menu_bar->addMenu (fileMenu);
 
+  fileMenu->addSeparator ();
+  fileMenu->addAction (print_action);
+
   QMenu *editMenu = new QMenu (tr ("&Edit"), _menu_bar);
   editMenu->addAction (undo_action);
   editMenu->addAction (redo_action);
@@ -799,6 +819,8 @@
            SIGNAL (triggered ()), this, SLOT (request_save_file ()));
   connect (save_as_action,
            SIGNAL (triggered ()), this, SLOT (request_save_file_as ()));
+  connect (print_action,
+           SIGNAL (triggered ()), this, SLOT (request_print_file ()));
   connect (_run_action,
            SIGNAL (triggered ()), this, SLOT (request_run_file ()));
   connect (toggle_bookmark_action,
@@ -899,6 +921,8 @@
            f, SLOT (save_file (const QWidget*)));
   connect (this, SIGNAL (fetab_save_file_as (const QWidget*)),
            f, SLOT (save_file_as (const QWidget*)));
+  connect (this, SIGNAL (fetab_print_file (const QWidget*)),
+           f, SLOT (print_file (const QWidget*)));
   connect (this, SIGNAL (fetab_run_file (const QWidget*)),
            f, SLOT (run_file (const QWidget*)));
   connect (this, SIGNAL (fetab_toggle_bookmark (const QWidget*)),
--- a/libgui/src/m-editor/file-editor.h
+++ b/libgui/src/m-editor/file-editor.h
@@ -76,6 +76,7 @@
   void fetab_paste (const QWidget* ID);
   void fetab_save_file (const QWidget* ID);
   void fetab_save_file_as (const QWidget* ID);
+  void fetab_print_file (const QWidget* ID);
   void fetab_run_file (const QWidget* ID);
   void fetab_toggle_bookmark (const QWidget* ID);
   void fetab_next_bookmark (const QWidget* ID);
@@ -98,6 +99,7 @@
   void request_new_file ();
   void request_open_file ();
   void request_mru_open_file ();
+  void request_print_file ();
 
   void request_undo ();
   void request_redo ();
--- a/libgui/src/module.mk
+++ b/libgui/src/module.mk
@@ -24,6 +24,7 @@
   src/icons/editpaste.png \
   src/icons/filenew.png \
   src/icons/fileopen.png \
+  src/icons/fileprint.png \
   src/icons/filesaveas.png \
   src/icons/filesave.png \
   src/icons/find.png \
--- a/libgui/src/resource.qrc
+++ b/libgui/src/resource.qrc
@@ -7,6 +7,7 @@
         <file>icons/filenew.png</file>
         <file>icons/fileopen.png</file>
         <file>icons/filesave.png</file>
+        <file>icons/fileprint.png</file>
         <file>icons/redo.png</file>
         <file>icons/search.png</file>
         <file>icons/undo.png</file>