Mercurial > hg > sonic-visualiser
comparison main/MainWindow.cpp @ 494:238a97d2a8f4 fullscreen
Connect up various keyboard actions in full-screen mode
author | Chris Cannam |
---|---|
date | Mon, 23 Jan 2012 17:46:40 +0000 |
parents | 3a85461ab9a7 |
children | d2a58dfc3ae5 |
comparison
equal
deleted
inserted
replaced
493:3a85461ab9a7 | 494:238a97d2a8f4 |
---|---|
375 | 375 |
376 void | 376 void |
377 MainWindow::goFullScreen() | 377 MainWindow::goFullScreen() |
378 { | 378 { |
379 QWidget *ps = m_mainScroll->takeWidget(); | 379 QWidget *ps = m_mainScroll->takeWidget(); |
380 // m_mainScroll->setWidget(0); | |
381 ps->setParent(0); | 380 ps->setParent(0); |
381 | |
382 QShortcut *sc; | |
383 | |
384 sc = new QShortcut(QKeySequence("Esc"), ps); | |
385 connect(sc, SIGNAL(activated()), this, SLOT(endFullScreen())); | |
386 | |
387 sc = new QShortcut(QKeySequence("F11"), ps); | |
388 connect(sc, SIGNAL(activated()), this, SLOT(endFullScreen())); | |
389 | |
390 QAction *acts[] = { | |
391 m_playAction, m_zoomInAction, m_zoomOutAction, m_zoomFitAction, | |
392 m_scrollLeftAction, m_scrollRightAction, m_showPropertyBoxesAction | |
393 }; | |
394 | |
395 for (int i = 0; i < sizeof(acts)/sizeof(acts[0]); ++i) { | |
396 sc = new QShortcut(acts[i]->shortcut(), ps); | |
397 connect(sc, SIGNAL(activated()), acts[i], SLOT(trigger())); | |
398 } | |
399 | |
382 ps->showFullScreen(); | 400 ps->showFullScreen(); |
383 // ps->showMaximized(); | |
384 QShortcut *sc = new QShortcut(QKeySequence("Esc"), ps); | |
385 connect(sc, SIGNAL(activated()), this, SLOT(endFullScreen())); | |
386 // QApplication::processEvents(); | |
387 // m_paneStack->adjustSize(); | |
388 } | 401 } |
389 | 402 |
390 void | 403 void |
391 MainWindow::endFullScreen() | 404 MainWindow::endFullScreen() |
392 { | 405 { |
393 QShortcut *sc = dynamic_cast<QShortcut *>(sender()); | 406 // these were only created in goFullScreen: |
394 if (sc) delete sc; // it was only created in goFullScreen | 407 QObjectList cl = m_paneStack->children(); |
408 foreach (QObject *o, cl) { | |
409 QShortcut *sc = qobject_cast<QShortcut *>(o); | |
410 if (sc) delete sc; | |
411 } | |
412 | |
395 m_mainScroll->setWidget(m_paneStack); | 413 m_mainScroll->setWidget(m_paneStack); |
396 } | 414 } |
397 | 415 |
398 void | 416 void |
399 MainWindow::setupFileMenu() | 417 MainWindow::setupFileMenu() |
774 | 792 |
775 m_keyReference->setCategory(tr("Panning and Navigation")); | 793 m_keyReference->setCategory(tr("Panning and Navigation")); |
776 | 794 |
777 QMenu *menu = menuBar()->addMenu(tr("&View")); | 795 QMenu *menu = menuBar()->addMenu(tr("&View")); |
778 menu->setTearOffEnabled(true); | 796 menu->setTearOffEnabled(true); |
779 action = new QAction(tr("Scroll &Left"), this); | 797 m_scrollLeftAction = new QAction(tr("Scroll &Left"), this); |
780 action->setShortcut(tr("Left")); | 798 m_scrollLeftAction->setShortcut(tr("Left")); |
781 action->setStatusTip(tr("Scroll the current pane to the left")); | 799 m_scrollLeftAction->setStatusTip(tr("Scroll the current pane to the left")); |
782 connect(action, SIGNAL(triggered()), this, SLOT(scrollLeft())); | 800 connect(m_scrollLeftAction, SIGNAL(triggered()), this, SLOT(scrollLeft())); |
783 connect(this, SIGNAL(canScroll(bool)), action, SLOT(setEnabled(bool))); | 801 connect(this, SIGNAL(canScroll(bool)), m_scrollLeftAction, SLOT(setEnabled(bool))); |
784 m_keyReference->registerShortcut(action); | 802 m_keyReference->registerShortcut(m_scrollLeftAction); |
785 menu->addAction(action); | 803 menu->addAction(m_scrollLeftAction); |
786 | 804 |
787 action = new QAction(tr("Scroll &Right"), this); | 805 m_scrollRightAction = new QAction(tr("Scroll &Right"), this); |
788 action->setShortcut(tr("Right")); | 806 m_scrollRightAction->setShortcut(tr("Right")); |
789 action->setStatusTip(tr("Scroll the current pane to the right")); | 807 m_scrollRightAction->setStatusTip(tr("Scroll the current pane to the right")); |
790 connect(action, SIGNAL(triggered()), this, SLOT(scrollRight())); | 808 connect(m_scrollRightAction, SIGNAL(triggered()), this, SLOT(scrollRight())); |
791 connect(this, SIGNAL(canScroll(bool)), action, SLOT(setEnabled(bool))); | 809 connect(this, SIGNAL(canScroll(bool)), m_scrollRightAction, SLOT(setEnabled(bool))); |
792 m_keyReference->registerShortcut(action); | 810 m_keyReference->registerShortcut(m_scrollRightAction); |
793 menu->addAction(action); | 811 menu->addAction(m_scrollRightAction); |
794 | 812 |
795 action = new QAction(tr("&Jump Left"), this); | 813 action = new QAction(tr("&Jump Left"), this); |
796 action->setShortcut(tr("Ctrl+Left")); | 814 action->setShortcut(tr("Ctrl+Left")); |
797 action->setStatusTip(tr("Scroll the current pane a big step to the left")); | 815 action->setStatusTip(tr("Scroll the current pane a big step to the left")); |
798 connect(action, SIGNAL(triggered()), this, SLOT(jumpLeft())); | 816 connect(action, SIGNAL(triggered()), this, SLOT(jumpLeft())); |
826 | 844 |
827 menu->addSeparator(); | 845 menu->addSeparator(); |
828 | 846 |
829 m_keyReference->setCategory(tr("Zoom")); | 847 m_keyReference->setCategory(tr("Zoom")); |
830 | 848 |
831 action = new QAction(il.load("zoom-in"), | 849 m_zoomInAction = new QAction(il.load("zoom-in"), |
832 tr("Zoom &In"), this); | 850 tr("Zoom &In"), this); |
833 action->setShortcut(tr("Up")); | 851 m_zoomInAction->setShortcut(tr("Up")); |
834 action->setStatusTip(tr("Increase the zoom level")); | 852 m_zoomInAction->setStatusTip(tr("Increase the zoom level")); |
835 connect(action, SIGNAL(triggered()), this, SLOT(zoomIn())); | 853 connect(m_zoomInAction, SIGNAL(triggered()), this, SLOT(zoomIn())); |
836 connect(this, SIGNAL(canZoom(bool)), action, SLOT(setEnabled(bool))); | 854 connect(this, SIGNAL(canZoom(bool)), m_zoomInAction, SLOT(setEnabled(bool))); |
837 m_keyReference->registerShortcut(action); | 855 m_keyReference->registerShortcut(m_zoomInAction); |
838 menu->addAction(action); | 856 menu->addAction(m_zoomInAction); |
839 | 857 |
840 action = new QAction(il.load("zoom-out"), | 858 m_zoomOutAction = new QAction(il.load("zoom-out"), |
841 tr("Zoom &Out"), this); | 859 tr("Zoom &Out"), this); |
842 action->setShortcut(tr("Down")); | 860 m_zoomOutAction->setShortcut(tr("Down")); |
843 action->setStatusTip(tr("Decrease the zoom level")); | 861 m_zoomOutAction->setStatusTip(tr("Decrease the zoom level")); |
844 connect(action, SIGNAL(triggered()), this, SLOT(zoomOut())); | 862 connect(m_zoomOutAction, SIGNAL(triggered()), this, SLOT(zoomOut())); |
845 connect(this, SIGNAL(canZoom(bool)), action, SLOT(setEnabled(bool))); | 863 connect(this, SIGNAL(canZoom(bool)), m_zoomOutAction, SLOT(setEnabled(bool))); |
846 m_keyReference->registerShortcut(action); | 864 m_keyReference->registerShortcut(m_zoomOutAction); |
847 menu->addAction(action); | 865 menu->addAction(m_zoomOutAction); |
848 | 866 |
849 action = new QAction(tr("Restore &Default Zoom"), this); | 867 action = new QAction(tr("Restore &Default Zoom"), this); |
850 action->setStatusTip(tr("Restore the zoom level to the default")); | 868 action->setStatusTip(tr("Restore the zoom level to the default")); |
851 connect(action, SIGNAL(triggered()), this, SLOT(zoomDefault())); | 869 connect(action, SIGNAL(triggered()), this, SLOT(zoomDefault())); |
852 connect(this, SIGNAL(canZoom(bool)), action, SLOT(setEnabled(bool))); | 870 connect(this, SIGNAL(canZoom(bool)), action, SLOT(setEnabled(bool))); |
853 menu->addAction(action); | 871 menu->addAction(action); |
854 | 872 |
855 action = new QAction(il.load("zoom-fit"), | 873 m_zoomFitAction = new QAction(il.load("zoom-fit"), |
856 tr("Zoom to &Fit"), this); | 874 tr("Zoom to &Fit"), this); |
857 action->setShortcut(tr("F")); | 875 m_zoomFitAction->setShortcut(tr("F")); |
858 action->setStatusTip(tr("Zoom to show the whole file")); | 876 m_zoomFitAction->setStatusTip(tr("Zoom to show the whole file")); |
859 connect(action, SIGNAL(triggered()), this, SLOT(zoomToFit())); | 877 connect(m_zoomFitAction, SIGNAL(triggered()), this, SLOT(zoomToFit())); |
860 connect(this, SIGNAL(canZoom(bool)), action, SLOT(setEnabled(bool))); | 878 connect(this, SIGNAL(canZoom(bool)), m_zoomFitAction, SLOT(setEnabled(bool))); |
861 m_keyReference->registerShortcut(action); | 879 m_keyReference->registerShortcut(m_zoomFitAction); |
862 menu->addAction(action); | 880 menu->addAction(m_zoomFitAction); |
863 | 881 |
864 menu->addSeparator(); | 882 menu->addSeparator(); |
865 | 883 |
866 m_keyReference->setCategory(tr("Display Features")); | 884 m_keyReference->setCategory(tr("Display Features")); |
867 | 885 |
925 action->setCheckable(true); | 943 action->setCheckable(true); |
926 action->setChecked(m_viewManager->getZoomWheelsEnabled()); | 944 action->setChecked(m_viewManager->getZoomWheelsEnabled()); |
927 m_keyReference->registerShortcut(action); | 945 m_keyReference->registerShortcut(action); |
928 menu->addAction(action); | 946 menu->addAction(action); |
929 | 947 |
930 action = new QAction(tr("Show Property Bo&xes"), this); | 948 m_showPropertyBoxesAction = new QAction(tr("Show Property Bo&xes"), this); |
931 action->setShortcut(tr("X")); | 949 m_showPropertyBoxesAction->setShortcut(tr("X")); |
932 action->setStatusTip(tr("Show the layer property boxes at the side of the main window")); | 950 m_showPropertyBoxesAction->setStatusTip(tr("Show the layer property boxes at the side of the main window")); |
933 connect(action, SIGNAL(triggered()), this, SLOT(togglePropertyBoxes())); | 951 connect(m_showPropertyBoxesAction, SIGNAL(triggered()), this, SLOT(togglePropertyBoxes())); |
934 action->setCheckable(true); | 952 m_showPropertyBoxesAction->setCheckable(true); |
935 action->setChecked(true); | 953 m_showPropertyBoxesAction->setChecked(true); |
936 m_keyReference->registerShortcut(action); | 954 m_keyReference->registerShortcut(m_showPropertyBoxesAction); |
937 menu->addAction(action); | 955 menu->addAction(m_showPropertyBoxesAction); |
938 | 956 |
939 action = new QAction(tr("Show Status &Bar"), this); | 957 action = new QAction(tr("Show Status &Bar"), this); |
940 action->setStatusTip(tr("Show context help information in the status bar at the bottom of the window")); | 958 action->setStatusTip(tr("Show context help information in the status bar at the bottom of the window")); |
941 connect(action, SIGNAL(triggered()), this, SLOT(toggleStatusBar())); | 959 connect(action, SIGNAL(triggered()), this, SLOT(toggleStatusBar())); |
942 action->setCheckable(true); | 960 action->setCheckable(true); |
964 action = new QAction(tr("Show Acti&vity Log"), this); | 982 action = new QAction(tr("Show Acti&vity Log"), this); |
965 action->setStatusTip(tr("Open a window listing interactions and other events")); | 983 action->setStatusTip(tr("Open a window listing interactions and other events")); |
966 connect(action, SIGNAL(triggered()), this, SLOT(showActivityLog())); | 984 connect(action, SIGNAL(triggered()), this, SLOT(showActivityLog())); |
967 menu->addAction(action); | 985 menu->addAction(action); |
968 | 986 |
969 //!!! | 987 menu->addSeparator(); |
988 | |
970 action = new QAction(tr("Go Full-Screen"), this); | 989 action = new QAction(tr("Go Full-Screen"), this); |
990 action->setShortcut(tr("F11")); | |
991 action->setStatusTip(tr("Expand the pane area to the whole screen")); | |
971 connect(action, SIGNAL(triggered()), this, SLOT(goFullScreen())); | 992 connect(action, SIGNAL(triggered()), this, SLOT(goFullScreen())); |
993 m_keyReference->registerShortcut(action); | |
972 menu->addAction(action); | 994 menu->addAction(action); |
973 } | 995 } |
974 | 996 |
975 void | 997 void |
976 MainWindow::setupPaneAndLayerMenus() | 998 MainWindow::setupPaneAndLayerMenus() |