From bceaa0ae538d0cffb596646cbdd5684952988043 Mon Sep 17 00:00:00 2001 From: gambas Date: Thu, 3 Jan 2019 10:27:03 +0100 Subject: [PATCH 1/8] Compiling a project now recompile all modified translation, not just the translation of the current language. [DEVELOPMENT ENVIRONMENT] * NEW: Really update Italian translation. * BUG: Compiling a project now recompile all modified translation, not just the translation of the current language. --- app/src/gambas3/.lang/fr.po | 6 +-- app/src/gambas3/.lang/it.mo | Bin 40121 -> 130139 bytes app/src/gambas3/.lang/it.po | 12 ++--- app/src/gambas3/.project | 2 +- app/src/gambas3/.src/Project.module | 49 ++++++++++++------ .../gambas3/.src/Translation/Language.module | 18 +++++-- app/src/gambas3/.src/Welcome/CWelcome.class | 5 +- 7 files changed, 59 insertions(+), 33 deletions(-) diff --git a/app/src/gambas3/.lang/fr.po b/app/src/gambas3/.lang/fr.po index 610362d14..9979fec1d 100644 --- a/app/src/gambas3/.lang/fr.po +++ b/app/src/gambas3/.lang/fr.po @@ -222,7 +222,7 @@ msgid "" msgstr "" "Project-Id-Version: gambas3 3.11.90\n" -"POT-Creation-Date: 2018-12-27 16:14 UTC\n" +"POT-Creation-Date: 2019-01-03 09:04 UTC\n" "PO-Revision-Date: 2018-12-14 16:16 UTC\n" "Last-Translator: benoit \n" "Language: fr\n" @@ -1216,11 +1216,11 @@ msgstr "Auteur de la dernière publication distante" msgid "Remote last commit date" msgstr "Date de la dernière publication distante" -#: CWelcome.class:114 +#: CWelcome.class:115 msgid "The Gambas font is published under the SIL Open Font License." msgstr "La police Gambas est publiée sous licence « SIL Open Font License »." -#: CWelcome.class:114 +#: CWelcome.class:115 msgid "This program is published under the GNU General Public License." msgstr "Ce programme est publié sous la « Licence Publique Générale GNU »." diff --git a/app/src/gambas3/.lang/it.mo b/app/src/gambas3/.lang/it.mo index 7732ce7963d9bdbaeb1094787d5d7be8bea7f329..e3eb32b773ffac2adfea7bddc20991b0b1c9af06 100644 GIT binary patch literal 130139 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

