changeset 16440: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
Binary file libgui/src/icons/fileprint.png has changed
--- a/libgui/src/m-editor/file-editor-tab.cc	Fri Apr 05 16:21:38 2013 -0700
+++ b/libgui/src/m-editor/file-editor-tab.cc	Thu Apr 04 22:22:17 2013 -0400
@@ -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	Fri Apr 05 16:21:38 2013 -0700
+++ b/libgui/src/m-editor/file-editor-tab.h	Thu Apr 04 22:22:17 2013 -0400
@@ -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	Fri Apr 05 16:21:38 2013 -0700
+++ b/libgui/src/m-editor/file-editor.cc	Thu Apr 04 22:22:17 2013 -0400
@@ -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	Fri Apr 05 16:21:38 2013 -0700
+++ b/libgui/src/m-editor/file-editor.h	Thu Apr 04 22:22:17 2013 -0400
@@ -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	Fri Apr 05 16:21:38 2013 -0700
+++ b/libgui/src/module.mk	Thu Apr 04 22:22:17 2013 -0400
@@ -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	Fri Apr 05 16:21:38 2013 -0700
+++ b/libgui/src/resource.qrc	Thu Apr 04 22:22:17 2013 -0400
@@ -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>