filemorph

Check-in [932a56af18]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:More tweaks for updating mechanism
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:932a56af18832d1231abfe1ff248498bc2d38811
User & Date: kevin 2015-10-06 02:45:01
Context
2015-10-06
11:23
Tweak update process check-in: dd6f254b30 user: kevin tags: trunk
02:45
More tweaks for updating mechanism check-in: 932a56af18 user: kevin tags: trunk
01:59
Update various bits check-in: 6e39ca9f2d user: kevin tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to scriptlibs/softwareupdate/softwareupdate.tcl.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
...
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
...
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
    }


    variable icon
    variable appname
    variable tmpdir
    variable currentinstall
	variable versionnumber
    
    switch [tk windowingsystem] {
	"aqua" {
	    set tmpdir $::env(TMPDIR)

	}
	
................................................................................
	"aqua" {
	    set approot [info nameofexecutable]
	    set apppath [split $approot /]
	    set currentinstall [join [lrange $apppath 0 [lsearch $apppath "*.app"]] / ]
	}
	
	"win32" {
	    set currentinstall [file join $::env(APPDATA) "$appname"_App]
	    
	}
	
	"x11" {
	    return
	}
    }
    
    return $currentinstall

}

#prompt user to update: for Perl, which chokes on XML parsing from Tcl
proc updatePitchPerl {apptitle appnumber currentapp changelog} {
	variable appname
	variable myicon
	variable changedata
	variable currentversion
	variable versionnumber
	variable changelist

	catch {destroy .updateprogress}

	catch {destroy .update}


	toplevel .update
	wm title .update "Software Update"

	wm withdraw .update

	frame .update.f -bg gray95
	pack .update.f -fill both -expand yes

	frame .update.f.top -bg gray95
	pack .update.f.top -fill both -expand yes

	label .update.f.top.i -bitmap myicon -bg gray95 -relief flat -highlightthickness 0
	pack .update.f.top.i -side left -fill both -expand yes

	frame .update.f.top.r -bg gray95
	pack .update.f.top.r -side right -fill both -expand yes

	label .update.f.top.r.title -text "A new version of $apptitle is available!" -font {-weight bold} -bg gray95 -relief flat -highlightthickness 0
	pack .update.f.top.r.title -fill both -expand yes -side top

	label .update.f.top.r.msg -text "$apptitle $appnumber is available--you have $currentapp. Would you like to download it now?" -bg gray95 -relief flat -highlightthickness 0
	pack .update.f.top.r.msg -fill both -expand yes -side top

	label .update.f.top.r.release -text "Release Notes:" -font {-weight bold} -relief flat -highlightthickness 0 -bg gray95 
	pack .update.f.top.r.release -side top -fill both -expand yes

	text .update.f.top.r.text -font TkDefaultFont
	pack .update.f.top.r.text -side top -fill both -expand yes

	ttk::frame .update.f.top.r.bottom -padding 5
	pack .update.f.top.r.bottom -side bottom -fill both -expand yes

	ttk::button .update.f.top.r.bottom.skip -text "Skip This Version" -command {destroy .update}

	ttk::button .update.f.top.r.bottom.install -text "Install Update" -default active -command softwareupdate::installUpdate
	
	pack .update.f.top.r.bottom.install .update.f.top.r.bottom.skip  -side right  -fill both -expand yes

	set changetext [split $changelog *]

	set changetext [lrange $changetext 1 end]

	foreach item $changetext {
	    
	    .update.f.top.r.text insert end "* $item\n"

	}

	.update.f.top.r.text configure -state disabled

	wm resizable .update 0 0
	wm deiconify .update
	raise .update
	wm transient .update .

    }


