comparison libgui/graphics/Figure.cc @ 19903:781adfc2958c draft nkf

Build qt graphics toolkit menus with uimenu * libgui/graphics/Figure.cc, libgui/graphics/Figure.h: Revert cset 7335cc071ab0 and remove all menu items. * scripts/gui/private/__get_funcname__.m: Fix typo * scripts/plot/util/private/__add_default_menu__.m: Enable uimenu for qt graphics toolkit and fix setting pan/rotate/zoom for qt and fltk
author Stefan Mahr <dac922@gmx.de>
date Fri, 27 Feb 2015 18:36:05 +0100
parents 6ba3d0f7c6e8
children
comparison
equal deleted inserted replaced
19902:c7c50030e76c 19903:781adfc2958c
27 #include <QAction> 27 #include <QAction>
28 #include <QActionEvent> 28 #include <QActionEvent>
29 #include <QActionGroup> 29 #include <QActionGroup>
30 #include <QApplication> 30 #include <QApplication>
31 #include <QEvent> 31 #include <QEvent>
32 #include <QFileDialog>
33 #include <QFileInfo>
34 #include <QFrame> 32 #include <QFrame>
35 #include <QMainWindow> 33 #include <QMainWindow>
36 #include <QMenu> 34 #include <QMenu>
37 #include <QMenuBar> 35 #include <QMenuBar>
38 #include <QMessageBox> 36 #include <QMessageBox>
44 #include "Container.h" 42 #include "Container.h"
45 #include "Figure.h" 43 #include "Figure.h"
46 #include "FigureWindow.h" 44 #include "FigureWindow.h"
47 #include "MouseModeActionGroup.h" 45 #include "MouseModeActionGroup.h"
48 #include "QtHandlesUtils.h" 46 #include "QtHandlesUtils.h"
49
50 #include "octave-qt-link.h"
51
52 #include "builtin-defun-decls.h"
53 47
54 namespace QtHandles 48 namespace QtHandles
55 { 49 {
56 50
57 #define ABOUT_TEXT "<b>QtHandles</b> - a Qt-based toolkit for <a href=\"http://www.octave.org\">Octave</a>.<br><br>Copyright (C) 2011-2014 Michael Goffioul" 51 #define ABOUT_TEXT "<b>QtHandles</b> - a Qt-based toolkit for <a href=\"http://www.octave.org\">Octave</a>.<br><br>Copyright (C) 2011-2014 Michael Goffioul"
219 return SelectMode; 213 return SelectMode;
220 else 214 else
221 return NoMode; 215 return NoMode;
222 } 216 }
223 217
224 QString Figure::fileName (void)
225 {
226 gh_manager::auto_lock lock;
227
228 const figure::properties& fp = properties<figure> ();
229
230 std::string name = fp.get_filename ();
231
232 return QString::fromStdString (name);
233 }
234
235 void Figure::setFileName (const QString& name)
236 {
237 gh_manager::auto_lock lock;
238
239 figure::properties& fp = properties<figure> ();
240
241 fp.set_filename (name.toStdString ());
242 }
243
244 MouseMode Figure::mouseMode (void) 218 MouseMode Figure::mouseMode (void)
245 { 219 {
246 gh_manager::auto_lock lock; 220 gh_manager::auto_lock lock;
247 221
248 const figure::properties& fp = properties<figure> (); 222 const figure::properties& fp = properties<figure> ();
282 connect (toggle_grid, SIGNAL (triggered (void)), 256 connect (toggle_grid, SIGNAL (triggered (void)),
283 this, SLOT (toggleGrid (void))); 257 this, SLOT (toggleGrid (void)));
284 258
285 m_menuBar = new MenuBar (win); 259 m_menuBar = new MenuBar (win);
286 win->setMenuBar (m_menuBar); 260 win->setMenuBar (m_menuBar);
287
288 QMenu* fileMenu = m_menuBar->addMenu (tr ("&File"));
289 fileMenu->menuAction ()->setObjectName ("builtinMenu");
290 fileMenu->addAction (tr ("&Save"), this, SLOT (fileSaveFigure (bool)));
291 fileMenu->addAction (tr ("Save &As"), this, SLOT (fileSaveFigureAs (void)));
292 fileMenu->addSeparator ();
293 fileMenu->addAction (tr ("&Close Figure"), this,
294 SLOT (fileCloseFigure (void)), Qt::CTRL|Qt::Key_W);
295
296 QMenu* editMenu = m_menuBar->addMenu (tr ("&Edit"));
297 editMenu->menuAction ()->setObjectName ("builtinMenu");
298 editMenu->addAction (tr ("Cop&y"), this, SLOT (editCopy (void)),
299 Qt::CTRL|Qt::Key_C)->setEnabled (false);
300 editMenu->addAction (tr ("Cu&t"), this, SLOT (editCut (void)),
301 Qt::CTRL|Qt::Key_X)->setEnabled (false);
302 editMenu->addAction (tr ("&Paste"), this, SLOT (editPaste(void)),
303 Qt::CTRL|Qt::Key_V)->setEnabled (false);
304 editMenu->addSeparator ();
305 editMenu->addActions (m_mouseModeGroup->actions ());
306
307 QMenu* helpMenu = m_menuBar->addMenu (tr ("&Help"));
308 helpMenu->menuAction ()->setObjectName ("builtinMenu");
309 helpMenu->addAction (tr ("&About QtHandles"), this,
310 SLOT (helpAboutQtHandles (void)));
311 helpMenu->addAction (tr ("About &Qt"), qApp, SLOT (aboutQt (void)));
312 261
313 m_menuBar->addReceiver (this); 262 m_menuBar->addReceiver (this);
314 } 263 }
315 264
316 void Figure::updateFigureToolBarAndMenuBar (void) 265 void Figure::updateFigureToolBarAndMenuBar (void)
730 679
731 if (canvas) 680 if (canvas)
732 canvas->setCursor (mode); 681 canvas->setCursor (mode);
733 } 682 }
734 683
735 void Figure::fileSaveFigure (bool prompt)
736 {
737 QString file = fileName ();
738
739 if (file.isEmpty ())
740 {
741 prompt = true;
742
743 file = "untitled.pdf";
744 }
745
746 if (prompt || file.isEmpty ())
747 {
748 QFileInfo finfo (file);
749
750 file = QFileDialog::getSaveFileName (qWidget<FigureWindow> (),
751 tr ("Save Figure As"),
752 finfo.absoluteFilePath (), 0, 0,
753 QFileDialog::DontUseNativeDialog);
754 }
755
756 if (! file.isEmpty ())
757 {
758 QFileInfo finfo (file);
759
760 setFileName (finfo.absoluteFilePath ());
761
762 octave_link::post_event (this, &Figure::save_figure_callback,
763 file.toStdString ());
764 }
765 }
766
767 void Figure::save_figure_callback (const std::string& file)
768 {
769 Ffeval (ovl ("print", file));
770 }
771
772 void Figure::fileSaveFigureAs (void)
773 {
774 fileSaveFigure (true);
775 }
776
777 void Figure::fileCloseFigure (void) 684 void Figure::fileCloseFigure (void)
778 { 685 {
779 qWidget<QMainWindow> ()->close (); 686 qWidget<QMainWindow> ()->close ();
780 } 687 }
781 688