QXRD  0.11.16
TODO.h
Go to the documentation of this file.
1 #ifndef TODO_H
2 #define TODO_H
3 
4 DONE("2009-08-27", "2009-08-27",
5  "Check that settings are not being saved twice (in QxrdWindow destructor):");
6 
7 DONE("2009-08-27", "2009-08-27",
8  "Check thread correctness of acquisition\n"
9  "Adopt the same threading model as qavrg"
10  );
11 
12 DONE("2009-07-08", "2009-07-08",
13  "Run script engine in separate thread");
14 
15 DONE("2009-09-13", "2009-09-13",
16  "Correct signal/slot corrections to use new properties");
17 
18 DONE("2009-06-28", "2009-06-28",
19  "Cut down the number of warnings - currently 96!\n"
20  "Reduced to 7, 6 of those within qwt code");
21 
22 DONE("2010-09-13", "2010-09-13",
23  "Add a plausible simulation mode - this should accurately mimic "
24  "the real acquisition.");
25 
26 DONE("2009-08-27", "2009-08-27",
27  "Add window position/state saving.\n"
28  "Load and save settings for everything...");
29 
30 DONE("2009-08-27", "2009-08-27",
31  "Eliminate the duplicate script engine object from QxrdAcquisitionScripting");
32 
33 TODO("2009-07-20", "",
34  "Optimise screen redrawing to eliminate redundant replot calls - will need "
35  "a rigorous reorganisation and layering of code to ensure this.");
36 
37 DONE("2009-09-13", "2009-09-13",
38  "Ensure that program will not overwrite files without warning. Use modified "
39  "file names where necessary. Only do this for programmatic saves, saves "
40  "after a dialog box will already have been given a confirmation dialog\n\n"
41  "Done, but there is a bug on linux which stops the file overwrite confirmation "
42  "dialog from being shown.");
43 
44 DONE("2009-09-14", "2009-09-14",
45  "Automatically reload dark, bad pixel and gain images when program restarts\n"
46  "Load/save mask and dark images when program starts/exits, make default mask "
47  "all visible.\n"
48  "(Will need to load/save more metadata before this will work well).");
49 
50 DONE("2009-08-27", "2015-09-21",
51  "Investigate why the vertical window size increases each time program is run "
52  "(Only happens on linux...)\n"
53  "Doesn't happen any more!");
54 
55 TODO("2009-08-09", "",
56  "Implement generalized image slicing routine - integrate over a rectangular "
57  "region, rather than along a line.");
58 
59 TODO("2009-08-09", "",
60  "Re-implement center finder plot to use routine above.");
61 
62 TODO("2009-08-14", "",
63  "Add some kind of beam presence detection threshold");
64 
65 DONE("2009-09-15", "2009-09-15",
66  "Make it possible to interrupt spec more gracefully - add some "
67  "kind of cancel operation.");
68 
69 DONE("2009-08-27", "2009-08-27",
70  "Allow cancelling to happen sooner - especially during long exposures");
71 
72 DONE("2009-11-13", "2009-11-13",
73  "Zooming on graphs does not work properly when program first starts - "
74  "graphs need an autoscale operation before they start zooming properly");
75 
76 DONE("2009-09-14", "2009-09-14",
77  "Add menu commands to show/hide toolbox windows");
78 
79 DONE("2009-09-30", "2009-09-30",
80  "Automatically add integrated curves to output panel.");
81 
82 TODO("2009-08-24", "",
83  "Display range choosing doesn't work very well");
84 
85 DONE("2009-09-04", "2009-09-04",
86  "Dark subtraction doesn't seem to be working at the moment\n"
87  "caused by typing 'if (m_DarkFrame = NULL) {'\n"
88  "instead of 'if (m_DarkFrame == NULL) {'\n"
89  "spotted by following up compiler warnings");
90 
91 DONE("2009-08-27", "2015-09-21",
92  "Simplify the interactions between the various processing options and "
93  "perform a simple sanity check before starting acquisition\n"
94  "Pre-acquisition sanity check added");
95 
96 DONE("2009-09-28", "2009-09-28",
97  "Improve GUI performance when doing rapid acquisition sequences -\n"
98  "don't queue processed output images for display - have a current "
99  "and alternate image and swap as appropriate.");
100 
101 DONE("2010-09-13", "2010-09-13",
102  "Optimize processing routines");
103 
104 DONE("2009-09-11", "2009-09-11",
105  "Make processing single-threaded");
106 
107 DONE("2010-09-13", "2010-09-13",
108  "Flag dropped frames more obviously.");
109 
110 DONE("2009-09-28", "2009-09-28",
111  "Add timestamps and other metadata to saved files\n"
112  "e.g. TIFFTAG_ORIENTATION, TIFFTAG_DOCUMENTNAME\n"
113  "TIFFTAG_IMAGEDESCRIPTION, TIFFTAG_DATETIME\n"
114  "TIFFTAG_FRAMECOUNT?, TIFFTAG_UNIQUECAMERAMODEL?");
115 
116 DONE("2010-09-13", "2010-09-13",
117  "Provide facility to save integrated scans");
118 
119 TODO("2009-08-27", "",
120  "Leak check...");
121 
122 DONE("2009-09-11", "2009-09-11",
123  "Coalesce controls from the 'output' panel into the 'acquire' panel");
124 
125 DONE("2009-09-28", "2009-09-28",
126  "Do camera model number check...\n"
127  "Check more hardware settings when entering program...\n"
128  "Support binning modes...\n"
129  "Is not calling Acquisition_Init a problem?");
130 
131 DONE("2009-09-28", "2009-09-28",
132  "Provide a user interface to the camera gain setting");
133 
134 DONE("2009-09-28", "2009-09-28",
135  "Allow finer-grained control of the processing chain");
136 
137 DONE("2009-09-28", "2015-09-17",
138  "Remove the g_Acquisition global and replace it with "
139  "acquisition handles passed via Acquire_SetAcqData");
140 
141 DONE("2010-09-13", "2010-09-13",
142  "Rearrange the QxrdAcquisition hierarchy so that "
143  "QxrdAcquisition becomes a base class and "
144  "QxrdAcquisitionPerkinElmer the 'leaf' class that "
145  "is instantiated. Will simplify working with multiple "
146  "detector types.");
147 
148 DONE("2009-09-11", "2009-09-11",
149  "Check that the load/save data, dark and mask routines "
150  "actually work!\n"
151  "The problem was that the file conversion factories for raw and mask data "
152  "were not initialized.");
153 
154 TODO("2009-08-31", "",
155  "Check handling of image dimensions for mask, acquisition etc.");
156 
157 DONE("2010-09-13", "2010-09-13",
158  "Try LZW encoding images to see how it affects performance");
159 
160 TODO("2009-09-04", "",
161  "Don't allow program to quit or start a new acquisition "
162  "until outstanding processing has completed.");
163 
164 DONE("2009-09-11", "2009-09-11",
165  "Combine the tails of QxrdDataProcessor::processAcquiredInt{16,32}Image "
166  "to eliminate duplicated code.");
167 
168 DONE("2009-09-08", "2009-09-08",
169  "Provide a means to remove dark image, gain map, mask etc.\n"
170  "(and put them back again!)");
171 
172 DONE("2010-09-13", "2010-09-13",
173  "Add frame skip option in acquisition");
174 
175 DONE("2009-09-30", "2009-09-30",
176  "The script:\n"
177  "for (i=0; i<6; i++) {\n"
178  " print(\"Camera Gain = \",i);\n"
179  " acquisition.cameraGain = i;\n"
180  " acquire(\"h:/junk-test/testing\",0.1,1,1,0);\n"
181  " while (status(0.5) != 1) {\n"
182  " print(\"Waiting\");\n"
183  " }\n"
184  "}\n"
185  "gets deadlocked");
186 
187 TODO("2009-09-08", "",
188  "If acquisition is triggered before sufficient pre-trigger "
189  "images have been taken, then post-triggered acquisition "
190  "will continue until a total of pre- plus post- images "
191  "have been taken - i.e. extra post-trigger images will be "
192  "taken.");
193 
194 
195 DONE("2009-09-28", "2009-09-28",
196  "Add error return checking wherever appropriate -\n"
197  "particularly in TIFF, Acquire_ and file i/o routines\n"
198  "Check output directory exists before starting acquisition sequence.");
199 
200 DONE("2009-09-30", "2009-09-30",
201  "Add acquireStatus and processStatus functions and "
202  "processor.status() and acquisition.status() methods "
203  "which test status of acquisition and processing operations");
204 
205 DONE("2009-09-20", "2009-09-20",
206  "Separate printMessage, warnMessage and errorMessage signals\n"
207  "Color code in output.");
208 
209 TODO("2009-09-20", "",
210  "Binning mode not working");
211 
212 DONE("2009-09-21", "2009-09-21",
213  "Added user interface to log file choosing");
214 
215 DONE("2009-09-23", "2009-09-23",
216  "Copy acquisition dynamic properties into acquired images\n"
217  "Copy processor dynamic properties into processed images\n"
218  "Doesn't work at present because setProperty is not thread-safe");
219 
220 DONE("2009-09-22", "2009-09-22",
221  "Provide a means of saving raw data files in separate sub-directories");
222 
223 DONE("2009-09-28", "2009-09-28",
224  "the ProcessedCount variable should not depend on the display progress, only "
225  "on the Processor progress.");
226 
227 DONE("2009-09-25", "2009-09-25",
228  "Something wrong with acquired data summation (16-32 bit problem?)\n"
229  "Actually caused by forgetting to clear image before summation.");
230 
231 DONE("2009-09-28", "2009-09-28",
232  "Masking operations don't seem to work.\n"
233  "copyMask operations were other way round");
234 
235 DONE("2009-11-13", "2009-11-13",
236  "Image doesn't update when display parameters are changed.");
237 
238 DONE("2009-10-02", "2009-10-02",
239  "There's some kind of deadlock in the acquisition process");
240 
241 DONE("2009-09-30", "2009-09-30",
242  "Can't interrupt acquisition from GUI if it was started from script\n"
243  "The GUI cancel calls should call the acquisition object directly, rather "
244  "than via invokeMethod");
245 
246 DONE("2009-10-02", "2009-10-02",
247  "Need to limit the number of curves that can be added to the az avg window\n"
248  "Need to implement saving the az avg data");
249 
250 DONE("2010-09-13", "2010-09-13",
251  "Allow for acquired but not yet processed images when calculating number of "
252  "buffered images.");
253 
254 DONE("2010-09-13", "2010-09-13",
255  "Investigate whether the intensities would be more stable if the acquisition "
256  "was running continuously rather than being started and stopped during each "
257  "acquisition sequence. - could also include some kind of continuously updating "
258  "display.");
259 
260 DONE("2009-09-30", "2015-01-01",
261  "Provide commands for printing graphs.");
262 
263 DONE("2009-11-13", "2009-11-13",
264  "The first average after the program has been started is always zero");
265 
266 DONE("2009-10-21", "2009-10-21",
267  "Need to re-enable adding sliced data to az avg graph");
268 
269 TODO("2009-10-02", "",
270  "Implement processor.processDataSequence");
271 
272 DONE("2009-10-05", "2009-10-05",
273  "Manual integration should update graph and/or save integrated data");
274 
275 DONE("2009-10-21", "2009-10-21",
276  "Memory handling is still poor, at least in simulation mode. "
277  "If you do a 1000 frame acquisition the memory usage may reach "
278  "~10GB, regardless of the memory usage limit\n"
279  "Simulation mode allocates images via new, the PE driver does not, "
280  "so the memory handling is only a problem for simulation mode.");
281 
282 DONE("2009-10-22", "2009-10-22",
283  "Initial choice of 'home' directory under windows is the application directory "
284  "- a poor place to save data!\n"
285  "Added code (in windows only) to set the current directory "
286  "to QDir::homePath() at startup.");
287 
288 DONE("2010-09-13", "2010-09-13",
289  "File browser should automatically switch to the output data "
290  "directory when this is changed.");
291 
292 DONE("2010-09-13", "2010-09-13",
293  "Check that the image buffer memory allocation works before trying "
294  "to use the allocated buffers. (Exception handler needed?)");
295 
296 DONE("2009-11-17", "2009-11-17",
297  "Investigate a situation which can arise (twice now) where the GUI "
298  "becomes unresponsive even though acquisition and processing continues "
299  "to run. Presumably some kind of race condition?\n"
300  "This is caused by poor performance of file browser window. "
301  "I have disabled the file browser for the moment.");
302 
303 TODO("2009-11-13", "",
304  "Display some progress indication when angular integration is taking place.");
305 
306 DONE("2010-09-13", "2010-09-13",
307  "Complete implementation of file browser panel");
308 
309 DONE("2009-11-13", "2009-11-13",
310  "Implement an image statistics panel");
311 
312 DONE("2009-11-13", "2009-11-13",
313  "Implement an image slice panel");
314 
315 DONE("2009-11-13", "2009-11-13",
316  "Implement an image histogram panel ?");
317 
318 TODO("2009-11-13", "",
319  "Implement an image calculator panel ?");
320 
321 DONE("2010-09-13", "2010-09-13",
322  "Additional acquisition features requested:\n"
323  "Allow skipping frames at start of acquisition,\n"
324  "Allow skipping frames between frames of acquisition,\n"
325  "Allow saving of intermediate frames as an insurance during long acquisitions "
326  " - alternatively save an 'accumulated' image at the end of an acquisition.\n"
327  "Provide some kind of beam intensity monitoring facility and pause acquisition "
328  "when beam is not present.\n"
329  "Skip at start doesn't work yet");
330 
331 TODO("2009-11-17", "",
332  "If qxrd crashes the TCP/IP server socket gets left in CLOSE_WAIT state. "
333  "If you then restart qxrd it will automatically use the next socket "
334  "in sequence - unfortunately spec will still try to use the original socket "
335  "when searching for host:qxrd and will fail to connect.\n"
336  "Could try to use SO_REUSEADDR, perhaps.");
337 
338 
339 DONE("2010-09-13", "2010-09-13",
340  "Errors during acquisition (e.g. file save errors) are handled extremely poorly!");
341 
342 DONE("2010-01-26", "2010-01-26",
343  "Implement some kind of control of the maximum size of the text "
344  "in the messages window\n"
345  "Limited by preferences parameter");
346 
347 DONE("2009-12-03", "2015-09-21",
348  "Rename 'Correction' panel to 'Processing' ?\n"
349  "No longer relevant since correction panel is replaced by "
350  "separate detector control windows");
351 
352 DONE("2010-09-13", "2010-09-13",
353  "Provide control of whether dark images are saved - "
354  "probably via the Save 'raw' images option.");
355 
356 DONE("2010-09-13", "2010-09-13",
357  "Better handling of cancellation would be desirable");
358 
359 TODO("2010-02-04", "",
360  "Try to find cause of a problem where acquisition stalls during long sequences. "
361  "Seen twice now, application was still responsive afterwards but acquisition "
362  "stopped. On attempting to cancel there were two different results - \n"
363  "1: when acquiring dark frame, cancel button did not operate\n"
364  "2: when acquiring data, cancel button did operate, but application "
365  "crashed imediately.");
366 
367 DONE("2010-01-26", "2010-01-26",
368  "Modify handling of file index numbers during acquisition "
369  "so that dark measurements do not increment the file index.\n"
370  "This is to simplify subsequent processing of image sequences "
371  "with embedded dark measurements.\n"
372  "Done - dark acquisition does not increment index number");
373 
374 DONE("2010-09-13", "2010-09-13",
375  "Program doesn't remember output directory (possibly only on OSX?)\n"
376  "Also doesn't restore dark image - in fact it doesn't save any preferences at all\n"
377  "QxrdDataProcessor properties were not being saved because the writeSettings method "
378  "was in a super class - QxrdDataProcessorBase while the properties were in QxrdDataProcessor");
379 
380 DONE("2010-11-04", "2010-11-04",
381  "Modify preferences handling so that updated prefs are saved as "
382  "they are modified (or perhaps after a few seconds delay)");
383 
384 DONE("2010-09-13", "2010-09-13",
385  "Saved raw images appear to be full of zeroes. No - they are OK");
386 
387 DONE("2010-09-13", "2010-09-13",
388  "Add a separate file io thread for image saving.");
389 
390 DONE("2010-09-13", "2010-09-13",
391  "Image display isn't working any more - perhaps due to initialization "
392  "of m_NewData and/or m_NewMask to NULL in qxrdwindow -\n"
393  "Had failed to copy m_Range in QxrdRasterData::copy");
394 
395 DONE("2010-09-13", "2010-09-13",
396  "Doesn't auto-load dark data on startup - \n"
397  "caused by failure to save QxrdDataProcessor preferences");
398 
399 DONE("2010-09-13", "2010-09-13",
400  "Need progress info during acquisition/processing");
401 
402 DONE("2010-09-13", "2010-09-13",
403  "Make the average signal level widget allow for the background, "
404  "calculate in data processor thread");
405 
406 DONE("2010-09-13", "2010-09-13",
407  "Live image update");
408 
409 DONE("2010-09-13", "2010-09-13",
410  "Image statistics/histogram display");
411 
412 DONE("2010-09-13", "2010-09-13",
413  "Cancel PE acquisition -> crash\n"
414  "Fixed");
415 
416 DONE("2010-09-13", "2010-09-13",
417  "Problem with fast readout - the queueing between the PE "
418  "callback thread and the acquisition thread builds up so that the "
419  "buffer numbers are no longer valid");
420 
421 DONE("2010-09-13", "2010-09-13",
422  "There's a skipped readout frame after each readout image is finished"
423  " - this makes image sequences take longer than they should "
424  " - e.g. 0.5 sec exposure, single frame produces a new frame every 1 second.");
425 
426 DONE("2010-09-13", "2010-09-13",
427  "The integration routines are not properly threaded...");
428 
429 TODO("2010-09-13", "",
430  "Need to make the allocator algorithm more optimal.");
431 
432 DONE("2010-09-13", "2010-09-13",
433  "Only display dropped frames during acquisition");
434 
435 DONE("2010-09-13", "2010-09-13",
436  "Add detector tilt, distance and rotation parameters to center finder window");
437 
438 DONE("2010-09-17", "2010-09-17",
439  "Update center finder slicing and integration routines to use "
440  "tilt parameters where appropriate\n"
441  "not sure what to do for polygon slicing - will ignore for now");
442 
443 DONE("2010-09-13", "2010-09-13",
444  "Disable ring fitting dialog");
445 
446 DONE("2010-09-13", "2010-09-13",
447  "Add percentile display mode");
448 
449 DONE("2010-11-04", "2010-11-04",
450  "Add display of bad and over exposed pixels");
451 
452 DONE("2010-09-13", "2010-09-13",
453  "Improve user interface for setting debug mode");
454 
455 TODO("2010-09-13", "",
456  "Update help documentation to reflect changes");
457 
458 DONE("2010-09-13", "2010-09-13",
459  "Remove single-threaded and disable cuda processor options");
460 
461 DONE("2010-09-13", "2010-09-13",
462  "Reduce idle-time CPU load by reducing number of calls to "
463  "idle image routine");
464 
465 TODO("2010-09-13", "",
466  "Add AB image acquisition mode");
467 
468 DONE("2010-11-04", "2010-11-04",
469  "Test 64 bit readout mode\n"
470  "Works.");
471 
472 TODO("2010-09-23", "",
473  "Improve behaviour when plugins do not load");
474 
475 TODO("2010-09-23", "",
476  "Track integrated graph update time to suppress updates during "
477  "rapid acquisition");
478 
479 TODO("2010-09-28", "",
480  "Find threading problem when quitting debug build - QNativeSocketEngine");
481 
482 DONE("2010-09-28", "2010-09-28",
483  "Make proxy script objects for GUI script so that they can be called "
484  "from different threads. - or maybe look at putting the script engine "
485  "in the main thread.");
486 
487 DONE("2010-09-28", "2010-09-28",
488  "Be more aggressive about memory preallocation on 64 bit systems - "
489  "or possibly have another go at recycling images.");
490 
491 DONE("2010-11-03", "2010-11-03",
492  "Investigate file naming problems when acquiring - sometimes "
493  "data seem to be saved in wrong file names, also metadata not "
494  "always saved.");
495 
496 DONE("2010-11-04", "2010-11-04",
497  "'trigger()' script command doesnt work - blocks, while "
498  "'acquisition.triggered=1' does work.\n"
499  "Does work, but is unintuitive - 'trigger()' returns "
500  "the trigger state, 'trigger(1)' sets the trigger.\n"
501  "Changed so that 'trigger()' does a trigger");
502 
503 DONE("2010-11-04", "2010-11-04",
504  "Make 'preTriggerFiles' default to zero if not given explicitly.\n"
505  "If 'acquire(...)' is given 4 or fewer arguments, set "
506  "'preTriggerFiles' to zero.");
507 
508 DONE("2010-11-09", "2010-11-09",
509  "Metadata is not saved for QcepDoubleImageData, because "
510  "the metadata saving stuff doesn't know about inheritance\n"
511  "Changed QcepImageData::writeSettings to use staticMetaObject "
512  "rather than metaObject()");
513 
514 TODO("2012-01-09", "",
515  "Gain setting menu missing for PE acquisition");
516 
517 TODO("2012-01-09", "",
518  "Crashes on exit from PE acquisition");
519 
520 DONE("2010-11-04", "2014-03-05",
521  "Start thinking about how to synchronise acquisition with "
522  "external processes - possible support for running a "
523  "National Instruments MIO card in sync with acquisition");
524 
525 TODO("2010-11-04", "",
526  "Add a status function which waits until sufficient "
527  "pre-trigger files have been acquired.");
528 
529 TODO("2011-02-24", "",
530  "Load/Save mask stack state on program entry/exit");
531 
532 TODO("2011-02-24", "",
533  "Overall mask should be made to be a combination of the various "
534  "mask stack levels.");
535 
536 TODO("2011-01-17", "",
537  "Make the PE acquisition code work for a wider variety "
538  "of PE detectors, ideally for all of them. Need to check "
539  "model number before trying to e.g. set gain, or allow "
540  "failures when setting gain to still permit acquisition.");
541 
542 TODO("2011-01-17", "",
543  "PE Acquisition fails in debug builds - sending messages "
544  "to object in different thread");
545 
546 DONE("2012-12-05", "2012-12-05",
547  "May crash on exit if live view active\n"
548  "Fixed by improving memory allocation tracking by using more QSharedPointers");
549 
550 TODO("2014-03-05", "",
551  "Mouse click behavior for pickers needs to be reviewed/modified - esp. polygon pickers");
552 
553 TODO("2014-03-05", "",
554  "Investigate display update behaviour when scaling parameters changed");
555 
556 DONE("2015-09-18", "2015-10-14",
557  "Fix problem where the saved dark image path is incorrect if the "
558  "dark image acquired was a duplicate and was renamed. Also for masks, potentially");
559 
560 DONE("2015-09-20", "2015-10-14",
561  "Do we really need QxrdAcquisitionParameterPack and QxrdDarkAcquisitionParameterPack - yes");
562 
563 TODO("2015-09-20", "",
564  "Fix problems when copying dynamic properties between objects in different threads - get "
565  "errors in debug builds because dynamic property changed events get sent.");
566 
567 DONE("2015-09-20", "2015-10-14",
568  "Enable sorting in TODO list view");
569 
570 DONE("2015-09-20", "2015-10-14",
571  "TODO List items should resize to contents, with word wrap");
572 
573 DONE("2015-09-20", "2015-10-14",
574  "Implement separate processing chain for acquired data, attached to each detector");
575 
576 TODO("2015-09-20", "",
577  "Implement multi-threaded tiled integration routines to reduce integration latency");
578 
579 TODO("2015-09-20", "",
580  "Implement ROI intensity calculations");
581 
582 DONE("2015-09-20", "2015-10-14",
583  "Implement UI to set up and visualize ROIs");
584 
585 DONE("2015-09-20", "2015-10-14",
586  "Implement routines to pass ROI values to spec as macro counter channels");
587 
588 TODO("2015-09-20", "",
589  "Implement Pilatus Detector readout");
590 
591 DONE("2015-09-20", "2015-09-21",
592  "Implement detector enable/disable\n"
593  "Now working");
594 
595 DONE("2015-09-20", "2015-10-14",
596  "Implement multi-detector readout");
597 
598 TODO("2015-09-20", "",
599  "Improve NI-DAQ extra inputs readout - support detector enable");
600 
601 DONE("2015-09-20", "2015-10-23",
602  "Detector enable script commands -\n"
603  "detector(n).enabled=<true|false>");
604 
605 TODO("2015-09-20", "",
606  "Improve NI-DAQ output synchronization");
607 
608 TODO("2015-09-22", "",
609  "Redo acquireStatus function");
610 
611 TODO("2015-09-29", "",
612  "Updates to saved settings not stored as properties do not trigger re-saves");
613 
614 DONE("2015-10-05", "2015-10-13",
615  "Implement masking in ROI calculations");
616 
617 DONE("2015-10-05", "2015-10-14",
618  "Reimplement mask/dark/gain loading in detector initialization");
619 
620 DONE("2015-10-06", "2015-10-14",
621  "Make file index, phase number available as scaler channels"
622  " - global channels though, since they are identical for each detector");
623 
624 TODO("2015-10-07", "",
625  "Need to make sure detector image processing steps are not too slow");
626 
627 DONE("2015-10-12", "2015-10-14",
628  "Implement 'Live View at Idle' flags for multi-detector acquisition");
629 
630 TODO("2015-10-14", "",
631  "Implement different output file format options");
632 
633 DONE("2015-10-21", "2015-10-23",
634  "Finish implementing remaining ROI calculations");
635 
636 TODO("2015-10-21", "",
637  "Find if/why mask range commands don't seem to work");
638 
639 TODO("2015-10-21", "",
640  "Fix mask display issues in detector control windows");
641 
642 TODO("2016-03-07", "",
643  "Investigate problems with last column of polar transforms");
644 
645 DONE("2016-03-07", "2016-03-15",
646  "Reinstate self normalize option for polar normalized integration");
647 
648 TODO("2016-03-07", "",
649  "Auto plotting of polar normalized integration results");
650 
651 TODO("2016-03-09", "",
652  "Make peak fitting and ring tracing routines honour masks");
653 
654 DONE("2016-03-09", "2016-03-15",
655  "Make peak fitting and ring tracing save results as data objects");
656 
657 TODO("2016-03-09", "",
658  "Rework masking operations to make them a bit easier to use");
659 
660 TODO("2016-03-09", "",
661  "Add undo facility to mask operations");
662 
663 TODO("2016-03-09", "",
664  "Make sure that detector data processing options and parameters are easy to set up"
665  " - possibly support copying parameters from the main processor to the detector processors");
666 
667 TODO("2016-03-09", "",
668  "Implement QxrdCalibrant duplication, deletion and property dialog");
669 
670 TODO("2016-03-11", "",
671  "Powder point renormalization should update data objects");
672 
673 DONE("2016-03-11", "2016-03-15",
674  "Center Finder should use calibrant library, instead of its own internal vars");
675 
676 #endif // TODO_H
DONE("2009-08-27","2009-08-27","Check that settings are not being saved twice (in QxrdWindow destructor):")
TODO("2009-07-20","","Optimise screen redrawing to eliminate redundant replot calls - will need ""a rigorous reorganisation and layering of code to ensure this.")