Merge git://repo.or.cz/git-gui
* git://repo.or.cz/git-gui: git-gui: adjust the minimum height of diff pane for shorter screen height git-gui: fix use of uninitialized variable git-gui: store wm state and fix wm geometry git-gui: Ensure submodule path is quoted properly git-gui: fix diff for partially staged submodule changes git-gui: Update russian translation git-gui: Limit display to a maximum number of files git-gui: remove warning when deleting correctly merged remote branch git-gui: Added Greek translation & glossary git-gui: display summary when showing diff of a submodule
This commit is contained in:
@ -745,6 +745,8 @@ set default_config(gui.newbranchtemplate) {}
|
||||
set default_config(gui.spellingdictionary) {}
|
||||
set default_config(gui.fontui) [font configure font_ui]
|
||||
set default_config(gui.fontdiff) [font configure font_diff]
|
||||
# TODO: this option should be added to the git-config documentation
|
||||
set default_config(gui.maxfilesdisplayed) 5000
|
||||
set font_descs {
|
||||
{fontui font_ui {mc "Main Font"}}
|
||||
{fontdiff font_diff {mc "Diff/Console Font"}}
|
||||
@ -1132,6 +1134,7 @@ set current_branch {}
|
||||
set is_detached 0
|
||||
set current_diff_path {}
|
||||
set is_3way_diff 0
|
||||
set is_submodule_diff 0
|
||||
set is_conflict_diff 0
|
||||
set selected_commit_type new
|
||||
set diff_empty_count 0
|
||||
@ -1698,10 +1701,12 @@ proc display_all_files_helper {w path icon_name m} {
|
||||
$w insert end "[escape_path $path]\n"
|
||||
}
|
||||
|
||||
set files_warning 0
|
||||
proc display_all_files {} {
|
||||
global ui_index ui_workdir
|
||||
global file_states file_lists
|
||||
global last_clicked
|
||||
global files_warning
|
||||
|
||||
$ui_index conf -state normal
|
||||
$ui_workdir conf -state normal
|
||||
@ -1713,7 +1718,18 @@ proc display_all_files {} {
|
||||
set file_lists($ui_index) [list]
|
||||
set file_lists($ui_workdir) [list]
|
||||
|
||||
foreach path [lsort [array names file_states]] {
|
||||
set to_display [lsort [array names file_states]]
|
||||
set display_limit [get_config gui.maxfilesdisplayed]
|
||||
if {[llength $to_display] > $display_limit} {
|
||||
if {!$files_warning} {
|
||||
# do not repeatedly warn:
|
||||
set files_warning 1
|
||||
info_popup [mc "Displaying only %s of %s files." \
|
||||
$display_limit [llength $to_display]]
|
||||
}
|
||||
set to_display [lrange $to_display 0 [expr {$display_limit-1}]]
|
||||
}
|
||||
foreach path $to_display {
|
||||
set s $file_states($path)
|
||||
set m [lindex $s 0]
|
||||
set icon_name [lindex $s 1]
|
||||
@ -2010,6 +2026,19 @@ proc do_quit {{rc {1}}} {
|
||||
|
||||
# -- Stash our current window geometry into this repository.
|
||||
#
|
||||
set cfg_wmstate [wm state .]
|
||||
if {[catch {set rc_wmstate $repo_config(gui.wmstate)}]} {
|
||||
set rc_wmstate {}
|
||||
}
|
||||
if {$cfg_wmstate ne $rc_wmstate} {
|
||||
catch {git config gui.wmstate $cfg_wmstate}
|
||||
}
|
||||
if {$cfg_wmstate eq {zoomed}} {
|
||||
# on Windows wm geometry will lie about window
|
||||
# position (but not size) when window is zoomed
|
||||
# restore the window before querying wm geometry
|
||||
wm state . normal
|
||||
}
|
||||
set cfg_geometry [list]
|
||||
lappend cfg_geometry [wm geometry .]
|
||||
lappend cfg_geometry [lindex [.vpane sash coord 0] 0]
|
||||
@ -3054,7 +3083,7 @@ frame .vpane.lower.diff.body
|
||||
set ui_diff .vpane.lower.diff.body.t
|
||||
text $ui_diff -background white -foreground black \
|
||||
-borderwidth 0 \
|
||||
-width 80 -height 15 -wrap none \
|
||||
-width 80 -height 5 -wrap none \
|
||||
-font font_diff \
|
||||
-xscrollcommand {.vpane.lower.diff.body.sbx set} \
|
||||
-yscrollcommand {.vpane.lower.diff.body.sby set} \
|
||||
@ -3212,7 +3241,7 @@ proc popup_diff_menu {ctxm ctxmmg x y X Y} {
|
||||
set l [mc "Stage Hunk For Commit"]
|
||||
set t [mc "Stage Line For Commit"]
|
||||
}
|
||||
if {$::is_3way_diff
|
||||
if {$::is_3way_diff || $::is_submodule_diff
|
||||
|| $current_diff_path eq {}
|
||||
|| {__} eq $state
|
||||
|| {_O} eq $state
|
||||
@ -3249,6 +3278,14 @@ wm geometry . [lindex $gm 0]
|
||||
unset gm
|
||||
}
|
||||
|
||||
# -- Load window state
|
||||
#
|
||||
catch {
|
||||
set gws $repo_config(gui.wmstate)
|
||||
wm state . $gws
|
||||
unset gws
|
||||
}
|
||||
|
||||
# -- Key Bindings
|
||||
#
|
||||
bind $ui_comm <$M1B-Key-Return> {do_commit;break}
|
||||
|
Reference in New Issue
Block a user