Mercurial > octave-nkf
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 |