diff --git a/debian/changelog b/debian/changelog index 0f4e728..4d3424e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +projman (2.0.0-beta6) stable; urgency=medium + + * Новая сборка + + -- Sergey Kalinin Wed, 8 Apr 2026 16:50:52 +0300 + projman (2.0.0-beta6) stable; urgency=medium * Добавлены настройки для просмотрщика MD в части касаемой ссылок и выделения текста. @@ -546,3 +552,4 @@ projman (2.0.0-alfa0) stable; urgency=medium + diff --git a/lib/config.tcl b/lib/config.tcl index c40d24d..be7fcef 100644 --- a/lib/config.tcl +++ b/lib/config.tcl @@ -97,6 +97,7 @@ codeBlockFont=Monospace 10 italic textBG=#333333 linkFont={Droid Sans Mono} 10 bold linkFG=#54bcff +runViewer=true " proc Config::create {dir} { set cfgFile [open [file join $dir projman.ini] "w+"] diff --git a/lib/editor.tcl b/lib/editor.tcl index 5f35c60..c316fd8 100644 --- a/lib/editor.tcl +++ b/lib/editor.tcl @@ -1511,6 +1511,15 @@ namespace eval Editor { } # puts [$w.panelTxt panes] DebugPuts "$w $fileType $nb $fileFullPath" + + # set fileType [string toupper [string trimleft [file extension $filePath] "."]] + + # Execute the MD-file viewer + if {$fileType eq "MD" && $cfgVariables(runViewer) eq "true"} { + ShowMD $fileFullPath + return + } + if [winfo exists $w.frmText2] { $w.panelTxt forget $w.frmText2 destroy $w.frmText2 diff --git a/lib/files.tcl b/lib/files.tcl index 4d301ed..3f67ab1 100644 --- a/lib/files.tcl +++ b/lib/files.tcl @@ -395,6 +395,14 @@ namespace eval FileOper { # puts "$f was saved" close $f ResetModifiedFlag $nbEditorItem $nbEditorWindow + + # Проверяем если в редакторе открыт MD-файл и запущен его просмотрщик + if {[string toupper [string trimleft [file extension $filePath] "."]] eq "MD" && [winfo exists .viewer]} { + if {[wm title .viewer] eq $filePath} { + ShowMD $filePath true + } + } + if {[file tail $filePath] eq "projman.ini"} { Config::read $dir(cfg) } diff --git a/lib/mdviewer.tcl b/lib/mdviewer.tcl index c45ef29..628c646 100644 --- a/lib/mdviewer.tcl +++ b/lib/mdviewer.tcl @@ -9,61 +9,65 @@ # ###################################################### -proc ShowMD {fileFullPath} { +proc ShowMD {fileFullPath {reload "false"}} { global cfgVariables set win .viewer - - set parentGeometry [wm geometry .] - set parentWidth [winfo width .] - set parentHeight [winfo height .] - set parentX [winfo x .] - set parentY [winfo y .] + if {$reload eq "false"} { + set parentGeometry [wm geometry .] + set parentWidth [winfo width .] + set parentHeight [winfo height .] + set parentX [winfo x .] + set parentY [winfo y .] + + # Устанавливаем размеры нового окна (меньше на 200) + set newWidth [expr {$parentWidth - 200}] + set newHeight [expr {$parentHeight - 200}] + + # Вычисляем позицию для центрирования относительно родительского окна + set x [expr {$parentX + ($parentWidth - $newWidth) / 2}] + set y [expr {$parentY + ($parentHeight - $newHeight) / 2}] + + # Применяем геометрию - # Устанавливаем размеры нового окна (меньше на 200) - set newWidth [expr {$parentWidth - 200}] - set newHeight [expr {$parentHeight - 200}] + if { [winfo exists $win] } { destroy $win; return false } + toplevel $win + # wm title $win "[::msgcat::mc "Help"]" + wm title $win $fileFullPath + wm geometry $win ${newWidth}x${newHeight}+${x}+${y} + wm overrideredirect $win 0 + + set frm [ttk::frame $win.frmHelp] + pack $frm -expand 1 -fill both + + set txt [text $frm.txt -wrap $cfgVariables(editorWrap) -background $cfgVariables(textBG) \ + -xscrollcommand "$win.h set" -yscrollcommand "$frm.v set" -font $cfgVariables(viewerFont)] + pack $txt -side left -expand 1 -fill both + pack [ttk::scrollbar $frm.v -command "$frm.txt yview"] -side right -fill y + ttk::scrollbar $win.h -orient horizontal -command "$frm.txt xview" + if {$cfgVariables(editorWrap) eq "none"} { + pack $win.h -side bottom -fill x - # Вычисляем позицию для центрирования относительно родительского окна - set x [expr {$parentX + ($parentWidth - $newWidth) / 2}] - set y [expr {$parentY + ($parentHeight - $newHeight) / 2}] - - # Применяем геометрию - - if { [winfo exists $win] } { destroy $win; return false } - toplevel $win - wm title $win "[::msgcat::mc "Help"]" - wm geometry $win ${newWidth}x${newHeight}+${x}+${y} - wm overrideredirect $win 0 - - set frm [ttk::frame $win.frmHelp] - pack $frm -expand 1 -fill both - - set txt [text $frm.txt -wrap $cfgVariables(editorWrap) -background $cfgVariables(textBG) \ - -xscrollcommand "$win.h set" -yscrollcommand "$frm.v set" -font $cfgVariables(viewerFont)] - pack $txt -side left -expand 1 -fill both - pack [ttk::scrollbar $frm.v -command "$frm.txt yview"] -side right -fill y - ttk::scrollbar $win.h -orient horizontal -command "$frm.txt xview" - if {$cfgVariables(editorWrap) eq "none"} { - pack $win.h -side bottom -fill x - + } + bind .viewer {destroy .viewer} + + $txt tag configure h1 -font $cfgVariables(h1Font) + $txt tag configure h2 -font $cfgVariables(h2Font) + $txt tag configure h3 -font $cfgVariables(h3Font) + $txt tag configure h4 -font $cfgVariables(h4Font) + $txt tag configure h5 -font $cfgVariables(h5Font) + $txt tag configure h6 -font $cfgVariables(h6Font) + $txt tag configure mdList -font $cfgVariables(mdListFont) + $txt tag configure codeBlock -foreground $cfgVariables(codeBlockFG) \ + -background $cfgVariables(codeBlockBG) -font $cfgVariables(codeBlockFont) + $txt tag configure italic -font $cfgVariables(italicFont) + $txt tag configure bold -font $cfgVariables(boldFont) + $txt tag configure italicBold -font $cfgVariables(italicBoldFont) + $txt tag configure link -foreground $cfgVariables(linkFG) -font $cfgVariables(linkFont) + } else { + set txt .viewer.frmHelp.txt + $txt delete 0.0 end } - bind .viewer {destroy .viewer} - - $txt tag configure h1 -font $cfgVariables(h1Font) - $txt tag configure h2 -font $cfgVariables(h2Font) - $txt tag configure h3 -font $cfgVariables(h3Font) - $txt tag configure h4 -font $cfgVariables(h4Font) - $txt tag configure h5 -font $cfgVariables(h5Font) - $txt tag configure h6 -font $cfgVariables(h6Font) - $txt tag configure mdList -font $cfgVariables(mdListFont) - $txt tag configure codeBlock -foreground $cfgVariables(codeBlockFG) \ - -background $cfgVariables(codeBlockBG) -font $cfgVariables(codeBlockFont) - $txt tag configure italic -font $cfgVariables(italicFont) - $txt tag configure bold -font $cfgVariables(boldFont) - $txt tag configure italicBold -font $cfgVariables(italicBoldFont) - $txt tag configure link -foreground $cfgVariables(linkFG) -font $cfgVariables(linkFont) - set codeBlockBegin false set f [open "$fileFullPath" r] @@ -382,5 +386,3 @@ proc ExtractBlocks {line pattern} { return $result } - - diff --git a/projman.tcl b/projman.tcl index e05f7e3..594433a 100755 --- a/projman.tcl +++ b/projman.tcl @@ -10,7 +10,7 @@ exec wish8.6 "$0" -- "$@" ###################################################### # Version: 2.0.0 # Release: beta6 -# Build: 08042026164832 +# Build: 08042026165056 ###################################################### # определим текущую версию, релиз и т.д.