i8~N@dBB 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 W`_=SYSm5M;U81{ubjKj8k^cwz>6~`} diff --git a/app/src/gambas3/.lang/it.po b/app/src/gambas3/.lang/it.po index 4cf0ff8cb..6b35398cc 100644 --- a/app/src/gambas3/.lang/it.po +++ b/app/src/gambas3/.lang/it.po @@ -221,10 +221,10 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gambas3 3.11.90\n" -"POT-Creation-Date: 2019-01-01 22:43 UTC\n" -"PO-Revision-Date: 2019-01-01 17:03 UTC\n" -"Last-Translator: gian \n" +"Project-Id-Version: gambas3 3.12.0\n" +"POT-Creation-Date: 2019-01-03 09:06 UTC\n" +"PO-Revision-Date: 2019-01-03 09:05 UTC\n" +"Last-Translator: benoit \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1216,11 +1216,11 @@ msgstr "Autore dell'ultimo commit in remoto" msgid "Remote last commit date" msgstr "Data dell'ultimo commit in remoto" -#: CWelcome.class:115 +#: CWelcome.class:114 msgid "The Gambas font is published under the SIL Open Font License." msgstr "Il font Gambas è pubblicato sotto la licenza SIL Open Font." -#: CWelcome.class:115 +#: CWelcome.class:114 msgid "This program is published under the GNU General Public License." msgstr "Questo programma è pubblicato sotto la GNU General Public License." diff --git a/app/src/gambas3/.project b/app/src/gambas3/.project index c3f4c3de8..afeaf83de 100644 --- a/app/src/gambas3/.project +++ b/app/src/gambas3/.project @@ -2,7 +2,7 @@ Title=Gambas 3 Startup=Project Icon=img/logo/logo-ide.png -Version=3.12.0 +Version=3.12.90 VersionFile=1 Component=gb.image Component=gb.gui.qt diff --git a/app/src/gambas3/.src/Project.module b/app/src/gambas3/.src/Project.module index 24ae2dc43..86b0e91f9 100644 --- a/app/src/gambas3/.src/Project.module +++ b/app/src/gambas3/.src/Project.module @@ -6482,28 +6482,45 @@ End Public Sub CompileTranslation(bForce As Boolean, Optional sLang As String) - Dim iPos As Integer Dim sPath As String Dim sTrans As String + Dim aLang As Variant[] + Dim dTrans As Date + Dim dPath As Date - If Not sLang Then - iPos = Project.Environment.Find("LANG=*", gb.Like) - If iPos >= 0 Then - sLang = Mid$(Project.Environment[iPos], 6) - Else - sLang = System.Language - Endif - sLang = Language.Find(sLang) + If sLang Then + aLang = [sLang] + Else + aLang = Language.GetAll(True) Endif - sPath = Language.GetPath(sLang, "mo") - If Exist(sPath) And If Not bForce Then Return + ' If Not sLang Then + ' iPos = Project.Environment.Find("LANG=*", gb.Like) + ' If iPos >= 0 Then + ' sLang = Mid$(Project.Environment[iPos], 6) + ' Else + ' sLang = System.Language + ' Endif + ' sLang = Language.Find(sLang) + ' Endif + + For Each sLang In aLang - sTrans = File.SetExt(sPath, "po") - If Not Exist(sTrans) Then Return - - Try Kill sPath - Shell "msgfmt -o " & Shell$(sPath) & " " & Shell(sTrans) Wait + sTrans = Language.GetPath(sLang, "po") + Try dTrans = Stat(sTrans).LastModified + If Error Then Continue + + sPath = Language.GetPath(sLang, "mo") + + If Not bForce Then + Try dPath = Stat(sPath).LastModified + If dPath And If dPath >= dTrans Then Continue + Endif + + Try Kill sPath + Shell "msgfmt -o " & Shell$(sPath) & " " & Shell(sTrans) Wait + + Next End diff --git a/app/src/gambas3/.src/Translation/Language.module b/app/src/gambas3/.src/Translation/Language.module index ca49c5799..8d04c3479 100644 --- a/app/src/gambas3/.src/Translation/Language.module +++ b/app/src/gambas3/.src/Translation/Language.module @@ -240,14 +240,24 @@ Public Function FromName(sName As String) As String End -Public Function GetAll() As String[] +Public Function GetAll(Optional bCurrentOnly As Boolean) As String[] Dim aLang As New String[] Dim sStr As String - For Each sStr In Name - aLang.Add(Name.Key) - Next + If bCurrentOnly Then + + For Each sStr In Dir(Project.Dir &/ ".lang", "*.po") + aLang.Add(File.BaseName(sStr)) + Next + + Else + + For Each sStr In Name + aLang.Add(Name.Key) + Next + + Endif aLang.Sort(gb.Language) diff --git a/app/src/gambas3/.src/Welcome/CWelcome.class b/app/src/gambas3/.src/Welcome/CWelcome.class index 73a3a5728..a1bd80280 100644 --- a/app/src/gambas3/.src/Welcome/CWelcome.class +++ b/app/src/gambas3/.src/Welcome/CWelcome.class @@ -78,7 +78,6 @@ End Public Sub dwgWelcome_Draw() - Dim hSvgLogo As SvgImage Dim X, Y As Integer Dim hDrawingArea As DrawingArea = $hObs.Object Dim I, S As Integer @@ -110,7 +109,7 @@ Public Sub dwgWelcome_Draw() Y += Paint.Font.Height PaintText("http://gambas.sourceforge.net", 12, Y, TEXT_COLOR) 'Color.LightForeground) - Paint.Font = Font["-1,Bold"] + Paint.Font = Font["Bold"] Y += Paint.Font.Height + 16 PaintText(("This program is published under the GNU General Public License.") & "\n" & ("The Gambas font is published under the SIL Open Font License."), 12, Y, Color.SelectedForeground) @@ -121,7 +120,7 @@ Public Sub dwgWelcome_Draw() Endif 'Paint.DrawImage($hLogo, hDrawingArea.W - $hLogo.Width, -10 - Desktop.Scale) - Paint.DrawImage($hLogo, hDrawingArea.W - $hLogo.Width, 0) + Paint.DrawImage($hLogo, hDrawingArea.W - $hLogo.Width - Desktop.Scale, 0) If $hTimer Then From fe90f3457a7e71e52eb1e4e25fff16735fffc059 Mon Sep 17 00:00:00 2001 From: gambas Date: Thu, 3 Jan 2019 10:28:56 +0100 Subject: [PATCH 2/8] Fix an incorrectly declared array. [DEVELOPMENT ENVIRONMENT] * BUG: Fix an incorrectly declared array. --- app/src/gambas3/.src/Project.module | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/gambas3/.src/Project.module b/app/src/gambas3/.src/Project.module index 86b0e91f9..d07f9ab19 100644 --- a/app/src/gambas3/.src/Project.module +++ b/app/src/gambas3/.src/Project.module @@ -6484,7 +6484,7 @@ Public Sub CompileTranslation(bForce As Boolean, Optional sLang As String) Dim sPath As String Dim sTrans As String - Dim aLang As Variant[] + Dim aLang As String[] Dim dTrans As Date Dim dPath As Date From 17bbc13df6fd8b2ca84223b8d59e9c8a566cc2d7 Mon Sep 17 00:00:00 2001 From: gambas Date: Thu, 3 Jan 2019 10:29:44 +0100 Subject: [PATCH 3/8] Do not use loop initial declaration in generated C code for old gcc versions. [GB.JIT] * BUG: Do not use loop initial declaration in generated C code for old gcc versions. --- main/lib/jit/gb.jit/.component | 2 +- main/lib/jit/gb.jit/.project | 2 +- main/lib/jit/gb.jit/jit.h | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/main/lib/jit/gb.jit/.component b/main/lib/jit/gb.jit/.component index f4ab88536..b481a6fc1 100644 --- a/main/lib/jit/gb.jit/.component +++ b/main/lib/jit/gb.jit/.component @@ -1,4 +1,4 @@ [Component] Key=gb.jit -Version=3.11.90 +Version=3.12.90 Authors=Benoît Minisini diff --git a/main/lib/jit/gb.jit/.project b/main/lib/jit/gb.jit/.project index 16e5f7e18..36252a642 100644 --- a/main/lib/jit/gb.jit/.project +++ b/main/lib/jit/gb.jit/.project @@ -1,7 +1,7 @@ # Gambas Project File 3.0 Title=Gambas JIT compiler support Startup=Main -Version=3.11.90 +Version=3.12.90 VersionFile=1 Authors="Benoît Minisini" TabSize=2 diff --git a/main/lib/jit/gb.jit/jit.h b/main/lib/jit/gb.jit/jit.h index 816082728..a1b21bbc0 100644 --- a/main/lib/jit/gb.jit/jit.h +++ b/main/lib/jit/gb.jit/jit.h @@ -144,8 +144,9 @@ typedef #define OPT(_p, _n) ({ \ uchar _opt = 0; \ + int _i; \ GB_VALUE *_param = &sp[-n+(_p)]; \ - for (int _i = 0; _i < (_n); _i++) \ + for (_i = 0; _i < (_n); _i++) \ { \ if (((_i + (_p)) >= n) || _param->type == GB_T_VOID) \ _opt |= (1 << _i); \ From 12136b7b0ea19d94ac1445245603fa2031520a6f Mon Sep 17 00:00:00 2001 From: gambas Date: Thu, 3 Jan 2019 10:31:07 +0100 Subject: [PATCH 4/8] Remove some useless void lines. [GB.UTIL] * BUG: Remove some useless void lines. --- comp/src/gb.util/.component | 2 +- comp/src/gb.util/.project | 2 +- comp/src/gb.util/.src/MPhonetic_French.module | 3 --- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/comp/src/gb.util/.component b/comp/src/gb.util/.component index 73a26896b..0e8770d52 100644 --- a/comp/src/gb.util/.component +++ b/comp/src/gb.util/.component @@ -1,4 +1,4 @@ [Component] Key=gb.util -Version=3.11.90 +Version=3.12.0 State=1 diff --git a/comp/src/gb.util/.project b/comp/src/gb.util/.project index 406e6e67a..8f8258f75 100644 --- a/comp/src/gb.util/.project +++ b/comp/src/gb.util/.project @@ -1,7 +1,7 @@ # Gambas Project File 3.0 Title=Gambas utilities Startup=MMain -Version=3.11.90 +Version=3.12.0 VersionFile=1 TabSize=2 Language=fr diff --git a/comp/src/gb.util/.src/MPhonetic_French.module b/comp/src/gb.util/.src/MPhonetic_French.module index 553472afe..51bf13cf5 100644 --- a/comp/src/gb.util/.src/MPhonetic_French.module +++ b/comp/src/gb.util/.src/MPhonetic_French.module @@ -11,8 +11,6 @@ Public Sub Before(sStr As String) As String End - - Public Sub Run(sStr As String) As String Dim sSuff As String @@ -275,7 +273,6 @@ REMOVE_DOUBLE: Endif Wend Return - End From a489590b0d5fd9894797d200477db8430a3ec281 Mon Sep 17 00:00:00 2001 From: gambas Date: Thu, 3 Jan 2019 10:55:06 +0100 Subject: [PATCH 5/8] URL is a now a dynamic class that can be used for analyzing and modifying the contents of an URL. [GB.UTIL.WEB] * NEW: URL is a now a dynamic class that can be used for analyzing and modifying the contents of an URL. * NEW: URLQuery is a new class that represents the query part of an URL. --- comp/src/gb.util.web/.component | 2 +- comp/src/gb.util.web/.project | 2 +- comp/src/gb.util.web/.src/MMain.module | 8 +- comp/src/gb.util.web/.src/URL.class | 138 ++++++++++++++++++++++- comp/src/gb.util.web/.src/URLQuery.class | 113 +++++++++++++++++++ 5 files changed, 256 insertions(+), 7 deletions(-) create mode 100644 comp/src/gb.util.web/.src/URLQuery.class diff --git a/comp/src/gb.util.web/.component b/comp/src/gb.util.web/.component index 741f235e4..ec208aeee 100644 --- a/comp/src/gb.util.web/.component +++ b/comp/src/gb.util.web/.component @@ -1,4 +1,4 @@ [Component] Key=gb.util.web -Version=3.11.90 +Version=3.12.90 State=1 diff --git a/comp/src/gb.util.web/.project b/comp/src/gb.util.web/.project index 956215974..7d179a732 100644 --- a/comp/src/gb.util.web/.project +++ b/comp/src/gb.util.web/.project @@ -1,7 +1,7 @@ # Gambas Project File 3.0 Title=gb.util.web Startup=MMain -Version=3.11.90 +Version=3.12.90 VersionFile=1 TabSize=2 Language=fr diff --git a/comp/src/gb.util.web/.src/MMain.module b/comp/src/gb.util.web/.src/MMain.module index 982761f4f..1c702fbf1 100644 --- a/comp/src/gb.util.web/.src/MMain.module +++ b/comp/src/gb.util.web/.src/MMain.module @@ -13,7 +13,13 @@ Public Function GetNullObject() As Object End Public Sub Main() + + Dim hURL As URL + + hURL = URL.FromString("http://localhost/guygle/find?query=ordre+de+travail+avec+interventions+dont+la+date+planifiée+est+comprise+entre+le+01%2F03%2F2017+et+31%2F03%2F2017+et+type+est+Campagne+dont+agence+est+AG.CIG.GONESSE&format=json&test#f5") - Print URL.Decode("ordre+de+travail+avec+interventions+dont+la+date+planifi%C3%A9e+est+comprise+entre+le+01%2F03%2F2017+et+31%2F03%2F2017+et+type+est+Campagne+dont+agence+est+AG.CIG.GONESSE") + Print hURL.Query["query"] + + Print hURL.ToString() End diff --git a/comp/src/gb.util.web/.src/URL.class b/comp/src/gb.util.web/.src/URL.class index 5096e9b66..8f7781bcb 100644 --- a/comp/src/gb.util.web/.src/URL.class +++ b/comp/src/gb.util.web/.src/URL.class @@ -2,7 +2,16 @@ Export -Static Public Sub Encode(Path As String) As String +Public Protocol As String +Public Host As String +Public Port As String +Public (User) As String +Public Password As String +Public Path As String +Public Query As UrlQuery +Public Hash As String + +Static Public Sub Encode((Path) As String) As String Dim iInd As Integer Dim sRes As String @@ -23,7 +32,7 @@ Static Public Sub Encode(Path As String) As String End -Static Public Sub Decode(Path As String) As String +Static Public Sub Decode((Path) As String) As String Dim iInd As Integer Dim sRes As String @@ -44,14 +53,135 @@ Static Public Sub Decode(Path As String) As String End -Static Public Sub Quote(Path As String) As String +Static Public Sub Quote((Path) As String) As String Return Encode(Path) End -Static Public Sub UnQuote(Path As String) As String +Static Public Sub UnQuote((Path) As String) As String Return Decode(Path) End + +Private Sub CreateUrl(sUrl As String) As URL + + Dim iPos As Integer + Dim sTemp As String + Dim sIdent As String + + iPos = InStr(sURL, ":") + If iPos Then + Protocol = Left(sURL, iPos - 1) + sURL = Mid$(sURL, iPos + 1) + Endif + + If sURL Begins "//" Then + + sURL = Mid$(sURL, 3) + iPos = InStr(sURL, "/") + If iPos = 0 Then + sTemp = sURL + sURL = "" + Else + sTemp = Left(sURL, iPos - 1) + sURL = Mid$(sURL, iPos) + Endif + + iPos = InStr(sTemp, "@") + If iPos Then + + sIdent = Left(sTemp, iPos - 1) + sTemp = Mid$(sTemp, iPos + 1) + + iPos = InStr(sIdent, ":") + If iPos Then + User = Left(sIdent, iPos - 1) + Password = Mid$(sIdent, iPos + 1) + Else + User = sIdent + Endif + + Endif + + iPos = InStr(sTemp, ":") + If iPos Then + Host = Left(sTemp, iPos - 1) + Port = Mid(sTemp, iPos + 1) + Else + Host = sTemp + Endif + + Endif + + iPos = InStr(sURL, "#") + If iPos Then + Hash = Mid(sURL, iPos + 1) + sURL = Left(sURL, iPos - 1) + Endif + + iPos = InStr(sURL, "?") + If iPos Then + Path = Left(sURL, iPos - 1) + Query = New URLQuery(Mid$(sURL, iPos + 1)) + Else + Path = sURL + Endif + + User = FromUrl(User) + Password = FromUrl(Password) + Host = FromUrl(Host) + Port = FromUrl(Port) + Path = FromUrl(Path) + Hash = FromUrl(Hash) + +End + +Public Sub _new(URL As String) + + CreateUrl(URL) + +End + +Public Sub ToString() As String + + Dim sURL As String + Dim sQuery As String + + If Protocol Then sURL = Protocol & ":" + + If Host Then + + sUrl &= "//" + + If User Or If Password Then + + sUrl &= Url(User) + If Password Then sUrl &= ":" & Url(Password) + sUrl &= "@" + + Endif + + sUrl &= Url(Host) + + If Port Then sUrl &= ":" & Url(Port) + + Endif + + If Path Then sUrl &/= Url(Path) + + sQuery = Query.ToString() + If sQuery Then sUrl &= "?" & sQuery + + If Hash Then sUrl &= "#" & Url(Hash) + + Return sUrl + +End + +Static Public Sub FromString(URL As String) As URL + + Return New URL(URL) + +End diff --git a/comp/src/gb.util.web/.src/URLQuery.class b/comp/src/gb.util.web/.src/URLQuery.class new file mode 100644 index 000000000..838782bfc --- /dev/null +++ b/comp/src/gb.util.web/.src/URLQuery.class @@ -0,0 +1,113 @@ +' Gambas class file + +Export + +Property Read Count As Integer +Property Read Keys As String[] + +Private $cNull As New Collection +Private $cVal As New Collection + +Public Sub _new(Query As String) + + Dim sElt As String + Dim iPos As Integer + Dim sKey As String + Dim sValue As String + Dim cKey As New Collection + + For Each sElt In Split(Query, "&") + + iPos = InStr(sElt, "=") + If iPos Then + sKey = URL.Decode(Left(sElt, iPos - 1)) + sValue = URL.Decode(Mid$(sElt, iPos + 1)) + Else + sKey = sElt + sValue = "" + Endif + + If Not sKey Then Continue + If cKey.Exist(sKey) Then Continue + + If sValue Then + $cVal[sKey] = sValue + Else + $cNull[sKey] = True + Endif + + Next + +End + +Public Sub Exist(Key As String) As Boolean + + If $cNull.Exist(Key) Then Return True + If $cVal.Exist(Key) Then Return True + +End + + +Public Sub _get(Key As String) As String + + Return $cVal[Key] + +End + +Public Sub _put(Value As String, Key As String) + + $cNull.Remove(Key) + $cVal.Remove(Key) + + If Value Then + $cVal[Key] = Value + Else + $cNull[Key] = True + Endif + +End + +Public Sub ToString() As String + + Dim aQuery As New String[] + Dim sVal As String + + For Each sVal In $cVal + aQuery.Add(URL.Encode($cVal.Key) & "=" & URL.Encode(sVal)) + Next + + For Each $cNull + aQuery.Add(URL.Encode($cNull.Key)) + Next + + Return aQuery.Join("&") + +End + +Static Public Sub FromString(Query As String) As URLQuery + + Return New URLQuery(Query) + +End + + +Private Function Count_Read() As Integer + + Return $cVal.Count + $cNull.Count + +End + +Private Function Keys_Read() As String[] + + Dim aKeys As String[] + + aKeys = New String[] + For Each $cVal + aKeys.Add($cVal.Key) + Next + For Each $cNull + aKeys.Add($cNull.Key) + Next + Return aKeys + +End From 26e14d343d9864f8111a33260ffc2709f37ec70f Mon Sep 17 00:00:00 2001 From: gambas Date: Thu, 3 Jan 2019 10:55:45 +0100 Subject: [PATCH 6/8] ToolPanel does not crash anymore. [GB.FORM] * BUG: ToolPanel does not crash anymore. --- comp/src/gb.form/.component | 2 +- comp/src/gb.form/.project | 6 +++--- .../src/gb.form/.src/Test/FTestDateChooser.class | 7 +++++++ comp/src/gb.form/.src/Test/FTestDateChooser.form | 11 ++++++++++- comp/src/gb.form/.src/Test/FTestToolPanel.class | 2 ++ comp/src/gb.form/.src/Test/FTestToolPanel.form | 16 ++++++++++++++++ comp/src/gb.form/.src/ToolPanel/FToolBar.class | 2 +- 7 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 comp/src/gb.form/.src/Test/FTestToolPanel.class create mode 100644 comp/src/gb.form/.src/Test/FTestToolPanel.form diff --git a/comp/src/gb.form/.component b/comp/src/gb.form/.component index cc4ba928c..a718ad400 100644 --- a/comp/src/gb.form/.component +++ b/comp/src/gb.form/.component @@ -1,5 +1,5 @@ [Component] Key=gb.form -Version=3.11.90 +Version=3.12.90 Authors=Benoît Minisini Needs=Form diff --git a/comp/src/gb.form/.project b/comp/src/gb.form/.project index 97108d06c..cf6c775db 100644 --- a/comp/src/gb.form/.project +++ b/comp/src/gb.form/.project @@ -1,13 +1,13 @@ # Gambas Project File 3.0 Title=More controls for graphical components -Startup=FBugFileView -Version=3.11.90 +Startup=FTestDateChooser +Version=3.12.90 VersionFile=1 Component=gb.image Component=gb.gui Component=gb.settings Authors="Benoît Minisini" -Environment="GB_GUI=gb.qt4" +Environment="GB_GUI=gb.gtk3" TabSize=2 Translate=1 Language=en diff --git a/comp/src/gb.form/.src/Test/FTestDateChooser.class b/comp/src/gb.form/.src/Test/FTestDateChooser.class index 32a01dc45..f55c997c3 100644 --- a/comp/src/gb.form/.src/Test/FTestDateChooser.class +++ b/comp/src/gb.form/.src/Test/FTestDateChooser.class @@ -17,3 +17,10 @@ Public Sub DateBox2_Change() Debug DateBox2.Value End + +Public Sub Button1_Click() + + DateBox1.Enabled = Not DateBox1.Enabled + DateBox2.Enabled = Not DateBox2.Enabled + +End diff --git a/comp/src/gb.form/.src/Test/FTestDateChooser.form b/comp/src/gb.form/.src/Test/FTestDateChooser.form index 410344bd0..85f467cc9 100644 --- a/comp/src/gb.form/.src/Test/FTestDateChooser.form +++ b/comp/src/gb.form/.src/Test/FTestDateChooser.form @@ -17,7 +17,8 @@ Move(63,140,168,28) } { txtYear SpinBox - Move(168,308,63,28) + Move(216,296,64,24) + Enabled = False MinValue = 1600 MaxValue = 9999 Value = 2015 @@ -27,4 +28,12 @@ Move(21,203,238,28) Enabled = False } + { Button1 Button + Move(32,8,128,32) + Text = ("Enable") + } + { TextBox1 TextBox + Move(64,256,136,32) + Enabled = False + } } diff --git a/comp/src/gb.form/.src/Test/FTestToolPanel.class b/comp/src/gb.form/.src/Test/FTestToolPanel.class new file mode 100644 index 000000000..0a5fa73ac --- /dev/null +++ b/comp/src/gb.form/.src/Test/FTestToolPanel.class @@ -0,0 +1,2 @@ +' Gambas class file + diff --git a/comp/src/gb.form/.src/Test/FTestToolPanel.form b/comp/src/gb.form/.src/Test/FTestToolPanel.form new file mode 100644 index 000000000..1e1622e82 --- /dev/null +++ b/comp/src/gb.form/.src/Test/FTestToolPanel.form @@ -0,0 +1,16 @@ +# Gambas Form File 3.0 + +{ Form Form + MoveScaled(0,0,64,64) + { ToolPanel1 ToolPanel + MoveScaled(4,6,24,24) + Count = 3 + Index = 0 + Text = ("Toolbar &0") + Index = 1 + Text = ("Toolbar &1") + Index = 2 + Text = ("Toolbar &2") + Index = 0 + } +} diff --git a/comp/src/gb.form/.src/ToolPanel/FToolBar.class b/comp/src/gb.form/.src/ToolPanel/FToolBar.class index f86f53c38..af491d208 100644 --- a/comp/src/gb.form/.src/ToolPanel/FToolBar.class +++ b/comp/src/gb.form/.src/ToolPanel/FToolBar.class @@ -41,7 +41,7 @@ End Public Sub btnTitle_Click() - Dim hParent As ToolPanelContainer = Me.Parent + Dim hParent As ToolPanelContainer = Me._Parent hParent._Change End From e61175c939aa9f445987387edd148a688e1800b0 Mon Sep 17 00:00:00 2001 From: gambas Date: Thu, 3 Jan 2019 10:56:37 +0100 Subject: [PATCH 7/8] Update some component, project and test files. --- app/examples/Multimedia/MoviePlayer/.project | 3 +-- comp/src/gb.eval.highlight/.component | 2 +- comp/src/gb.eval.highlight/.project | 2 +- comp/src/gb.eval.highlight/.src/Main.module | 8 +++++--- comp/src/gb.form.mdi/.component | 2 +- comp/src/gb.form.mdi/.project | 2 +- comp/src/gb.map/.component | 2 +- comp/src/gb.map/.project | 2 +- comp/src/gb.media.form/.src/FTest.form | 1 + comp/src/gb.net.pop3/.component | 2 +- comp/src/gb.net.pop3/.project | 2 +- comp/src/gb.report2/.component | 2 +- comp/src/gb.report2/.project | 2 +- comp/src/gb.web.form/.component | 2 +- comp/src/gb.web.form/.project | 2 +- comp/src/gb.web/.component | 2 +- comp/src/gb.web/.project | 2 +- gb.net.curl/src/gb.net.curl/.project | 2 +- 18 files changed, 22 insertions(+), 20 deletions(-) diff --git a/app/examples/Multimedia/MoviePlayer/.project b/app/examples/Multimedia/MoviePlayer/.project index 4b8e1d536..3f71780ed 100644 --- a/app/examples/Multimedia/MoviePlayer/.project +++ b/app/examples/Multimedia/MoviePlayer/.project @@ -1,9 +1,8 @@ # Gambas Project File 3.0 -# Compiled with Gambas 3.6.90 Title=Movie player example Startup=FMoviePlayer Icon=video.png -Version=3.6.2 +Version=3.11.90 VersionFile=1 Component=gb.image Component=gb.gui diff --git a/comp/src/gb.eval.highlight/.component b/comp/src/gb.eval.highlight/.component index 16395c42d..dad1caf45 100644 --- a/comp/src/gb.eval.highlight/.component +++ b/comp/src/gb.eval.highlight/.component @@ -1,4 +1,4 @@ [Component] Key=gb.eval.highlight -Version=3.11.90 +Version=3.12.0 Requires=gb.eval diff --git a/comp/src/gb.eval.highlight/.project b/comp/src/gb.eval.highlight/.project index f52d684f3..b38c58115 100644 --- a/comp/src/gb.eval.highlight/.project +++ b/comp/src/gb.eval.highlight/.project @@ -1,7 +1,7 @@ # Gambas Project File 3.0 Title=gb.eval.highlight Startup=Main -Version=3.11.90 +Version=3.12.0 VersionFile=1 Component=gb.eval Component=gb.net diff --git a/comp/src/gb.eval.highlight/.src/Main.module b/comp/src/gb.eval.highlight/.src/Main.module index 05726c286..ad5a53835 100644 --- a/comp/src/gb.eval.highlight/.src/Main.module +++ b/comp/src/gb.eval.highlight/.src/Main.module @@ -50,8 +50,10 @@ Public Sub Main() hHighlighter = TextHighlighter["gambas"] - TextHighlighter._Highlight = New Byte[] - hHighlighter.Run("Label:") - Print TextHighlighter._Highlight.Count + 'Print hHighlighter.ToHTML(File.Load("src.txt")) + + ' TextHighlighter._Highlight = New Byte[] + ' hHighlighter.Run("Label:") + ' Print TextHighlighter._Highlight.Count End diff --git a/comp/src/gb.form.mdi/.component b/comp/src/gb.form.mdi/.component index 6b141ee67..432a95340 100644 --- a/comp/src/gb.form.mdi/.component +++ b/comp/src/gb.form.mdi/.component @@ -1,6 +1,6 @@ [Component] Key=gb.form.mdi -Version=3.11.90 +Version=3.12.0 Authors=Benoît Minisini Needs=Form Requires=gb.form,gb.settings diff --git a/comp/src/gb.form.mdi/.project b/comp/src/gb.form.mdi/.project index 37cfc7ff0..354c7025a 100644 --- a/comp/src/gb.form.mdi/.project +++ b/comp/src/gb.form.mdi/.project @@ -2,7 +2,7 @@ Title=Multiple document interface management Startup=FMain Icon=.hidden/control/workspace.png -Version=3.11.90 +Version=3.12.0 VersionFile=1 Component=gb.image Component=gb.gui diff --git a/comp/src/gb.map/.component b/comp/src/gb.map/.component index 7c72c044b..5be5eab9f 100644 --- a/comp/src/gb.map/.component +++ b/comp/src/gb.map/.component @@ -1,6 +1,6 @@ [Component] Key=gb.map -Version=3.11.90 +Version=3.12.0 State=1 Authors=Fabien Bodard Needs=Form,ImageIO diff --git a/comp/src/gb.map/.project b/comp/src/gb.map/.project index 4043697b6..0d5ec4a26 100644 --- a/comp/src/gb.map/.project +++ b/comp/src/gb.map/.project @@ -2,7 +2,7 @@ Title=gb.map Startup=Form5 Icon=.hidden/control/mapview.png -Version=3.11.90 +Version=3.12.0 VersionFile=1 Component=gb.image Component=gb.gui diff --git a/comp/src/gb.media.form/.src/FTest.form b/comp/src/gb.media.form/.src/FTest.form index 54327c6be..32aead08a 100644 --- a/comp/src/gb.media.form/.src/FTest.form +++ b/comp/src/gb.media.form/.src/FTest.form @@ -6,5 +6,6 @@ Margin = True { MediaView1 MediaView MoveScaled(4,5,38,30) + URL = "/home/benoit/Les Demoiselles de Rochefort (1967) - La Chanson de Maxence-atgHEhyJAnw.webm" } } diff --git a/comp/src/gb.net.pop3/.component b/comp/src/gb.net.pop3/.component index f30520985..0f857858f 100644 --- a/comp/src/gb.net.pop3/.component +++ b/comp/src/gb.net.pop3/.component @@ -1,5 +1,5 @@ [Component] Key=gb.net.pop3 -Version=3.10.90 +Version=3.11.90 Authors=sebikul ,Fabien Bodard ,Benoît Minisini Requires=gb.net,gb.mime diff --git a/comp/src/gb.net.pop3/.project b/comp/src/gb.net.pop3/.project index 2ad2ec014..1d293fbc3 100644 --- a/comp/src/gb.net.pop3/.project +++ b/comp/src/gb.net.pop3/.project @@ -2,7 +2,7 @@ Title=gb.net.pop3 Startup=MTest Icon=.hidden/control/pop3client.png -Version=3.10.90 +Version=3.11.90 VersionFile=1 Component=gb.net Component=gb.mime diff --git a/comp/src/gb.report2/.component b/comp/src/gb.report2/.component index 90b4a1a72..b86cc81b9 100644 --- a/comp/src/gb.report2/.component +++ b/comp/src/gb.report2/.component @@ -1,5 +1,5 @@ [Component] Key=gb.report2 -Version=3.11.90 +Version=3.12.90 Needs=Form Requires=gb.form diff --git a/comp/src/gb.report2/.project b/comp/src/gb.report2/.project index 5e32fb5f9..d5d36385d 100644 --- a/comp/src/gb.report2/.project +++ b/comp/src/gb.report2/.project @@ -2,7 +2,7 @@ Title=ReportsEvolution Startup=Report13 Icon=.hidden/control/reportview.png -Version=3.11.90 +Version=3.12.90 VersionFile=1 Component=gb.image Component=gb.gui diff --git a/comp/src/gb.web.form/.component b/comp/src/gb.web.form/.component index 617d85648..adb610299 100644 --- a/comp/src/gb.web.form/.component +++ b/comp/src/gb.web.form/.component @@ -1,6 +1,6 @@ [Component] Key=gb.web.form -Version=3.11.90 +Version=3.12.90 State=1 Authors=Benoît Minisini Requires=gb.web,gb.util.web,gb.util diff --git a/comp/src/gb.web.form/.project b/comp/src/gb.web.form/.project index 554e1bf51..d3829ce74 100644 --- a/comp/src/gb.web.form/.project +++ b/comp/src/gb.web.form/.project @@ -1,7 +1,7 @@ # Gambas Project File 3.0 Startup=Webform6 UseHttpServer=1 -Version=3.11.90 +Version=3.12.90 VersionFile=1 Component=gb.util Component=gb.util.web diff --git a/comp/src/gb.web/.component b/comp/src/gb.web/.component index fa7a8221c..b2e0e97df 100644 --- a/comp/src/gb.web/.component +++ b/comp/src/gb.web/.component @@ -1,5 +1,5 @@ [Component] Key=gb.web -Version=3.11.90 +Version=3.12.90 Authors=Benoît Minisini Include=gb.util.web diff --git a/comp/src/gb.web/.project b/comp/src/gb.web/.project index d6335a017..f8fc17435 100644 --- a/comp/src/gb.web/.project +++ b/comp/src/gb.web/.project @@ -1,7 +1,7 @@ # Gambas Project File 3.0 Title=Web applications tools Startup=Main -Version=3.11.90 +Version=3.12.90 VersionFile=1 Component=gb.db Component=gb.web diff --git a/gb.net.curl/src/gb.net.curl/.project b/gb.net.curl/src/gb.net.curl/.project index 04b28765a..5a29f3574 100644 --- a/gb.net.curl/src/gb.net.curl/.project +++ b/gb.net.curl/src/gb.net.curl/.project @@ -1,7 +1,7 @@ # Gambas Project File 3.0 Title=gb.net.curl Startup=MMain -Version=3.11.90 +Version=3.12.90 VersionFile=1 Component=gb.net Component=gb.net.curl From 0266ca1f15c1d0a0d6027725d8b113bf3781779a Mon Sep 17 00:00:00 2001 From: gambas Date: Thu, 3 Jan 2019 19:58:17 +0100 Subject: [PATCH 8/8] InStr() and RInstr() work correctly again when case is ignored and pattern length is at least two characters. [INTERPRETER] * BUG: InStr() and RInstr() work correctly again when case is ignored and pattern length is at least two characters. --- main/gbx/gbx_string.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/gbx/gbx_string.c b/main/gbx/gbx_string.c index 3ee6876fa..86dd2305f 100644 --- a/main/gbx/gbx_string.c +++ b/main/gbx/gbx_string.c @@ -1208,7 +1208,7 @@ int STRING_search(const char *ps, int ls, const char *pp, int lp, int is, bool r pos = 0; apos = 0; - if (!nocase || pp[0] == tolower(pp[0])) + if (!nocase) // || pp[0] == tolower(pp[0])) { p = memchr(right ? ps : ps + is, (uchar)pp[0], right ? ls : ls - is); if (!p)