diff --git a/lib/config.tcl b/lib/config.tcl index 22dde4f..d88e89e 100644 --- a/lib/config.tcl +++ b/lib/config.tcl @@ -64,6 +64,7 @@ multilineComments=true \[UserSession\] opened= editedFiles= +recentlyEditedFolders= " proc Config::create {dir} { set cfgFile [open [file join $dir projman.ini] "w+"] diff --git a/lib/editor.tcl b/lib/editor.tcl index 765b4d4..3eaa3c0 100644 --- a/lib/editor.tcl +++ b/lib/editor.tcl @@ -580,6 +580,8 @@ namespace eval Editor { if { [set height [llength $findedVars]] > 10 } { set height 10 } $win.lBox configure -height $height + focus $win.lBox + bind $win { destroy $Editor::win focus -force $Editor::txt.t @@ -590,7 +592,7 @@ namespace eval Editor { focus -force $Editor::txt.t break } - bind VarHelperBind { + bind $win { $Editor::txt delete "insert - 1 chars wordstart" "insert wordend - 1 chars" $Editor::txt insert "insert" [.varhelper.lBox get [.varhelper.lBox curselection]] # eval [bind VarHelperBind ] @@ -617,7 +619,7 @@ namespace eval Editor { set y [expr $y - $winGeomY] } - wm geom $win +$x+$y + wm geom $win +$x+$y } proc ReleaseKey {k txt fileType} { diff --git a/lib/files.tcl b/lib/files.tcl index dd668d8..a26566c 100644 --- a/lib/files.tcl +++ b/lib/files.tcl @@ -149,6 +149,7 @@ namespace eval FileOper { # } # .frmStatus.lblGitLogo configure -image git_logo_20x20 # .frmStatus.lblGit configure -text "[::msgcat::mc "Branch"]: [Git::Branches current]" + AddRecentEditedFolder $fullPath return $fullPath } diff --git a/lib/menu.tcl b/lib/menu.tcl index 429e7ff..c578ab3 100644 --- a/lib/menu.tcl +++ b/lib/menu.tcl @@ -9,7 +9,7 @@ ###################################################### proc GetFileMenu {m} { - global activeProject + global activeProject cfgVariables $m add command -label [::msgcat::mc "New file"] -command Editor::New\ -accelerator "Ctrl+N" $m add command -label [::msgcat::mc "Open file"] -accelerator "Ctrl+O" -command { @@ -24,6 +24,13 @@ proc GetFileMenu {m} { -accelerator "Ctrl+w" $m add command -label [::msgcat::mc "Close all"] -command {FileOper::CloseAll} + $m add separator + menu $m.openRecent + $m add cascade -label [::msgcat::mc "Open recent"] -menu $m.openRecent + foreach item $cfgVariables(recentFolder) { + $m.openRecent add command -label $item -command [list FileOper::ReadFolder $item] + } + $m add separator $m add command -label [::msgcat::mc "Open folder"] -accelerator "Ctrl+K" -command { diff --git a/lib/msgs/de.msg b/lib/msgs/de.msg index 691c686..da4f994 100644 --- a/lib/msgs/de.msg +++ b/lib/msgs/de.msg @@ -7,8 +7,8 @@ # Author: Roman Schaller # ########################################################### -::msgcat::mcset de "About ..." "Über ..." -::msgcat::mcset de "Add to project" "Zu Projekt hinzufügen" +::msgcat::mcset de "About ..." "Über ..." +::msgcat::mcset de "Add to project" "Zu Projekt hinzufügen" ::msgcat::mcset de "Author" "Autor" ::msgcat::mcset de "Text autoformat" "Text autoformat" ::msgcat::mcset de "Cancel" "Abbrechen" @@ -29,9 +29,9 @@ ::msgcat::mcset de "Cut into clipboard" "In Zwischenablage ausschneiden" ::msgcat::mcset de "CVS commit" ::msgcat::mcset de "CVS update" -::msgcat::mcset de "Delete" "Löschen" -::msgcat::mcset de "Delete backup files" "Backup-Dateien löschen" -::msgcat::mcset de "Delete project" "Projekt löschen" +::msgcat::mcset de "Delete" "Löschen" +::msgcat::mcset de "Delete backup files" "Backup-Dateien löschen" +::msgcat::mcset de "Delete project" "Projekt löschen" ::msgcat::mcset de "Delete from project" "Von Projekt entfernen" ::msgcat::mcset de "Docs dir" "Dok Verzeichnis" ::msgcat::mcset de "Don't selected file" @@ -42,10 +42,10 @@ ::msgcat::mcset de "Error open URL" ::msgcat::mcset de "Exit" "Beenden" ::msgcat::mcset de "File" "Datei" -::msgcat::mcset de "File already exists. Overwrite?" "Datei besteht bereits. Überschreiben?" +::msgcat::mcset de "File already exists. Overwrite?" "Datei besteht bereits. Überschreiben?" ::msgcat::mcset de "File modify" "Datei bearbeiten" -::msgcat::mcset de "File was modifyed. Close?" "Datei wurde geändert. Trotzdem schliessen?" -::msgcat::mcset de "File was modifyed. Save?" "Datei wurde geändert. Jetzt speichern?" +::msgcat::mcset de "File was modifyed. Close?" "Datei wurde geändert. Trotzdem schliessen?" +::msgcat::mcset de "File was modifyed. Save?" "Datei wurde geändert. Jetzt speichern?" ::msgcat::mcset de "File saved" "Datei gespeichert" ::msgcat::mcset de "Find" "Suchen" ::msgcat::mcset de "Font normal" "Schrift normal" @@ -55,15 +55,15 @@ ::msgcat::mcset de "Home dir" "Home Verzeichnis" ::msgcat::mcset de "Home page" "Homepage" ::msgcat::mcset de "Image dir" "Image Verzeichnis" -::msgcat::mcset de "Insert" "Einfügen" +::msgcat::mcset de "Insert" "Einfügen" ::msgcat::mcset de "Interface language" "Interface Sprache" ::msgcat::mcset de "Install Tcl/Tk Project Manager" "Tcl/Tk Project Manager installieren" ::msgcat::mcset de "Line number" "Zeilennummer" ::msgcat::mcset de "Make RPM" "RPM erstellen" ::msgcat::mcset de "Make archive" "Archiv erstellen" ::msgcat::mcset de "Make backup files" "Backup-Dateien erstellen" -::msgcat::mcset de "Must be one file select!" "Eine Datei muss ausgewählt sein!" -::msgcat::mcset de "Must be one or two file select!" "Eine oder zwei Dateien müssen ausgewählt sein!" +::msgcat::mcset de "Must be one file select!" "Eine Datei muss ausgewählt sein!" +::msgcat::mcset de "Must be one or two file select!" "Eine oder zwei Dateien müssen ausgewählt sein!" ::msgcat::mcset de "Modifying the Registry..." ::msgcat::mcset de "Modules" "Module" ::msgcat::mcset de "New" "Neu" @@ -71,19 +71,19 @@ ::msgcat::mcset de "New project" "Neues Projekt" ::msgcat::mcset de "Not implemented yet" "Noch nicht implementiert" ::msgcat::mcset de "Not found active project" "Kein aktives Projekt gefunden" -::msgcat::mcset de "Open" "Öffnen" -::msgcat::mcset de "Open file" "Datei öffnen" -::msgcat::mcset de "Open project" "Projekt öffnen" -::msgcat::mcset de "Opened file in progress" "Geöffnete Datei in Bearbeitung" -::msgcat::mcset de "Overwrite" "Überschreiben" -::msgcat::mcset de "Paste" "Einfügen" -::msgcat::mcset de "Paste from clipboard" "Von Zwischenablage einfügen" +::msgcat::mcset de "Open" "Öffnen" +::msgcat::mcset de "Open file" "Datei öffnen" +::msgcat::mcset de "Open project" "Projekt öffnen" +::msgcat::mcset de "Opened file in progress" "Geöffnete Datei in Bearbeitung" +::msgcat::mcset de "Overwrite" "Überschreiben" +::msgcat::mcset de "Paste" "Einfügen" +::msgcat::mcset de "Paste from clipboard" "Von Zwischenablage einfügen" ::msgcat::mcset de "Print ..." "Drucken ..." ::msgcat::mcset de "Print" "Drucken" ::msgcat::mcset de "Print command" "Druck-Befehl" ::msgcat::mcset de "Print selected text" "Markierter Text drucken" ::msgcat::mcset de "Program finished successfully" "Programm wurde erfolgreich beendet" -::msgcat::mcset de "Program failed" "Ausführung fehlgeschlagen" +::msgcat::mcset de "Program failed" "Ausführung fehlgeschlagen" ::msgcat::mcset de "Programm output" "Programm Ausgabe" ::msgcat::mcset de "Project" "Projekt" ::msgcat::mcset de "Projects" "Projekte" @@ -101,8 +101,8 @@ ::msgcat::mcset de "Release" ::msgcat::mcset de "RPM dir" "RPM Verzeichnis" ::msgcat::mcset de "RPM file mask" "RPM Datei Maske" -::msgcat::mcset de "Run" "Ausführen" -::msgcat::mcset de "Running project" "Projekt ausführen" +::msgcat::mcset de "Run" "Ausführen" +::msgcat::mcset de "Running project" "Projekt ausführen" ::msgcat::mcset de "Running file" ::msgcat::mcset de "Save" "Speichern" ::msgcat::mcset de "Save as" "Speichern unter" @@ -110,9 +110,9 @@ ::msgcat::mcset de "Save file as" "Datei speichern unter" ::msgcat::mcset de "Save all" "Alles speichern" ::msgcat::mcset de "Search" "Suchen" -::msgcat::mcset de "Select" "Auswählen" -::msgcat::mcset de "Select directory" "Verzeichnis auswählen" -::msgcat::mcset de "Selected directory" "Ausgewähltes Verzeichnis" +::msgcat::mcset de "Select" "Auswählen" +::msgcat::mcset de "Select directory" "Verzeichnis auswählen" +::msgcat::mcset de "Selected directory" "Ausgewähltes Verzeichnis" ::msgcat::mcset de "Settings" "Einstellungen" ::msgcat::mcset de "Show backup files" "Backup-Dateien anzeigen" ::msgcat::mcset de "Interpretator" "Interpreter" @@ -120,7 +120,7 @@ ::msgcat::mcset de "TGZ file mask" "TGZ Datei Maske" ::msgcat::mcset de "Thanks" "Danksagung" ::msgcat::mcset de "Toolbar" "Symbolleiste" -::msgcat::mcset de "Undo" "Rückgängig" +::msgcat::mcset de "Undo" "Rückgängig" ::msgcat::mcset de "Update" ::msgcat::mcset de "Version" ::msgcat::mcset de "View" "Ansicht" @@ -130,4 +130,3 @@ - diff --git a/lib/msgs/en.msg b/lib/msgs/en.msg index 410894d..2853148 100644 --- a/lib/msgs/en.msg +++ b/lib/msgs/en.msg @@ -108,6 +108,7 @@ ::msgcat::mcset en "Open file" ::msgcat::mcset en "Open project" ::msgcat::mcset en "Opened file in progress" +::msgcat::mcset en "Open recent" ::msgcat::mcset en "Operators" ::msgcat::mcset en "Overwrite" ::msgcat::mcset en "Parameters" @@ -184,4 +185,3 @@ - diff --git a/lib/msgs/ru.msg b/lib/msgs/ru.msg index bb54669..60819f5 100644 --- a/lib/msgs/ru.msg +++ b/lib/msgs/ru.msg @@ -141,6 +141,7 @@ ::msgcat::mcset ru "Open folder" "Открыть каталог" ::msgcat::mcset ru "Open project" "Открыть проект" ::msgcat::mcset ru "Opened file in progress" "Открытие файла" +::msgcat::mcset ru "Open recent" "Открыть недавнее" ::msgcat::mcset ru "Operators" "Операторы" ::msgcat::mcset ru "Overwrite" "Замена" ::msgcat::mcset ru "Parameters" "Параметры" diff --git a/lib/procedure.tcl b/lib/procedure.tcl index bada3c1..364a7d8 100644 --- a/lib/procedure.tcl +++ b/lib/procedure.tcl @@ -683,3 +683,35 @@ proc SetActiveProject {path} { .frmStatus.lblGitLogo configure -image git_logo_20x20 .frmStatus.lblGit configure -text "[::msgcat::mc "Branch"]: [Git::Branches current]" } + +# Added recently opened folder into menu "File"->"Open recent" +proc OpenRecentProject {path} { + SetActiveProject $path + FileOper::ReadFolder $path + ReadFilesFromDirectory $path $path +} + +proc AddRecentEditedFolder {path} { + global cfgVariables + if {$path == ""} { + return + } + if {[info exists cfgVariables(recentFolder)] == 0} { + set cfgVariables(recentFolder) [list $path] + } else { + # check if path already in a list + foreach item $cfgVariables(recentFolder) { + if {$item == $path} { + return + } + } + # check list length, and remove 0 element if length is 10 + if {[llength $cfgVariables(recentFolder)] == 10} { + # lremove $cfgVariables(recentFolder) 0; # tcl 8.7 + set cfgVariables(recentFolder) [lrange $cfgVariables(recentFolder) 1 end] + } + lappend cfgVariables(recentFolder) $path + } + .frmMenu.mnuFile.m.openRecent add command -label $path -command [list OpenRecentProject $path] +} +