Merge branch 'kb/fast-hashmap'
[gitweb.git] / git-gui / lib / choose_repository.tcl
index fae119286d3d4511d1b362fb05a8fab775e80a40..3c10bc656d207553c8c093abcca275dd253a57fb 100644 (file)
@@ -24,6 +24,10 @@ field sorted_recent       ; # recent repositories (sorted)
 constructor pick {} {
        global M1T M1B use_ttk NS
 
+       if {[set maxrecent [get_config gui.maxrecentrepo]] eq {}} {
+               set maxrecent 10
+       }
+
        make_dialog top w
        wm title $top [mc "Git Gui"]
 
@@ -148,7 +152,7 @@ constructor pick {} {
                        -background [get_bg_color $w_body.recentlabel] \
                        -wrap none \
                        -width 50 \
-                       -height 10
+                       -height $maxrecent
                $w_recentlist tag conf link \
                        -foreground blue \
                        -underline 1
@@ -214,14 +218,6 @@ constructor pick {} {
        }
 }
 
-proc _home {} {
-       if {[catch {set h $::env(HOME)}]
-               || ![file isdirectory $h]} {
-               set h .
-       }
-       return $h
-}
-
 method _center {} {
        set nx [winfo reqwidth $top]
        set ny [winfo reqheight $top]
@@ -272,7 +268,11 @@ proc _append_recentrepos {path} {
        git config --global --add gui.recentrepo $path
        load_config 1
 
-       while {[llength $recent] > 10} {
+       if {[set maxrecent [get_config gui.maxrecentrepo]] eq {}} {
+               set maxrecent 10
+       }
+
+       while {[llength $recent] > $maxrecent} {
                _unset_recentrepo [lindex $recent 0]
                set recent [lrange $recent 1 end]
        }
@@ -294,7 +294,9 @@ method _next {action} {
        destroy $w_body
        if {![winfo exists $w_next]} {
                ${NS}::button $w_next -default active
-               pack $w_next -side right -padx 5 -before $w_quit
+               set pos -before
+               if {[tk windowingsystem] eq "win32"} { set pos -after }
+               pack $w_next -side right -padx 5 $pos $w_quit
        }
        _do_$action $this
 }
@@ -420,7 +422,7 @@ method _new_local_path {} {
        if {$local_path ne {}} {
                set p [file dirname $local_path]
        } else {
-               set p [_home]
+               set p [pwd]
        }
 
        set p [tk_chooseDirectory \
@@ -541,7 +543,7 @@ method _open_origin {} {
        if {$origin_url ne {} && [file isdirectory $origin_url]} {
                set p $origin_url
        } else {
-               set p [_home]
+               set p [pwd]
        }
 
        set p [tk_chooseDirectory \
@@ -1042,7 +1044,7 @@ method _open_local_path {} {
        if {$local_path ne {}} {
                set p $local_path
        } else {
-               set p [_home]
+               set p [pwd]
        }
 
        set p [tk_chooseDirectory \