Compare commits

4 Commits

6 changed files with 70 additions and 11 deletions

8
debian/changelog vendored
View File

@@ -1,3 +1,11 @@
projman (2.0.0-alpha23) stable; urgency=medium
* Исправлен флаг модификации при открытии файла
* Исправлена 'Отмена' до пустого файла. Внес исправления на основе изменений https://github.com/wandrien/projman
* Исправлено поведение при сочетании клавиш Control-y (повторение последнего действия)
-- svk <svk@nuk-svk.ru> Mon, 19 Jan 2026 14:49:29 +0300
projman (2.0.0-alpha22) stable; urgency=medium projman (2.0.0-alpha22) stable; urgency=medium
* Исправил закрытие вкладок редактора и сохранение файла при разделении экрана. * Исправил закрытие вкладок редактора и сохранение файла при разделении экрана.

View File

@@ -796,14 +796,15 @@ namespace eval Editor {
bind $txt <Control-comma> "Editor::Comment $txt $fileType" bind $txt <Control-comma> "Editor::Comment $txt $fileType"
bind $txt <Control-period> "Editor::Uncomment $txt $fileType" bind $txt <Control-period> "Editor::Uncomment $txt $fileType"
bind $txt <Control-eacute> Find bind $txt <Control-eacute> Find
bind $txt <Insert> {OverWrite} # bind $txt <Insert> {OverWrite}
bind $txt <ButtonRelease-1> "Editor::SearchBrackets $txt" bind $txt <ButtonRelease-1> "Editor::SearchBrackets $txt"
bind $txt <Button-1><ButtonRelease-1> "Editor::SelectionHighlight $txt" bind $txt <Button-1><ButtonRelease-1> "Editor::SelectionHighlight $txt"
bind $txt <<Modified>> "SetModifiedFlag $w $nb" bind $txt <<Modified>> "SetModifiedFlag $w $nb auto"
bind $txt <Control-u> "Editor::SearchBrackets %W" bind $txt <Control-u> "Editor::SearchBrackets %W"
bind $txt <Control-Cyrillic_ghe> "Editor::SearchBrackets %W" bind $txt <Control-Cyrillic_ghe> "Editor::SearchBrackets %W"
bind $txt <Control-J> "catch {Editor::GoToFunction $txt}" bind $txt <Control-J> "catch {Editor::GoToFunction $txt}"
bind $txt <Control-j> "catch {Editor::GoToFunction $txt}; break" bind $txt <Control-j> "catch {Editor::GoToFunction $txt}; break"
bind $txt <Control-y> {Redo; break}
bind $txt <Control-Cyrillic_o> "catch {Editor::GoToFunction $txt}; break" bind $txt <Control-Cyrillic_o> "catch {Editor::GoToFunction $txt}; break"
bind $txt <Alt-w> "$txt delete {insert wordstart} {insert wordend}" bind $txt <Alt-w> "$txt delete {insert wordstart} {insert wordend}"
bind $txt <Alt-odiaeresis> "$txt delete {insert wordstart} {insert wordend}" bind $txt <Alt-odiaeresis> "$txt delete {insert wordstart} {insert wordend}"
@@ -965,7 +966,7 @@ namespace eval Editor {
set nbEditorItem [NB::InsertItem $nbEditor $fileFullPath "file"] set nbEditorItem [NB::InsertItem $nbEditor $fileFullPath "file"]
# puts "$nbEditorItem, $nbEditor" # puts "$nbEditorItem, $nbEditor"
Editor $fileFullPath $nbEditor $nbEditorItem Editor $fileFullPath $nbEditor $nbEditorItem
SetModifiedFlag $nbEditorItem $nbEditor SetModifiedFlag $nbEditorItem $nbEditor force
focus -force $nbEditorItem.frmText.t.t focus -force $nbEditorItem.frmText.t.t
} }

View File

@@ -489,7 +489,7 @@ namespace eval FileOper {
set txt $itemName.frmText.t set txt $itemName.frmText.t
if ![string match "*untitled*" $itemName] { if ![string match "*untitled*" $itemName] {
set file [open "$fileFullPath" r] set file [open "$fileFullPath" r]
$txt insert end [chan read -nonewline $file] $txt insert end [chan read -nonewline $file]
close $file close $file
} }
# Delete emty last line # Delete emty last line
@@ -497,6 +497,11 @@ namespace eval FileOper {
$txt delete {end-1 line} end $txt delete {end-1 line} end
# puts ">[$txt get {end-1 line} end]<" # puts ">[$txt get {end-1 line} end]<"
} }
# ------------
# Thanks https://github.com/wandrien/
# https://github.com/wandrien/projman/commit/7d5539ac2031fbdcb0f4a97465ff19d0c348cf33
$txt edit reset
# -----------
$txt see 1.0 $txt see 1.0
} }

