Compare commits

...

6 Commits

Author SHA1 Message Date
svkalinin 335d088344 Fix 2022-10-21 14:14:27 +03:00
svkalinin 0a1699f294 Фикс 2022-10-21 14:09:42 +03:00
svkalinin 613912c235 Добавил диалог создания и переключения git-веток 2022-10-21 14:01:53 +03:00
svkalinin ccc75b2b18 Создание ветки 2022-10-21 13:21:32 +03:00
svkalinin a3d9001cc8 Фикс 2022-10-21 13:00:30 +03:00
svkalinin 517a724780 Новые иконки 2022-10-21 12:57:38 +03:00
5 changed files with 141 additions and 7 deletions

View File

@ -45,6 +45,44 @@ namespace eval Git {
return $res
}
proc Checkout {opt {ent ".branch.entBranch"}} {
global cfgVariables activeProject
set cmd exec
set d [pwd]
if {$activeProject ne ""} {
cd $activeProject
}
lappend cmd $cfgVariables(gitCommand)
lappend cmd "checkout"
# lappend cmd "-s"
# lappend cmd "--"
# lappend cmd $activeProject
switch $opt {
switchBranch {
set branch [.branch.lBox get [.branch.lBox curselection]]
lappend cmd "[string trim $branch]"
}
new {
lappend cmd "-b"
lappend cmd "[$ent get]"
# puts "Branch [$ent get]"
}
}
catch $cmd pipe
puts $cmd
puts $pipe
if [regexp -nocase -- {^error:} $pipe match] {
return
}
foreach line [split $pipe "\n"] {
lappend res $line
}
# cd $d
if [info exists res] {
return $res
}
}
proc Branches {opt} {
global cfgVariables activeProject
set cmd exec
@ -296,6 +334,8 @@ namespace eval Git {
proc DialogUpdate {w} {
global activeProject
# Git repo status
set lblText "$activeProject | [::msgcat::mc "Branch"]: [Git::Branches current]"
$w.header.lblGit configure -text $lblText
$w.body.t delete 1.0 end
$w.body.tCommit delete 1.0 end
$w.body.lCommit delete 0 end
@ -387,7 +427,78 @@ namespace eval Git {
grid rowconfigure $frm 0 -weight 1
#set frm_btn [frame .add.frm_btn -border 0]
.auth_win.frm_btn.btn_ok configure -command "Git::GetAuthData $url"
}
}
proc BranchDialog {x y} {
global editors lexers newBranchName
variable win
# set txt $w.frmText.t
set win .branch
# set x [winfo rootx .frmWork]
# set y [winfo rooty .frmWork]
if { [winfo exists $win] } { destroy $win }
toplevel $win
wm transient $win .
wm overrideredirect $win 1
ttk::button $win.bAdd -image new_14x14 -compound left -text "[::msgcat::mc "Add new branch"]" \
-command {
grid forget .branch.lBox .branch.yscroll
grid .branch.entBranch
bind .branch <Return> "Git::Checkout new .branch.entBranch; destroy .branch"
}
ttk::entry $win.entBranch -textvariable newBranchName
listbox $win.lBox -width 30 -border 2 -yscrollcommand "$win.yscroll set" -border 1
ttk::scrollbar $win.yscroll -orient vertical -command "$win.lBox yview"
# pack $win.lBox -expand true -fill y -side left
# pack $win.yscroll -side left -expand false -fill y
grid $win.bAdd -column 0 -row 0 -columnspan 2 -sticky new
grid $win.lBox -column 0 -row 1
grid $win.yscroll -column 1 -row 1
set lst [Git::Branches all]
foreach { word } $lst {
$win.lBox insert end $word
}
focus -force $win.lBox
catch { $win.lBox activate 0 ; $win.lBox selection set 0 0 }
if { [set height [llength $lst]] > 10 } { set height 10 }
$win.lBox configure -height $height
bind $win <Escape> {
destroy .branch
break
}
bind $win.lBox <Escape> {
destroy .branch
break
}
bind $win.lBox <Return> {
Git::Checkout switchBranch
.frmStatus.lblGit configure -text "[::msgcat::mc "Branch"]: [Git::Branches current]"
destroy .branch
}
bind $win.lBox <Any-Key> {}
bind $win.lBox <Double-Button-1> {
Git::Checkout switchBranch
.frmStatus.lblGit configure -text "[::msgcat::mc "Branch"]: [Git::Branches current]"
destroy .branch
}
# Определям расстояние до края экрана (основного окна) и если
# оно меньше размера окна со списком то сдвигаем его вверх
set winGeom [winfo reqheight $win]
set topHeight [winfo height .]
# puts "$x, $y, $winGeom, $topHeight"
if [expr [expr $topHeight - $y] < $winGeom] {
set y [expr $topHeight - $winGeom]
}
wm geom $win +$x+$y
}
proc Dialog {} {
global cfgVariables activeProject nbEditor
variable fr
@ -400,10 +511,9 @@ namespace eval Git {
}
set fr [NB::InsertItem $nbEditor git_browse "git"]
ttk::frame $fr.header
set lblName "lblGit"
set lblText "$activeProject | [::msgcat::mc "Branch"]: [Git::Branches current]"
ttk::label $fr.header.$lblName -text $lblText -justify right
pack $fr.header.$lblName -side right -expand true -fill x
ttk::label $fr.header.lblGit -text $lblText -justify right
pack $fr.header.lblGit -side right -expand true -fill x
pack $fr.header -side top -fill x -padx 3
ttk::frame $fr.body
@ -479,7 +589,6 @@ namespace eval Git {
grid $fr.body.vLog -column 5 -row 8 -sticky nsw
grid $fr.body.hLog -column 0 -row 9 -sticky new -columnspan 5
grid rowconfigure $fr.body $fr.body.t -weight 1
grid columnconfigure $fr.body $fr.body.t -weight 1
grid rowconfigure $fr.body $fr.body.tCommit -weight 1
@ -503,7 +612,11 @@ namespace eval Git {
}
catch { $fr.body.lBox activate 0 ; $fr.body.lBox selection set 0 0 }
bind $fr.header.lblGit <Button-1><ButtonRelease-1> {
Git::BranchDialog %X %Y
Git::DialogUpdate $Git::fr
}
bind $fr.body.lBox <Return> "Git::CommitAdd $fr"
bind $fr.body.lBox <Double-Button-1> "catch {Git::CommitAdd $fr}"
bind $fr.body.lBox <Button-1><ButtonRelease-1> "Git::ListBoxPress $fr"

View File

@ -81,6 +81,10 @@ pack .frmStatus -side top -padx 1 -fill x
#pack [label .frmMenu.lbl -text "ddd"]
pack [ttk::label .frmStatus.lblGitLogo -justify left] -side left
pack [ttk::label .frmStatus.lblGit] -side left
bind .frmStatus.lblGit <Button-1><ButtonRelease-1> {
Git::BranchDialog %X %Y
}
pack [ttk::label .frmStatus.lblPosition -justify right] -side right
ttk::menubutton .frmMenu.mnuFile -text [::msgcat::mc "File"] -menu .frmMenu.mnuFile.m

View File

@ -1227,4 +1227,20 @@ image create photo key_64x64 -data {
wdHn4NLL4fOGmn0JbF0qb2nWI29s1mm6cyK9kYvAB6oDHL5+BMKx29rINNhQ9RT8Yz50nwSTn4aX
lv5nqmvzpLrc9PcBCBHHCsaqDxeqWR9WcBn170nIHpyxHHs1pQbZhZFTqW4gCfsXgiSRx0hxjm0w
dh5PQV++Po08melyFTqZXF95R/4NG2ENnSFASIsAAAAASUVORK5CYII=
}
image create photo new_14x14 -data {
iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9
kT1Iw0AcxV9TtVoqDlYQcchQHcSCqIijVqEIFUKt0KqDyaUfQpOGJMXFUXAtOPixWHVwcdbVwVUQ
BD9AHJ2cFF2kxP8lhRaxHhz34929x907QKgWmWa1jQGabpvJeExMZ1bEwCuC6EMXRtAhM8uYlaQE
Wo6ve/j4ehflWa3P/Tm61azFAJ9IPMMM0yZeJ57atA3O+8RhVpBV4nPiUZMuSPzIdcXjN855lwWe
GTZTyTniMLGYb2KliVnB1IgniSOqplO+kPZY5bzFWSuWWf2e/IWhrL68xHWag4hjAYuQIEJBGRso
wkaUVp0UC0naj7XwD7h+iVwKuTbAyDGPEjTIrh/8D353a+Umxr2kUAxof3GcjyEgsAvUKo7zfew4
tRPA/wxc6Q1/qQpMf5JeaWiRI6BnG7i4bmjKHnC5A/Q/GbIpu5KfppDLAe9n9E0ZoPcWCK56vdX3
cfoApKirxA1wcAgM5yl7rcW7O5t7+/dMvb8fS2tyl3d3iOIAAAAGYktHRAD/AP8A/6C9p5MAAAAJ
cEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmChUJLR1tQ+CKAAAA90lEQVQoz62SsUoEMRiEv3+N
uwfaiC9hYyuIPsL2e729jYVPYWPnGwjb5imustDqGkklCFffhs3/2+xCPLyI4ECKMDOZ5J/Af8N7
v/TeL/fxbh9hZrcppQXwAqyBlPNVIVTGcTwGLoDDXbJkxMzkJ9OvxhJkHoSq3omIZNyZmbkY40dd
1xsRUTOzqqoe2rZ9dtOVLKW0SCkdzYfVde3MTFTVxRhPZl0I4Rp4+5YAXM5v6vv+XlVd13VPwAbQ
TLvK61gD7/OmaZqbYRhOgU+gB7aZdsyNKe9KRBSwKWm7YyxO1ab1t58jIo8hhKtiHQWcAwfAKzDm
xBfyfGViwB4MCgAAAABJRU5ErkJggg==
}

View File

@ -9,6 +9,7 @@
::msgcat::mcset ru "Add as new project" "Добавить как Новый Проект"
::msgcat::mcset ru "Add to existing project" "Добавить в существующий проект"
::msgcat::mcset ru "Add to project" "Добавить в проект"
::msgcat::mcset ru "Add new branch" "Создать новую ветку"
::msgcat::mcset ru "Archive created in" "Архив помещен в"
::msgcat::mcset ru "Archive directory" "Каталог c архивами"
::msgcat::mcset ru "Archive file mask" "Маска архива"

View File

@ -10,7 +10,7 @@ exec wish "$0" -- "$@"
######################################################
# Version: 2.0.0
# Release: alpha
# Build: 20102022105211
# Build: 21102022140732
######################################################
# определим текущую версию, релиз и т.д.