From 1170daa9d777755bb6875438a65304a95524578f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Minisini?= Date: Sun, 27 Jan 2013 19:28:31 +0000 Subject: [PATCH] [DEVELOPMENT ENVIRONMENT] * NEW: Create a ProjectChooser control that can be shared between the project open dialog and the patch wizard (for example). git-svn-id: svn://localhost/gambas/trunk@5523 867c0c6c-44f3-4631-809d-bfa615b0a4ec --- app/src/gambas3/.lang/.pot | 30 ++-- .../ProjectChooser/FProjectChooser.class | 126 +++++++++++++++ .../ProjectChooser/FProjectChooser.form | 41 +++++ .../ProjectChooser/ProjectChooser.class | 66 ++++++++ .../gambas3/.src/Project/FOpenProject.class | 153 ++++++++---------- .../gambas3/.src/Project/FOpenProject.form | 37 +---- 6 files changed, 319 insertions(+), 134 deletions(-) create mode 100644 app/src/gambas3/.src/Exported/ProjectChooser/FProjectChooser.class create mode 100644 app/src/gambas3/.src/Exported/ProjectChooser/FProjectChooser.form create mode 100644 app/src/gambas3/.src/Exported/ProjectChooser/ProjectChooser.class diff --git a/app/src/gambas3/.lang/.pot b/app/src/gambas3/.lang/.pot index 68e93bc00..d848f60f1 100644 --- a/app/src/gambas3/.lang/.pot +++ b/app/src/gambas3/.lang/.pot @@ -540,7 +540,7 @@ msgstr "" #: FFontChooser.form:40 FForm.class:3091 FGotoLine.form:23 #: FHelpBrowser.form:61 FIconEditor.class:1373 FList.form:121 FMain.class:209 #: FMakeInstall.class:350 FMenu.form:377 FNewConnection.form:255 -#: FNewTable.form:86 FNewTranslation.form:21 FOpenProject.form:203 +#: FNewTable.form:86 FNewTranslation.form:21 FOpenProject.form:158 #: FOption.class:674 FPasteSpecial.form:77 FPasteTable.form:107 #: FProjectProperty.form:687 FProjectVersion.class:201 #: FPropertyComponent.form:255 FProxy.form:57 FReportBorderChooser.form:48 @@ -636,7 +636,7 @@ msgstr "" #: FCreateFile.form:443 FFieldChooser.form:132 FFontChooser.form:34 #: FGotoLine.form:17 FInfo.form:172 FList.form:115 FMain.class:1798 #: FMakeInstall.class:299 FMenu.form:372 FNewConnection.form:249 -#: FNewTable.form:80 FNewTranslation.form:15 FOpenProject.form:197 +#: FNewTable.form:80 FNewTranslation.form:15 FOpenProject.form:152 #: FPasteSpecial.form:71 FProjectProperty.form:681 FPropertyComponent.form:249 #: FProxy.form:63 FReportBorderChooser.form:54 FReportBrushChooser.form:40 #: FReportCoordChooser.form:32 FReportPaddingChooser.form:69 @@ -700,7 +700,7 @@ msgstr "" msgid "Free" msgstr "" -#: FConflict.form:47 FOpenProject.form:46 +#: FConflict.form:47 FOpenProject.form:40 msgid "Open" msgstr "" @@ -1270,7 +1270,7 @@ msgstr "" msgid "The project title is the true name of the application." msgstr "" -#: FCreateProject.form:426 FOpenProject.form:192 +#: FCreateProject.form:426 FOpenProject.form:147 msgid "Open in another window" msgstr "" @@ -2756,15 +2756,15 @@ msgstr "" msgid "Sort history" msgstr "" -#: FMain.class:594 FOpenProject.form:116 FWelcome.form:42 +#: FMain.class:594 FOpenProject.form:71 FWelcome.form:42 msgid "Sort by date" msgstr "" -#: FMain.class:594 FOpenProject.form:125 FWelcome.form:49 +#: FMain.class:594 FOpenProject.form:80 FWelcome.form:49 msgid "Sort by name" msgstr "" -#: FMain.class:594 FOpenProject.form:133 FWelcome.form:55 +#: FMain.class:594 FOpenProject.form:88 FWelcome.form:55 msgid "Sort by path" msgstr "" @@ -3115,10 +3115,14 @@ msgstr "" msgid "You must select an old version." msgstr "" -#: FMakePatch.class:30 Patch.class:28 +#: FMakePatch.class:29 Patch.class:36 msgid "Not a valid Gambas project" msgstr "" +#: FMakePatch.class:45 +msgid "Patch written." +msgstr "" + #: FMenu.form:80 msgid "Insert menu" msgstr "" @@ -3243,15 +3247,15 @@ msgstr "" msgid "New translation" msgstr "" -#: FOpenProject.form:33 +#: FOpenProject.form:27 msgid "Select a project" msgstr "" -#: FOpenProject.form:92 +#: FOpenProject.form:47 msgid "Recent" msgstr "" -#: FOpenProject.form:148 FWelcome.class:56 +#: FOpenProject.form:103 FWelcome.class:56 msgid "Examples" msgstr "" @@ -5984,11 +5988,11 @@ msgstr "" msgid "'tar' has returned the following error code:" msgstr "" -#: Patch.class:42 +#: Patch.class:50 msgid "Unsupported source file type" msgstr "" -#: Patch.class:187 +#: Patch.class:196 msgid "Patch didn't apply:\n" msgstr "" diff --git a/app/src/gambas3/.src/Exported/ProjectChooser/FProjectChooser.class b/app/src/gambas3/.src/Exported/ProjectChooser/FProjectChooser.class new file mode 100644 index 000000000..0f45473da --- /dev/null +++ b/app/src/gambas3/.src/Exported/ProjectChooser/FProjectChooser.class @@ -0,0 +1,126 @@ +' Gambas class file + +Private $hProjectItem As ProjectItem +Private $sLast As String + +Public Sub _new() + + $hProjectItem = New ProjectItem(panProjectTitle) + $hProjectItem.Highlight = False + panProject.Reparent(dchProject.FileView.Parent) + +End + +Public Sub Form_Open() + + $sLast = "" + dchProject.ShowFile = True + dchProject_Change + 'tabProject_Click + +End + + +Public Sub GetSettings() As Variant[] + + Return [dchProject.Settings, splProject.Settings] + +End + +Public Sub SetSettings(Value As Variant[]) + + Try dchProject.Settings = Value[0] + Try splProject.Settings = Value[1] + +End + +Public Sub dchProject_Icon(Path As String) + + If Exist(Path &/ ".project") Then + dchProject.Icon = Project.GetIcon(Path) + Endif + +End + +Private Sub GetProjectPath(sPath As String) As String + + Do + If Exist(sPath &/ ".project") Then Return sPath + sPath = File.Dir(sPath) + If sPath = "/" Then Break + Loop + +Catch + +End + + +Public Sub dchProject_Change() + + Dim sPath As String + Dim hProjectTree As CProjectTree + + sPath = GetProjectPath(dchProject.Value) + + If Not sPath Then + $sLast = "" + panProject.Hide + dchProject.FileView.Show + Return + Endif + + If sPath = $sLast Then Return + + $sLast = sPath + + $hProjectItem.Path = sPath + hProjectTree = New CProjectTree(tvwProject, sPath) + + panProject.Show + dchProject.FileView.Hide + + splProject_Resize + +End + +Private Sub GetParent() As ProjectChooser + + Return Me.Parent + +End + +Public Sub dchProject_Activate() + + GetParent()._RaiseActivate + +End + +Public Sub splProject_Resize() + + panProjectTitle.H = $hProjectItem.IdealHeight + panProjectTitle.Padding * 2 + +End + +Public Sub GetPath() As String + + Return GetProjectPath(dchProject.Value) + +End + +Public Sub SetPath(sPath As String) + + dchProject.Value = sPath + +End + +Public Sub GetBorder() As Boolean + + Return dchProject.Border + +End + +Public Sub SetBorder(Value As Boolean) + + dchProject.Border = Value + +End diff --git a/app/src/gambas3/.src/Exported/ProjectChooser/FProjectChooser.form b/app/src/gambas3/.src/Exported/ProjectChooser/FProjectChooser.form new file mode 100644 index 000000000..b1e76e03e --- /dev/null +++ b/app/src/gambas3/.src/Exported/ProjectChooser/FProjectChooser.form @@ -0,0 +1,41 @@ +# Gambas Form File 3.0 + +{ Form Form + MoveScaled(0,0,99,64) + Arrangement = Arrange.Fill + { splProject HSplit + MoveScaled(1,1,93,61) + { dchProject DirChooser + MoveScaled(1,2,62,58) + Expand = True + Border = False + ShowFile = True + ShowSplitter = False + } + { Panel2 Panel + MoveScaled(64,2,28,56) + Visible = False + Arrangement = Arrange.Fill + { panProject Panel + MoveScaled(1,1,26,53) + Arrangement = Arrange.Vertical + { panProjectTitle Panel + MoveScaled(1,1,20,9) + Background = Color.TextBackground + Arrangement = Arrange.Fill + Padding = 2 + } + { Separator1 Separator + MoveScaled(1,11,12,0) + Background = Color.TextBackground + } + { tvwProject TreeView + MoveScaled(2,13,22,37) + Expand = True + Mode = Select.None + Border = False + } + } + } + } +} diff --git a/app/src/gambas3/.src/Exported/ProjectChooser/ProjectChooser.class b/app/src/gambas3/.src/Exported/ProjectChooser/ProjectChooser.class new file mode 100644 index 000000000..ad45e07a8 --- /dev/null +++ b/app/src/gambas3/.src/Exported/ProjectChooser/ProjectChooser.class @@ -0,0 +1,66 @@ +' Gambas class file + +Export + +Inherits UserControl + +Public Const _Properties As String = "*,Border" +Public Const _DefaultEvent As String = "Activate" +Public Const _DefaultSize As String = "36,36" +Public Const _Group As String = "Chooser" + +Event Activate + +Property Settings As Variant[] +Property Path As String +Property Border As Boolean + +Private $hForm As FProjectChooser + +Public Sub _new() + + $hForm = New FProjectChooser(Me) + +End + +Private Function Settings_Read() As Variant[] + + Return $hForm.GetSettings() + +End + +Private Sub Settings_Write(Value As Variant[]) + + $hForm.SetSettings(Value) + +End + +Public Sub _RaiseActivate() + + Raise Activate + +End + +Private Function Path_Read() As String + + Return $hForm.GetPath() + +End + +Private Sub Path_Write(Value As String) + + $hForm.SetPath(Value) + +End + +Private Function Border_Read() As Boolean + + Return $hForm.GetBorder() + +End + +Private Sub Border_Write(Value As Boolean) + + $hForm.SetBorder(Value) + +End diff --git a/app/src/gambas3/.src/Project/FOpenProject.class b/app/src/gambas3/.src/Project/FOpenProject.class index b056dae95..99525aa27 100644 --- a/app/src/gambas3/.src/Project/FOpenProject.class +++ b/app/src/gambas3/.src/Project/FOpenProject.class @@ -1,31 +1,10 @@ ' Gambas class file -' -' Copyright (C) BenoƮt Minisini -' -' This program is free software; you can redistribute it and/or modify -' it under the terms of the GNU General Public License as published by -' the Free Software Foundation; either version 2 of the License, or -' (at your option) any later version. -' -' This program is distributed in the hope that it will be useful, -' but WITHOUT ANY WARRANTY; without even the implied warranty of -' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -' GNU General Public License for more details. -' -' You should have received a copy of the GNU General Public License -' along with this program; if not, write to the Free Software -' Foundation, Inc., 51 Franklin St, Fifth Floor, -' Boston, MA 02110-1301 USA -' - Static Private $sPath As String -Static Private $sLast As String Static Private $bAnother As Boolean Static Public InAnotherWindow As Boolean -Private $hProjectItem As ProjectItem Private $iSort As Integer Public Sub Run(Optional bAnother As Boolean) As String @@ -43,9 +22,9 @@ End Public Sub _new() - $hProjectItem = New ProjectItem(panProjectTitle) - $hProjectItem.Highlight = False - panProject.Reparent(dchProject.FileView.Parent) + ' $hProjectItem = New ProjectItem(panProjectTitle) + ' $hProjectItem.Highlight = False + ' panProject.Reparent(dchProject.FileView.Parent) End @@ -56,7 +35,7 @@ Public Sub btnOK_Click() Dim hProjectItem As ProjectItem If tabProject.Index = 0 Then - sPath = GetProjectPath(dchProject.Value) + sPath = pchProject.Path Else If tabProject.Index = 1 Then hProjectItem = lstRecent.Current Try sPath = hProjectItem.Path @@ -87,13 +66,14 @@ Public Sub Form_Open() Dim hCtrl As RadioButton - $sLast = "" + '$sLast = "" Settings.Read(Me) - Settings.Read(dchProject) - Settings.Read(splProject) - dchProject.ShowFile = True - 'dchProject.Value = Settings["/FOpenProject/Path"] - dchProject_Change + Settings.Read(pchProject) + ' Settings.Read(dchProject) + ' Settings.Read(splProject) + ' dchProject.ShowFile = True + ' 'dchProject.Value = Settings["/FOpenProject/Path"] + ' dchProject_Change tabProject_Click InAnotherWindow = False @@ -113,59 +93,60 @@ Public Sub Form_Close() Settings["/FOpenProject/SortRecent"] = $iSort Settings.Write(Me) - Settings.Write(splProject) - Settings.Write(dchProject) + ' Settings.Write(splProject) + ' Settings.Write(dchProject) + Settings.Write(pchProject) End -Public Sub dchProject_Icon(Path As String) - - If Exist(Path &/ ".project") Then - dchProject.Icon = Project.GetIcon(Path) - Endif - -End - -Private Sub GetProjectPath(sPath As String) As String - - Do - If Exist(sPath &/ ".project") Then Return sPath - sPath = File.Dir(sPath) - If sPath = "/" Then Break - Loop - -Catch - -End - - -Public Sub dchProject_Change() - - Dim sPath As String - Dim hProjectTree As CProjectTree - - sPath = GetProjectPath(dchProject.Value) - - If Not sPath Then - $sLast = "" - panProject.Hide - dchProject.FileView.Show - Return - Endif - - If sPath = $sLast Then Return - - $sLast = sPath - - $hProjectItem.Path = sPath - hProjectTree = New CProjectTree(tvwProject, sPath) - - panProject.Show - dchProject.FileView.Hide - - splProject_Resize - -End +' Public Sub dchProject_Icon(Path As String) +' +' If Exist(Path &/ ".project") Then +' dchProject.Icon = Project.GetIcon(Path) +' Endif +' +' End +' +' Private Sub GetProjectPath(sPath As String) As String +' +' Do +' If Exist(sPath &/ ".project") Then Return sPath +' sPath = File.Dir(sPath) +' If sPath = "/" Then Break +' Loop +' +' Catch +' +' End +' +' +' Public Sub dchProject_Change() +' +' Dim sPath As String +' Dim hProjectTree As CProjectTree +' +' sPath = GetProjectPath(dchProject.Value) +' +' If Not sPath Then +' $sLast = "" +' panProject.Hide +' dchProject.FileView.Show +' Return +' Endif +' +' If sPath = $sLast Then Return +' +' $sLast = sPath +' +' $hProjectItem.Path = sPath +' hProjectTree = New CProjectTree(tvwProject, sPath) +' +' panProject.Show +' dchProject.FileView.Hide +' +' splProject_Resize +' +' End ' Public Sub fvwProject_Activate() ' @@ -408,11 +389,11 @@ Public Sub lstExample_Activate() End -Public Sub splProject_Resize() - - panProjectTitle.H = $hProjectItem.IdealHeight + panProjectTitle.Padding * 2 - -End +' Public Sub splProject_Resize() +' +' panProjectTitle.H = $hProjectItem.IdealHeight + panProjectTitle.Padding * 2 +' +' End Public Sub btnOther_Click() diff --git a/app/src/gambas3/.src/Project/FOpenProject.form b/app/src/gambas3/.src/Project/FOpenProject.form index 184246db6..9257d9202 100644 --- a/app/src/gambas3/.src/Project/FOpenProject.form +++ b/app/src/gambas3/.src/Project/FOpenProject.form @@ -16,41 +16,8 @@ Index = 0 Text = ("Open") Picture = Picture["icon:/small/open"] - { splProject HSplit - MoveScaled(1,1,93,61) - Expand = True - { dchProject DirChooser - MoveScaled(1,2,62,58) - Expand = True - Border = False - ShowFile = True - ShowSplitter = False - } - { Panel2 Panel - MoveScaled(64,2,28,56) - Visible = False - Arrangement = Arrange.Fill - { panProject Panel - MoveScaled(1,1,26,53) - Arrangement = Arrange.Vertical - { panProjectTitle Panel - MoveScaled(1,1,20,9) - Background = Color.TextBackground - Arrangement = Arrange.Fill - Padding = 2 - } - { Separator1 Separator - MoveScaled(1,11,12,0) - Background = Color.TextBackground - } - { tvwProject TreeView - MoveScaled(2,13,22,37) - Expand = True - Mode = Select.None - Border = False - } - } - } + { pchProject ProjectChooser + MoveScaled(3,4,81,54) } Index = 1 Text = ("Recent")