View File

@@ -25,8 +25,8 @@ bind . <Control-q> Quit
bind . <Control-Q> Quit bind . <Control-Q> Quit
bind . <Control-Cyrillic_shorti> Quit bind . <Control-Cyrillic_shorti> Quit
bind . <Control-eacute> Quit bind . <Control-eacute> Quit
bind . <Insert> Add # bind . <Insert> Add
bind . <Delete> Del # bind . <Delete> Del
bind . <F1> ShowHelpDialog bind . <F1> ShowHelpDialog
bind . <Control-n> Editor::New bind . <Control-n> Editor::New
bind . <Control-N> Editor::New bind . <Control-N> Editor::New
@@ -62,6 +62,21 @@ bind . <Alt-Cyrillic_el> {
} }
} }
# -------------
# Thanks https://github.com/wandrien/
# https://github.com/wandrien/projman/commit/22f6e235c3532c20573d44ee7eaaaa1fb56ad544
event add <<Copy>> <Control-Insert>
event add <<Paste>> <Shift-Insert>
event add <<Cut>> <Shift-Delete>
set latestTxtWidget {}
bind all <FocusIn> {
if {[winfo class %W] eq "Ctext"} {
global latestTxtWidget
set latestTxtWidget %W
}
}
# ---------
bind . <Control-s> {FileOper::Save} bind . <Control-s> {FileOper::Save}
bind . <Control-S> {FileOper::Save} bind . <Control-S> {FileOper::Save}
bind . <Control-Cyrillic_hardsign> {FileOper::Save} bind . <Control-Cyrillic_hardsign> {FileOper::Save}

View File

@@ -195,9 +195,19 @@ proc ResetModifiedFlag {w nbEditor} {
# puts "ResetModifiedFlag: $lbl" # puts "ResetModifiedFlag: $lbl"
$nbEditor tab $w -text $lbl $nbEditor tab $w -text $lbl
} }
proc SetModifiedFlag {w nbEditor} { proc SetModifiedFlag {w nbEditor flag} {
global modified global modified
#$w.frmText.t edit modified false # ------------
# Thanks https://github.com/wandrien/
# https://github.com/wandrien/projman/commit/04e5c892ae06d3e013472d292cd4435804184f6b
if {$flag eq "force"} {
$w.frmText.t edit modified true
} else {
if {![$w.frmText.t edit modified]} {
return
}
}
# ---------
set modified($w) "true" set modified($w) "true"
set lbl [$nbEditor tab $w -text] set lbl [$nbEditor tab $w -text]
# puts "SetModifiedFlag: $w; $modified($w); >$lbl<" # puts "SetModifiedFlag: $w; $modified($w); >$lbl<"
@@ -1124,3 +1134,24 @@ proc ExecutorCommandPathSetting {fileType} {
puts $cfgVariables($fileType) puts $cfgVariables($fileType)
} }
} }
# -----------
# Thanks https://github.com/wandrien/
# https://github.com/wandrien/projman/commit/22f6e235c3532c20573d44ee7eaaaa1fb56ad544
proc SendEventToLatestTxtWidget {ev} {
global latestTxtWidget
if {$latestTxtWidget eq ""} {
return
} elseif {[winfo exists $latestTxtWidget] && [winfo class $latestTxtWidget] eq "Ctext"} {
event generate ${latestTxtWidget}.t $ev
} else {
set latestTxtWidget ""
}
}
proc Cut {} { SendEventToLatestTxtWidget <<Cut>> }
proc Copy {} { SendEventToLatestTxtWidget <<Copy>> }
proc Paste {} { SendEventToLatestTxtWidget <<Paste>> }
proc Undo {} { SendEventToLatestTxtWidget <<Undo>> }
proc Redo {} { SendEventToLatestTxtWidget <<Redo>> }
# ------------

View File

@@ -9,8 +9,8 @@ exec wish8.6 "$0" -- "$@"
# Home page: https://nuk-svk.ru # Home page: https://nuk-svk.ru
###################################################### ######################################################
# Version: 2.0.0 # Version: 2.0.0
# Release: alpha22 # Release: alpha23
# Build: 19012026144418 # Build: 21012026130048
###################################################### ######################################################
# определим текущую версию, релиз и т.д. # определим текущую версию, релиз и т.д.
@@ -34,7 +34,6 @@ while {[gets $f line] >=0} {
} }
close $f close $f
package require msgcat package require msgcat
package require inifile package require inifile
package require ctext package require ctext