QXRD  0.11.16
qxrdmaskdialog.cpp
Go to the documentation of this file.
1 #include "qxrdmaskdialog.h"
2 #include "ui_qxrdmaskdialog.h"
3 #include "qxrdwindow.h"
4 #include "qxrddataprocessor.h"
5 #include "qxrdmaskstackmodel.h"
6 #include "qxrdapplication.h"
7 #include "qxrddebug.h"
8 #include "qxrdzingerdialog.h"
9 
11  QDockWidget(parent),
12  m_Processor(procw),
13  m_Masks(),
15 {
17  printf("QxrdMaskDialog::QxrdMaskDialog(%p)\n", this);
18  }
19 
20  setupUi(this);
21 
22  connect(m_HideMaskAll, &QAbstractButton::clicked, this, &QxrdMaskDialog::doHideMaskAll);
23  connect(m_ShowMaskAll, &QAbstractButton::clicked, this, &QxrdMaskDialog::doShowMaskAll);
24  connect(m_HideMaskRange, &QAbstractButton::clicked, this, &QxrdMaskDialog::doHideMaskRange);
25  connect(m_ShowMaskRange, &QAbstractButton::clicked, this, &QxrdMaskDialog::doShowMaskRange);
26  connect(m_InvertMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doInvertMask);
27  connect(m_GrowMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doGrowMask);
28  connect(m_ShrinkMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doShrinkMask);
29  connect(m_AndMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doAndMask);
30  connect(m_OrMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doOrMask);
31  connect(m_XorMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doXorMask);
32  connect(m_AndNotMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doAndNotMask);
33  connect(m_OrNotMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doOrNotMask);
34  connect(m_XorNotMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doXorNotMask);
35  connect(m_ExchangeMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doExchangeMask);
36  connect(m_RollUpMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doRollUpMask);
37  connect(m_RollDownMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doRollDownMask);
38  connect(m_RollMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doRollMask);
39  connect(m_NewMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doNewMask);
40  connect(m_PushMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doPushMask);
41  connect(m_ClearMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doClearMask);
42  connect(m_ClearMaskTop, &QAbstractButton::clicked, this, &QxrdMaskDialog::doClearMaskTop);
43  connect(m_UndoMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doUndoMask);
44  connect(m_ZingerMask, &QAbstractButton::clicked, this, &QxrdMaskDialog::doZingersMask);
45 
47 
48  if (proc) {
49  proc -> prop_MaskMinimumValue() -> linkTo(m_MaskMinimum);
50  proc -> prop_MaskMaximumValue() -> linkTo(m_MaskMaximum);
51  proc -> prop_MaskCircleRadius() -> linkTo(m_MaskCircleRadius);
52  proc -> prop_MaskSetPixels() -> linkTo(m_MaskSetPixels);
53 
54  m_Masks = proc->maskStack();
57 
58  m_MaskStackView -> setModel(m_MaskStackModel.data());
59  m_MaskStackView -> setMaskStack(m_Masks);
60  m_MaskStackView -> setProcessor(m_Processor);
61  m_MaskStackView -> setMaskDialog(this);
62  }
63 }
64 
66 {
68  printf("QxrdMaskDialog::~QxrdMaskDialog(%p)\n", this);
69  }
70 }
71 
73 {
74  QDockWidget::changeEvent(e);
75  switch (e->type()) {
76  case QEvent::LanguageChange:
77  retranslateUi(this);
78  break;
79  default:
80  break;
81  }
82 }
84 {
85  QMenu actions;
86 
88 
89  if (proc) {
90  QxrdMaskStackPtr m = proc->maskStack();
91 
92  if (m) {
93  int nmasks = m->size();
94 
95  for (int i=0; i<nmasks; i++) {
96  QcepMaskDataPtr p = m->at(i);
97  if (p) {
98  QString lvl = m->stackLevelName(i);
99  actions.addAction(tr("%1: %2").arg(lvl).arg(p->get_Title()))->setData(i);
100  }
101  }
102  }
103 
104  QAction *selected = actions.exec(QCursor::pos());
105 
106  if (selected) {
107  return selected->data().toInt();
108  }
109  }
110 
111  return -1;
112 }
113 
115 {
116  int n = maskStackSelectPopup();
117 
118  if (n >= 0) {
120 
121  if (proc) {
122  proc->hideMaskAllStack(n);
123  proc->statusMessage("Mask Stack Hide All");
124  }
125  }
126 }
127 
129 {
130  int n = maskStackSelectPopup();
131 
132  if (n >= 0) {
134 
135  if (proc) {
136  proc->showMaskAllStack(n);
137  proc->statusMessage("Mask Stack Show All");
138  }
139  }
140 }
141 
143 {
144  int n = maskStackSelectPopup();
145 
146  if (n >= 0) {
148 
149  if (proc) {
150  proc->hideMaskRangeStack(n);
151  proc->statusMessage("Mask Stack Hide In Range");
152  }
153  }
154 }
155 
157 {
158  int n = maskStackSelectPopup();
159 
160  if (n >= 0) {
162 
163  if (proc) {
164  proc->showMaskRangeStack(n);
165  proc->statusMessage("Mask Stack Show In Range");
166  }
167  }
168 }
169 
171 {
172 // int n = maskStackSelectPopup();
173 
174 // if (n >= 0) {
175 // QxrdDataProcessorPtr proc(m_Processor);
176 
177 // if (proc) {
178 // proc->zingersStack(n);
179 // proc->statusMessage("Find Zingers");
180 // }
181 // }
182 
184 
185  if (proc) {
186  QxrdZingerDialog dlg(proc);
187 
188  dlg.exec();
189  }
190 }
191 
193 {
194  int n = maskStackSelectPopup();
195 
196  if (n >= 0) {
198 
199  if (proc) {
200  proc->invertMaskStack(n);
201  proc->statusMessage("Mask Stack Invert");
202  }
203  }
204 }
205 
207 {
208  int n = maskStackSelectPopup();
209 
210  if (n >= 0) {
212 
213  if (proc) {
214  proc->growMaskStack(n);
215  proc->statusMessage("Mask Stack Invert");
216  }
217  }
218 }
219 
221 {
222  int n = maskStackSelectPopup();
223 
224  if (n >= 0) {
226 
227  if (proc) {
228  proc->shrinkMaskStack(n);
229  proc->statusMessage("Mask Stack Invert");
230  }
231  }
232 }
233 
235 {
236  int n = maskStackSelectPopup();
237 
238  if (n >= 0) {
240 
241  if (proc) {
242  proc->andMaskStack(n);
243  proc->statusMessage("Mask Stack AND");
244  }
245  }
246 }
247 
249 {
250  int n = maskStackSelectPopup();
251 
252  if (n >= 0) {
254 
255  if (proc) {
256  proc->orMaskStack(n);
257  proc->statusMessage("Mask Stack OR");
258  }
259  }
260 }
261 
263 {
264  int n = maskStackSelectPopup();
265 
266  if (n >= 0) {
268 
269  if (proc) {
270  proc->xorMaskStack(n);
271  proc->statusMessage("Mask Stack XOR");
272  }
273  }
274 }
275 
277 {
278  int n = maskStackSelectPopup();
279 
280  if (n >= 0) {
282 
283  if (proc) {
284  proc->andNotMaskStack(n);
285  proc->statusMessage("Mask Stack AND NOT");
286  }
287  }
288 }
289 
291 {
292  int n = maskStackSelectPopup();
293 
294  if (n >= 0) {
296 
297  if (proc) {
298  proc->orNotMaskStack(n);
299  proc->statusMessage("Mask Stack OR NOT");
300  }
301  }
302 }
303 
305 {
306  int n = maskStackSelectPopup();
307 
308  if (n >= 0) {
310 
311  if (proc) {
312  proc->xorNotMaskStack(n);
313  proc->statusMessage("Mask Stack XOR NOT");
314  }
315  }
316 }
317 
319 {
320  int n = maskStackSelectPopup();
321 
322  if (n >= 0) {
324 
325  if (proc) {
326  proc->exchangeMaskStack(n);
327  proc->statusMessage("Mask Stack Exchanged");
328  }
329  }
330 }
331 
333 {
334  int n = maskStackSelectPopup();
335 
336  if (n >= 0) {
338 
339  if (proc) {
340  proc->rollMaskStack(n);
341  }
342  }
343 }
344 
346 {
348 
349  if (proc) {
350  proc->rollMaskStack(1);
351  proc->statusMessage("Mask Stack Rolled Up");
352  }
353 }
354 
356 {
358 
359  if (proc) {
360  proc->rollMaskStack(-1);
361  proc->statusMessage("Mask Stack Rolled Down");
362  }
363 }
364 
366 {
368 
369  if (proc) {
370  proc->clearMaskStack();
371  proc->statusMessage("Mask Stack Cleared");
372  }
373 }
374 
376 {
378 
379  if (proc) {
380  proc->clearMaskStackTop();
381  proc->statusMessage("Top of Mask Stack Cleared");
382  }
383 }
384 
386 {
388 
389  if (proc) {
390  proc->pushMaskStack();
391  proc->statusMessage("Mask Pushed");
392  }
393 }
394 
396 {
398 
399  if (proc) {
400  proc->newMaskStack();
401  proc->statusMessage("New Mask");
402  }
403 }
404 
406 {
408 
409  if (proc) {
410  proc->statusMessage("Undo Not Implemented");
411  }
412 }
void changeEvent(QEvent *e)
QWeakPointer< QxrdDataProcessor > QxrdDataProcessorWPtr
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
QxrdMaskDialog(QxrdDataProcessorWPtr procw, QWidget *parent=0)
QSharedPointer< QxrdDataProcessor > QxrdDataProcessorPtr
int maskStackSelectPopup()
QxrdDataProcessorWPtr m_Processor
QxrdMaskStackWPtr m_Masks
static QString stackLevelName(int n)
QxrdMaskStackModelPtr m_MaskStackModel
QSharedPointer< QxrdMaskStackModel > QxrdMaskStackModelPtr
QSharedPointer< QcepMaskData > QcepMaskDataPtr