1 Project : tina-tools
2 Description : tinatool application code
3 ---------------------------------------
4
5 ChangeLog
6 ---------
7
8 This is the changelog file for the tinatools application (tina-tools). Make an entry
9 in this file for each change to the code stored in the central repository on server6,
10 copying the format of previous entries. Entries should:
11
12 - be made in reverse chronological order i.e. most recent at the top;
13
14 - include details of files modified and added, details of the nature and purpose of
15 the change, the platform on which you are working, and any other details which
16 other developers should be aware of;
17
18 - tagged with an ID (incremented from the last).
19
20 The build number in the configure.ac file in the tina-tools directory should also be
21 changed to the ID of the entry.
22
23
24 --------------------------------------------------------------------------------------
25 ID:8 pab 13/2/2012 (linux 2.6.22)
26
27 . Small bug fixes.
28
29 . Modified the signal handler for key value entry to prevent focus moving
30 around the dialog box if e.g. the arrow keys are entered.
31
32 M wdgtsGtk_tw_keyvalue.c
33 M wdgtsGtk_tw_keyvalue.h
34
35 . Removed the set deletable call, since this does not exist in the Gtk library
36 version on the Suns in the NiAC lab. Instead, a signal handler function
37 will print a warning and prevent deletion of the progress bar.
38
39 M wdgtsGtk_tw_progressbar.c
40 M wdgtsGtk_tw_progressbar.h
41
42 . Fixed a histogram scaling bug in the histogram tool.
43
44 M tlbaseHist_tool.c
45 M tlbaseHist_tool.h
46
47 . Removed an irrelevant warning message related to macro files that contain
48 the macro file append button
49
50 M tlbaseMcr_tool.c
51 M tlbaseMcr_tool.h
52
53
54 --------------------------------------------------------------------------------------
55 ID:7 pab 9/12/2011 (linux 2.6.22)
56
57 . Changes to support Manual Landmark tool v1.6.
58
59 . Fixed a bug in the tv and display tool code, where the pointers to the
60 canvas and owner were cast to int then back to pointers. This causes
61 problems when the memory pointed to is above the 32-bit address limit,
62 since the conversion loses half of the pointer.
63
64 M tlbaseDisp_display.c
65 M tlbaseDisp_display.h
66 M tlbaseDisp_tool.c
67 M wdgtsGtk_tw_screen.c
68 M wdgtsGtk_tw_screen.h
69
70
71 . The old sequence loader had the capability to downsample across the
72 inter-slice direction by simply skipping slices; this is controlled by the
73 stride parameter in the interface. Added an option that allows downsampling
74 by loading all slices and then averaging in the inter-slice direction to
75 produce the final sequence. This reduces the image noise and results in
76 improvements to the accuracy of the Manual Landmarking tool. However, it
77 could potentially cause problems for other code if, for example, some
78 variable parameter of the acquisition was extracted from the DICOM header
79 and used in subseqent analysis, and it was not valid to apply linear
80 averaing to this parameter. Therefore, the inter-slice smoothing is
81 controlled by a choice list in the interface, and the default setting is "Off".
82
83 M tlbaseSeq_io.c
84 M tlbaseSeq_io.h
85 M tlbaseSeq_tool.c
86
87 . Fixed a small error in the in-line documentation.
88
89 M wdgtsGtk_tw_curve.c
90
91 . Added a progress bar widget; see the documentation in the c file for
92 instructions on how to use it.
93
94 A wdgtsGtk_tw_progressbar.c
95 A wdgtsGtk_tw_progressbar.h
96 M wdgts_GtkPro.h
97 M wdgtsPro.h
98
99
100 --------------------------------------------------------------------------------------
101 ID 6 nat 7/7/2011 (linux/solaris)
102
103 . New functionality added to corner tool and calib tool to support manual
104 calibration and computation of 3D positions. New functionality added to
105 edge_tool to allow the selection of a faster (simple) edge link scheme,
106 suitable for algorithms which require raw edge data.
107
108 M tlvisCalib_tool.c
109 M tlvisCnr_pick.c
110 M tlvisCnr_tool.c
111 M tlvisEdge_tool.c
112 M tlmedCort_tool.c
113 M tlmedCoreg_view.c
114 M tlbaseHist_tool.c
115 M drawPaint_pick2.c
116
117 --------------------------------------------------------------------------------------
118 ID:5 pab 14/12/2010 (linux 2.6.22)
119
120
121 . Added checks for NULL tvs, tv_screens and masks; the lack of these was
122 causing a crash when a function tried to draw a graph in the Imcalc
123 graph Tv whilst the Imcalc tool was open (so that the Tv existed) but
124 no Tv tool had been installed on the Imcalc graph Tv (so that the
125 Tv_screen did not exist).
126
127 M drawTv_mask.c
128
129 . Modified a comment regarding the above issue.
130
131 M gphxGdk_mask.c
132
133 . Fixed a couple of missing header files.
134
135 M gphxGdk_color.c
136 M gphxGdk_color.h
137
138 . In previous versions the tv_picture structure contained a GdkImage. This
139 had several drawbacks: GdkImages are server-side objects, so manipulating
140 individual pixels is slow; somewhere between Gtk 2.8 and Gtk 2.20, the
141 (deprecated) function gdk_image_get ceased to work properly, leading to
142 graphical corruption when Tvs with a backdraw function tried to repaint
143 the stored background, or when the dump tool was used (the two places that
144 this structure is used in TINA). Therefore, this structure has been changed
145 to use a GdkPixbuf instead, which is a client-side object and solves these
146 problems. Gtk 3 will eliminate all GdkImages, GdkPixmaps and GdkBitmaps in
147 favour of using Cairo to do all drawing operations, eliminating all of these
148 considerations completely.
149
150 M gphx_GdkDef.h
151 M gphxGdk_draw.c
152 M gphxGdk_dump.c
153 M gphxGdk_epsf_dump.c
154 M gphxGdk_tiff_dump.c
155 M gphxGdk_picture.c
156
157
158 --------------------------------------------------------------------------------------
159 ID:4 pab 23/06/2010 (linux 2.6.22)
160
161 . Swapped the definition of the mouse buttons in ZOOM4 mode, so that rotation
162 is on the left button and scaling is on the right.
163
164 M drawTv_activity.c
165 M drawTv_zoom.c
166 M drawTv_zoom.h
167
168
169 . Added the capability to assign keyboard shortcuts to Tvs. This works in a
170 similar way to the mouse functionality; when a key is pressed with the focus
171 on a Tv tool, a Gtk event is triggered that calls a function assigned to the
172 Tv. The list of Gdk codes for each key is contained in gphx_GdkDef.h (and,
173 if a new graphics library interface is ever written, will have to be
174 replaced with the relevant list for that graphics library), so that the key
175 codes returned by Gdk can be compared to the definitions in this list. The
176 function that receives the key press can be assigned in the make function
177 for a Tv using tv_set_keyboard_func(tv, function).
178
179 M draw_TvDef.h
180 A drawTv_keyboard.c
181 A drawTv_keyboard.h
182 M draw_TvPro.h
183 M drawTv_tv.c
184 M gphx_GdkDef.h
185 M wdgts_GtkPro.h
186 M wdgtsGtk_tw_screen.c
187
188 . Added a special version of the text entry widget that displays a text
189 description of the key that has been pressed, rather than the text normally
190 generated by that key. This can be used to build dialog boxes that allow
191 the user to reassign keyboard shortcuts in Tv tools.
192
193 A wdgtsGtk_tw_keyvalue.c
194 A wdgtsGtk_tw_keyvalue.h
195
196 . Prevent the buttons in TINA from having keyboard focus; this interferes
197 with the operation of the dialog box used to assign keys to Tv tool keyboard
198 shortcuts e.g. the user may want to assign the return key as a shortcut, but
199 if buttons in the dialog box can have keyboard focus then pressing the
200 return key will also activate the button that currently has focus.
201
202 M wdgtsGtk_tw_button.c
203
204 Fixed a missing include file bug for rgb_from_long_uint.
205
206 M gphxGdk_mask.c
207
208 . Attempted to sort out the operation of the scan function (file browser)
209 re: filename extensions. TINA has a problem with this in that, when the
210 filebrowser widget is used to select a file to load, the extension is
211 automatically stripped from the filename. Most of the loading functions
212 then add the expected extension; however, not all of them do this and the
213 extension may be non-standard e.g. we assume that DICOM has no extension,
214 but sometimes .dcm is used. This causes a problem for the user who selects
215 a file and presses load, only to be told that the file dows not exist
216 because they have not re-added the extension. In order to sort this out,
217 two new filebrowser functions have been added: scan_files_with_extension
218 and scan_files_without_extension, the first of which leaves the extension
219 in place and the second of which removes it. The scan_files function is
220 now a wrapper allowing the default behaviour to be changed; it currently
221 uses scan_files_with_extension. All tools that will automatically add the
222 extension (mono tool, roi tool and stereo tool and sequence tool) have been
223 modified so that they strip the existing extension from the filename
224 returned from the filebrowser, so that their previous behaviour is
225 maintainned. Note that this does not fix the problem (on loading DICOM
226 files with the .dcm extension the user will still have to re-add the
227 extension to the filename; we can't change that without potentially breaking
228 old macro files), but moves us in the right direction; in future programmers
229 will have to consider what to do with the extension, rather than ignoring
230 the problem.
231
232 . Also changed the size of the string used to store the directory and filenames
233 of the input file in tlbaseSeq_roitool.c, from 64 characters to MAXPATHLEN.
234
235 . Also fixed the sequence tool casting functions, so that the sequence is not
236 cast to binary when the user runs off of the end of it uing the increment or
237 decrement frame buttons or the "jump to" button.
238
239 . Also, the tlbaseSeq_tool.c file contains a commented-out example of how to
240 do millisecond-accurate timing tests (useful for performance evalulation).
241
242 M wdgtsGtk_tw_scan_files.c
243 M wdgtsGtk_tw_scan_files.h
244 M tlbaseMono_tool.c
245 M tlbaseSeq_roitool.c
246 M tlbaseSeq_tool.c
247 M tlbaseSter_tool.c
248
249 . Added a warning that TINA cannot output DICOM or NEMA files when the user tries
250 to save a sequence in this format.
251
252 M tlbaseSeq_io.c
253
254 . Added the abilit to store a curve contained in a curve widget as a set of
255 control points, via a structure in wdgtsDef.h, so that it can be replicated
256 exactly (the Gtk functions only allow the curve to be stored as a vector of
257 points of a user-defined length; they do not allow easy access to the control
258 points). The tw_curve_apply function in wdgtsGtk_tw_curve allows a forced
259 call to the apply button e.g. if the curve information is loaded from a file.
260
261 M wdgtsDef.h
262 M wdgtsGtk_tw_curve.c
263 M wdgtsGtk_tw_curve.h
264
265 . Modified the button that spawns a colour selection dialog box so that an
266 initial colour can be passed to it if a previous selection has been made
267 (rather than starting with white), and added a reset function so that the
268 colour swatch on the button can be set from within TINA.
269
270 M wdgtsGtk_tw_colourbutton.c
271 M wdgtsGtk_tw_colourbutton.h
272
273 . Additional prototypes for several of the updates listed above
274
275 wdgtsPro.h
276
277
278 --------------------------------------------------------------------------------------
279 ID:3 pab 12/03/2010 (linux 2.6.22)
280
281 . Modifications to the libraries to support the new manual landmarking tool,
282 developed as part of the collaborative project with the Max Planck Institute
283 for Evolutionary Biology.
284
285 . Added two new functions (tv_col_image2 and tv_col_imrect2) that allow the
286 display of full colour images in TINA Tv tools, by bypassing the TINA
287 colourmap functionality and using GTK RGB drawing functions directly. NOTE:
288 this is a first step; all drawing should eventually migrate towards using
289 these functions, allowing all of the colourmap code to be deprecated.
290
291 M drawPaint_imrect.c
292 M drawPaint_imrect.h
293
294 . Added a new choice of mouse functionality for 3D Tv's (ZOOM4), with fully 3D
295 rotations (ZOOM3 uses tv_rot on the middle mouse button, which rotates the
296 2D image) and does not draw in overlay mode. This is required by the manual
297 landmarking tool, which draws in a different way to the other 3D Tv's in
298 TINA (the 3D rendering is done by an external library, producing a 2D image
299 for display, but the 3D mouse functionality is done by TINA). However,
300 since overlay mode is not used, ZOOM4 requires that double-buffering is used
301 on the Tv to ensure that the display is flushed during mouse manipulations.
302
303 M draw_TvDef.h
304 M drawTv_zoom.c
305 M drawTv_zoom.h
306
307 . Added Tv activity messages for the ZOOM3 and ZOOM4 cases.
308
309 M drawTv_activity.c
310 M drawTv_activity.h
311
312 . Added a function (tv_color_set_rgb) to set the colour of a Tv using RGB
313 values directly, bypassing the TINA colourmap functionality.
314
315 M drawTv_props.c
316 M drawTv_props.h
317
318 . Added a new function (tv_screen_rgb_set) that sets the forground colour
319 of a Tv using RGB values directly, bypassing the TINA colourmap
320 functionality.
321
322 M gphxGdk_color.c
323 M gphxGdk_color.h
324
325 . Added a new function (tv_screen_col_image) that draws a colour image to a
326 Tv screen using GTK's RGB drawing functions, bypassing the TINA colourmap
327 functionality completely.
328
329 M gphxGdk_draw.c
330 M gphxGdk_draw.h
331
332 . New button widget that spawns a GTK colour selection dialog
333
334 A wdgtsGtk_tw_colourbutton.c
335 A wdgtsGtk_tw_colourbutton.h
336
337 . New widget based on the GTK curve widget, allowing freeform definition of
338 lookup tables.
339
340 A wdgtsGtk_tw_curve.c
341 A wdgtsGtk_tw_curve.h
342
343 . Small modification to the macro reader function, allowing longer lines to
344 support the new curve widget.
345
346 M wdgtsGtk_tw_command.c
347
348 . Fixed both s(global/value) reset functions: gtk_entry_set_text requires a
349 const string.
350
351 M wdgtsGtk_tw_sglobal.c
352 M wdgtsGtk_tw_svalue.c
353
354 . Included the new ZOOM4 mode as a case in make_movie_proc.
355
356 M tlbaseView_tool.c
357
358 . Added a new colour Tv to the colour tool, which displays a full-colour
359 version of the image currently loaded into the tool using the new colour
360 image drawing functionality.
361
362 M tlbaseColour_tool.c
363 M tlbaseColour_view.c
364 M tlbaseColour_view.h
365
366 . Modification to the sequence tool to allow images to be downsampled on loading
367 (for the case where the sequence is too large to fit in available memory). A
368 new field (downsample) has been added to the sequence structure to indicate
369 this.
370
371 M tlbaseSeq_io.c
372 M tlbaseSeq_io.h
373 M tlbaseSeq_tool.c
374
375 --------------------------------------------------------------------------------------
376 ID:2 pab 06/11/2009 (linux 2.6.22)
377
378 . Fixed a small memory leak in tv_screen_set_linewidth and
379 tv_screen_set_linestyle, where the GdkGCValues structures were allocated
380 but never freed.
381
382 M gphxGdk_props.c
383
384 --------------------------------------------------------------------------------------
385 ID:1 pab 04/11/2009 (linux 2.6.22)
386
387 . First RC of TINA 6
388 Changes compared to TINA 5:
389
390 - extensive rewrite of build system.
391 - all widget library interfaces except GTK+ 2 removed.
392
393 EOF-----------------------------------------------------------------------------------
394
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.