#prompt user to update
proc updatePitch {} {
    variable appname
    variable icon
    variable changedata
................................................................................

		exit
	    }
	}
	
	"win32" {
	    
	    file rename -force $currentinstall/[list $appname].exe $tmpdir/[list $appname].exe~
	    file copy $tmpdir/[list $appname].exe $currentinstall/[list $appname.exe]
	    exec $currentinstall/[list $appname].exe &
	    exit
	}
	
	"x11" {
	    tk_messageBox -icon info -parent . -message "Please ask the maintainer of $appname on your platform to prepare a release of the latest version."







|







 







|
|
|
<











|
|
|
|
|
|

|

|


|
|

|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|

|

|
|
|

|

|

|
|
|

|

|

|
|
|
|

|







 







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
...
124
125
126
127
128
129
130
131
132
133

134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
...
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
    }


    variable icon
    variable appname
    variable tmpdir
    variable currentinstall
    variable versionnumber
    
    switch [tk windowingsystem] {
	"aqua" {
	    set tmpdir $::env(TMPDIR)

	}
	
................................................................................
	"aqua" {
	    set approot [info nameofexecutable]
	    set apppath [split $approot /]
	    set currentinstall [join [lrange $apppath 0 [lsearch $apppath "*.app"]] / ]
	}
	
	"win32" {
	    set currentinstall [file join $::env(APPDATA) ${appname}_App]  
	}
	

	"x11" {
	    return
	}
    }
    
    return $currentinstall

}

#prompt user to update: for Perl, which chokes on XML parsing from Tcl
proc updatePitchPerl {apptitle appnumber currentapp changelog} {
    variable appname
    variable icon
    variable changedata
    variable currentversion
    variable versionnumber
    variable changelist

    catch {destroy .updateprogress}

    catch {destroy .update}


    toplevel .update
    wm title .update "Software Update"

    wm withdraw .update

    frame .update.f -bg gray95
    pack .update.f -fill both -expand yes

    frame .update.f.top -bg gray95
    pack .update.f.top -fill both -expand yes

    label .update.f.top.i -image $icon -bg gray95 -relief flat -highlightthickness 0
    pack .update.f.top.i -side left -fill both -expand yes

    frame .update.f.top.r -bg gray95
    pack .update.f.top.r -side right -fill both -expand yes

    label .update.f.top.r.title -text "A new version of $apptitle is available!" -font {-weight bold} -bg gray95 -relief flat -highlightthickness 0
    pack .update.f.top.r.title -fill both -expand yes -side top

    label .update.f.top.r.msg -text "$apptitle $appnumber is available--you have $currentapp. Would you like to download it now?" -bg gray95 -relief flat -highlightthickness 0
    pack .update.f.top.r.msg -fill both -expand yes -side top

    label .update.f.top.r.release -text "Release Notes:" -font {-weight bold} -relief flat -highlightthickness 0 -bg gray95 
    pack .update.f.top.r.release -side top -fill both -expand yes

    text .update.f.top.r.text -font TkDefaultFont
    pack .update.f.top.r.text -side top -fill both -expand yes

    ttk::frame .update.f.top.r.bottom -padding 5
    pack .update.f.top.r.bottom -side bottom -fill both -expand yes

    ttk::button .update.f.top.r.bottom.skip -text "Skip This Version" -command {destroy .update}

    ttk::button .update.f.top.r.bottom.install -text "Install Update" -default active -command softwareupdate::installUpdate
    
    pack .update.f.top.r.bottom.install .update.f.top.r.bottom.skip  -side right  -fill both -expand yes

    set changetext [split $changelog *]

    set changetext [lrange $changetext 1 end]

    foreach item $changetext {
	
	.update.f.top.r.text insert end "* $item\n"

    }

    .update.f.top.r.text configure -state disabled

    wm resizable .update 0 0
    wm deiconify .update
    raise .update
    wm transient .update .

}


#prompt user to update
proc updatePitch {} {
    variable appname
    variable icon
    variable changedata
................................................................................

		exit
	    }
	}
	
	"win32" {
	    
	    file rename -force [file nativename [file normalize [file join $currentinstall [list $appname].exe]]] [file nativename [file normalize [file join $tmpdir [list $appname].exe~]]]
	    file copy $tmpdir/[list $appname].exe $currentinstall/[list $appname.exe]
	    exec $currentinstall/[list $appname].exe &
	    exit
	}
	
	"x11" {
	    tk_messageBox -icon info -parent . -message "Please ask the maintainer of $appname on your platform to prepare a release of the latest version."