Compare commits
5 Commits
tcltk9.0
...
ead8267d61
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ead8267d61 | ||
|
|
45cbd7845b | ||
|
|
ef87b88156 | ||
| 264368c61f | |||
| c38dffeeb9 |
28
debian/changelog
vendored
28
debian/changelog
vendored
@@ -1,3 +1,6 @@
|
||||
<<<<<<< HEAD
|
||||
projman (2.0.0-alpha20) stable; urgency=medium
|
||||
=======
|
||||
projman (2.1.0-alpha0) stable; urgency=medium
|
||||
|
||||
* Добавил вывод информации о версиях tcl и tk
|
||||
@@ -12,13 +15,36 @@ projman (2.1.0-alpha0) stable; urgency=medium
|
||||
-- Sergey Kalinin <svkalinin@samsonpost.ru> Mon, 10 Nov 2025 13:00:43 +0300
|
||||
|
||||
projman (2.0.0-alpha19) stable; urgency=medium
|
||||
>>>>>>> tcltk9.0
|
||||
|
||||
* Исправил сохранение и закрытие нового файла. Теперь при сохранении файл будет переоткрыт под новым именем.
|
||||
* Добавил проверку пакета Img. И поправил проверку типов изображений
|
||||
* Переделал сигналы и сочетания
|
||||
* Небольшие исправления
|
||||
* Добавлен перевод фокуса ввода на прежнее окно после закрытия диалога выполнения.
|
||||
* Добавлена передача сигналов для закрытия запущенного процесса
|
||||
* Изменил виджет текста в окне псевдо-терминала. Добавил подстановку имени файла к командную строку по шаблону %f
|
||||
* Добавлен диалог настроек
|
||||
* Добавил псевдо-терминал
|
||||
* Добавлен диалог при открытии файлов отличных от текстовых
|
||||
* Поправил тему оформления
|
||||
* Исправлена работа в windows
|
||||
* Уменьшил колдичество выводимой отладочной информации
|
||||
* Добавлено определение пути до git в зависимости от платформы.
|
||||
* Исправлено создание файла конфигурации
|
||||
* Исправлено создание файла конфигурации. Добавлены номера версий в вызов tclsh8.6 и wish8.6. Убрана зависимость на Threads.
|
||||
* Исправлено чтение структуры проекта при открытии из меню 'Открыть недавнее'
|
||||
* Bugfix release
|
||||
* Bug fix with varhelper
|
||||
* Added the "Open Recent" menu. The "recentlyEditedFolders" option in the configuration file contains a list of recently opened directories. The procedures for working with this list have also been added.
|
||||
* Косметические изменения.
|
||||
* Исправлены ошибки при вставке кавычек
|
||||
|
||||
-- Sergey Kalinin <svk@nuk-svk.ru> Thu, 30 Oct 2025 14:47:05 +0300
|
||||
-- Калинин Сергей Валерьевич <svk@nuk-svk.ru> Thu, 30 Jan 2025 12:19:56 +0300
|
||||
|
||||
projman (2.0.0-alpha19) stable; urgency=medium
|
||||
|
||||
* Переделал сигналы и сочетния
|
||||
* Добавлен перевод фокуса ввода на прежнее окно после закрытия диалога выполнения.
|
||||
* Добавлена передача сигналов для закрытия запущенного процесса
|
||||
* Изменил виджет текста в окне псевдо-терминала. Добавил подстановку имени файла к командную строку по шаблону %f
|
||||
|
||||
@@ -310,14 +310,16 @@ namespace eval FileOper {
|
||||
-icon question -type yesnocancel \
|
||||
-detail [::msgcat::mc "Do you want to save it?"]]
|
||||
switch $answer {
|
||||
yes Save
|
||||
yes {Save close}
|
||||
no {}
|
||||
cancel {return "cancel"}
|
||||
}
|
||||
}
|
||||
}
|
||||
$nbEditor forget $nbItem
|
||||
destroy $nbItem
|
||||
if {[$nbEditor select] eq $nbItem} {
|
||||
$nbEditor forget $nbItem
|
||||
destroy $nbItem
|
||||
}
|
||||
set treeItem "file::[string range $nbItem [expr [string last "." $nbItem] +1] end ]"
|
||||
if [$tree exists $treeItem] {
|
||||
# delete all functions from tree item
|
||||
@@ -342,7 +344,7 @@ namespace eval FileOper {
|
||||
NB::NextTab $nbEditor 0
|
||||
}
|
||||
|
||||
proc Save {} {
|
||||
proc Save {{type ""}} {
|
||||
global nbEditor tree env activeProject dir
|
||||
|
||||
if [info exists activeProject] {
|
||||
@@ -377,6 +379,12 @@ namespace eval FileOper {
|
||||
if {[file tail $filePath] eq "projman.ini"} {
|
||||
Config::read $dir(cfg)
|
||||
}
|
||||
if [string match "*untitled*" $nbEditorItem] {
|
||||
FileOper::Close
|
||||
if {$type ne "close"} {
|
||||
FileOper::Edit $filePath
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
proc SaveAll {} {
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace eval Git {
|
||||
}
|
||||
if {[catch {exec {*}$cmd} git_path]} {
|
||||
puts "Git не найден в системе"
|
||||
set cfgVariables(gitCommand) "Git not found"
|
||||
set cfgVariables(gitCommand) ""
|
||||
return
|
||||
}
|
||||
set git_path [string trim $git_path]
|
||||
|
||||
@@ -258,7 +258,11 @@ namespace eval Help {
|
||||
set msg "Tcl/Tk project Manager\n\n"
|
||||
append msg "Version: " $projman(Version) "\n" \
|
||||
"Release: " $projman(Release) "\n" \
|
||||
<<<<<<< HEAD
|
||||
"Build: " $projman(Build) "\n\n" \
|
||||
=======
|
||||
"Build: " $projman(Build) "\n" \
|
||||
>>>>>>> tcltk9.0
|
||||
"Tcl Version: " $tcl_version "\n" \
|
||||
"Tk Version: " $tk_version "\n\n" \
|
||||
"Author: " $projman(Author) "\n" \
|
||||
@@ -828,6 +832,44 @@ proc MakeTGZ {} {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Процедура для проверки, находится ли редактирование в последней строке
|
||||
proc IsLastLine {widget} {
|
||||
set current_line [lindex [split [$widget index insert] .] 0]
|
||||
set last_line [lindex [split [$widget index end-1c] .] 0]
|
||||
return [expr {$current_line == $last_line}]
|
||||
}
|
||||
|
||||
# Процедура для проверки выделения в последней строке
|
||||
proc IsSelectionInLastLine {widget} {
|
||||
if {![$widget tag ranges sel]} {
|
||||
return 0
|
||||
}
|
||||
|
||||
set last_line [lindex [split [$widget index end-1c] .] 0]
|
||||
set sel_start_line [lindex [split [$widget index sel.first] .] 0]
|
||||
set sel_end_line [lindex [split [$widget index sel.last] .] 0]
|
||||
|
||||
return [expr {$sel_start_line == $last_line && $sel_end_line == $last_line}]
|
||||
}
|
||||
|
||||
# Процедура-обертка для проверки последней строки
|
||||
proc CheckLastLineAndRun {txt w filePath} {
|
||||
# Проверяем, находится ли курсор в последней строке
|
||||
set current_line [lindex [split [$txt index insert] .] 0]
|
||||
set last_line [lindex [split [$txt index end-1c] .] 0]
|
||||
|
||||
if {$current_line == $last_line} {
|
||||
# Разрешаем выполнение в последней строке
|
||||
$txt insert insert "\n"
|
||||
Run $w $filePath
|
||||
} else {
|
||||
# Запрещаем в других строках
|
||||
bell
|
||||
$txt mark set insert end
|
||||
}
|
||||
}
|
||||
|
||||
## MAKE PROJ PROCEDURE (RUNNING PROJECT) ##
|
||||
proc Execute {filePath w activeEditor} {
|
||||
global activeProject cfgVariables
|
||||
@@ -847,31 +889,37 @@ proc Execute {filePath w activeEditor} {
|
||||
frame $w.frame -borderwidth 2 -relief ridge -background $cfgVariables(backGround)
|
||||
pack $w.frame -side top -fill both -expand true
|
||||
|
||||
|
||||
ctext $w.frame.text -yscrollcommand "$w.frame.yscroll set" \
|
||||
set txt $w.frame.text
|
||||
ctext $txt -yscrollcommand "$w.frame.yscroll set" -linemap 0 \
|
||||
-bg $cfgVariables(backGround) -fg $cfgVariables(foreground) \
|
||||
-relief sunken -wrap word -highlightthickness 0 -font $cfgVariables(font)\
|
||||
-relief sunken -wrap word -highlightthickness 0 -font $cfgVariables(font) \
|
||||
-selectborderwidth 0 -selectbackground $cfgVariables(selectbg) -width 10 -height 10
|
||||
|
||||
scrollbar $w.frame.yscroll -relief sunken -borderwidth {1} -width {10} -takefocus 0 \
|
||||
-command "$w.frame.text yview" -background $cfgVariables(backGround)
|
||||
Highlight::ExecuteColorized $w.frame.text
|
||||
-command "$txt yview" -background $cfgVariables(backGround)
|
||||
Highlight::ExecuteColorized $txt
|
||||
|
||||
pack $w.frame.text -side left -fill both -expand true
|
||||
pack $txt -side left -fill both -expand true
|
||||
pack $w.frame.yscroll -side left -fill y
|
||||
|
||||
bind $w.frame.text <Return> [list Run $w $filePath]
|
||||
bind $w.frame.text <Control-r> [list CloseExecuteDialog $w $activeEditor]
|
||||
bind $w.frame.text <Control-Cyrillic_er> [list CloseExecuteDialog $w $activeEditor]
|
||||
bind $txt <Return> [list Run $w $filePath]
|
||||
bind $txt <Control-r> [list CloseExecuteDialog $w $activeEditor]
|
||||
bind $txt <Control-Cyrillic_er> [list CloseExecuteDialog $w $activeEditor]
|
||||
# focus -force $w.frmBtn.btnOk
|
||||
# $noteBook raise $node
|
||||
# insert debug data into text widget #
|
||||
$w.frame.text tag configure bold -font $cfgVariables(fontBold)
|
||||
$w.frame.text tag configure error -font $cfgVariables(fontBold) -foreground red
|
||||
$w.frame.text tag add bold 0.0 0.end
|
||||
$txt tag configure bold -font $cfgVariables(fontBold)
|
||||
$txt tag configure error -font $cfgVariables(fontBold) -foreground red
|
||||
$txt tag add bold 0.0 0.end
|
||||
|
||||
$w.frame.text insert end "[::msgcat::mc "Enter command for execute file"] $filePath >\n"
|
||||
$txt insert end "[::msgcat::mc "Enter command for execute file"] $filePath >\n"
|
||||
set pos [$w.frame.text index insert]
|
||||
set lineNum [lindex [split $pos "."] 0]
|
||||
<<<<<<< HEAD
|
||||
$txt insert 0.0 "======================================================================================\n"
|
||||
$txt tag add bold $lineNum.0 $lineNum.end
|
||||
Highlight::ExecuteColorized $txt
|
||||
=======
|
||||
$w.frame.text insert 0.0 "======================================================================================\n"
|
||||
|
||||
# Added executor from config
|
||||
@@ -885,7 +933,70 @@ proc Execute {filePath w activeEditor} {
|
||||
|
||||
$w.frame.text tag add bold $lineNum.0 $lineNum.end
|
||||
Highlight::ExecuteColorized $w.frame.text
|
||||
>>>>>>> tcltk9.0
|
||||
# focus -force $w.frame.text
|
||||
|
||||
# Привязки событий для защиты от редактирования
|
||||
# bind $txt <KeyPress> {
|
||||
# if {![IsLastLine %W]} {
|
||||
# break
|
||||
# }
|
||||
# }
|
||||
# bind $txt <KeyPress-Return> {
|
||||
# # Разрешаем Enter только в последней строке
|
||||
# if {![IsLastLine %W]} {
|
||||
# break
|
||||
# } else {
|
||||
# list Run $w $filePath
|
||||
# }
|
||||
# }
|
||||
# bind $txt <KeyPress-Return> [list CheckLastLineAndRun $txt $w $filePath]
|
||||
#
|
||||
# bind $txt <BackSpace> {
|
||||
# if {[%W tag ranges sel] ne ""} {
|
||||
# if {![IsSelectionInLastLine %W]} {
|
||||
# break
|
||||
# }
|
||||
# } else {
|
||||
# if {![IsLastLine %W]} {
|
||||
# break
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
# bind $txt <Delete> {
|
||||
# if {[%W tag ranges sel] ne ""} {
|
||||
# if {![IsSelectionInLastLine %W]} {
|
||||
# break
|
||||
# }
|
||||
# } else {
|
||||
# if {![IsLastLine %W]} {
|
||||
# break
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
# # Защита от вставки
|
||||
# bind $txt <<Paste>> {
|
||||
# if {[%W tag ranges sel] ne ""} {
|
||||
# if {![IsSelectionInLastLine %W]} {
|
||||
# break
|
||||
# }
|
||||
# } else {
|
||||
# if {![IsLastLine %W]} {
|
||||
# break
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
# # Защита от вырезания
|
||||
# bind $txt <<Cut>> {
|
||||
# if {[%W tag ranges sel] ne ""} {
|
||||
# if {![IsSelectionInLastLine %W]} {
|
||||
# break
|
||||
# }
|
||||
# } else {
|
||||
# break
|
||||
# }
|
||||
# }
|
||||
|
||||
focus -force $w.frame.text.t
|
||||
}
|
||||
|
||||
@@ -982,6 +1093,8 @@ proc SendSignal {pid signal} {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Правка файла настроек
|
||||
proc Settings {} {
|
||||
global dir
|
||||
|
||||
@@ -8,9 +8,15 @@ exec wish9.0 "$0" -- "$@"
|
||||
# Author: Sergey Kalinin svk@nuk-svk.ru
|
||||
# Home page: https://nuk-svk.ru
|
||||
######################################################
|
||||
<<<<<<< HEAD
|
||||
# Version: 2.0.0
|
||||
# Release: alpha20
|
||||
# Build: 07112025145212
|
||||
=======
|
||||
# Version: 2.1.0
|
||||
# Release: alpha0
|
||||
# Build: 10112025132121
|
||||
>>>>>>> tcltk9.0
|
||||
######################################################
|
||||
|
||||
# определим текущую версию, релиз и т.д.
|
||||
|
||||
Reference in New Issue
Block a user