1 // Licensed GNU LGPL v3 or later: http://www.gnu.org/licenses/lgpl.html
2 
3 #include "smspectrumwindow.hh"
4 #include "smnavigator.hh"
5 
6 #include <QGridLayout>
7 
8 using namespace SpectMorph;
9 
SpectrumWindow(Navigator * navigator)10 SpectrumWindow::SpectrumWindow (Navigator *navigator)
11 {
12   resize (800, 600);
13   setWindowTitle ("Spectrum View");
14 
15   spectrum_view = new SpectrumView (navigator);
16   zoom_controller = new ZoomController (this, 5000, 5000);
17 
18   QGridLayout *grid = new QGridLayout();
19   scroll_area = new QScrollArea();
20   scroll_area->setWidget (spectrum_view);
21   grid->addWidget (scroll_area, 0, 0, 1, 3);
22   for (int i = 0; i < 3; i++)
23     {
24       grid->addWidget (zoom_controller->hwidget (i), 1, i);
25       grid->addWidget (zoom_controller->vwidget (i), 2, i);
26     }
27   setLayout (grid);
28 
29   zoom_controller->set_hscrollbar (scroll_area->horizontalScrollBar());
30   zoom_controller->set_vscrollbar (scroll_area->verticalScrollBar());
31   connect (zoom_controller, SIGNAL (zoom_changed()), this, SLOT (on_zoom_changed()));
32 }
33 
34 void
set_spectrum_model(TimeFreqView * time_freq_view)35 SpectrumWindow::set_spectrum_model (TimeFreqView *time_freq_view)
36 {
37   spectrum_view->set_spectrum_model (time_freq_view);
38 }
39 
40 void
on_zoom_changed()41 SpectrumWindow::on_zoom_changed()
42 {
43   spectrum_view->set_zoom (zoom_controller->get_hzoom(), zoom_controller->get_vzoom());
44 }
45