1 //=============================================================================
2 // MuseScore
3 // Music Composition & Notation
4 //
5 // Copyright (C) 2011 Werner Schweer and others
6 //
7 // This program is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License version 2
9 // as published by the Free Software Foundation and appearing in
10 // the file LICENSE.GPL
11 //=============================================================================
12
13 #include "musescore.h"
14 #include "omrpanel.h"
15 #include "scoreview.h"
16 #include "omr/omrview.h"
17 #include "omr/omr.h"
18 #include "libmscore/score.h"
19
20 namespace Ms {
21
22 //---------------------------------------------------------
23 // showOmrPanel
24 //---------------------------------------------------------
25
showOmrPanel(bool visible)26 void MuseScore::showOmrPanel(bool visible)
27 {
28 QAction* a = getAction("omr");
29 if (visible) {
30 if (!omrPanel) {
31 omrPanel = new OmrPanel();
32 connect(omrPanel, SIGNAL(omrPanelVisible(bool)), a, SLOT(setChecked(bool)));
33 addDockWidget(Qt::RightDockWidgetArea, omrPanel);
34 }
35 }
36 if (omrPanel)
37 omrPanel->setVisible(visible);
38 if (omrPanel && visible) {
39 if (cv && cv->omrView())
40 omrPanel->setOmrView(cv->omrView());
41 else
42 omrPanel->setOmrView(0);
43 }
44 a->setChecked(visible);
45 }
46
47 //---------------------------------------------------------
48 // OmrPanel
49 //---------------------------------------------------------
50
OmrPanel(QWidget * parent)51 OmrPanel::OmrPanel(QWidget* parent)
52 : QDockWidget(tr("PDF Transcribing Assistant"), parent)
53 {
54 setObjectName("omrpanel");
55 setAllowedAreas(Qt::DockWidgetAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea));
56 QWidget* mainWidget = new QWidget;
57 mainWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
58 setWidget(mainWidget);
59
60 op.setupUi(mainWidget);
61
62 setOmrView(0);
63
64 connect(op.showBarlines, SIGNAL(toggled(bool)), SLOT(showBarlinesToggled(bool)));
65 connect(op.showLines, SIGNAL(toggled(bool)), SLOT(showLinesToggled(bool)));
66 connect(op.showSlices, SIGNAL(toggled(bool)), SLOT(showSlicesToggled(bool)));
67 connect(op.showStaves, SIGNAL(toggled(bool)), SLOT(showStavesToggled(bool)));
68 connect(op.spatium, SIGNAL(valueChanged(double)), SLOT(spatiumChanged(double)));
69 connect(op.process, SIGNAL(clicked()), SLOT(processClicked()));
70 }
71
72 //---------------------------------------------------------
73 // closeEvent
74 //---------------------------------------------------------
75
closeEvent(QCloseEvent * ev)76 void OmrPanel::closeEvent(QCloseEvent* ev)
77 {
78 emit omrPanelVisible(false);
79 QWidget::closeEvent(ev);
80 }
81
82 //---------------------------------------------------------
83 // showBarlinesToggled
84 //---------------------------------------------------------
85
showBarlinesToggled(bool val)86 void OmrPanel::showBarlinesToggled(bool val)
87 {
88 if (omrView)
89 omrView->setShowBarlines(val);
90 }
91
92 //---------------------------------------------------------
93 // showLinesToggled
94 //---------------------------------------------------------
95
showLinesToggled(bool val)96 void OmrPanel::showLinesToggled(bool val)
97 {
98 if (omrView)
99 omrView->setShowLines(val);
100 }
101
102 //---------------------------------------------------------
103 // showSlicesToggled
104 //---------------------------------------------------------
105
showSlicesToggled(bool val)106 void OmrPanel::showSlicesToggled(bool val)
107 {
108 if (omrView)
109 omrView->setShowSlices(val);
110 }
111
112 //---------------------------------------------------------
113 // showStavesToggled
114 //---------------------------------------------------------
115
showStavesToggled(bool val)116 void OmrPanel::showStavesToggled(bool val)
117 {
118 if (omrView)
119 omrView->setShowStaves(val);
120 }
121
122 //---------------------------------------------------------
123 // spatiumChanged
124 //---------------------------------------------------------
125
spatiumChanged(double val)126 void OmrPanel::spatiumChanged(double val)
127 {
128 if (omrView) {
129 omrView->omr()->setSpatium(val * omrView->omr()->dpmm());
130 omrView->update();
131 }
132 }
133
134 //---------------------------------------------------------
135 // blockSignals
136 //---------------------------------------------------------
137
blockSignals(bool val)138 void OmrPanel::blockSignals(bool val)
139 {
140 op.showBarlines->blockSignals(val);
141 op.showLines->blockSignals(val);
142 op.showSlices->blockSignals(val);
143 op.showStaves->blockSignals(val);
144 op.spatium->blockSignals(val);
145 }
146
147 //---------------------------------------------------------
148 // enableGui
149 //---------------------------------------------------------
150
enableGui(bool val)151 void OmrPanel::enableGui(bool val)
152 {
153 op.showBarlines->setEnabled(val);
154 op.showLines->setEnabled(val);
155 op.showSlices->setEnabled(val);
156 op.showStaves->setEnabled(val);
157 op.spatium->setEnabled(val);
158 op.process->setEnabled(val);
159 }
160
161 //---------------------------------------------------------
162 // setOmr
163 //---------------------------------------------------------
164
setOmrView(OmrView * v)165 void OmrPanel::setOmrView(OmrView* v)
166 {
167 omrView = v;
168 if (omrView) {
169 enableGui(true);
170 blockSignals(true);
171
172 op.showBarlines->setChecked(omrView->showBarlines());
173 op.showLines->setChecked(omrView->showLines());
174 op.showSlices->setChecked(omrView->showSlices());
175 op.showStaves->setChecked(omrView->showStaves());
176 op.spatium->setValue(omrView->omr()->spatiumMM());
177
178 blockSignals(false);
179 }
180 else {
181 enableGui(false);
182 }
183 }
184
185 //---------------------------------------------------------
186 // processClicked
187 //---------------------------------------------------------
188
processClicked()189 void OmrPanel::processClicked()
190 {
191 if (omrView) {
192 //omrView->omr()->process();
193 omrView->update();
194 setOmrView(omrView); // update values
195 }
196 }
197
198 }
199
200
201