From mbelmonte at belmotek.net Fri Jul 1 11:32:24 2022 From: mbelmonte at belmotek.net (Martin) Date: Fri, 1 Jul 2022 11:32:24 +0200 Subject: [Gambas-user] Checksum Message-ID: Hi, Is possible obtain a checksum string from a file with Gambas native tools? Actually I use the shell command "crc32 /path/file.ext" The unique reference to checksum that I found in gambas wiki is in: https://gambaswiki.org/wiki/doc/farmproto Best regards From bsteers4 at gmail.com Fri Jul 1 14:38:07 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 1 Jul 2022 13:38:07 +0100 Subject: [Gambas-user] Args help , most other places is -? In-Reply-To: <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> Message-ID: Inline... On Thu, 30 Jun 2022 at 13:21, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 30/06/2022 ? 02:21, Bruce Steers a ?crit : > > > > Fair point. Now I'm thinking harder I can't think of any other reason > > myself other than -? > > Maybe I could make it check for -? With a property? > Args.QuestionMarkIsHelp > > Just let the user handle both cases if he wants, and implement both > options in the default help management. > Hows about a property Args.HelpShortName = "h" and if you want to use -? or the letter the word help begins with in your language or use -h for something else then you can just change Args.HelpShortName > > > Another point: I didn't notice that you added a 'Args.HelpText()' > > method > > with an optional argument. It's quite an ugly interface! Why whould > you > > need the automatically generated text as a string instead of > > printing it? > > > > > > To begin with the Args.HelpText() method did not have an option to print > > it just returned the text for printing with 'Print Args HelpText()' > > I guess I thought printing it would be most used so I added the option. > > Clearly I am not as sane as you ? > > I think it has uses. The arg descriptions could contain Subst() tokens > > and be customised at runtime using the text. > > Sorry, but I don't see the need of that. Don't add unneeded complexity > to an interface that must be kept as simple as possible. And, by the > way, 'HelpText' is the name of a property. As a method, you should have > named it something like 'GetHelpText()', and never let a method both > returning something and/or print it! > > I prefer a 'PrintHelp()' method, that would be used only when the user > handles the '-h' (or '-?') option itself. > > But now that it's in a stable version, we can't remove it. :-( > aah, dang, sorry about that. I cannot imagine many if any have used it yet. Perhaps a change could slip by unnoticed? (i'll take full responsibility/blame) I think it's best as a property returning the text for you to print and not an auto-printing method as it opens the possibility of modifying the text first > > > Am adding a boolean property to the class due to what other Bruce said > > called Args.ExpandShortNames. if true It stops an arg like -ab being > > seen as -a and -b and sees it as -ab. > > I don't think that should be optional. I prefer that you remove the > property and always handle option combination. Long options always begin > with two minus signs. > Sadly my way of auto-checking was wrong and looks like it will take some coding to handle combinations due to the way Args are processed, all application Args being read in at .Begin() then processed with each .Has() , .Get() call makes it far more complicated and could require a bit of a re-write in how the args are processed. Adding a switch to either use short name grouping or not works really simply. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Fri Jul 1 14:48:58 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 1 Jul 2022 08:48:58 -0400 Subject: [Gambas-user] Checksum In-Reply-To: References: Message-ID: <20ceb3e5-446b-018e-b21c-f083c49467af@gmail.com> On 7/1/22 05:32, Martin wrote: > Hi, > Is possible obtain a checksum string from a file with Gambas native tools? > Actually I use the shell command "crc32 /path/file.ext" > > The unique reference to checksum that I found in gambas wiki is in: > https://gambaswiki.org/wiki/doc/farmproto The checksum used by the Farm Protocol is sha256. If you're looking for something like that (instead of crc32), see: http://gambaswiki.org/wiki/comp/gb.openssl/digest -- Lee From mbelmonte at belmotek.net Fri Jul 1 17:36:19 2022 From: mbelmonte at belmotek.net (Martin) Date: Fri, 1 Jul 2022 17:36:19 +0200 Subject: [Gambas-user] Checksum In-Reply-To: <20ceb3e5-446b-018e-b21c-f083c49467af@gmail.com> References: <20ceb3e5-446b-018e-b21c-f083c49467af@gmail.com> Message-ID: <013e4e0c-c014-ae2e-83c5-3af074c48917@belmotek.net> El 1/7/22 a las 14:48, T Lee Davidson escribi?: > > The checksum used by the Farm Protocol is sha256. If you're looking for > something like that (instead of crc32), see: I want to create a unique identifier for each file based on its properties, the purpose is to avoid duplication and also to avoid overwriting files such as photos that were taken at the same instant so year, month, day, hour, minute, second, would not be enough. Best regards Martin. From t.lee.davidson at gmail.com Sat Jul 2 02:57:21 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 1 Jul 2022 20:57:21 -0400 Subject: [Gambas-user] Checksum In-Reply-To: <013e4e0c-c014-ae2e-83c5-3af074c48917@belmotek.net> References: <20ceb3e5-446b-018e-b21c-f083c49467af@gmail.com> <013e4e0c-c014-ae2e-83c5-3af074c48917@belmotek.net> Message-ID: <6180f5b7-61e1-35e5-33f5-02941e41df80@gmail.com> On 7/1/22 11:36, Martin wrote: > El 1/7/22 a las 14:48, T Lee Davidson escribi?: >> >> The checksum used by the Farm Protocol is sha256. If you're looking for something like that (instead of crc32), see: > > I want to create a unique identifier for each file based on its properties, the purpose is to avoid duplication and also to > avoid overwriting files such as photos that were taken at the same instant so year, month, day, hour, minute, second, would not > be enough. Okay. So ... did you look at the documentation I linked? -- Lee From bsteers4 at gmail.com Sat Jul 2 13:04:22 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 2 Jul 2022 12:04:22 +0100 Subject: [Gambas-user] Args help , most other places is -? In-Reply-To: <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> Message-ID: On Thu, 30 Jun 2022 at 13:21, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 30/06/2022 ? 02:21, Bruce Steers a ?crit : > > > > Fair point. Now I'm thinking harder I can't think of any other reason > > myself other than -? > > Maybe I could make it check for -? With a property? > Args.QuestionMarkIsHelp > > Just let the user handle both cases if he wants, and implement both > options in the default help management. > Problem was what if the user wants to use -? for help and -h for something else? It was impossible as Args uses -h if you want it to or not there was no choice. Last commit i removed the HelpShortName property that let you change the help short name and replaced it for a simpler NoHelp property. Is that more acceptable? If Args.NoHelp = True then neither -h or --help is used and you can then enter what ever you like manually. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From hans at gambas-buch.de Sat Jul 2 15:37:08 2022 From: hans at gambas-buch.de (Hans Lehmann) Date: Sat, 2 Jul 2022 15:37:08 +0200 Subject: [Gambas-user] Webpage & Request.Post In-Reply-To: <717a4ab8-232b-a073-75b5-29b131627ed1@belmotek.net> References: <2c248665-82cf-0b02-6e03-f64acdc57f80@belmotek.net> <5c951672-8bf5-7889-ace2-a3e4a9a527d8@gambas-basic.org> <05a62d10-ef23-1bc7-6bce-9202c05184fe@gambas-basic.org> <61ca1d1d-3e61-056c-2d3d-611a65a6355f@belmotek.net> <717a4ab8-232b-a073-75b5-29b131627ed1@belmotek.net> Message-ID: <9c40390f-c3b4-d8b3-ba34-c27fad27bfbd@gambas-buch.de> Hello, I am working with the class Webpage. When I want to evaluate a form, I get with this source text: <% ? Dim i As Integer ? Dim aFields As New String[] ? aFields = Request.Post.Fields ? Print "METHODE = " & CGI["REQUEST_METHOD"] ? Print "
" ? For i = 0 To aFields.Max ??? Print "Field " & i & " = " & aFields[i] & "
" ? Next %> this output in the browser after I have submitted the form: METHODE = POST Field 0 = firstname Field 1 = lastname Field 2 = birthday Field 3 = email Field 4 = material Field 5 = version Field 6 = message Field 7 = confirmation Field 8 = sent However, I am not able to read out the contents of the individual fields! The following - extended source text: <% ? Dim i As Integer ? Dim aFields As New String[] ? Dim hRequest As New Request ? aFields = Request.Post.Fields ? Print "METHODE = " & CGI["REQUEST_METHOD"] ? Print "
" ? For i = 0 To aFields.Max ?? Print "Field " & i & " = " & aFields[i] & " Field_Value = " & hRequest.Post[aFields[i]] & "
" ? Next %> triggers an error. The browser only says: 500 Internal Server Error Where is my error? What are the possibilities to determine the content of the individual fields? With kind regards Hans From hans at gambas-buch.de Sat Jul 2 18:17:40 2022 From: hans at gambas-buch.de (Hans Lehmann) Date: Sat, 2 Jul 2022 18:17:40 +0200 Subject: [Gambas-user] Webpage & Request.Post In-Reply-To: <9c40390f-c3b4-d8b3-ba34-c27fad27bfbd@gambas-buch.de> References: <2c248665-82cf-0b02-6e03-f64acdc57f80@belmotek.net> <5c951672-8bf5-7889-ace2-a3e4a9a527d8@gambas-basic.org> <05a62d10-ef23-1bc7-6bce-9202c05184fe@gambas-basic.org> <61ca1d1d-3e61-056c-2d3d-611a65a6355f@belmotek.net> <717a4ab8-232b-a073-75b5-29b131627ed1@belmotek.net> <9c40390f-c3b4-d8b3-ba34-c27fad27bfbd@gambas-buch.de> Message-ID: <2070fe59-da55-ecbe-d761-5ab6f536ab09@gambas-buch.de> Hello. A solution has been found: <% ? Dim i As Integer ? Dim aFields As New String[] ? aFields = Request.Post.Fields ? Print "METHODE = " & CGI["REQUEST_METHOD"] ? Print "
" ? For i = 0 To aFields.Max ??? Print "Field " & i & " = " & aFields[i] & " ----->? Field_Value = " & Request.Post[aFields[i]] & "
" ? Next %> With kind regards Hans From t.lee.davidson at gmail.com Sat Jul 2 21:37:34 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 2 Jul 2022 15:37:34 -0400 Subject: [Gambas-user] Webpage & Request.Post In-Reply-To: <9c40390f-c3b4-d8b3-ba34-c27fad27bfbd@gambas-buch.de> References: <2c248665-82cf-0b02-6e03-f64acdc57f80@belmotek.net> <5c951672-8bf5-7889-ace2-a3e4a9a527d8@gambas-basic.org> <05a62d10-ef23-1bc7-6bce-9202c05184fe@gambas-basic.org> <61ca1d1d-3e61-056c-2d3d-611a65a6355f@belmotek.net> <717a4ab8-232b-a073-75b5-29b131627ed1@belmotek.net> <9c40390f-c3b4-d8b3-ba34-c27fad27bfbd@gambas-buch.de> Message-ID: On 7/2/22 09:37, Hans Lehmann wrote: > The?following?-?extended?source?text: > > <% > ??Dim?i?As?Integer > ??Dim?aFields?As?New?String[] > ??Dim?hRequest?As?New?Request > > ??aFields?=?Request.Post.Fields > > ??Print?"METHODE?=?"?&?CGI["REQUEST_METHOD"] > ??Print?"
" > ??For?i?=?0?To?aFields.Max > ?? Print "Field " & i & " = " & aFields[i] & " Field_Value = " & hRequest.Post[aFields[i]]?&?"
" > ??Next > %> > > triggers?an?error.?The?browser?only?says: > > 500?Internal?Server?Error > > Where?is?my?error? Just FYI, the 500 Internal Server Error was likely caused by this line: Dim hRequest As New Request The documentation does not explicitly say, but I would have to assume that the Request class is not creatable. -- Lee From hans at gambas-buch.de Sun Jul 3 15:12:07 2022 From: hans at gambas-buch.de (Hans Lehmann) Date: Sun, 3 Jul 2022 15:12:07 +0200 Subject: [Gambas-user] Webpage - HTML in Textarea In-Reply-To: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> Message-ID: <080ded6a-871b-97df-7cdc-1777ef5a5456@gambas-buch.de> Hallo, durch Zufall bin ich darauf gekommen, dass HTML - hier zum Beispiel 'TEXT
' in einer Textarea in einem Formular in einer Webpage nicht angezeigt wird, sondern interpretiert und ausgef?hrt wird. Nach dem Text TEXT wurde eine horizontale Linie angezeigt. Gibt es in Gambas - ?hnlich zu htmlspecialchars(...) in PHP - eine Funktion, die Sonderzeichen in HTML-Entities umwandelt? Mit freundlichem Gru? Hans From hans at gambas-buch.de Sun Jul 3 15:52:04 2022 From: hans at gambas-buch.de (Hans Lehmann) Date: Sun, 3 Jul 2022 15:52:04 +0200 Subject: [Gambas-user] Webpage - HTML in Textarea In-Reply-To: <080ded6a-871b-97df-7cdc-1777ef5a5456@gambas-buch.de> References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <080ded6a-871b-97df-7cdc-1777ef5a5456@gambas-buch.de> Message-ID: Hello, by chance I found out that HTML - here for example 'TEXT
' in a textarea in a form in a webpage is not displayed but interpreted and executed. After the text TEXT a horizontal line was displayed. Is there a function in Gambas - similar to htmlspecialchars(...) in PHP - that converts special characters into HTML entities? With kind regards Hans From isafiur at gmail.com Sun Jul 3 16:39:54 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Sun, 3 Jul 2022 20:24:54 +0545 Subject: [Gambas-user] Webpage - HTML in Textarea Message-ID: Hi I have been using webHtml with contenteditable="true" -- Regards Safiur Rahman -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sun Jul 3 17:56:57 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 3 Jul 2022 17:56:57 +0200 Subject: [Gambas-user] Webpage - HTML in Textarea In-Reply-To: References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <080ded6a-871b-97df-7cdc-1777ef5a5456@gambas-buch.de> Message-ID: Le 03/07/2022 ? 15:52, Hans Lehmann a ?crit?: > Hello, > > by chance I found out that HTML - here for example 'TEXT
' in a > textarea in a form in a webpage is not displayed but interpreted and > executed. After the text TEXT a horizontal line was displayed. Is there > a function in Gambas - similar to htmlspecialchars(...) in PHP - that > converts special characters into HTML entities? > > With kind regards > > Hans > Yes: Html$() -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Sun Jul 3 17:58:58 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 3 Jul 2022 17:58:58 +0200 Subject: [Gambas-user] Args help , most other places is -? In-Reply-To: References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> Message-ID: <25d18e1c-ef13-4939-f91d-15c3601563ae@gambas-basic.org> Le 02/07/2022 ? 13:04, Bruce Steers a ?crit?: > > > On Thu, 30 Jun 2022 at 13:21, Benoit Minisini > > wrote: > > Le 30/06/2022 ? 02:21, Bruce Steers a ?crit?: > > > > Fair point. Now I'm thinking harder I can't think of any other > reason > > myself other than -? > > Maybe I could make it check for -? With a property? > Args.QuestionMarkIsHelp > > Just let the user handle both cases if he wants, and implement both > options in the default help management. > > > Problem was what if the user wants to use -? for help and -h for > something else?? It was impossible as Args uses -h if you want it to or > not there was no choice. > Last commit i removed the HelpShortName property that let you change the > help short name and replaced it for a simpler NoHelp property. > > Is that more acceptable? > If Args.NoHelp = True then neither -h or --help is used and you can then > enter what ever you like manually. > > Respects > BruceS > 'gb.args' is for implementing a standard command-line argument support. As soon as the user wants to do something "stupid" (like using '-h' for something other than help), I think 'gb.args' must not support it. This is the same reason why I think implementing simple option merge ('-ab' == '-a -b') must not be optional. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Mon Jul 4 11:43:01 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 4 Jul 2022 10:43:01 +0100 Subject: [Gambas-user] Args help , most other places is -? In-Reply-To: <25d18e1c-ef13-4939-f91d-15c3601563ae@gambas-basic.org> References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> <25d18e1c-ef13-4939-f91d-15c3601563ae@gambas-basic.org> Message-ID: On Sun, 3 Jul 2022 at 16:59, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 02/07/2022 ? 13:04, Bruce Steers a ?crit : > > > > > > On Thu, 30 Jun 2022 at 13:21, Benoit Minisini > > > > wrote: > > > > Le 30/06/2022 ? 02:21, Bruce Steers a ?crit : > > > > > > Fair point. Now I'm thinking harder I can't think of any other > > reason > > > myself other than -? > > > Maybe I could make it check for -? With a property? > > Args.QuestionMarkIsHelp > > > > Just let the user handle both cases if he wants, and implement both > > options in the default help management. > > > > > > Problem was what if the user wants to use -? for help and -h for > > something else? It was impossible as Args uses -h if you want it to or > > not there was no choice. > > Last commit i removed the HelpShortName property that let you change the > > help short name and replaced it for a simpler NoHelp property. > > > > Is that more acceptable? > > If Args.NoHelp = True then neither -h or --help is used and you can then > > enter what ever you like manually. > > > > Respects > > BruceS > > > > 'gb.args' is for implementing a standard command-line argument support. > As soon as the user wants to do something "stupid" (like using '-h' for > something other than help), I think 'gb.args' must not support it. > > This is the same reason why I think implementing simple option merge > ('-ab' == '-a -b') must not be optional. > > Regards, > Sorry my friend but i can't help but disagree a bit. Personally i think -? is even better than -h for help, because it's language universal. If in your language the word for help does not begin with h and your application is not for public global use then you may well want to use something else other than h. I think that's reasonable not stupid. and it's nice to have the option, it's really not much code to add the option and skip the default unchangeable -h --help should you want to. and absolutely yes to the grouping option, as an option. I love options. Micro$oft is where a forced way with a lack of options belong ;) But in conclusion I find myself once again in that position of me saying "Ben, we should do this, we should do that" when the truth is ,, "I could do this, I could do that." So I'm now currently making up a webpage that's going to contain a whole load of my bright ideas in modified/upgraded gambas components with a description of the modifications and importing instructions. This i think is a good way to go. (better for you for keeping gambas pure and non-bloated) Maybe we could even add an "Alternative modified components" section to the wiki that others could also add their mods to? Wishing well. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Mon Jul 4 12:17:18 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 4 Jul 2022 12:17:18 +0200 Subject: [Gambas-user] Args help , most other places is -? In-Reply-To: References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> <25d18e1c-ef13-4939-f91d-15c3601563ae@gambas-basic.org> Message-ID: Le 04/07/2022 ? 11:43, Bruce Steers a ?crit?: > > > On Sun, 3 Jul 2022 at 16:59, Benoit Minisini > > wrote: > > Le 02/07/2022 ? 13:04, Bruce Steers a ?crit?: > > > > > > On Thu, 30 Jun 2022 at 13:21, Benoit Minisini > > > > >> wrote: > > > >? ? ?Le 30/06/2022 ? 02:21, Bruce Steers a ?crit?: > >? ? ? > > >? ? ? > Fair point. Now I'm thinking harder I can't think of any other > >? ? ?reason > >? ? ? > myself other than -? > >? ? ? > Maybe I could make it check for -? With a property? > >? ? ?Args.QuestionMarkIsHelp > > > >? ? ?Just let the user handle both cases if he wants, and > implement both > >? ? ?options in the default help management. > > > > > > Problem was what if the user wants to use -? for help and -h for > > something else?? It was impossible as Args uses -h if you want it > to or > > not there was no choice. > > Last commit i removed the HelpShortName property that let you > change the > > help short name and replaced it for a simpler NoHelp property. > > > > Is that more acceptable? > > If Args.NoHelp = True then neither -h or --help is used and you > can then > > enter what ever you like manually. > > > > Respects > > BruceS > > > > 'gb.args' is for implementing a standard command-line argument support. > As soon as the user wants to do something "stupid" (like using '-h' for > something other than help), I think 'gb.args' must not support it. > > This is the same reason why I think implementing simple option merge > ('-ab' == '-a -b') must not be optional. > > Regards, > > > Sorry my friend but i can't help but disagree a bit. > Personally i think -? is even better than -h for help, because it's > language universal. Indeed, but it seems there is some sort of implicit standard of using "-h" for help almost everywhere (options are in english). I wanted 'gb.args' to implement that implicit standard, not to handle all the different possible command-line syntaxes, so that it is the simplest possible. For the same reason, I think grouping single character options is part of that implicit standard, and so I don't think it should be optional. "-ab" has no meaning in that syntax. (I personnaly don't like these programs that do not follow this standard as much as possible). If you start adding option for this and that, you will never finish, as there is a lot of different syntaxes possible. Maybe you should create another component, an advanced version of gb.args? On the contrary, a possible "standard" command-line syntax that should be added to 'gb.args' is the support for "sub-command" of complex tools, like "git", where you type "git" followed by the sub command, and then the options that change according to the command. Regards, -- Beno?t Minisini. From dickson.tim at googlemail.com Mon Jul 4 13:03:11 2022 From: dickson.tim at googlemail.com (Tim Dickson) Date: Mon, 4 Jul 2022 12:03:11 +0100 Subject: [Gambas-user] Args help , most other places is -? In-Reply-To: References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> <25d18e1c-ef13-4939-f91d-15c3601563ae@gambas-basic.org> Message-ID: <78629525-fe13-279c-e95f-4c443d0c5d91@googlemail.com> see. https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html guidleine 3. limits short (single character) options to alnum which does not include punct such as "?" obviously this is for utilities, but is generally used in general unix/linux applications as well. ? is a dos/windows convention, using /? but this is not used in unix/linux as -h or --help is convention and ? is a test operator and a wildcard in scripting. On 04/07/2022 11:17, Benoit Minisini wrote: > Le 04/07/2022 ? 11:43, Bruce Steers a ?crit?: >> >> >> On Sun, 3 Jul 2022 at 16:59, Benoit Minisini >> > > wrote: >> >> ??? Le 02/07/2022 ? 13:04, Bruce Steers a ?crit?: >> ???? > >> ???? > >> ???? > On Thu, 30 Jun 2022 at 13:21, Benoit Minisini >> ???? > > ??? >> ???? > > ??? >> wrote: >> ???? > >> ???? >? ? ?Le 30/06/2022 ? 02:21, Bruce Steers a ?crit?: >> ???? >? ? ? > >> ???? >? ? ? > Fair point. Now I'm thinking harder I can't think of >> any other >> ???? >? ? ?reason >> ???? >? ? ? > myself other than -? >> ???? >? ? ? > Maybe I could make it check for -? With a property? >> ???? >? ? ?Args.QuestionMarkIsHelp >> ???? > >> ???? >? ? ?Just let the user handle both cases if he wants, and >> ??? implement both >> ???? >? ? ?options in the default help management. >> ???? > >> ???? > >> ???? > Problem was what if the user wants to use -? for help and -h for >> ???? > something else?? It was impossible as Args uses -h if you want it >> ??? to or >> ???? > not there was no choice. >> ???? > Last commit i removed the HelpShortName property that let you >> ??? change the >> ???? > help short name and replaced it for a simpler NoHelp property. >> ???? > >> ???? > Is that more acceptable? >> ???? > If Args.NoHelp = True then neither -h or --help is used and you >> ??? can then >> ???? > enter what ever you like manually. >> ???? > >> ???? > Respects >> ???? > BruceS >> ???? > >> >> ??? 'gb.args' is for implementing a standard command-line argument >> support. >> ??? As soon as the user wants to do something "stupid" (like using >> '-h' for >> ??? something other than help), I think 'gb.args' must not support it. >> >> ??? This is the same reason why I think implementing simple option merge >> ??? ('-ab' == '-a -b') must not be optional. >> >> ??? Regards, >> >> >> Sorry my friend but i can't help but disagree a bit. >> Personally i think -? is even better than -h for help, because it's >> language universal. > > Indeed, but it seems there is some sort of implicit standard of using > "-h" for help almost everywhere (options are in english). > > I wanted 'gb.args' to implement that implicit standard, not to handle > all the different possible command-line syntaxes, so that it is the > simplest possible. > > For the same reason, I think grouping single character options is part > of that implicit standard, and so I don't think it should be optional. > "-ab" has no meaning in that syntax. > > (I personnaly don't like these programs that do not follow this > standard as much as possible). > > If you start adding option for this and that, you will never finish, > as there is a lot of different syntaxes possible. Maybe you should > create another component, an advanced version of gb.args? > > On the contrary, a possible "standard" command-line syntax that should > be added to 'gb.args' is the support for "sub-command" of complex > tools, like "git", where you type "git" followed by the sub command, > and then the options that change according to the command. > > Regards, > -- This email has been checked for viruses by AVG. https://www.avg.com From tercoide at hotmail.com Mon Jul 4 13:37:21 2022 From: tercoide at hotmail.com (martin p cristia) Date: Mon, 4 Jul 2022 08:37:21 -0300 Subject: [Gambas-user] User Digest, Vol 58, Issue 4 In-Reply-To: References: Message-ID: Agreed. If a program needs a more complex args processing it must be do that itself. I would add a property for reading the whole command line and that's it. El 7/4/22 a las 07:12, user-request at lists.gambas-basic.org escribi?: > 'gb.args' is for implementing a standard command-line argument support. -- Saludos Ing. Martin P Cristia From bsteers4 at gmail.com Mon Jul 4 13:51:32 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 4 Jul 2022 12:51:32 +0100 Subject: [Gambas-user] Args help , most other places is -? In-Reply-To: <78629525-fe13-279c-e95f-4c443d0c5d91@googlemail.com> References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> <25d18e1c-ef13-4939-f91d-15c3601563ae@gambas-basic.org> <78629525-fe13-279c-e95f-4c443d0c5d91@googlemail.com> Message-ID: I understand guys and i get it, and it's admirable that you stick to the conventions. But... ;) I think gambas on the whole is not so "mainstream" Ie. the majority of software being made out there is not for general public use but personal utilities being made for individual users/business/coders. So the "option" to break from the norm I think is awesome, Other Bruce would have found the non-grouping method useful for his unique needs. Others may too. But, as i keep trying to tell myself, I need to stop dicking around with Benoits software. So I'm going to provide some kind of alternative selection of components/classes. All the best. BruceS On Mon, 4 Jul 2022 at 12:04, Tim Dickson via User < user at lists.gambas-basic.org> wrote: > see. > https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html > guidleine 3. > limits short (single character) options to alnum which does not include > punct such as "?" > obviously this is for utilities, but is generally used in general > unix/linux applications as well. > ? is a dos/windows convention, using /? but this is not used in > unix/linux as -h or --help is convention and ? is a test operator and a > wildcard in scripting. > > On 04/07/2022 11:17, Benoit Minisini wrote: > > Le 04/07/2022 ? 11:43, Bruce Steers a ?crit : > >> > >> > >> On Sun, 3 Jul 2022 at 16:59, Benoit Minisini > >> >> > wrote: > >> > >> Le 02/07/2022 ? 13:04, Bruce Steers a ?crit : > >> > > >> > > >> > On Thu, 30 Jun 2022 at 13:21, Benoit Minisini > >> > >> > >> > >> >> wrote: > >> > > >> > Le 30/06/2022 ? 02:21, Bruce Steers a ?crit : > >> > > > >> > > Fair point. Now I'm thinking harder I can't think of > >> any other > >> > reason > >> > > myself other than -? > >> > > Maybe I could make it check for -? With a property? > >> > Args.QuestionMarkIsHelp > >> > > >> > Just let the user handle both cases if he wants, and > >> implement both > >> > options in the default help management. > >> > > >> > > >> > Problem was what if the user wants to use -? for help and -h for > >> > something else? It was impossible as Args uses -h if you want it > >> to or > >> > not there was no choice. > >> > Last commit i removed the HelpShortName property that let you > >> change the > >> > help short name and replaced it for a simpler NoHelp property. > >> > > >> > Is that more acceptable? > >> > If Args.NoHelp = True then neither -h or --help is used and you > >> can then > >> > enter what ever you like manually. > >> > > >> > Respects > >> > BruceS > >> > > >> > >> 'gb.args' is for implementing a standard command-line argument > >> support. > >> As soon as the user wants to do something "stupid" (like using > >> '-h' for > >> something other than help), I think 'gb.args' must not support it. > >> > >> This is the same reason why I think implementing simple option merge > >> ('-ab' == '-a -b') must not be optional. > >> > >> Regards, > >> > >> > >> Sorry my friend but i can't help but disagree a bit. > >> Personally i think -? is even better than -h for help, because it's > >> language universal. > > > > Indeed, but it seems there is some sort of implicit standard of using > > "-h" for help almost everywhere (options are in english). > > > > I wanted 'gb.args' to implement that implicit standard, not to handle > > all the different possible command-line syntaxes, so that it is the > > simplest possible. > > > > For the same reason, I think grouping single character options is part > > of that implicit standard, and so I don't think it should be optional. > > "-ab" has no meaning in that syntax. > > > > (I personnaly don't like these programs that do not follow this > > standard as much as possible). > > > > If you start adding option for this and that, you will never finish, > > as there is a lot of different syntaxes possible. Maybe you should > > create another component, an advanced version of gb.args? > > > > On the contrary, a possible "standard" command-line syntax that should > > be added to 'gb.args' is the support for "sub-command" of complex > > tools, like "git", where you type "git" followed by the sub command, > > and then the options that change according to the command. > > > > Regards, > > > > > -- > This email has been checked for viruses by AVG. > https://www.avg.com > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tercoide at hotmail.com Mon Jul 4 15:14:54 2022 From: tercoide at hotmail.com (martin p cristia) Date: Mon, 4 Jul 2022 10:14:54 -0300 Subject: [Gambas-user] alternative,selection of components/classes In-Reply-To: References: Message-ID: That would be great, Bruce: to have a sort of community selected set of AddOns, problem solving, code helpers available for everyone. But that doesn't need to be part of the Gb package itself. my 2c El 7/4/22 a las 08:52, user-request at lists.gambas-basic.org escribi?: > So I'm going to provide some kind of alternative > selection of components/classes -- Saludos Ing. Martin P Cristia From herberthguzman at gmail.com Mon Jul 4 21:25:02 2022 From: herberthguzman at gmail.com (Herberth Guzman) Date: Mon, 4 Jul 2022 13:25:02 -0600 Subject: [Gambas-user] Event click webtree Message-ID: Hi, I have a problem with webtree, the click event did not work for me. I don't know if I'm doing something wrong. The example that is in the component doesn't work for me either. Could anyone help me. Gambas 3.17.2 Ubuntu 22.04 Debian 11 Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From karl.reinl at fen-net.de Mon Jul 4 23:50:52 2022 From: karl.reinl at fen-net.de (Karl Reinl) Date: Mon, 04 Jul 2022 23:50:52 +0200 Subject: [Gambas-user] Args help , most other places is -? In-Reply-To: References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> <25d18e1c-ef13-4939-f91d-15c3601563ae@gambas-basic.org> <78629525-fe13-279c-e95f-4c443d0c5d91@googlemail.com> Message-ID: <4d44bea0621b39056beda2cd6419cee510e5a444.camel@fen-net.de> Am Montag, dem 04.07.2022 um 12:51 +0100 schrieb Bruce Steers: > I'm going to provide some kind of alternative selection of > components/classes. Salut Bruce, could you imagine a new area on the software farm for that? Beno?t? -- Amicalement Charlie -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Jul 5 00:01:04 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 5 Jul 2022 00:01:04 +0200 Subject: [Gambas-user] Args help , most other places is -? In-Reply-To: <4d44bea0621b39056beda2cd6419cee510e5a444.camel@fen-net.de> References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> <25d18e1c-ef13-4939-f91d-15c3601563ae@gambas-basic.org> <78629525-fe13-279c-e95f-4c443d0c5d91@googlemail.com> <4d44bea0621b39056beda2cd6419cee510e5a444.camel@fen-net.de> Message-ID: Le 04/07/2022 ? 23:50, Karl Reinl a ?crit?: > Am Montag, dem 04.07.2022 um 12:51 +0100 schrieb Bruce Steers: >> I'm going to provide some kind of alternative selection of >> components/classes. > > Salut Bruce, > > could you imagine a new area on the software farm for that? > Beno?t? > > > -- > > Amicalement > Charlie > I'd like to replace the farm by a list of git repositories (on gitlab, or others). Maybe we could start thinking about that? -- Beno?t Minisini. From bagoneo at libero.it Tue Jul 5 11:13:53 2022 From: bagoneo at libero.it (gian) Date: Tue, 5 Jul 2022 11:13:53 +0200 Subject: [Gambas-user] Event click webtree In-Reply-To: References: Message-ID: <4e9af8a0-269e-4793-6cef-7c1e0cb515bb@libero.it> Il 04/07/22 21:25, Herberth Guzman ha scritto: > Hi, I have a problem with webtree, the click event did not work for me. > I don't know if I'm doing something wrong.? The example that is in the > component doesn't work for me either.? Could anyone help me. > > Gambas 3.17.2 > Ubuntu 22.04 > Debian 11 > > Thanks > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- On Ubuntu 22.04 LTS and Gambas Master it works as you can see from the attached image. You need to move the embedded server to True and possibly change the port (8081, 8082...) in Environment, from the Debug configuration window. Also check that in Webform1.class the paths to the Images folder are correct. Regards Gianluigi -------------- next part -------------- A non-text attachment was scrubbed... Name: webtree.jpg Type: image/jpeg Size: 59719 bytes Desc: not available URL: From bagoneo at libero.it Tue Jul 5 15:58:16 2022 From: bagoneo at libero.it (gian) Date: Tue, 5 Jul 2022 15:58:16 +0200 Subject: [Gambas-user] Event click webtree In-Reply-To: <4e9af8a0-269e-4793-6cef-7c1e0cb515bb@libero.it> References: <4e9af8a0-269e-4793-6cef-7c1e0cb515bb@libero.it> Message-ID: Il 05/07/22 11:13, gian via User ha scritto: > Il 04/07/22 21:25, Herberth Guzman ha scritto: >> Hi, I have a problem with webtree, the click event did not work for >> me. I don't know if I'm doing something wrong.? The example that is in >> the component doesn't work for me either.? Could anyone help me. >> >> Gambas 3.17.2 >> Ubuntu 22.04 >> Debian 11 >> >> Thanks >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > On Ubuntu 22.04 LTS and Gambas Master it works as you can see from the > attached image. > You need to move the embedded server to True and possibly change the > port (8081, 8082...) in Environment, from the Debug configuration window. > Also check that in Webform1.class the paths to the Images folder are > correct. > > Regards > Gianluigi > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- sorry, wrong image :-( -------------- next part -------------- A non-text attachment was scrubbed... Name: lasticon.jpg Type: image/jpeg Size: 46183 bytes Desc: not available URL: From yves.cloutier at gmail.com Tue Jul 5 16:00:19 2022 From: yves.cloutier at gmail.com (Yves Cloutier) Date: Tue, 5 Jul 2022 09:00:19 -0500 Subject: [Gambas-user] Collected resources about webform and web development with gambas Message-ID: Hello earlier this week or last week it was posted that someone had collected threads of discussions, questions and answers about development with webform and web development with gambas in general. I cant find it now and wondering if you could share it again. Regards -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Tue Jul 5 16:09:38 2022 From: bagoneo at libero.it (gian) Date: Tue, 5 Jul 2022 16:09:38 +0200 Subject: [Gambas-user] Collected resources about webform and web development with gambas In-Reply-To: References: Message-ID: Il 05/07/22 16:00, Yves Cloutier ha scritto: > Hello earlier this week or last week it was posted that someone had > collected threads of discussions, questions and answers about > development with webform and web development with gambas in general. > > I cant find it now and wondering if you could share it again. > > Regards Here should be everything discussed from the list: https://lists.gambas-basic.org/pipermail/user/ Regards Gianluigi From t.lee.davidson at gmail.com Tue Jul 5 16:20:17 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 5 Jul 2022 10:20:17 -0400 Subject: [Gambas-user] Event click webtree In-Reply-To: <4e9af8a0-269e-4793-6cef-7c1e0cb515bb@libero.it> References: <4e9af8a0-269e-4793-6cef-7c1e0cb515bb@libero.it> Message-ID: On 7/5/22 05:13, gian via User wrote: > Il 04/07/22 21:25, Herberth Guzman ha scritto: >> Hi, I have a problem with webtree, the click event did not work for me. I don't know if I'm doing something wrong.? The >> example that is in the component doesn't work for me either.? Could anyone help me. >> >> Gambas 3.17.2 >> Ubuntu 22.04 >> Debian 11 >> >> Thanks >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > On Ubuntu 22.04 LTS and Gambas Master it works as you can see from the attached image. > You need to move the embedded server to True and possibly change the port (8081, 8082...) in Environment, from the Debug > configuration window. > Also check that in Webform1.class the paths to the Images folder are correct. > > Regards > Gianluigi Hmm, the Click event does not fire for me on v3.17.2. -- Lee From tercoide at hotmail.com Tue Jul 5 17:29:41 2022 From: tercoide at hotmail.com (martin p cristia) Date: Tue, 5 Jul 2022 12:29:41 -0300 Subject: [Gambas-user] list of git repositories In-Reply-To: References: Message-ID: A great idea. Sorted by component or usage. And let the newbies use one of the PDF books for starting. Anyway, from experience playing with others people program's code, we all have a kind of Utils.module or Utils.class that we use in all our programas, imagine how good will be to have the best of them consolidated in one file that we can use and do many tasks without having to investigate and code from scratch! El 7/5/22 a las 06:15, user-request at lists.gambas-basic.org escribi?: > I'd like to replace the farm by a list of git repositories (on gitlab, > or others). Maybe we could start thinking about that? -- Saludos Ing. Martin P Cristia From benoit.minisini at gambas-basic.org Tue Jul 5 17:45:23 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 5 Jul 2022 17:45:23 +0200 Subject: [Gambas-user] list of git repositories In-Reply-To: References: Message-ID: <5e4e425b-401d-564c-6063-bbe06de75985@gambas-basic.org> Le 05/07/2022 ? 17:29, martin p cristia a ?crit?: > A great idea. Sorted by component or usage. And let the newbies use one > of the PDF books for starting. > > Anyway, from experience playing with others people program's code, we > all have a kind of Utils.module or Utils.class that we use in all our > programas, imagine how good will be to have the best of them > consolidated in one file that we can use and do many tasks without > having to investigate and code from scratch! > These utilities modules usually do not have the needed quality and organization for being a component. See them as an intermediate selection step up to becoming part of Gambas. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Tue Jul 5 19:48:47 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 5 Jul 2022 18:48:47 +0100 Subject: [Gambas-user] list of git repositories In-Reply-To: References: Message-ID: On Tue, 5 Jul 2022 at 16:30, martin p cristia wrote: > A great idea. Sorted by component or usage. And let the newbies use one > of the PDF books for starting. > > Anyway, from experience playing with others people program's code, we > all have a kind of Utils.module or Utils.class that we use in all our > programas, imagine how good will be to have the best of them > consolidated in one file that we can use and do many tasks without > having to investigate and code from scratch! > now there's an idea. How about a class maker where you can go through a list of various upgraded/advanced/other functions and view their code and add to a list, them hit the MakeClass button? I think that'd be cool. but a lot of code. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Tue Jul 5 20:00:42 2022 From: adamnt42 at gmail.com (bb) Date: Wed, 06 Jul 2022 03:30:42 +0930 Subject: [Gambas-user] list of git repositories In-Reply-To: References: Message-ID: <95309fdcf380c30081afabb98f090c63c773bada.camel@gmail.com> On Tue, 2022-07-05 at 18:48 +0100, Bruce Steers wrote: > On Tue, 5 Jul 2022 at 16:30, martin p cristia > wrote: > > > A great idea. Sorted by component or usage. And let the newbies use > > one > > of the PDF books for starting. > > > > Anyway, from experience playing with others people program's code, > > we > > all have a kind of Utils.module or Utils.class that we use in all > > our > > programas, imagine how good will be to have the best of them > > consolidated in one file that we can use and do many tasks without > > having to investigate and code from scratch! > > > > now there's an idea. > How about a class maker where you can go through a list of various > upgraded/advanced/other functions and view their code and add to a > list, > them hit the MakeClass button? > I think that'd be cool.? but a lot of code. > > > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette?]---- ?? Oh I dunno. We have only been working on ours for about 10 years ?? It's about 60% complete and 30% stable. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ksnip_20220706-033018.png Type: image/png Size: 113751 bytes Desc: not available URL: From bsteers4 at gmail.com Wed Jul 6 02:29:49 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 6 Jul 2022 01:29:49 +0100 Subject: [Gambas-user] Args help , most other places is -? In-Reply-To: References: <388d5b3c-07aa-b5ae-c0cc-e94a8b46f715@gambas-basic.org> <2f53e186-3dc6-f810-6ca2-2f5a5b0f9916@gambas-basic.org> <25d18e1c-ef13-4939-f91d-15c3601563ae@gambas-basic.org> <78629525-fe13-279c-e95f-4c443d0c5d91@googlemail.com> <4d44bea0621b39056beda2cd6419cee510e5a444.camel@fen-net.de> Message-ID: On Mon, 4 Jul 2022, 23:02 Benoit Minisini, wrote: > Le 04/07/2022 ? 23:50, Karl Reinl a ?crit : > > Am Montag, dem 04.07.2022 um 12:51 +0100 schrieb Bruce Steers: > >> I'm going to provide some kind of alternative selection of > >> components/classes. > > > > Salut Bruce, > > > > could you imagine a new area on the software farm for that? > > Beno?t? > > > > > > -- > > > > Amicalement > > Charlie > > > > I'd like to replace the farm by a list of git repositories (on gitlab, > or others). Maybe we could start thinking about that? > That could work well. Not sure as a "replacement" as not everyone gets on with git. But an altetnative (preferred) method. Maybe the ide farm app could also be updated to include an import part for projects. With the list of gitlab projects farm load will be considerably decreased ? That would be cool to import components/methods/classes/etc via an online list. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Wed Jul 6 06:01:14 2022 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Wed, 06 Jul 2022 07:01:14 +0300 Subject: [Gambas-user] =?utf-8?q?Args_help_=2C_most_other_places_is_-=3F?= In-Reply-To: References: Message-ID: <1657080074.325602834@f27.my.com> I agree, if the farm behaved more like python library app able to download as needed, components, libs etc. Even for distribution we would not need as much in the repositories, but it would always need to be available. Especially for components that are written in gambas and more easily portable across cou typed. It is a great idea. -- Thanks Brian G Tuesday, 05 July 2022, 05:31PM -07:00 from Bruce Steers bsteers4 at gmail.com : > > >On Mon, 4 Jul 2022, 23:02 Benoit Minisini, < benoit.minisini at gambas-basic.org> wrote: >>Le 04/07/2022 ? 23:50, Karl Reinl a ?crit?: > Am Montag, dem 04.07.2022 um 12:51 +0100 schrieb Bruce Steers: >> I'm going to provide some kind of alternative selection of >> components/classes. > > Salut Bruce, > > could you imagine a new area on the software farm for that? > Beno?t? > > > -- > > Amicalement > Charlie > >> >>I'd like to replace the farm by a list of git repositories (on gitlab, >>or others). Maybe we could start thinking about that? > >That could work well.? Not sure as a "replacement" as not everyone gets on with git. But an altetnative (preferred) method. > >Maybe the ide farm app could also be updated to include an import part for projects. With the list of gitlab projects farm load will be considerably decreased ? > >That would be cool to import components/methods/classes/etc via an online list.? > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Wed Jul 6 08:20:31 2022 From: brian at westwoodsvcs.com (Brian G) Date: Tue, 5 Jul 2022 23:20:31 -0700 (PDT) Subject: [Gambas-user] Gambas on Windows with WSL2 and gwsl with Debian backport edition of gambas Message-ID: <248482434.59931.1657088431351.JavaMail.zimbra@westwoodsvcs.com> Hi I don't know if anyone else is interested in this or has done this... but now with the Backport working it is possible to install all stock software and run your gambas apps on a windows platform. I have now been able to run my users applications on windows 10 and 11 using wsl 2 and Gwsl(x server) with debian installed You must install debian and GWSL from the microsoft store You must install all ssh and gambas gtk3 -- gtk3 seems to work best for gui requirements etc You must install gambas3 from the bullseye backport repository Start GWSL choose linux applications - start your app or gambas3 from the menu Applications run seamlessly so far in testing still testing . Here is a picture of a test app. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: gambas windows.png Type: image/png Size: 161638 bytes Desc: not available URL: From rwe-sse at osnanet.de Wed Jul 6 12:10:10 2022 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Wed, 6 Jul 2022 12:10:10 +0200 Subject: [Gambas-user] Gambas on Windows with WSL2 and gwsl with Debian backport edition of gambas In-Reply-To: <248482434.59931.1657088431351.JavaMail.zimbra@westwoodsvcs.com> References: <248482434.59931.1657088431351.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Am 06.07.22 um 08:20 schrieb Brian G: > Hi I don't know if anyone else is interested in this or has done this... > but now with the Backport working > it is possible to install all stock software and run your gambas apps on > a windows platform. > > I have now been able to run my users applications on windows 10 and 11 > using wsl 2 and Gwsl(x server)? with debian installed > You must install debian and GWSL from the microsoft store > You must install all ssh and gambas gtk3 -- gtk3 seems to work best for > gui requirements etc > You must install gambas3 from the bullseye backport repository > Start GWSL choose linux applications - start your app or gambas3 from > the menu > Applications run seamlessly so far in testing still testing . > Here is a picture of a test app. > > > "Failure is the key to success; > ?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Very interesting! I had a trial with a former version which still needed a separate Xserver. But it runs well anyway. However, that older version does not support a drive pointing to a Samba drive on a linux server. In my case, I would need my programs picking data from a drive X: which is a Samba release from the server which runs on an ext4 partition. If they have solved that by now, it's great. If not, it would still be a showstopper for me. On our system, I have linux terminal servers running everywhere. My solution was a virtual box on the Windows machine which boots like any of the terminals. Of course that runs flawlessly, but it is somewhat... roundabout I would say. Regards Rolf From kicking177 at gmail.com Wed Jul 6 13:11:07 2022 From: kicking177 at gmail.com (KKing) Date: Wed, 6 Jul 2022 12:11:07 +0100 Subject: [Gambas-user] options to kill a process started via SHELL or EXEC ? Message-ID: Is there a way to kill a process you invoke via SHELL or EXEC after say a couple of seconds later? From bagoneo at libero.it Wed Jul 6 13:26:53 2022 From: bagoneo at libero.it (gian) Date: Wed, 6 Jul 2022 13:26:53 +0200 Subject: [Gambas-user] options to kill a process started via SHELL or EXEC ? In-Reply-To: References: Message-ID: <5138ca77-0ea1-0921-cf76-a304568213a2@libero.it> Il 06/07/22 13:11, KKing ha scritto: > Is there a way to kill a process you invoke via SHELL or EXEC after say > a couple of seconds later? > Can this be useful? https://www.gambas-it.org/wiki/index.php/Apertura_e_chiusura_di_un_processo_mediante_Process From bagoneo at libero.it Wed Jul 6 13:43:29 2022 From: bagoneo at libero.it (gian) Date: Wed, 6 Jul 2022 13:43:29 +0200 Subject: [Gambas-user] options to kill a process started via SHELL or EXEC ? Message-ID: <48e37317-bfb4-a5f0-419a-2c0b6f990aee@libero.it> Instead, this is in English (there is also a German version): https://gambas-buch.de/dwen/doku.php?id=k21:start From brian at westwoodsvcs.com Wed Jul 6 18:15:45 2022 From: brian at westwoodsvcs.com (Brian G) Date: Wed, 6 Jul 2022 09:15:45 -0700 (PDT) Subject: [Gambas-user] Gambas on Windows with WSL2 and gwsl with Debian backport edition of gambas Message-ID: <1908234491.60536.1657124145960.JavaMail.zimbra@westwoodsvcs.com> ----- On Jul 6, 2022, at 3:10 AM, Rolf-Werner Eilert rwe-sse at osnanet.de wrote: ?????> Am 06.07.22 um 08:20 schrieb Brian G: >> Hi I don't know if anyone else is interested in this or has done this... >> but now with the Backport working >> it is possible to install all stock software and run your gambas apps on >> a windows platform. >> > > > Very interesting! I had a trial with a former version which still needed > a separate Xserver. But it runs well anyway. > > However, that older version does not support a drive pointing to a Samba > drive on a linux server. In my case, I would need my programs picking > data from a drive X: which is a Samba release from the server which runs > on an ext4 partition. > > If they have solved that by now, it's great. If not, it would still be a > showstopper for me. > > On our system, I have linux terminal servers running everywhere. My > solution was a virtual box on the Windows machine which boots like any > of the terminals. Of course that runs flawlessly, but it is somewhat... > roundabout I would say. > > Regards > Rolf > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I am a little confused by what you have stated. The Application is running in a linux virtual box with a full linux kernel when using wsl 2. Therefore any application running would be able to use nsf or samba to communicate with a file server. The difference between wsl and wsl 2 is that wsl only runs a fake sort of kernel for linux. not the full kernel. To fully enable wsl 2 there is a patch for windows 10. Maybe I don't understand the issue correctly what follows is having the wsl 2 vm access a linux samba server share On the debian wsl 2 side: After installing samba and restarting the windows pc, to force a reboot of the debian vm.... maybe there is some other way 07/06/2022 15:20:29.819> sudo smbpasswd -a brian ' not really needed lol New SMB password: Retype new SMB password: Added user brian. 07/06/2022 15:20:57.375> sudo apt install cifs-utils Reading package lists... Done Building dependency tree... Done Reading state information... Done Suggested packages: smbclient winbind bash-completion The following NEW packages will be installed: cifs-utils 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 90.4 kB of archives. After this operation, 314 kB of additional disk space will be used. Get:1 http://security.debian.org/debian-security bullseye-security/main amd64 cifs-utils amd64 2:6.11-3.1+deb11u1 [90.4 kB] Fetched 90.4 kB in 1s (165 kB/s) Selecting previously unselected package cifs-utils. (Reading database ... 48397 files and directories currently installed.) Preparing to unpack .../cifs-utils_2%3a6.11-3.1+deb11u1_amd64.deb ... Unpacking cifs-utils (2:6.11-3.1+deb11u1) ... Setting up cifs-utils (2:6.11-3.1+deb11u1) ... update-alternatives: using /usr/lib/x86_64-linux-gnu/cifs-utils/idmapwb.so to provide /etc/cifs-utils/idmap-plugin (idmap-plugin) in auto mode Processing triggers for man-db (2.10.1-1~bpo11+1) ... 07/06/2022 15:25:08.325> !mkdir myX 07/06/2022 15:32:05.637> sudo mount -t cifs //gn41/vssdata myX Password for root@//gn41/vssdata: 07/06/2022 15:34:08.311> cd myX 07/06/2022 15:34:17.706> ls AdvancedETLEnt_32.zip evenless.IIF qodbc.exe sqlitestudio-3.3.3 almostall.IIF extracted ripOLE sqlitestudio-3.3.3.zip DatabaseBrowser_Portable.zip gambasonwin.docx SQLA17_Windows_Client.exe 'VSS.QBW' DBrowser_32 QB2022_Install SQLAnywhere12_Full.exe VSS.QBM DBrowser_32.zip qbEnterprise12 sqlite-dll-win32-x86-3360000.zip windowsgambas.png 07/06/2022 15:34:21.395> NOTE: On the linux Samba server must setup a user to access the share I used root..lol root at GN41:/home/brian# smbpasswd -a root New SMB password: Retype new SMB password: root at GN41:/home/brian# This image shows both Windows accessing the share and the debian vm accessing the share: -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: sambas share.png Type: image/png Size: 132180 bytes Desc: not available URL: From admin at allunix.ru Wed Jul 6 18:47:00 2022 From: admin at allunix.ru (Admin) Date: Wed, 6 Jul 2022 23:47:00 +0700 Subject: [Gambas-user] Gambas on Windows with WSL2 and gwsl with Debian backport edition of gambas In-Reply-To: <248482434.59931.1657088431351.JavaMail.zimbra@westwoodsvcs.com> References: <248482434.59931.1657088431351.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <23f1b322-94d1-6d84-a367-e21d8b8079e7@allunix.ru> But it always worked. I use it at least for couple of years now. 06.07.2022 13:20, Brian G ?????: > Hi I don't know if anyone else is interested in this or has done > this... but now with the Backport working > it is possible to install all stock software and run your gambas apps > on a windows platform. > > I have now been able to run my users applications on windows 10 and 11 > using wsl 2 and Gwsl(x server)? with debian installed > You must install debian and GWSL from the microsoft store > You must install all ssh and gambas gtk3 -- gtk3 seems to work best > for gui requirements etc > You must install gambas3 from the bullseye backport repository > Start GWSL choose linux applications - start your app or gambas3 from > the menu > Applications run seamlessly so far in testing still testing . > Here is a picture of a test app. > > > "Failure is the key to success; > ?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G > > ----[http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: gambas%20windows.png Type: image/png Size: 161638 bytes Desc: not available URL: From tercoide at hotmail.com Wed Jul 6 19:06:29 2022 From: tercoide at hotmail.com (martin p cristia) Date: Wed, 6 Jul 2022 14:06:29 -0300 Subject: [Gambas-user] Gambas on Windows with WSL2 and gwsl with Debian backport In-Reply-To: References: Message-ID: It's been a while I don't test it but apps with high CPU/GPU load don't work well. El 7/6/22 a las 13:55, user-request at lists.gambas-basic.org escribi?: > Re: Gambas on Windows with WSL2 and gwsl with Debian backport > edition of gambas -- Saludos Ing. Martin P Cristia From rwe-sse at osnanet.de Wed Jul 6 19:30:33 2022 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Wed, 6 Jul 2022 19:30:33 +0200 Subject: [Gambas-user] Gambas on Windows with WSL2 and gwsl with Debian backport edition of gambas In-Reply-To: <1908234491.60536.1657124145960.JavaMail.zimbra@westwoodsvcs.com> References: <1908234491.60536.1657124145960.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <3c8445a2-25d2-6855-5048-771ebbea9980@osnanet.de> > > I am a little confused by what you have stated. The Application is > running in a linux virtual box with a full linux kernel > when using wsl 2.? Therefore any application running would be able to > use nsf or samba to communicate with a file server. You got me completely wrong, Brian. What I meant is WSL2 doesn't handle Samba exports, the virtual box version runs ok with it. Regards Rolf From bsteers4 at gmail.com Wed Jul 6 19:48:15 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 6 Jul 2022 18:48:15 +0100 Subject: [Gambas-user] list of git repositories In-Reply-To: <95309fdcf380c30081afabb98f090c63c773bada.camel@gmail.com> References: <95309fdcf380c30081afabb98f090c63c773bada.camel@gmail.com> Message-ID: On Tue, 5 Jul 2022 at 19:01, bb wrote: > On Tue, 2022-07-05 at 18:48 +0100, Bruce Steers wrote: > > On Tue, 5 Jul 2022 at 16:30, martin p cristia > wrote: > > A great idea. Sorted by component or usage. And let the newbies use one > of the PDF books for starting. > > Anyway, from experience playing with others people program's code, we > all have a kind of Utils.module or Utils.class that we use in all our > programas, imagine how good will be to have the best of them > consolidated in one file that we can use and do many tasks without > having to investigate and code from scratch! > > > now there's an idea. > How about a class maker where you can go through a list of various > upgraded/advanced/other functions and view their code and add to a list, > them hit the MakeClass button? > I think that'd be cool. but a lot of code. > > > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > ?? Oh I dunno. We have only been working on ours for about 10 years ?? > It's about 60% complete and 30% stable. > Nice :) Gimmie a couple of days and i'll knock something together ;) :p we would need a start point i guess. for repository based community progs/mods/comps/stuff. some kind of settings file that could be checked for in the repository and contain various details/tags about what it is/does/needs/etc Once that is established we could probably all start working on our own importers. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ksnip_20220706-033018.png Type: image/png Size: 113751 bytes Desc: not available URL: From bsteers4 at gmail.com Wed Jul 6 19:53:08 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 6 Jul 2022 18:53:08 +0100 Subject: [Gambas-user] list of git repositories In-Reply-To: References: <95309fdcf380c30081afabb98f090c63c773bada.camel@gmail.com> Message-ID: > > > > we would need a start point i guess. for repository based community > progs/mods/comps/stuff. some kind of settings file that could be checked > for in the repository and contain various details/tags about what it > is/does/needs/etc > Once that is established we could probably all start working on our own > importers. > Hmm thinking about it the farm applications probably already have this info. BruceS > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Wed Jul 6 20:06:41 2022 From: adamnt42 at gmail.com (bb) Date: Thu, 07 Jul 2022 03:36:41 +0930 Subject: [Gambas-user] list of git repositories In-Reply-To: References: <95309fdcf380c30081afabb98f090c63c773bada.camel@gmail.com> Message-ID: <37cf423cbad2fb337b6294494e1be669c6292376.camel@gmail.com> On Wed, 2022-07-06 at 18:53 +0100, Bruce Steers wrote: > > > > > > > > we would need a start point i guess. for repository based community > > progs/mods/comps/stuff. some kind of settings file that could be > > checked > > for in the repository and contain various details/tags about what > > it > > is/does/needs/etc > > Once that is established we could probably all start working on our > > own > > importers. > > > > Hmm thinking about it the farm applications probably already have > this info. > > > BruceS > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette?]---- Believe it or not I just had EXACTLY the same thought! But neglecting git for a moment. What repositories, regardless of whatever, could be required? IOW, what/where would people prefer to expose and share their code? * the Farm * gitlab/git(the other one) * GambasOne? * their own site * etc others? formats? We need to think in terms of both types of stakeholders - code seekosaurs and code donatosaurs! The farm is good-ish but IMO it's a lot easier for donatosaurs to provide and hide goodies than it is for the seekosaurs (scavenging b*s that we are!) to find them. Must have a free text search! b From herberthguzman at gmail.com Wed Jul 6 22:57:11 2022 From: herberthguzman at gmail.com (Herberth Guzman) Date: Wed, 6 Jul 2022 14:57:11 -0600 Subject: [Gambas-user] Event click webtree In-Reply-To: References: <4e9af8a0-269e-4793-6cef-7c1e0cb515bb@libero.it> Message-ID: Sure enough, the bug is in gambas 3.17.2. In this view webtree does not work. In the webtree development branch it does work. Regards El mar., 5 jul. 2022 8:21 a. m., T Lee Davidson escribi?: > On 7/5/22 05:13, gian via User wrote: > > Il 04/07/22 21:25, Herberth Guzman ha scritto: > >> Hi, I have a problem with webtree, the click event did not work for me. > I don't know if I'm doing something wrong. The > >> example that is in the component doesn't work for me either. Could > anyone help me. > >> > >> Gambas 3.17.2 > >> Ubuntu 22.04 > >> Debian 11 > >> > >> Thanks > >> > >> > >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > On Ubuntu 22.04 LTS and Gambas Master it works as you can see from the > attached image. > > You need to move the embedded server to True and possibly change the > port (8081, 8082...) in Environment, from the Debug > > configuration window. > > Also check that in Webform1.class the paths to the Images folder are > correct. > > > > Regards > > Gianluigi > > Hmm, the Click event does not fire for me on v3.17.2. > > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Thu Jul 7 09:51:52 2022 From: bagoneo at libero.it (gian) Date: Thu, 7 Jul 2022 09:51:52 +0200 Subject: [Gambas-user] options to kill a process started via SHELL or EXEC ? Message-ID: <9f160c1b-5f17-9ffc-2373-09a195edc813@libero.it> if you have to do it automatically, here a vuott suggestion: https://www.gambas-it.org/smf/index.php?topic=9293.msg51884#msg51884 From benoit.minisini at gambas-basic.org Thu Jul 7 12:56:51 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 7 Jul 2022 12:56:51 +0200 Subject: [Gambas-user] options to kill a process started via SHELL or EXEC ? In-Reply-To: References: Message-ID: Le 06/07/2022 ? 13:11, KKing a ?crit?: > Is there a way to kill a process you invoke via SHELL or EXEC after say > a couple of seconds later? > Get the process object returned by SHELL or EXEC, then create a timer that triggers you couple of seconds later, kill the process in the timer event handler, and stop the timer as you don't need it anymore. Regards, -- Beno?t Minisini. From tercoide at hotmail.com Thu Jul 7 14:07:25 2022 From: tercoide at hotmail.com (martin p cristia) Date: Thu, 7 Jul 2022 09:07:25 -0300 Subject: [Gambas-user] list of git repositories In-Reply-To: References: Message-ID: > * GambasOne? I prefer a forum, one thread per module/control/component owned and updated by the creator; others can comment/request/rate. There is already a section for that in GambasOne: https://forum.gambas.one/viewforum.php?f=17 A Git repo could be more automatized but its more impersonal and not all use Git or the same Git provider. -- Saludos Ing. Martin P Cristia From bsteers4 at gmail.com Thu Jul 7 15:17:14 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 7 Jul 2022 14:17:14 +0100 Subject: [Gambas-user] gambas capable webspace Message-ID: I anyone offering webspace on a server running gambas? Or want to? could be a way to share costs. Am wanting to do some gb.web stuff but online not just locally. Please correct me if my understanding is wrong.. Am i right that by default most servers/web hosts cannot run gambas cgi progs at all as it needs a gambas interpreter installed? If not, are there any examples of how to correctly run the cgi's (read the wiki how-to, still not getting it) Charlie at gambasone has told me of Digital Ocean and the droplets https://www.digitalocean.com/?refcode=e8a7842ff717 Is that the best way to get gambas web applications working online? Cheers for any info BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Jul 7 15:22:15 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 7 Jul 2022 15:22:15 +0200 Subject: [Gambas-user] gambas capable webspace In-Reply-To: References: Message-ID: <6a21df1a-71aa-01c3-7066-14f8361da5d8@gambas-basic.org> Le 07/07/2022 ? 15:17, Bruce Steers a ?crit?: > I anyone offering webspace on a server running gambas? > Or want to?? could be a way to share costs. > > Am wanting to do some gb.web stuff but online not just locally. > > Please correct me if my understanding is wrong.. > Am i right that by default most servers/web hosts cannot run gambas cgi > progs at all as it needs a gambas interpreter installed? > If not, are there any examples of how to correctly run the cgi's (read > the wiki how-to, still not getting it) > > Charlie at gambasone has told me of Digital Ocean and the droplets > https://www.digitalocean.com/?refcode=e8a7842ff717 > > Is that the best way to get gambas web applications working online? > > Cheers for any info > BruceS > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I usually rent a server with Ubuntu pre-installed (or any other Linux distribution), then I install the Gambas packages, then a web server (I know lighttpd), configure it to run CGI scripts, and then I can install my Gambas web apps. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Thu Jul 7 15:50:34 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 7 Jul 2022 14:50:34 +0100 Subject: [Gambas-user] list of git repositories In-Reply-To: References: Message-ID: On Thu, 7 Jul 2022 at 13:08, martin p cristia wrote: > > > * GambasOne? > > I prefer a forum, one thread per module/control/component owned and > updated by the creator; others can comment/request/rate. There is > already a section for that in GambasOne: > > https://forum.gambas.one/viewforum.php?f=17 > > A Git repo could be more automatized but its more impersonal and not all > use Git or the same Git provider. > The forum lacks something though, organization/categorization. A dedicated forum might work, but if the gambasone Component Showcase topic gets serious usage it's going to get a bit messy trying to find specific things. We need something that has various keywords/subjects for search purposes. I think a settings file of a specific name in a repo like git (or anywhere) that can be checked for and read containing various category headers/search keywords/source file urls/etc. based on the current farm applications data. then gambas (and others) would only need to check a main centralized list of urls, maybe more than one list, one for full applications, one for components/modules/etc. Also a forum only has archives of projects, a git repo will give the chance to list/view individual source files. Info in the settings file could state if it is an archive/installler/raw source files/etc Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Jul 7 16:35:53 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 7 Jul 2022 16:35:53 +0200 Subject: [Gambas-user] list of git repositories In-Reply-To: References: Message-ID: <0d9f181e-cda2-6325-0add-06571baf8451@gambas-basic.org> Le 07/07/2022 ? 15:50, Bruce Steers a ?crit?: > > The forum lacks something though, organization/categorization. > A dedicated forum might work, but if the gambasone Component Showcase > topic gets serious usage it's going to get a bit messy trying to find > specific things. > We need something that has various keywords/subjects for search purposes. > I think a settings file of a specific name in a repo like git (or > anywhere) that can be checked for and read containing various category > headers/search keywords/source file urls/etc. based on the current farm > applications data. > then gambas (and others) would only need to check a main centralized > list of urls, maybe more than one list, one for full applications, one > for components/modules/etc. > > Also a forum only has archives of projects, a git repo will give the > chance to list/view individual source files. > Info in the settings file could state if it is an archive/installler/raw > source files/etc > > Respects > BruceS > I mostly agree. I prefer to privilege git, because anyone can host a git repository, not just GitLab or GitHub. Then we just have to centralize a list of git repository urls somewhere. Each git repository will include one or more Gambas projects. Each Gambas project will be identified as part of that big repository through a special text file that will include a description of the project and some keywords. -- Beno?t Minisini. From t.lee.davidson at gmail.com Thu Jul 7 21:06:49 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Thu, 7 Jul 2022 15:06:49 -0400 Subject: [Gambas-user] list of git repositories In-Reply-To: <0d9f181e-cda2-6325-0add-06571baf8451@gambas-basic.org> References: <0d9f181e-cda2-6325-0add-06571baf8451@gambas-basic.org> Message-ID: <9b917ec8-e8c1-ac17-5fc9-f6458abe1c93@gmail.com> On 7/7/22 10:35, Benoit Minisini wrote: > Then we just have to centralize a list of git repository urls somewhere. Each git repository will include one or more Gambas > projects. Each Gambas project will be identified as part of that big repository through a special text file that will include a > description of the project and some?keywords. The Nim language (nim-lang), for example, has a curated list of packages on their Wiki [1]. Perhaps something like that could serve as a centralized directory of the various Gambas projects. -- Lee [1] https://github.com/nim-lang/Nim/wiki/Curated-Packages/1e3ab8a07faec60cc30b698353e117b294b84824 From t.lee.davidson at gmail.com Thu Jul 7 21:53:25 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Thu, 7 Jul 2022 15:53:25 -0400 Subject: [Gambas-user] gambas capable webspace In-Reply-To: References: Message-ID: On 7/7/22 09:17, Bruce Steers wrote: > Am i right that by default most servers/web hosts cannot run gambas cgi progs at all as it needs a gambas interpreter installed? Yes. > If not, are there any examples of how to correctly run the cgi's (read the wiki how-to, still not getting it) This is not an example, but the configuration is relatively straightforward. I use OpenSUSE, and so the file names, locations, and configurations may be different for other distros. For Apache2, you just need to ensure that there is a ScriptAlias defined and configured. That should be done in (/etc/apache2/) 'default-server.conf' and looks like: ~~~ ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/" # "/srv/www/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # AllowOverride None Options +ExecCGI -Includes Require all granted Order allow,deny Allow from all ~~~ Then simply place your app in this CGI directory. This works because a CGI app runs as a script. If you use the `head` command on a Gambas script executable file (.gambas) you will see the first line is: "#! /usr/bin/env gbr3" Apache2 is stupid. It will try to execute virtually *every* type of file contained within the cgi-bin directory tree. Lighttpd is a bit more intelligent. For that server, you will need to edit (/etc/lighttpd/) 'cgi.conf' found in the 'conf.d' directory. After editing my local installation to run Gambas CGI scripts, it looks like: ~~~ ## ## Plain old CGI handling ## ## For PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini. ## cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl", ".rb" => "/usr/bin/ruby", ".erb" => "/usr/bin/eruby", ".py" => "/usr/bin/python", ".gambas" => "/usr/bin/gbr3") ~~~ -- Lee From kicking177 at gmail.com Fri Jul 8 13:00:09 2022 From: kicking177 at gmail.com (KKing) Date: Fri, 8 Jul 2022 12:00:09 +0100 Subject: [Gambas-user] options to kill a process started via SHELL Message-ID: <9f031b1b-a3d8-f30e-8df8-698a9a44c4a7@gmail.com> > Get the process object returned by SHELL or EXEC, then create a timer > that triggers you couple of seconds later, kill the process in the timer > event handler, and stop the timer as you don't need it anymore. I did get it working by within the one subroutine, 1. getting the process object 2. invoking another SHELL for a CURL to trap the data I wanted (which is usually called via timer) 3. then killed the process object. Occasionally the response from the CURL is not as expected, and to get back as desired I seemingly need to launch firefox which was what I want to kill after doing. that was my second attempt. I initially had at top level of the class Public $hProcess as Process Then in a "start" subroutine get the $hProcess which within that subroutine $hProcess.State returned 1 (running) and I started the timer. But when Timer1_Timer kicked in it always said $Process was not running (yet what it had invoked clearly was still running). Is that a bug or I crafted that poorly? The timer code is checking response of the CURL and if not as expected it needs to launch firefox again, curl it, and kill that firefox. From t.lee.davidson at gmail.com Fri Jul 8 14:53:28 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 8 Jul 2022 08:53:28 -0400 Subject: [Gambas-user] options to kill a process started via SHELL In-Reply-To: <9f031b1b-a3d8-f30e-8df8-698a9a44c4a7@gmail.com> References: <9f031b1b-a3d8-f30e-8df8-698a9a44c4a7@gmail.com> Message-ID: On 7/8/22 07:00, KKing wrote: >> Get the process object returned by SHELL or EXEC, then create a timer >> that triggers you couple of seconds later, kill the process in the timer >> event handler, and stop the timer as you don't need it anymore. > I did get it working by > > within the one subroutine, > 1. getting the process object > 2. invoking another SHELL for a CURL to trap the data I wanted (which is usually called via timer) > 3. then killed the process object. > > Occasionally the response from the CURL is not as expected, and to get back as desired I seemingly need to launch firefox which > was what I want to kill after doing. > > that was my second attempt. > > I initially had at top level of the class > Public $hProcess as Process > > Then in a "start" subroutine get the $hProcess which within that subroutine $hProcess.State returned 1 (running) and I started > the timer. > But when Timer1_Timer kicked in it always said $Process was not running (yet what it had invoked clearly was still running). > Is that a bug or I crafted that poorly? > The timer code is checking response of the CURL and if not as expected it needs to launch firefox again, curl it, and kill that > firefox. Being able to see how you're coding it, or at least a demo project, might be helpful. -- Lee From adamnt42 at gmail.com Fri Jul 8 15:11:31 2022 From: adamnt42 at gmail.com (bb) Date: Fri, 08 Jul 2022 22:41:31 +0930 Subject: [Gambas-user] options to kill a process started via SHELL In-Reply-To: References: <9f031b1b-a3d8-f30e-8df8-698a9a44c4a7@gmail.com> Message-ID: On Fri, 2022-07-08 at 08:53 -0400, T Lee Davidson wrote: > But when Timer1_Timer kicked in it always said $Process was not > running (yet what it had invoked clearly was still running). Process.Running means it is actually executing, not that it exists. b From adamnt42 at gmail.com Fri Jul 8 15:17:04 2022 From: adamnt42 at gmail.com (bb) Date: Fri, 08 Jul 2022 22:47:04 +0930 Subject: [Gambas-user] options to kill a process started via SHELL In-Reply-To: References: <9f031b1b-a3d8-f30e-8df8-698a9a44c4a7@gmail.com> Message-ID: <7442b8caf02059e7c1bd467a2feb0a7219e5aa1e.camel@gmail.com> On Fri, 2022-07-08 at 22:41 +0930, bb wrote: > On Fri, 2022-07-08 at 08:53 -0400, T Lee Davidson wrote: > > But when Timer1_Timer kicked in it always said $Process was not > > running (yet what it had invoked clearly was still running). > Process.Running means it is actually executing, not that it exists. > > b As in If $hProcess then killit instead of If $hProcess.Running then killit b From isafiur at gmail.com Sat Jul 9 11:37:28 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Sat, 9 Jul 2022 15:22:28 +0545 Subject: [Gambas-user] Unable to include jquery.js Message-ID: Dear Beno?t I can include most of external java scripts into gambas projects. But jquery is the major exception. Is there any way out to use jquery.js into gambas web.gui applications? -- Regards Safiur Rahman -------------- next part -------------- A non-text attachment was scrubbed... Name: jquery.tar.xz Type: application/x-xz Size: 12336 bytes Desc: not available URL: From t.lee.davidson at gmail.com Sat Jul 9 15:42:46 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 9 Jul 2022 09:42:46 -0400 Subject: [Gambas-user] Unable to include jquery.js In-Reply-To: References: Message-ID: On 7/9/22 05:37, Safiur Rahman wrote: > Dear Beno?t > > I can include most of external java scripts into gambas projects. But > jquery is the major exception. Is there any way out to use jquery.js > into gambas web.gui applications? When I run your application using the embedded HTTP server, the request to Cloudflare for jquery returns a '304 Not Modified' response. And, since the file is already in my browser's cache, it was not downloaded again. The browser's debugger shows that the .js file content is indeed loaded. What doesn't work for me is: the "File" menu entry. Clicking on it only causes it to change color indicating a click but nothing else happens; and, there is no text in the WebTextBox. -- Lee From benoit.minisini at gambas-basic.org Sat Jul 9 19:09:03 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 9 Jul 2022 19:09:03 +0200 Subject: [Gambas-user] Unable to include jquery.js In-Reply-To: References: Message-ID: <010648b1-df0d-0128-6d9f-0dab0f96ac51@gambas-basic.org> Le 09/07/2022 ? 11:37, Safiur Rahman a ?crit?: > Dear Beno?t > > I can include most of external java scripts into gambas projects. But > jquery is the major exception. Is there any way out to use jquery.js > into gambas web.gui applications? > There is no reason why you should not be able to include any javascript code, except if the javascript you want to include is not compatible with the javascript used by 'gb.web.gui'. You should give far mode details about why it does not work, otherwise I can only be general. Regards, -- Beno?t Minisini. From isafiur at gmail.com Sat Jul 9 19:51:54 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Sat, 9 Jul 2022 23:36:54 +0545 Subject: [Gambas-user] Unable to include jquery.js In-Reply-To: References: Message-ID: Hi I have attached a project to reproduce the problem. On Sat, 9 Jul 2022, 15:22 Safiur Rahman, wrote: > Dear Beno?t > > I can include most of external java scripts into gambas projects. But > jquery is the major exception. Is there any way out to use jquery.js > into gambas web.gui applications? > > -- > Regards > Safiur Rahman > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Jul 9 20:21:54 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 9 Jul 2022 20:21:54 +0200 Subject: [Gambas-user] Unable to include jquery.js In-Reply-To: References: Message-ID: Le 09/07/2022 ? 19:51, Safiur Rahman a ?crit?: > Hi > I have attached a project to reproduce the problem. > I guess that the '$' function of jquery is not compatible with the '$' function of gb.web.gui... -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Sat Jul 9 20:35:21 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 9 Jul 2022 20:35:21 +0200 Subject: [Gambas-user] Unable to include jquery.js In-Reply-To: References: Message-ID: <248db24f-5e2b-71f9-e34e-82d27b1cb4b8@gambas-basic.org> Le 09/07/2022 ? 20:21, Benoit Minisini a ?crit?: > Le 09/07/2022 ? 19:51, Safiur Rahman a ?crit?: >> Hi >> I have attached a project to reproduce the problem. >> > > I guess that the '$' function of jquery is not compatible with the '$' > function of gb.web.gui... > The problem should be fixed by commit https://gitlab.com/gambas/gambas/-/commit/34dc2920e08efac52ef1f2af0b0243c8476bcc41. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Sun Jul 10 22:17:59 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 10 Jul 2022 22:17:59 +0200 Subject: [Gambas-user] Release of Gambas 3.17.3 Message-ID: Hi, I am preparing the release of Gambas 3.17.3. You can download the sources at: https://gitlab.com/gambas/gambas/-/archive/stable/gambas-stable.tar.bz2 As usual, the changelog is at: https://gambaswiki.org/edit/doc/release/3.17.3 Tell me if it works for you, so that I can tag the release and make the stable ppa packages. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Mon Jul 11 13:27:53 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 11 Jul 2022 12:27:53 +0100 Subject: [Gambas-user] Startup class (but gotta be a module not an actual class!) Message-ID: Is there a way to make a class and use it as a startup class? Seems ironic that the menu refers to "Startup class" but using an actual class and not a module as the "startup class" gives a "no startup method" error. Cannot use Main() _init() or new() Is it impossible to use a class? Many Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Mon Jul 11 13:38:28 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 11 Jul 2022 13:38:28 +0200 Subject: [Gambas-user] Startup class (but gotta be a module not an actual class!) In-Reply-To: References: Message-ID: Le 11/07/2022 ? 13:27, Bruce Steers a ?crit?: > Is there a way to make a class and use it as a startup class? > > Seems ironic that the menu refers to "Startup class" but using an actual > class and not a module as the "startup class" gives a "no startup > method" error. > Cannot use Main() _init() or new() > > Is it impossible to use a class? > > Many Respects > BruceS > I guess you forgot to make the Main() method static or public? -- Beno?t Minisini. From bsteers4 at gmail.com Mon Jul 11 13:50:13 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 11 Jul 2022 12:50:13 +0100 Subject: [Gambas-user] Startup class (but gotta be a module not an actual class!) In-Reply-To: References: Message-ID: On Mon, 11 Jul 2022 at 12:39, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 11/07/2022 ? 13:27, Bruce Steers a ?crit : > > Is there a way to make a class and use it as a startup class? > > > > Seems ironic that the menu refers to "Startup class" but using an actual > > class and not a module as the "startup class" gives a "no startup > > method" error. > > Cannot use Main() _init() or new() > > > > Is it impossible to use a class? > > > > Many Respects > > BruceS > > > > I guess you forgot to make the Main() method static or public? > Aha ,, Thanks Benoit , you are a star :) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Mon Jul 11 14:18:29 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Mon, 11 Jul 2022 18:03:29 +0545 Subject: [Gambas-user] Issue with non-readonly WebComboBox design with select2.js Message-ID: Dear Beno?t I am thankful for your prompt update and now I can use jquery and a lot of other javascripts. Using jquery and select2, I found that the design of ReadOnly WebComboBox is fine but the design of non-ReadOnly WebComboBox changes. However, there is no issue with text and index returned by modified controls. Attached a project to reproduce it. -- Regards Safiur Rahman -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: jquery.zip Type: application/zip Size: 17723 bytes Desc: not available URL: From isafiur at gmail.com Mon Jul 11 14:23:01 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Mon, 11 Jul 2022 18:08:01 +0545 Subject: [Gambas-user] Issue with non-readonly WebComboBox design with select2.js In-Reply-To: References: Message-ID: Check this image -- Regards Safiur Rahman -------------- next part -------------- A non-text attachment was scrubbed... Name: webcombo.jpg Type: image/jpeg Size: 22654 bytes Desc: not available URL: From dag at cd-bahia.com Tue Jul 12 01:24:24 2022 From: dag at cd-bahia.com (Dag JNJ) Date: Tue, 12 Jul 2022 01:24:24 +0200 Subject: [Gambas-user] Menu editor changed Message-ID: Hi all. I had to use the menu-editor today for the first time since a while, and noticed at once it has changed. I stumbled over a problem though: Unable to set a shortcut.? I can click on the control-keys, but it does not take a letter. I often use Ctrl+S for save, but no way right now. Tried every combination I could imagine, from S to Ctrl+S, left mouse key right mouse key. It seems to miss a field for the input. Any ideas? Thanks in advance, Dag JNJ Ubuntu Mate 20.04 Gambas 3.17.2 From adamnt42 at gmail.com Tue Jul 12 01:36:54 2022 From: adamnt42 at gmail.com (bb) Date: Tue, 12 Jul 2022 09:06:54 +0930 Subject: [Gambas-user] Menu editor changed In-Reply-To: References: Message-ID: On Tue, 2022-07-12 at 01:24 +0200, Dag JNJ wrote: > Hi all. > > I had to use the menu-editor today for the first time since a while, > and > noticed at once it has changed. I stumbled over a problem though: > Unable > to set a shortcut.? I can click on the control-keys, but it does not > take a letter. I often use Ctrl+S for save, but no way right now. > Tried > every combination I could imagine, from S to Ctrl+S, left mouse key > right mouse key. It seems to miss a field for the input. Any ideas? > > Thanks in advance, Dag JNJ > > Ubuntu Mate 20.04 > > Gambas 3.17.2 > > > ----[ http://gambaswiki.org/wiki/doc/netiquette?]---- Don't know for sure, but as always... Beware of trying to use shortcuts that may be trapped elsewhere in your process stack. Ctrl+S is often trapped fairly high up to "pause terminal output". hth b From gambas at cd-bahia.com Tue Jul 12 02:04:09 2022 From: gambas at cd-bahia.com (Dag JNJ) Date: Tue, 12 Jul 2022 02:04:09 +0200 Subject: [Gambas-user] Menu editor changed In-Reply-To: References: Message-ID: Am 12.07.22 um 01:36 schrieb bb: > On Tue, 2022-07-12 at 01:24 +0200, Dag JNJ wrote: >> Hi all. >> >> I had to use the menu-editor today for the first time since a while, >> and >> noticed at once it has changed. I stumbled over a problem though: >> Unable >> to set a shortcut.? I can click on the control-keys, but it does not >> take a letter. I often use Ctrl+S for save, but no way right now. >> Tried >> every combination I could imagine, from S to Ctrl+S, left mouse key >> right mouse key. It seems to miss a field for the input. Any ideas? >> >> Thanks in advance, Dag JNJ >> >> Ubuntu Mate 20.04 >> >> Gambas 3.17.2 >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette?]---- > Don't know for sure, but as always... > Beware of trying to use shortcuts that may be trapped elsewhere in your > process stack. Ctrl+S is often trapped fairly high up to "pause > terminal output". > hth > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > That's not the problem, I've used Ctrl+S often without problem, I hrdly mix programming and longer bash-jobs at once, I'm aware of the pause-function in terminal. The prblem is: I can't set it. From bsteers4 at gmail.com Tue Jul 12 02:48:29 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 12 Jul 2022 01:48:29 +0100 Subject: [Gambas-user] Menu editor changed In-Reply-To: References: Message-ID: On Tue, 12 Jul 2022 at 00:33, Dag JNJ wrote: > Hi all. > > I had to use the menu-editor today for the first time since a while, and > noticed at once it has changed. I stumbled over a problem though: Unable > to set a shortcut. I can click on the control-keys, but it does not > take a letter. I often use Ctrl+S for save, but no way right now. Tried > every combination I could imagine, from S to Ctrl+S, left mouse key > right mouse key. It seems to miss a field for the input. Any ideas? > > Thanks in advance, Dag JNJ > > Ubuntu Mate 20.04 > in the menu editor there should a "Shortcut" option that has 3 togglebuttons and a combobox the togglebox's are CTRL, SHIFT, ALT and switch the modifiers on or off and the combobox says (none) and has all the keys listed there including S. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Tue Jul 12 03:45:54 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 11 Jul 2022 21:45:54 -0400 Subject: [Gambas-user] Menu editor changed In-Reply-To: References: Message-ID: <553bbd27-faaf-df68-cc98-7a63b87bd52f@gmail.com> On 7/11/22 19:24, Dag JNJ wrote: > Hi all. > > I had to use the menu-editor today for the first time since a while, and noticed at once it has changed. I stumbled over a > problem though: Unable to set a shortcut.? I can click on the control-keys, but it does not take a letter. I often use Ctrl+S > for save, but no way right now. Tried every combination I could imagine, from S to Ctrl+S, left mouse key right mouse key. It > seems to miss a field for the input. Any ideas? > > Thanks in advance, Dag JNJ > > Ubuntu Mate 20.04 > > Gambas 3.17.2 > There was a brief discussion about this a while back. It is quite likely the same issue. https://lists.gambas-basic.org/pipermail/user/2022-April/075806.html You may need to change your desktop theme. The Shortcut Key configuration should look similar to the attached pic. -- Lee -------------- next part -------------- A non-text attachment was scrubbed... Name: Screenshot_20220711_213648.png Type: image/png Size: 5967 bytes Desc: not available URL: From bsteers4 at gmail.com Tue Jul 12 11:52:52 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 12 Jul 2022 10:52:52 +0100 Subject: [Gambas-user] gits new security feature "unsafe repository" Message-ID: As of git 2.35.2 a new security feature means you have to add all your local git paths as safe paths. Or you now get this message... *fatal: unsafe repository ('/media/bonus/SSDiskspace/git/gambaslatestupdate' is owned by someone else)To add an exception for this directory, call: git config --global --add safe.directory /media/bonus/SSDiskspace/git/gambaslatestupdate* This has happened to ALL my local folders and i've had to add them manually. But this also stops Version Control working and no version control options show in the IDE unless you add the path first. Was thinking it'd be cool if the IDE detected this error and offered to run the command to add the path for you. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Jul 12 11:55:41 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 12 Jul 2022 11:55:41 +0200 Subject: [Gambas-user] gits new security feature "unsafe repository" In-Reply-To: References: Message-ID: <1a83b237-09aa-f698-3b4e-f72d478d933a@gambas-basic.org> Le 12/07/2022 ? 11:52, Bruce Steers a ?crit?: > As of git 2.35.2 a new security feature means you have to add all your > local git paths as safe paths. > Or you now get this message... > * > * > *fatal: unsafe repository > ('/media/bonus/SSDiskspace/git/gambaslatestupdate' is owned by someone else) > To add an exception for this directory, call: > > git config --global --add safe.directory > /media/bonus/SSDiskspace/git/gambaslatestupdate* > > This has happened to ALL my local folders and i've had to add them manually. > But this also stops Version Control working and no version control > options show in the IDE unless you add the path first. > > Was thinking it'd be cool if the IDE detected this error and offered to > run the command to add the path for you. > > Respects > BruceS > What's that stupid thing? -- Beno?t Minisini. From bsteers4 at gmail.com Tue Jul 12 12:01:42 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 12 Jul 2022 11:01:42 +0100 Subject: [Gambas-user] gits new security feature "unsafe repository" In-Reply-To: <1a83b237-09aa-f698-3b4e-f72d478d933a@gambas-basic.org> References: <1a83b237-09aa-f698-3b4e-f72d478d933a@gambas-basic.org> Message-ID: On Tue, 12 Jul 2022 at 10:56, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 12/07/2022 ? 11:52, Bruce Steers a ?crit : > > As of git 2.35.2 a new security feature means you have to add all your > > local git paths as safe paths. > > Or you now get this message... > > * > > * > > *fatal: unsafe repository > > ('/media/bonus/SSDiskspace/git/gambaslatestupdate' is owned by someone > else) > > To add an exception for this directory, call: > > > > git config --global --add safe.directory > > /media/bonus/SSDiskspace/git/gambaslatestupdate* > > > > This has happened to ALL my local folders and i've had to add them > manually. > > But this also stops Version Control working and no version control > > options show in the IDE unless you add the path first. > > > > Was thinking it'd be cool if the IDE detected this error and offered to > > run the command to add the path for you. > > > > Respects > > BruceS > > > > What's that stupid thing? > Annoying is what it is! It just happened one day after a git update :( https://github.blog/2022-04-12-git-security-vulnerability-announced/ https://stackoverflow.com/questions/71901632/fatal-error-unsafe-repository-home-repon-is-owned-by-someone-else/71941707#71941707 Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Jul 12 12:06:49 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 12 Jul 2022 11:06:49 +0100 Subject: [Gambas-user] gits new security feature "unsafe repository" In-Reply-To: References: <1a83b237-09aa-f698-3b4e-f72d478d933a@gambas-basic.org> Message-ID: On Tue, 12 Jul 2022 at 11:01, Bruce Steers wrote: > > > On Tue, 12 Jul 2022 at 10:56, Benoit Minisini < > benoit.minisini at gambas-basic.org> wrote: > >> Le 12/07/2022 ? 11:52, Bruce Steers a ?crit : >> > As of git 2.35.2 a new security feature means you have to add all your >> > local git paths as safe paths. >> > Or you now get this message... >> > * >> > * >> > *fatal: unsafe repository >> > ('/media/bonus/SSDiskspace/git/gambaslatestupdate' is owned by someone >> else) >> > To add an exception for this directory, call: >> > >> > git config --global --add safe.directory >> > /media/bonus/SSDiskspace/git/gambaslatestupdate* >> > >> > This has happened to ALL my local folders and i've had to add them >> manually. >> > But this also stops Version Control working and no version control >> > options show in the IDE unless you add the path first. >> > >> > Was thinking it'd be cool if the IDE detected this error and offered to >> > run the command to add the path for you. >> > >> > Respects >> > BruceS >> > >> >> What's that stupid thing? >> > > Annoying is what it is! > It just happened one day after a git update :( > https://github.blog/2022-04-12-git-security-vulnerability-announced/ > > https://stackoverflow.com/questions/71901632/fatal-error-unsafe-repository-home-repon-is-owned-by-someone-else/71941707#71941707 > > You can use git config --global --add safe.directory "*" but that kinda bypasses the security. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Jul 12 13:00:04 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 12 Jul 2022 12:00:04 +0100 Subject: [Gambas-user] gits new security feature "unsafe repository" In-Reply-To: References: <1a83b237-09aa-f698-3b4e-f72d478d933a@gambas-basic.org> Message-ID: On Tue, 12 Jul 2022 at 11:06, Bruce Steers wrote: > > > On Tue, 12 Jul 2022 at 11:01, Bruce Steers wrote: > >> >> >> On Tue, 12 Jul 2022 at 10:56, Benoit Minisini < >> benoit.minisini at gambas-basic.org> wrote: >> >>> Le 12/07/2022 ? 11:52, Bruce Steers a ?crit : >>> > As of git 2.35.2 a new security feature means you have to add all your >>> > local git paths as safe paths. >>> > Or you now get this message... >>> > * >>> > * >>> > *fatal: unsafe repository >>> > ('/media/bonus/SSDiskspace/git/gambaslatestupdate' is owned by someone >>> else) >>> > To add an exception for this directory, call: >>> > >>> > git config --global --add safe.directory >>> > /media/bonus/SSDiskspace/git/gambaslatestupdate* >>> > >>> > This has happened to ALL my local folders and i've had to add them >>> manually. >>> > But this also stops Version Control working and no version control >>> > options show in the IDE unless you add the path first. >>> > >>> > Was thinking it'd be cool if the IDE detected this error and offered >>> to >>> > run the command to add the path for you. >>> > >>> > Respects >>> > BruceS >>> > >>> >>> What's that stupid thing? >>> >> >> Annoying is what it is! >> It just happened one day after a git update :( >> https://github.blog/2022-04-12-git-security-vulnerability-announced/ >> >> https://stackoverflow.com/questions/71901632/fatal-error-unsafe-repository-home-repon-is-owned-by-someone-else/71941707#71941707 >> >> > You can use > git config --global --add safe.directory "*" > but that kinda bypasses the security. > I think the issue occurs because the drive is mounted at startup and root is the owner and i cannot change that or anything in it. I have full access to it as a normal user but root remains the owner so git finds this issue. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas at cd-bahia.com Tue Jul 12 18:40:43 2022 From: gambas at cd-bahia.com (web158p10) Date: Tue, 12 Jul 2022 18:40:43 +0200 Subject: [Gambas-user] Menu editor changed In-Reply-To: <553bbd27-faaf-df68-cc98-7a63b87bd52f@gmail.com> References: <553bbd27-faaf-df68-cc98-7a63b87bd52f@gmail.com> Message-ID: Am 2022-07-12 03:45, schrieb T Lee Davidson: > On 7/11/22 19:24, Dag JNJ wrote: >> Hi all. >> >> I had to use the menu-editor today for the first time since a while, >> and noticed at once it has changed. I stumbled over a problem though: >> Unable to set a shortcut.? I can click on the control-keys, but it >> does not take a letter. I often use Ctrl+S for save, but no way right >> now. Tried every combination I could imagine, from S to Ctrl+S, left >> mouse key right mouse key. It seems to miss a field for the input. Any >> ideas? >> >> Thanks in advance, Dag JNJ >> >> Ubuntu Mate 20.04 >> >> Gambas 3.17.2 >> > > There was a brief discussion about this a while back. It is quite > likely the same issue. > https://lists.gambas-basic.org/pipermail/user/2022-April/075806.html > > You may need to change your desktop theme. > > The Shortcut Key configuration should look similar to the attached pic. > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Now I have been through all available desktop-themes. Not one showwd me the dropdown box. That means for me obviously thaat I can't use shortcuts anymore. That's no good news, as I program very much to avoid using mouse - typing in tons of data. Now I have toave the keybardd, klick on save and ack to keyboard. he old system eas practicable,. Never touich a running system! I looked as that link, the thread ends with: Thiis must be your issue, what ist not really helpful. From gambas at cd-bahia.com Tue Jul 12 19:27:46 2022 From: gambas at cd-bahia.com (web158p10) Date: Tue, 12 Jul 2022 19:27:46 +0200 Subject: [Gambas-user] Menu editor changed In-Reply-To: References: <553bbd27-faaf-df68-cc98-7a63b87bd52f@gmail.com> Message-ID: <648df95cb0929ad278065f66bcdbed93@cd-bahia.com> Am 2022-07-12 18:40, schrieb web158p10: > Am 2022-07-12 03:45, schrieb T Lee Davidson: >> On 7/11/22 19:24, Dag JNJ wrote: >>> Hi all. >>> >>> I had to use the menu-editor today for the first time since a while, >>> and noticed at once it has changed. I stumbled over a problem though: >>> Unable to set a shortcut.? I can click on the control-keys, but it >>> does not take a letter. I often use Ctrl+S for save, but no way right >>> now. Tried every combination I could imagine, from S to Ctrl+S, left >>> mouse key right mouse key. It seems to miss a field for the input. >>> Any ideas? >>> >>> Thanks in advance, Dag JNJ >>> >>> Ubuntu Mate 20.04 >>> >>> Gambas 3.17.2 >>> >> >> There was a brief discussion about this a while back. It is quite >> likely the same issue. >> https://lists.gambas-basic.org/pipermail/user/2022-April/075806.html >> >> You may need to change your desktop theme. >> >> The Shortcut Key configuration should look similar to the attached >> pic. >> >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > Now I have been through all available desktop-themes. Not one showwd > me the dropdown box. That means for me obviously thaat I can't use > shortcuts anymore. That's no good news, as I program very much to > avoid using mouse - typing in tons of data. Now I have toave the > keybardd, klick on save and ack to keyboard. he old system eas > practicable,. Never touich a running system! > I looked as that link, the thread ends with: Thiis must be your issue, > what ist not really helpful. > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I tried again. changed theme with Gambas closed, then opened the project again. That worked by an rather ugly theme. So at least I can program the shortcuts, whch is a big releafe. Have a nice evening, Dag JNJ From benoit.minisini at gambas-basic.org Tue Jul 12 19:38:11 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 12 Jul 2022 19:38:11 +0200 Subject: [Gambas-user] Menu editor changed In-Reply-To: <648df95cb0929ad278065f66bcdbed93@cd-bahia.com> References: <553bbd27-faaf-df68-cc98-7a63b87bd52f@gmail.com> <648df95cb0929ad278065f66bcdbed93@cd-bahia.com> Message-ID: Le 12/07/2022 ? 19:27, web158p10 a ?crit?: >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > I tried again. changed theme with Gambas closed, then opened the project > again. That worked by an rather ugly theme. So at least I can program > the shortcuts, whch is a big releafe. > Have a nice evening, > Dag JNJ > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Can you post a screenshot with the theme that make the shortcut combo not visible, and one with the theme that makes it visible? (Beware with the attachment size limit of the mailing-list!). Thanks. -- Beno?t Minisini. From gambas at cd-bahia.com Wed Jul 13 14:09:33 2022 From: gambas at cd-bahia.com (Dag JNJ) Date: Wed, 13 Jul 2022 14:09:33 +0200 Subject: [Gambas-user] Menu editor changed In-Reply-To: References: <553bbd27-faaf-df68-cc98-7a63b87bd52f@gmail.com> <648df95cb0929ad278065f66bcdbed93@cd-bahia.com> Message-ID: <869b5b6b-1169-30c3-1fd3-28277d029fef@cd-bahia.com> Am 12.07.22 um 19:38 schrieb Benoit Minisini: > Le 12/07/2022 ? 19:27, web158p10 a ?crit?: >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> I tried again. changed theme with Gambas closed, then opened the >> project again. That worked by an rather ugly theme. So at least I can >> program the shortcuts, whch is a big releafe. >> Have a nice evening, >> Dag JNJ >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > Can you post a screenshot with the theme that make the shortcut combo > not visible, and one with the theme that makes it visible? (Beware > with the attachment size limit of the mailing-list!). > > Thanks. > > Here they are > > Regards -------------- next part -------------- A non-text attachment was scrubbed... Name: MenuEditor-GreenLaguna.png Type: image/png Size: 95974 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: MenuEditor-Menta(without topdowd).png Type: image/png Size: 92031 bytes Desc: not available URL: From bsteers4 at gmail.com Wed Jul 13 16:27:12 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 13 Jul 2022 15:27:12 +0100 Subject: [Gambas-user] Menu editor changed In-Reply-To: <869b5b6b-1169-30c3-1fd3-28277d029fef@cd-bahia.com> References: <553bbd27-faaf-df68-cc98-7a63b87bd52f@gmail.com> <648df95cb0929ad278065f66bcdbed93@cd-bahia.com> <869b5b6b-1169-30c3-1fd3-28277d029fef@cd-bahia.com> Message-ID: On Wed, 13 Jul 2022 at 13:11, Dag JNJ wrote: > > Am 12.07.22 um 19:38 schrieb Benoit Minisini: > > Le 12/07/2022 ? 19:27, web158p10 a ?crit : > >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > >> I tried again. changed theme with Gambas closed, then opened the > >> project again. That worked by an rather ugly theme. So at least I can > >> program the shortcuts, whch is a big releafe. > >> Have a nice evening, > >> Dag JNJ > >> > >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > Can you post a screenshot with the theme that make the shortcut combo > > not visible, and one with the theme that makes it visible? (Beware > > with the attachment size limit of the mailing-list!). > > > > Thanks. > > > > Here they are > By the way you can manually set any menu shortcut using it's Shortcut property. Eg.. MenuSave.Shortcut = "Ctrl+S" MenuSaveAs.Shortcut = "Ctrl+A" also increasing your appearance's Application font by 1px can make some controls show properly with the not so great themes, BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas at cd-bahia.com Wed Jul 13 16:34:09 2022 From: gambas at cd-bahia.com (Dag JNJ) Date: Wed, 13 Jul 2022 16:34:09 +0200 Subject: [Gambas-user] Menu editor changed In-Reply-To: References: <553bbd27-faaf-df68-cc98-7a63b87bd52f@gmail.com> <648df95cb0929ad278065f66bcdbed93@cd-bahia.com> <869b5b6b-1169-30c3-1fd3-28277d029fef@cd-bahia.com> Message-ID: <13603782-6205-7860-723c-b6655a148c40@cd-bahia.com> Am 13.07.22 um 16:27 schrieb Bruce Steers: > > > On Wed, 13 Jul 2022 at 13:11, Dag JNJ wrote: > > > Am 12.07.22 um 19:38 schrieb Benoit Minisini: > > Le 12/07/2022 ? 19:27, web158p10 a ?crit?: > >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > >> I tried again. changed theme with Gambas closed, then opened the > >> project again. That worked by an rather ugly theme. So at least > I can > >> program the shortcuts, whch is a big releafe. > >> Have a nice evening, > >> Dag JNJ > >> > >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > Can you post a screenshot with the theme that make the shortcut > combo > > not visible, and one with the theme that makes it visible? (Beware > > with the attachment size limit of the mailing-list!). > > > > Thanks. > > > > Here they are > > > By the way you can manually set any menu shortcut using it's Shortcut > property. > Eg.. > MenuSave.Shortcut = "Ctrl+S" > MenuSaveAs.Shortcut = "Ctrl+A" > > also increasing your appearance's Application font by 1px can make > some controls show properly with the not so great themes, > > BruceS > > > ----[http://gambaswiki.org/wiki/doc/netiquette ]---- Thanks for that tip! Think tat can speed up development a bit. Reards, Dag -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Jul 13 16:38:03 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 13 Jul 2022 15:38:03 +0100 Subject: [Gambas-user] Menu editor changed In-Reply-To: References: <553bbd27-faaf-df68-cc98-7a63b87bd52f@gmail.com> <648df95cb0929ad278065f66bcdbed93@cd-bahia.com> <869b5b6b-1169-30c3-1fd3-28277d029fef@cd-bahia.com> Message-ID: On Wed, 13 Jul 2022 at 15:27, Bruce Steers wrote: > > > On Wed, 13 Jul 2022 at 13:11, Dag JNJ wrote: > >> >> Am 12.07.22 um 19:38 schrieb Benoit Minisini: >> > Le 12/07/2022 ? 19:27, web158p10 a ?crit : >> >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> >> I tried again. changed theme with Gambas closed, then opened the >> >> project again. That worked by an rather ugly theme. So at least I can >> >> program the shortcuts, whch is a big releafe. >> >> Have a nice evening, >> >> Dag JNJ >> >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > >> > Can you post a screenshot with the theme that make the shortcut combo >> > not visible, and one with the theme that makes it visible? (Beware >> > with the attachment size limit of the mailing-list!). >> > >> > Thanks. >> > >> > Here they are >> > > By the way you can manually set any menu shortcut using it's Shortcut > property. > Eg.. > MenuSave.Shortcut = "Ctrl+S" > MenuSaveAs.Shortcut = "Ctrl+A" > > also increasing your appearance's Application font by 1px can make some > controls show properly with the not so great themes, > Also , gambas IDE can run using either GTK toolkit or QT (by default it uses gtk) this command from a terminal (or create a launcher) will run the IDE with QT5 env GB_GUI=gb.qt5 gambas3 you will probably find the bug is a gtk toolkit specific thing and if you use qt5 it will probably be okay. or vice versa if you normally use qt also if you drag the gambas3 menu icon into a panel when you right click it it will give options to choose toolkit. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Untitled.png Type: image/png Size: 104412 bytes Desc: not available URL: From bsteers4 at gmail.com Thu Jul 14 10:49:26 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 14 Jul 2022 09:49:26 +0100 Subject: [Gambas-user] gb.web internal debug browser does not exit Message-ID: Whenever i test run/debug my gb.web or gb.web.form apps when i close the internal server window the program does not exit. I have to press the stop button. Works okay if i use external browser. Is that just me or anyone else get that problem? BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Jul 14 10:52:57 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 14 Jul 2022 10:52:57 +0200 Subject: [Gambas-user] gb.web internal debug browser does not exit In-Reply-To: References: Message-ID: <26d390e7-1bb3-89d3-e602-a4d4678660d3@gambas-basic.org> Le 14/07/2022 ? 10:49, Bruce Steers a ?crit?: > Whenever i test run/debug my gb.web or gb.web.form apps when i close the > internal server window the program does not exit. I have to press the > stop button. > > Works okay if i use external browser. > > Is that just me or anyone else get that problem? > > BruceS > This window is a window of the IDE, so closing it just hides it, contrary to external browsers. Maybe I should make it non persistent then? Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Thu Jul 14 10:57:14 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 14 Jul 2022 09:57:14 +0100 Subject: [Gambas-user] gb.web internal debug browser does not exit In-Reply-To: <26d390e7-1bb3-89d3-e602-a4d4678660d3@gambas-basic.org> References: <26d390e7-1bb3-89d3-e602-a4d4678660d3@gambas-basic.org> Message-ID: On Thu, 14 Jul 2022 at 09:53, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 14/07/2022 ? 10:49, Bruce Steers a ?crit : > > Whenever i test run/debug my gb.web or gb.web.form apps when i close the > > internal server window the program does not exit. I have to press the > > stop button. > > > > Works okay if i use external browser. > > > > Is that just me or anyone else get that problem? > > > > BruceS > > > > This window is a window of the IDE, so closing it just hides it, > contrary to external browsers. > > Maybe I should make it non persistent then? > Ooh yes please, it does not seem useful for it not to quit on exit. Also kind of annoying each time i go to type something but the editor is locked as program is still running. Thanks Ben :) -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Jul 14 13:26:24 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 14 Jul 2022 12:26:24 +0100 Subject: [Gambas-user] gb.web internal debug browser does not exit In-Reply-To: <26d390e7-1bb3-89d3-e602-a4d4678660d3@gambas-basic.org> References: <26d390e7-1bb3-89d3-e602-a4d4678660d3@gambas-basic.org> Message-ID: On Thu, 14 Jul 2022 at 09:53, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 14/07/2022 ? 10:49, Bruce Steers a ?crit : > > Whenever i test run/debug my gb.web or gb.web.form apps when i close the > > internal server window the program does not exit. I have to press the > > stop button. > > > > Works okay if i use external browser. > > > > Is that just me or anyone else get that problem? > > > > BruceS > > > > This window is a window of the IDE, so closing it just hides it, > contrary to external browsers. > > Maybe I should make it non persistent then? > Thanks again Ben, much easier to test now :) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas at cd-bahia.com Thu Jul 14 17:00:25 2022 From: gambas at cd-bahia.com (Dag JNJ) Date: Thu, 14 Jul 2022 17:00:25 +0200 Subject: [Gambas-user] Menu editor changed In-Reply-To: References: <553bbd27-faaf-df68-cc98-7a63b87bd52f@gmail.com> <648df95cb0929ad278065f66bcdbed93@cd-bahia.com> <869b5b6b-1169-30c3-1fd3-28277d029fef@cd-bahia.com> Message-ID: Am 13.07.22 um 16:38 schrieb Bruce Steers: > > > On Wed, 13 Jul 2022 at 15:27, Bruce Steers wrote: > > > > On Wed, 13 Jul 2022 at 13:11, Dag JNJ wrote: > > > Am 12.07.22 um 19:38 schrieb Benoit Minisini: > > Le 12/07/2022 ? 19:27, web158p10 a ?crit?: > >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > >> I tried again. changed theme with Gambas closed, then > opened the > >> project again. That worked by an rather ugly theme. So at > least I can > >> program the shortcuts, whch is a big releafe. > >> Have a nice evening, > >> Dag JNJ > >> > >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > Can you post a screenshot with the theme that make the > shortcut combo > > not visible, and one with the theme that makes it visible? > (Beware > > with the attachment size limit of the mailing-list!). > > > > Thanks. > > > > Here they are > > > By the way you can manually set any menu shortcut using it's > Shortcut property. > Eg.. > MenuSave.Shortcut = "Ctrl+S" > MenuSaveAs.Shortcut = "Ctrl+A" > > also increasing your appearance's Application font by 1px can make > some controls show properly with the not so great themes, > > > > Also , gambas IDE can run using either GTK toolkit or QT (by default > it uses gtk) > > this command from a terminal (or create a launcher) will run the IDE > with QT5 > env GB_GUI=gb.qt5 gambas3 > > you will probably find the bug is a gtk toolkit specific thing and if > you use qt5 it will probably be okay. > or vice versa if you normally use qt > > also if you drag the gambas3 menu icon into a panel when you right > click it it will give options to choose toolkit. > > > ----[http://gambaswiki.org/wiki/doc/netiquette ]---- > I must confess I never tried to use QT&, mostly got the results I wanted with GTK. Nut I also had to change theme once because I couldn't see the scrollbars. I will consider using QT, but rigt now is a bad moment in the middle of developing two projects, one almost ready and the other depends on the first.Don't overllok the consequences of switching right now. Regards, Dag -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Fri Jul 15 15:42:40 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Fri, 15 Jul 2022 19:27:40 +0545 Subject: [Gambas-user] Problem with CsvFile.Fields.Count Message-ID: Hi I have one simple csv. When I run this Dim hForm As CsvFile hForm = New CsvFile("csv/8.tmp.csv", ";") ValueBox1 = hForm.Fields.Count I get the error "Null Value". Previously it worked. Is there any change? I am using gambas 3.17.2 on Ubuntu 20.04 Attached a project -- Regards Safiur Rahman -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: csvformat.zip Type: application/zip Size: 14992 bytes Desc: not available URL: From isafiur at gmail.com Fri Jul 15 15:45:09 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Fri, 15 Jul 2022 19:30:09 +0545 Subject: [Gambas-user] Problem with CsvFile.Fields.Count In-Reply-To: References: Message-ID: Sorry ValueBox1.Value = hForm.Fields.Count On Fri, Jul 15, 2022 at 7:27 PM Safiur Rahman wrote: > Hi > > I have one simple csv. When I run this > > Dim hForm As CsvFile > hForm = New CsvFile("csv/8.tmp.csv", ";") > ValueBox1 = hForm.Fields.Count > > I get the error "Null Value". Previously it worked. Is there any change? > I am using gambas 3.17.2 on Ubuntu 20.04 > > Attached a project > > -- > Regards > Safiur Rahman > -- Regards Safiur Rahman -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: csvformat.zip Type: application/zip Size: 15595 bytes Desc: not available URL: From t.lee.davidson at gmail.com Fri Jul 15 23:41:38 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 15 Jul 2022 17:41:38 -0400 Subject: [Gambas-user] Problem with CsvFile.Fields.Count In-Reply-To: References: Message-ID: On 7/15/22 09:42, Safiur Rahman wrote: > Hi > > I have one simple csv. When I run this > > Dim hForm As CsvFile > ?hForm = New CsvFile("csv/8.tmp.csv", ";") > ?ValueBox1 = hForm.Fields.Count > > I get the error "Null Value". Previously it worked. Is there any change? > I am using gambas 3.17.2 on Ubuntu 20.04 > > Attached a project > > -- > Regards > Safiur Rahman > I get the same thing. Even the Columns and Fields property symbols are Null. -- Lee -------------- next part -------------- A non-text attachment was scrubbed... Name: Screenshot_20220715_173935.png Type: image/png Size: 20764 bytes Desc: not available URL: From brian at westwoodsvcs.com Fri Jul 15 23:39:18 2022 From: brian at westwoodsvcs.com (Brian G) Date: Fri, 15 Jul 2022 14:39:18 -0700 (PDT) Subject: [Gambas-user] Issue with Namespace and debug Message-ID: <1011570878.62325.1657921158944.JavaMail.zimbra@westwoodsvcs.com> When trying to use name spaces if I export to a name space different from main namespace the debugger stops working. will not trace into the module. If using a namespace in a class, debugger never enters the class to debug. Is this normal, Am I doing something wrong? "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Jul 16 08:30:29 2022 From: adamnt42 at gmail.com (bb) Date: Sat, 16 Jul 2022 16:00:29 +0930 Subject: [Gambas-user] Cant open projects after last update Message-ID: <94b8a978b9c76f95fb5922ae5cdd4cf5d5773744.camel@gmail.com> IDE pops up the following message Cannot open project file : /srv/gb3prj/menuminer1/cdj2 Void path Main.NormalizePath.161? Bookmarks.Add.28? Project.UpdateBookmarks.540? VersionControl.Refresh.98? Project.Open.678? FWelcome.btnOpen_Click.186? CCoolButton.Panel_MouseUp.149 everything configured and compiled correctly. b From adamnt42 at gmail.com Sat Jul 16 09:01:18 2022 From: adamnt42 at gmail.com (bb) Date: Sat, 16 Jul 2022 16:31:18 +0930 Subject: [Gambas-user] Cant open projects after last update In-Reply-To: <94b8a978b9c76f95fb5922ae5cdd4cf5d5773744.camel@gmail.com> References: <94b8a978b9c76f95fb5922ae5cdd4cf5d5773744.camel@gmail.com> Message-ID: On Sat, 2022-07-16 at 16:00 +0930, bb wrote: > IDE pops up the following message > > Cannot open project file : > /srv/gb3prj/menuminer1/cdj2 > > Void path > Main.NormalizePath.161? > Bookmarks.Add.28? > Project.UpdateBookmarks.540? > VersionControl.Refresh.98? > Project.Open.678? > FWelcome.btnOpen_Click.186? > CCoolButton.Panel_MouseUp.149 > > > everything configured and compiled correctly. > > b > After a bit of debugging... Main.NormalizePath seems to be called 3 times when a project is selected. The first two times the sPath parameter is correct for the selected project. The third time sPath is empty. ??? b From charlie at cogier.com Sat Jul 16 11:00:10 2022 From: charlie at cogier.com (Charlie Ogier) Date: Sat, 16 Jul 2022 10:00:10 +0100 Subject: [Gambas-user] Problem with CsvFile.Fields.Count In-Reply-To: References: Message-ID: <123e0449-d8e7-c707-ef46-00ee77225125@cogier.com> Hi Safiur, I am not sure why it is needed but if you add the line *hForm.read* it will work. /Dim hForm As CsvFile// //?hForm = New CsvFile("csv/8.tmp.csv", ";")// //*?hForm.read*// //?ValueBox1 = hForm.Fields.Count// / Charlie On 15/07/2022 14:45, Safiur Rahman wrote: > Sorry > ValueBox1.Value = hForm.Fields.Count > > > > On Fri, Jul 15, 2022 at 7:27 PM Safiur Rahman wrote: > > Hi > > I have one simple csv. When I run this > > Dim hForm As CsvFile > ?hForm = New CsvFile("csv/8.tmp.csv", ";") > ?ValueBox1 = hForm.Fields.Count > > I get the error "Null Value". Previously it worked. Is there any > change? > I am using gambas 3.17.2 on Ubuntu 20.04 > > Attached a project > > -- > Regards > Safiur Rahman > > > > -- > Regards > Safiur Rahman > > ----[http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Sat Jul 16 16:41:55 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Sat, 16 Jul 2022 20:26:55 +0545 Subject: [Gambas-user] Problem with CsvFile.Fields.Count In-Reply-To: References: Message-ID: Hi Thanks Charlie for your solution. After hForm.Read() provides me with a Columns list but also it takes to the first row of the dataset. So I have to close csv and again I have to Open csv and go to one by one row to fetch data. On Fri, Jul 15, 2022 at 7:30 PM Safiur Rahman wrote: > Sorry > ValueBox1.Value = hForm.Fields.Count > > > > On Fri, Jul 15, 2022 at 7:27 PM Safiur Rahman wrote: > >> Hi >> >> I have one simple csv. When I run this >> >> Dim hForm As CsvFile >> hForm = New CsvFile("csv/8.tmp.csv", ";") >> ValueBox1 = hForm.Fields.Count >> >> I get the error "Null Value". Previously it worked. Is there any change? >> I am using gambas 3.17.2 on Ubuntu 20.04 >> >> Attached a project >> >> -- >> Regards >> Safiur Rahman >> > > > -- > Regards > Safiur Rahman > -- Regards Safiur Rahman -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Sat Jul 16 18:06:30 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 16 Jul 2022 12:06:30 -0400 Subject: [Gambas-user] Problem with CsvFile.Fields.Count In-Reply-To: References: Message-ID: On 7/16/22 10:41, Safiur Rahman wrote: > Thanks Charlie for your solution. After hForm.Read() provides me with a Columns list but also it takes to the first row of the > dataset. So I have to close csv and again I have to Open csv and go to one by one row to fetch data. Reading the data line by line is what you would need to do anyway. So, there must be a reason you need the Fields count prior to iterating over the data lines. It seems illogical to me that CsvFile.Eof is set True after the last line is read, instead of at the actual EOF. If it were set at actual EOF, one could do something like this: Public Sub Button1_Click() Dim hForm As CsvFile Dim cFields As Collection hForm = New CsvFile("csv/8.tmp.csv", ";") cFields = hForm.Read() Print hForm.Fields.Count 'Process the fields count Do For Each sValue As String In cFields 'Process the current data line Print Subst("&1: &2", cFields.Key, sValue) Next cFields = hForm.Read() Loop Until hForm.Eof End Unfortunately, that does not work. If you wanted to use the above code, Safiur, you could add an extra blank line at the end of the CSV file; ie. so that there are two blank lines prior to actual EOF. (A messy hack at best, IMO.) -- Lee From chrisml at deganius.de Sat Jul 16 21:12:24 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Sat, 16 Jul 2022 21:12:24 +0200 Subject: [Gambas-user] Release of Gambas 3.17.3 In-Reply-To: References: Message-ID: Hi Beno?t, Am 10.07.22 um 22:17 schrieb Benoit Minisini: > I am preparing the release of Gambas 3.17.3. > > You can download the sources at: > > https://gitlab.com/gambas/gambas/-/archive/stable/gambas-stable.tar.bz2 > > As usual, the changelog is at: > https://gambaswiki.org/edit/doc/release/3.17.3 > > Tell me if it works for you, so that I can tag the release and make the > stable ppa packages. Sorry for the delay. I have tested it and can't see any problems so far*. Thank you very much! Alles Gute Christof Thalhofer * We have no tests written for namespaces and I had not the time to write code for that. -- Dies ist keine Signatur -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From sbungay at smartsonsite.com Sun Jul 17 04:07:14 2022 From: sbungay at smartsonsite.com (sbungay) Date: Sat, 16 Jul 2022 22:07:14 -0400 Subject: [Gambas-user] File Chooser Drag and Drop Message-ID: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> Using the file chooser I want to drag one of the files from it (represented by its icon) to a text area and on dropping it have the text area load the file. Can't seem to get this to work, anyone have an example project I can examine? -- Stephen A. Bungay, Prop. Smarts On Site Managed Information Systems & Support Services 705.734.0597 From bsteers4 at gmail.com Sun Jul 17 05:16:19 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 04:16:19 +0100 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> Message-ID: On Sun, 17 Jul 2022 at 03:28, sbungay wrote: > Using the file chooser I want to drag one of the files from it > (represented by its icon) to a text area and on dropping it have the > text area load the file. Can't seem to get this to work, anyone have an > example project I can examine? > Drag is not supported in File/Dir chooser You could import the filechooser files and modify them. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From sbungay at smartsonsite.com Sun Jul 17 06:22:23 2022 From: sbungay at smartsonsite.com (Smarts On Site) Date: Sun, 17 Jul 2022 00:22:23 -0400 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> Message-ID: <1820a64a018.27a9.7b18a53a2c01c31c232c1ae1614fbb8a@smartsonsite.com> I'll work around it. Thanks for the reply. On July 16, 2022 23:18:06 Bruce Steers wrote: > > > On Sun, 17 Jul 2022 at 03:28, sbungay wrote: > Using the file chooser I want to drag one of the files from it > (represented by its icon) to a text area and on dropping it have the > text area load the file. Can't seem to get this to work, anyone have an > example project I can examine? > > Drag is not supported in File/Dir chooser > You could import the filechooser files and modify them. > > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Sun Jul 17 06:22:22 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sun, 17 Jul 2022 00:22:22 -0400 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> Message-ID: <0b2da0ef-cd06-7036-0a12-e37c9a167269@gmail.com> On 7/16/22 23:16, Bruce Steers wrote: > > > On Sun, 17 Jul 2022 at 03:28, sbungay > wrote: > > ? ?Using the file chooser I want to drag one of the files from it > (represented by its icon) to a text area and on dropping it have the > text area load the file. Can't seem to get this to work, anyone have an > example project I can examine? > > > Drag is not supported in File/Dir chooser > You could import the filechooser files and modify them. > > BruceS Well ... I can imagine how disappointing that might be. Both FileChooser and DirChooser have a Drag method and Drag, DragLeave, DragMove, and MouseDrag events leading one to believe that they do support Drag & Drop. But, there is no mention in the documentation that they do not. -- Lee From adamnt42 at gmail.com Sun Jul 17 06:28:46 2022 From: adamnt42 at gmail.com (bb) Date: Sun, 17 Jul 2022 13:58:46 +0930 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: <0b2da0ef-cd06-7036-0a12-e37c9a167269@gmail.com> References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> <0b2da0ef-cd06-7036-0a12-e37c9a167269@gmail.com> Message-ID: On Sun, 2022-07-17 at 00:22 -0400, T Lee Davidson wrote: > On 7/16/22 23:16, Bruce Steers wrote: > > > > > > On Sun, 17 Jul 2022 at 03:28, sbungay > > > wrote: > > > > ???? ? ?Using the file chooser I want to drag one of the files from > > it > > ??? (represented by its icon) to a text area and on dropping it > > have the > > ??? text area load the file. Can't seem to get this to work, anyone > > have an > > ??? example project I can examine? > > > > > > Drag is not supported in File/Dir chooser > > You could import the filechooser files and modify them. > > > > BruceS > > Well ... I can imagine how disappointing that might be. > > Both FileChooser and DirChooser have a Drag method and Drag, > DragLeave, DragMove, and MouseDrag events leading one to believe > that they do support Drag & Drop. But, there is no mention in the > documentation that they do not. > > Not only that but the DblClick event is similarly "not available". I think that these issues are related to the fact that both controls use these events internally (and consume them). IOW you can drag files between directories, but I have no idea what it uses the DblClick event for, apart from it pops up a weird message. b p.s. I thought the DblClick might have been a solution but no. From denisc at exemail.com.au Sun Jul 17 06:12:56 2022 From: denisc at exemail.com.au (Denis Crowther) Date: Sun, 17 Jul 2022 14:12:56 +1000 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> Message-ID: <6e21bdc2-5776-c5ea-9108-011b0749fade@exemail.com.au> http://gambaswiki.org/wiki/comp/gb.form/filechooser Event Drop ( ) This event is raised when a drag is dropped in the control. Can't the file be loaded here? Regards Denis On 7/17/22 13:16, Bruce Steers wrote: > Dir chooser From adamnt42 at gmail.com Sun Jul 17 06:59:26 2022 From: adamnt42 at gmail.com (bb) Date: Sun, 17 Jul 2022 14:29:26 +0930 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> <0b2da0ef-cd06-7036-0a12-e37c9a167269@gmail.com> Message-ID: <2abd0ba081ff02ba16029b902bc6c684da43eb0e.camel@gmail.com> On Sun, 2022-07-17 at 13:58 +0930, bb wrote: > On Sun, 2022-07-17 at 00:22 -0400, T Lee Davidson wrote: > > On 7/16/22 23:16, Bruce Steers wrote: > > > > > > > > > On Sun, 17 Jul 2022 at 03:28, sbungay > > > > > > > wrote: > > > > > > ???? ? ?Using the file chooser I want to drag one of the files > > > from > > > it > > > ??? (represented by its icon) to a text area and on dropping it > > > have the > > > ??? text area load the file. Can't seem to get this to work, > > > anyone > > > have an > > > ??? example project I can examine? > > > > > > > > > Drag is not supported in File/Dir chooser > > > You could import the filechooser files and modify them. > > > > > > BruceS > > > > Well ... I can imagine how disappointing that might be. > > > > Both FileChooser and DirChooser have a Drag method and Drag, > > DragLeave, DragMove, and MouseDrag events leading one to believe > > that they do support Drag & Drop. But, there is no mention in the > > documentation that they do not. > > > > > Not only that but the DblClick event is similarly "not available". > > I think that these issues are related to the fact that both controls > use these events internally (and consume them). IOW you can drag > files > between directories, but I have no idea what it uses the DblClick > event > for, apart from it pops up a weird message. > > b > > p.s. I thought the DblClick might have been a solution but no. Hmmm, it might be possible. See here http://gambaswiki.org/wiki/doc/dragndrop I haven't tried it b From bsteers4 at gmail.com Sun Jul 17 10:04:00 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 09:04:00 +0100 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> <0b2da0ef-cd06-7036-0a12-e37c9a167269@gmail.com> Message-ID: On Sun, 17 Jul 2022 at 05:29, bb wrote: > On Sun, 2022-07-17 at 00:22 -0400, T Lee Davidson wrote: > > On 7/16/22 23:16, Bruce Steers wrote: > > > > > > > > > On Sun, 17 Jul 2022 at 03:28, sbungay > > > > wrote: > > > > > > Using the file chooser I want to drag one of the files from > > > it > > > (represented by its icon) to a text area and on dropping it > > > have the > > > text area load the file. Can't seem to get this to work, anyone > > > have an > > > example project I can examine? > > > > > > > > > Drag is not supported in File/Dir chooser > > > You could import the filechooser files and modify them. > > > > > > BruceS > > > > Well ... I can imagine how disappointing that might be. > I'd say it's a bit of a drag ;) (see what i did there ;) ) > > Both FileChooser and DirChooser have a Drag method and Drag, > > DragLeave, DragMove, and MouseDrag events leading one to believe > > that they do support Drag & Drop. But, there is no mention in the > > documentation that they do not. > > > > > Not only that but the DblClick event is similarly "not available". > > I think that these issues are related to the fact that both controls > use these events internally (and consume them). IOW you can drag files > between directories, but I have no idea what it uses the DblClick event > for, apart from it pops up a weird message. > > b > > p.s. I thought the DblClick might have been a solution but no. > Yeah DblClick is missing on many controls but it's usually replaced with Activate for some reason. I guess because it is a compound control made of a bunch of other controls that all have their own DblClick and Drag methods. that's why no Drag is supported with the FileChooser because it's the FileView (or the DirView) controls inside the FileChooser that need to start the Drag method not the FileChooser itself. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 17 10:58:02 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 09:58:02 +0100 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> Message-ID: On Sun, 17 Jul 2022 at 03:28, sbungay wrote: > Using the file chooser I want to drag one of the files from it > (represented by its icon) to a text area and on dropping it have the > text area load the file. Can't seem to get this to work, anyone have an > example project I can examine? > I just did this... https://gitlab.com/bsteers4/gambas/-/commit/51330ea23b08922593741daba56789e820329ca3 Now i can turn on Dragging of file paths/names in DirChooser and FileChooser. The bad news is the Choosers are not so easy to import as they use various different class files from gb.form Also i've only supported dragging/dropping the text as text/plain. Not sure if it helps you? You can see the code needed but you'll have to figure out how to import the Choosers into your own project. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 17 11:04:33 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 10:04:33 +0100 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> Message-ID: On Sun, 17 Jul 2022 at 09:58, Bruce Steers wrote: > > > On Sun, 17 Jul 2022 at 03:28, sbungay wrote: > >> Using the file chooser I want to drag one of the files from it >> (represented by its icon) to a text area and on dropping it have the >> text area load the file. Can't seem to get this to work, anyone have an >> example project I can examine? >> > > I just did this... > > https://gitlab.com/bsteers4/gambas/-/commit/51330ea23b08922593741daba56789e820329ca3 > > Now i can turn on Dragging of file paths/names in DirChooser and > FileChooser. > > The bad news is the Choosers are not so easy to import as they use various > different class files from gb.form > Also i've only supported dragging/dropping the text as text/plain. > Not sure if it helps you? You can see the code needed but you'll have to > figure out how to import the Choosers into your own project. > Maybe Benoit could do something similar (but better coding of course ;) ) I do not trust my understanding of the Drag method and checking Drag.Pending and exactly what to do. I could need more/better handling than.. *Public Sub fvwChoose_MouseMove() If Not $bDragFiles Then Return If Mouse.Left Then If Drag.Pending Then Return fvwChoose.Drag(GetPath(), "text/plain") EndifEnd* Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 17 11:42:42 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 10:42:42 +0100 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> Message-ID: On Sun, 17 Jul 2022 at 10:04, Bruce Steers wrote: > > > On Sun, 17 Jul 2022 at 09:58, Bruce Steers wrote: > >> >> >> On Sun, 17 Jul 2022 at 03:28, sbungay wrote: >> >>> Using the file chooser I want to drag one of the files from it >>> (represented by its icon) to a text area and on dropping it have the >>> text area load the file. Can't seem to get this to work, anyone have an >>> example project I can examine? >>> >> >> I just did this... >> >> https://gitlab.com/bsteers4/gambas/-/commit/51330ea23b08922593741daba56789e820329ca3 >> >> Now i can turn on Dragging of file paths/names in DirChooser and >> FileChooser. >> >> The bad news is the Choosers are not so easy to import as they use >> various different class files from gb.form >> Also i've only supported dragging/dropping the text as text/plain. >> Not sure if it helps you? You can see the code needed but you'll have to >> figure out how to import the Choosers into your own project. >> > > Maybe Benoit could do something similar (but better coding of course ;) ) > I do not trust my understanding of the Drag method and checking > Drag.Pending and exactly what to do. > I could need more/better handling than.. > > > > > > > > *Public Sub fvwChoose_MouseMove() If Not $bDragFiles Then Return If > Mouse.Left Then If Drag.Pending Then Return > fvwChoose.Drag(GetPath(), "text/plain") EndifEnd* > > Respects > BruceS > AHA , I was wrong.. FileChooser and DirChooser already have the properties .FileView and .DirView With that you can access the internal respective views. So the attached app works okay allowing Dragging from the file part of the filchooser... *' Gambas class filePublic Sub FView_MouseMove() If Mouse.Left Then If Drag.Pending Then Return FileChooser1.FileView.Drag(FileChooser1.FileView.Path, "text/plain") EndifEndPublic Sub Form_Open() Object.Attach(FileChooser1.FileView, Me, "FView")EndPublic Sub TextBox1_Drop() TextBox1.Text = Drag.DataEnd* Wishing well BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 17 11:50:02 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 10:50:02 +0100 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> Message-ID: Apologies, Do not use Object.Attach() as it breaks the filechooser, use an Observer instead... *Private $hObs As ObserverPublic Sub FView_MouseMove() If Mouse.Left Then If Drag.Pending Then Return FileChooser1.FileView.Drag(FileChooser1.FileView.Path, "text/plain") EndifEndPublic Sub Form_Open()$hObs = New Observer(FileChooser1.FileView) As "FView"EndPublic Sub TextBox1_Drop() TextBox1.Text = Drag.DataEnd* BruceS On Sun, 17 Jul 2022 at 10:42, Bruce Steers wrote: > > On Sun, 17 Jul 2022 at 10:04, Bruce Steers wrote: > >> >> >> On Sun, 17 Jul 2022 at 09:58, Bruce Steers wrote: >> >>> >>> >>> On Sun, 17 Jul 2022 at 03:28, sbungay wrote: >>> >>>> Using the file chooser I want to drag one of the files from it >>>> (represented by its icon) to a text area and on dropping it have the >>>> text area load the file. Can't seem to get this to work, anyone have an >>>> example project I can examine? >>>> >>> >>> I just did this... >>> >>> https://gitlab.com/bsteers4/gambas/-/commit/51330ea23b08922593741daba56789e820329ca3 >>> >>> Now i can turn on Dragging of file paths/names in DirChooser and >>> FileChooser. >>> >>> The bad news is the Choosers are not so easy to import as they use >>> various different class files from gb.form >>> Also i've only supported dragging/dropping the text as text/plain. >>> Not sure if it helps you? You can see the code needed but you'll have >>> to figure out how to import the Choosers into your own project. >>> >> >> Maybe Benoit could do something similar (but better coding of course ;) ) >> I do not trust my understanding of the Drag method and checking >> Drag.Pending and exactly what to do. >> I could need more/better handling than.. >> >> >> >> >> >> >> >> *Public Sub fvwChoose_MouseMove() If Not $bDragFiles Then Return If >> Mouse.Left Then If Drag.Pending Then Return >> fvwChoose.Drag(GetPath(), "text/plain") EndifEnd* >> >> Respects >> BruceS >> > > AHA , I was wrong.. > > FileChooser and DirChooser already have the properties .FileView and > .DirView > > With that you can access the internal respective views. > > So the attached app works okay allowing Dragging from the file part of the > filchooser... > > > > > > > > > > > > > > > > > > > > > > > > *' Gambas class filePublic Sub FView_MouseMove() If Mouse.Left Then If > Drag.Pending Then Return > FileChooser1.FileView.Drag(FileChooser1.FileView.Path, "text/plain") > EndifEndPublic Sub Form_Open() Object.Attach(FileChooser1.FileView, Me, > "FView")EndPublic Sub TextBox1_Drop() TextBox1.Text = Drag.DataEnd* > > Wishing well > BruceS > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 17 12:32:06 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 11:32:06 +0100 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> Message-ID: On Sun, 17 Jul 2022 at 03:28, sbungay wrote: > Using the file chooser I want to drag one of the files from it >>>>> (represented by its icon) to a text area and on dropping it have the >>>>> text area load the file. Can't seem to get this to work, anyone have >>>>> an >>>>> example project I can examine? >>>> >>>> There seems to be another issue. For your specific task of writing the file contents into the textarea. It seems we cannot override/intercept or turn off the way a textarea pastes the file name on drop. I tried using text/uri-list as format, still just the filename is pasted not the contents. I even tried setting TextArea1.Drop = False , still it pastes filename in!? You can make a Button (or something) with Drop enabled, then drag filechooser files there and the load file into TextArea but using TextArea_Drop() does nothing at all. still only default behaviour. *Public Sub Button1_Drop()Dim s As String = Drag.DataIf Not s Then s = Drag.Paste("text/uri-list") If Exist(s) Then TextArea1.Text = File.Load(s)End* TextArea1_Drop() event does not even trigger. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 17 13:37:57 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 12:37:57 +0100 Subject: [Gambas-user] WebAudio, custom commands. Message-ID: I want to make some custom commands for my webAudio object. Mostly I want a CurrentTime property i can get or set. (I could figure out more from there) I have imported WebAudio.class into my source so can get to internal functions. I want something like the following.. WebLabel1.Text = WebForm._AddJavascript("gw.sound(" & JS(Me.Name) & ").currentTime") Or any way to run some Javascript and get the output returned? (i could work with that) I think I could figure out how to set the currentTime via javascript as it's just a command but getting return text is beyond me :( Cheers for any info BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From SoftwareDevelopment at smartsonsite.com Sun Jul 17 16:01:54 2022 From: SoftwareDevelopment at smartsonsite.com (Stephen Bungay) Date: Sun, 17 Jul 2022 10:01:54 -0400 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> Message-ID: <7cd8fc31-8200-acfc-94d9-18fa8e3ae807@smartsonsite.com> I gave up on the file chooser, sorry, it's just not up to the task. Then again GAMBAS may no longer be up to the task as even the TextArea is not working according to the rules of causality. For example, using the file manager a text file can be dropped on the text area. The file name gets pasted into the text area, the "change" event fires, but the "drop" event does NOT fire?! How does THAT work? Moreover why is it allowed to work? When something is dropped on a control and that drop effects a change then the "drop" event must fire before the "change" event. Things appear to have strayed somewhat from first principals. On 2022-07-17 06:32, Bruce Steers wrote: > On Sun, 17 Jul 2022 at 03:28, sbungay wrote: > > ?Using the file chooser I want to drag one of the > files from it > (represented by its icon) to a text area and on > dropping it have the > text area load the file. Can't seem to get this to > work, anyone have an > example project I can examine? > > > There seems to be another issue. > For your specific task of writing the file contents into the textarea. > It seems we cannot override/intercept or turn off the way a textarea > pastes the file name on drop. > I tried using text/uri-list as format, still just the filename is > pasted not the contents. > > I even tried setting TextArea1.Drop = False , still it pastes filename > in!? > You can make a Button (or something) with Drop enabled, then drag > filechooser files there and the load file into TextArea but using > TextArea_Drop() does nothing at all. still only default behaviour. > > *Public Sub Button1_Drop() > Dim s As String = Drag.Data > If Not s Then s = Drag.Paste("text/uri-list") > ?If Exist(s) Then TextArea1.Text = File.Load(s) > End* > > TextArea1_Drop() event does not even trigger. > BruceS > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From bsteers4 at gmail.com Sun Jul 17 16:39:44 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 15:39:44 +0100 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: <7cd8fc31-8200-acfc-94d9-18fa8e3ae807@smartsonsite.com> References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> <7cd8fc31-8200-acfc-94d9-18fa8e3ae807@smartsonsite.com> Message-ID: On Sun, 17 Jul 2022 at 15:27, Stephen Bungay < SoftwareDevelopment at smartsonsite.com> wrote: > I gave up on the file chooser, sorry, it's just not up to the task. Then > again GAMBAS may no longer be up to the task as even the TextArea is not > working according to the rules of causality. For example, using the file > manager a text file can be dropped on the text area. The file name gets > pasted into the text area, the "change" event fires, but the "drop" > event does NOT fire?! How does THAT work? Moreover why is it allowed to > work? When something is dropped on a control and that drop effects a > change then the "drop" event must fire before the "change" event. > > Things appear to have strayed somewhat from first principals. > It's clearly just a TextArea bug i would say. If the TextArea is readonly it does not paste at all. So the Drop event never gets triggered but it pastes in the filename causing a Change() event. And if you use qt5 not gtk the Drop is completely disabled for TextArea !! Don't give up. If this is a bug i'll bet Benoit will have a look and soon have it fixed. Clearly nobody has tried to drop things on a TextArea to discover this bug. And it's not a FileChooser drag problem, we got around that with the FileChooser.FileView property :) If you use as Label or something other than a Textarea it works okay :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 17 16:56:05 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 15:56:05 +0100 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: <7cd8fc31-8200-acfc-94d9-18fa8e3ae807@smartsonsite.com> References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> <7cd8fc31-8200-acfc-94d9-18fa8e3ae807@smartsonsite.com> Message-ID: On Sun, 17 Jul 2022 at 15:27, Stephen Bungay < SoftwareDevelopment at smartsonsite.com> wrote: > I gave up on the file chooser, sorry, it's just not up to the task. Then > again GAMBAS may no longer be up to the task as even the TextArea is not > working according to the rules of causality. For example, using the file > manager a text file can be dropped on the text area. The file name gets > pasted into the text area, the "change" event fires, but the "drop" > event does NOT fire?! How does THAT work? Moreover why is it allowed to > work? When something is dropped on a control and that drop effects a > change then the "drop" event must fire before the "change" event. > > Things appear to have strayed somewhat from first principals. > Gambas is sooooo up to the task :) I think you just need to get your head around a big difference between gambas and things like say visual basic, vb has large teams of professional coders/debuggers/testers all working for micro$oft for a tidy penny. Gambas has Benoit ?, and us ? ? Ben is awesome at finding the bugs once reported but he's a busy chap and gambas is a MASSIVE project to maintain so you may find bugs lurking in the shadows. It's cool, once reported the bugs soon go splat, and thanks for letting us know :) Wishing well BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 17 17:32:20 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 16:32:20 +0100 Subject: [Gambas-user] If Mouse.Inside(Me) Message-ID: If Mouse.Inside(Me) !! ? pwahaha ? Makes me think of South Park and poor Lemmiwinks every time ;) -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 17 21:46:16 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 20:46:16 +0100 Subject: [Gambas-user] gb.web.gui .Background alpha seems inverted. Message-ID: I'm seeing if i set alpha on a background color on something in gb.web.gui using the IDE the value is inverted. Well i don't know the actual value but 0 is 255 and 255 is 0 the wrong way round to what it shows like in the IDE. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Sun Jul 17 23:13:34 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sun, 17 Jul 2022 17:13:34 -0400 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: <7cd8fc31-8200-acfc-94d9-18fa8e3ae807@smartsonsite.com> References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> <7cd8fc31-8200-acfc-94d9-18fa8e3ae807@smartsonsite.com> Message-ID: <71b826cc-c3fc-0b79-742e-e9dec8b3e255@gmail.com> On 7/17/22 10:01, Stephen Bungay wrote: > I gave up on the file chooser, sorry, it's just not up to the task. Then again GAMBAS may no longer be up to the task as even > the TextArea is not working according to the rules of causality. For example, using the file manager a text file can be dropped > on the text area. The file name gets pasted into the text area, the "change" event fires, but the "drop" event does NOT fire?! > How does THAT work? Moreover why is it allowed to work? When something is dropped on a control and that drop effects a > change?then?the?"drop"?event?must?fire?before?the?"change"?event. > > Things?appear?to?have?strayed?somewhat?from?first?principals. Please don't give up. Take heart. Thanks to the experimenting and reporting from BruceS, I was able to get a demo working. The demo uses the TextArea Drop event. Using its Drag event also works, but it behaves a bit differently. Project attached. -- Lee P.S. If you're not familiar with what we've done to get around Gmail's stupid and heavy-handed malicious code filters, see: http://gambaswiki.org/wiki/howto/opengmailtxt -------------- next part -------------- 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 From bsteers4 at gmail.com Sun Jul 17 23:34:48 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 17 Jul 2022 22:34:48 +0100 Subject: [Gambas-user] File Chooser Drag and Drop In-Reply-To: <71b826cc-c3fc-0b79-742e-e9dec8b3e255@gmail.com> References: <8051aff2-5aee-24f1-93ee-3bbc7bcedeb2@smartsonsite.com> <7cd8fc31-8200-acfc-94d9-18fa8e3ae807@smartsonsite.com> <71b826cc-c3fc-0b79-742e-e9dec8b3e255@gmail.com> Message-ID: Nice one fella :) I found after removing the textarea (i tried some other things) then re-adding it it started working as expected with qt5. :-\ gtk's a no-go though. Respects BruceS On Sun, 17 Jul 2022 at 22:14, T Lee Davidson wrote: > On 7/17/22 10:01, Stephen Bungay wrote: > > I gave up on the file chooser, sorry, it's just not up to the task. Then > again GAMBAS may no longer be up to the task as even > > the TextArea is not working according to the rules of causality. For > example, using the file manager a text file can be dropped > > on the text area. The file name gets pasted into the text area, the > "change" event fires, but the "drop" event does NOT fire?! > > How does THAT work? Moreover why is it allowed to work? When something > is dropped on a control and that drop effects a > > change then the "drop" event must fire before the "change" event. > > > > Things appear to have strayed somewhat from first principals. > > Please don't give up. Take heart. Thanks to the experimenting and > reporting from BruceS, I was able to get a demo working. > > The demo uses the TextArea Drop event. Using its Drag event also works, > but it behaves a bit differently. > > Project attached. > > > -- > Lee > > P.S. If you're not familiar with what we've done to get around Gmail's > stupid and heavy-handed malicious code filters, see: > http://gambaswiki.org/wiki/howto/opengmailtxt > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Mon Jul 18 17:17:19 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Mon, 18 Jul 2022 21:02:19 +0545 Subject: [Gambas-user] WebAudio, custom commands. Message-ID: Hi Bruce I think you can do it in the following way: a) Add Javascript to lib.js or write separately. eg. sound: { getaudiotime: function(id, idx) { var elt = $_(id); $_(idx + ':entry').value = elt.currentTime; }, ....... ......... b) Use WebTextBox to get the value. When I click a WebButton Public Sub WebButton1_Click() WebForm._AddJavascript("gw.sound.getaudiotime(" & JS(WebAudio1.Name) & ", " & JS(WebTextBox2.Name) & ")") End The WebTextBox is populated with the required value. -- Regards Safiur Rahman -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Mon Jul 18 20:22:39 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 18 Jul 2022 20:22:39 +0200 Subject: [Gambas-user] Issue with Namespace and debug In-Reply-To: <1011570878.62325.1657921158944.JavaMail.zimbra@westwoodsvcs.com> References: <1011570878.62325.1657921158944.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <30fdce86-bcef-f6f4-ebe7-4b7d064b7435@gambas-basic.org> Le 15/07/2022 ? 23:39, Brian G a ?crit?: > When trying to use name spaces if I export to a name space different > from main namespace the debugger stops working. > will not trace into the module. > If using a namespace in a class, debugger never enters the class to debug. > > Is this normal, Am I doing something wrong? > > "Failure is the key to success; > ?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G > Do you have a simple project that reproduces the bug? -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Mon Jul 18 20:26:53 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 18 Jul 2022 20:26:53 +0200 Subject: [Gambas-user] Problem with CsvFile.Fields.Count In-Reply-To: References: Message-ID: Le 15/07/2022 ? 15:42, Safiur Rahman a ?crit?: > Hi > > I have one simple csv. When I run this > > Dim hForm As CsvFile > ?hForm = New CsvFile("csv/8.tmp.csv", ";") > ?ValueBox1 = hForm.Fields.Count > > I get the error "Null Value". Previously it worked. Is there any change? > I am using gambas 3.17.2 on Ubuntu 20.04 > > Attached a project > > -- > Regards > Safiur Rahman > > Hi, I have fixed the problem in the last commit. Now reading the 'Fields' property automatically reads the fields from the first line of the file if needed. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Mon Jul 18 21:38:55 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 18 Jul 2022 21:38:55 +0200 Subject: [Gambas-user] gb.web.gui .Background alpha seems inverted. In-Reply-To: References: Message-ID: Le 17/07/2022 ? 21:46, Bruce Steers a ?crit?: > > I'm seeing if i set alpha on a background color on something in > gb.web.gui using the IDE the value is inverted. > > Well i don't know the actual value but 0 is 255 and 255 is 0 the wrong > way round to what it shows like in the IDE. > > > Respects > BruceS > It should be fixed in the last commit. -- Beno?t Minisini. From sbungay at smartsonsite.com Mon Jul 18 21:46:18 2022 From: sbungay at smartsonsite.com (sbungay) Date: Mon, 18 Jul 2022 15:46:18 -0400 Subject: [Gambas-user] Text Area Cursor stops blinking and... Message-ID: <8e20f14d-1899-465d-0c27-b1bdc0715f18@smartsonsite.com> With the ability to drop text files onto the text area now working as expected, thank you Bruce Steers, I notice that after it has loaded a file the text cursor stops blinking. It is still there, you can click on a spot and when you type the text shows up where you clicked, ther is just no visual indicator as to where it is. Not a show-stopper for me, but it could be for someone else. -- Stephen A. Bungay From t.lee.davidson at gmail.com Mon Jul 18 22:39:56 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 18 Jul 2022 16:39:56 -0400 Subject: [Gambas-user] Text Area Cursor stops blinking and... In-Reply-To: <8e20f14d-1899-465d-0c27-b1bdc0715f18@smartsonsite.com> References: <8e20f14d-1899-465d-0c27-b1bdc0715f18@smartsonsite.com> Message-ID: On 7/18/22 15:46, sbungay wrote: > ? With the ability to drop text files onto the text area now working as expected, thank you Bruce Steers, I notice that after > it has loaded a file the text cursor stops blinking. It is still there, you can click on a spot and when you type the text shows > up where you clicked, ther is just no visual indicator as to where it is. Not a show-stopper for me, but it could be for someone > else. Hmm, this is rather weird. It behaves differently if you use the TextArea's Drag event. Try this in place of our original Drop event handler: Public Sub TextArea1_Drag() Stop Event TextArea1.Text = File.Load(Drag.Data) TextArea1.SetFocus End -- Lee From bsteers4 at gmail.com Tue Jul 19 12:01:30 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 19 Jul 2022 11:01:30 +0100 Subject: [Gambas-user] WebAudio, custom commands. In-Reply-To: References: Message-ID: On Mon, 18 Jul 2022 at 16:18, Safiur Rahman wrote: > Hi Bruce > > I think you can do it in the following way: > > a) Add Javascript to lib.js or write separately. > eg. > sound: > { > getaudiotime: function(id, idx) > { > var elt = $_(id); > $_(idx + ':entry').value = elt.currentTime; > }, > > ....... > ......... > > b) Use WebTextBox to get the value. When I click a WebButton > > Public Sub WebButton1_Click() > > WebForm._AddJavascript("gw.sound.getaudiotime(" & JS(WebAudio1.Name) & > ", " & JS(WebTextBox2.Name) & ")") > > End > > The WebTextBox is populated with the required value. > > -- > Regards > Safiur Rahmam > Thank you Safiur Can't get it to work though :( All that happens is the page goes into busy mode (window disabled with 3 circles) and freezes :( Debugging does not seem possible either, it just works or it freezes till i figure out the error. I have this added to lib.js... gettime: function(id, idx) { var elt = $_(id); $_(idx + ':entry').value = elt.currentTime; }, settime: function(id, seconds) { var elt = $_(id); elt.currentTime = seconds; }, and i call it like this.. Public Sub WebButton1_Click() WebForm1._AddJavascript("gw.sound.gettime(" & JS(WebAudio1.Name) & ", " & JS(WebTextBox1.Name) & ")") End Public Sub WebButton2_Click() WebForm1._AddJavascript("gw.sound.settime(" & JS(WebAudio1.Name) & ", 20)") End Neither work, just locks the window up :( BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Jul 19 12:02:45 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 19 Jul 2022 11:02:45 +0100 Subject: [Gambas-user] Text Area Cursor stops blinking and... In-Reply-To: <8e20f14d-1899-465d-0c27-b1bdc0715f18@smartsonsite.com> References: <8e20f14d-1899-465d-0c27-b1bdc0715f18@smartsonsite.com> Message-ID: On Mon, 18 Jul 2022 at 20:47, sbungay wrote: > With the ability to drop text files onto the text area now working as > expected, thank you Bruce Steers, > Thanks to You for finding the bug and Benoit for fixing it. I was just the middle man :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Jul 19 12:04:57 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 19 Jul 2022 12:04:57 +0200 Subject: [Gambas-user] WebAudio, custom commands. In-Reply-To: References: Message-ID: <1a4ecf51-eb2c-b0b4-effd-38d0bcde94e0@gambas-basic.org> Le 19/07/2022 ? 12:01, Bruce Steers a ?crit?: > > > On Mon, 18 Jul 2022 at 16:18, Safiur Rahman > wrote: > > Hi Bruce > > I think you can do it in the following way: > > a) Add Javascript to lib.js or write separately. > eg. > sound: > ? { > ? ? getaudiotime: function(id, idx) > ? ? { > ? ? ? var elt = $_(id); > ? ? ? $_(idx+ ':entry').value = elt.currentTime; > ? ? }, > > ? ? ....... > ? ? ......... > > ?b) Use WebTextBox to get the value. When I click a WebButton > > ?Public Sub WebButton1_Click() > > ? WebForm._AddJavascript("gw.sound.getaudiotime(" & > JS(WebAudio1.Name) & ", " & JS(WebTextBox2.Name) & ")") > > End > > The WebTextBox is populated with the required value. > > -- > Regards > Safiur Rahmam > > > Thank you Safiur > Can't get it to work though :( > All that happens is the page goes into busy mode (window disabled with 3 > circles) and freezes :( > > Debugging does not seem possible either, it just works or it freezes > till i figure out the error. > > I have this added to lib.js... > ? ? gettime: function(id, idx) > ? ? { > ? ? ? var elt = $_(id); > ? ? ? $_(idx + ':entry').value = elt.currentTime; > ? ? }, > > ? ? settime: function(id, seconds) > ? ? { > ? ? ? var elt = $_(id); > ? ? ? elt.currentTime = seconds; > ? ? }, > > and i call it like this.. > > Public Sub WebButton1_Click() > > WebForm1._AddJavascript("gw.sound.gettime(" & JS(WebAudio1.Name) & ", " > & JS(WebTextBox1.Name) & ")") > > End > > Public Sub WebButton2_Click() > > WebForm1._AddJavascript("gw.sound.settime(" & JS(WebAudio1.Name) & ", 20)") > > End > > Neither work, just locks the window up :( > > BruceS > Usually a javascript syntax error somewhere... Look in the browser debugger console. -- Beno?t Minisini. From bsteers4 at gmail.com Tue Jul 19 12:11:40 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 19 Jul 2022 11:11:40 +0100 Subject: [Gambas-user] Text Area Cursor stops blinking and... In-Reply-To: <8e20f14d-1899-465d-0c27-b1bdc0715f18@smartsonsite.com> References: <8e20f14d-1899-465d-0c27-b1bdc0715f18@smartsonsite.com> Message-ID: On Mon, 18 Jul 2022 at 20:47, sbungay wrote: > With the ability to drop text files onto the text area now working as > expected, thank you Bruce Steers, I notice that after it has loaded a > file the text cursor stops blinking. It is still there, you can click on > a spot and when you type the text shows up where you clicked, ther is > just no visual indicator as to where it is. Not a show-stopper for me, > but it could be for someone else. > Now Ben has fixed gtk textarea drop https://gitlab.com/gambas/gambas/-/commit/53b7a0682c9b8ddb8b5e26ef9748b7b9f1c91027 (Thank you Benoit :) ) you'll find The cursor vanishing does not happen with GTK only QT. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Jul 19 12:39:07 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 19 Jul 2022 11:39:07 +0100 Subject: [Gambas-user] WebAudio, custom commands. In-Reply-To: <1a4ecf51-eb2c-b0b4-effd-38d0bcde94e0@gambas-basic.org> References: <1a4ecf51-eb2c-b0b4-effd-38d0bcde94e0@gambas-basic.org> Message-ID: > Thank you Safiur > > Can't get it to work though :( > > All that happens is the page goes into busy mode (window disabled with 3 > > circles) and freezes :( > > > > Debugging does not seem possible either, it just works or it freezes > > till i figure out the error. > > > > I have this added to lib.js... > > gettime: function(id, idx) > > { > > var elt = $_(id); > > $_(idx + ':entry').value = elt.currentTime; > > }, > > > > settime: function(id, seconds) > > { > > var elt = $_(id); > > elt.currentTime = seconds; > > }, > > > > and i call it like this.. > > > > Public Sub WebButton1_Click() > > > > WebForm1._AddJavascript("gw.sound.gettime(" & JS(WebAudio1.Name) & ", " > > & JS(WebTextBox1.Name) & ")") > > > > End > > > > Public Sub WebButton2_Click() > > > > WebForm1._AddJavascript("gw.sound.settime(" & JS(WebAudio1.Name) & ", > 20)") > > > > End > > > > Neither work, just locks the window up :( > > > > BruceS > > > > Usually a javascript syntax error somewhere... Look in the browser > debugger console. > According to firefox debugger console the additions i put in lib.js have not been added and are not there in the lib:1.0.1.js file? Cheers Ben :) -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Jul 19 14:22:50 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 19 Jul 2022 13:22:50 +0100 Subject: [Gambas-user] Text Area Cursor stops blinking and... In-Reply-To: References: <8e20f14d-1899-465d-0c27-b1bdc0715f18@smartsonsite.com> Message-ID: On Mon, 18 Jul 2022 at 21:40, T Lee Davidson wrote: > On 7/18/22 15:46, sbungay wrote: > > With the ability to drop text files onto the text area now working as > expected, thank you Bruce Steers, I notice that after > > it has loaded a file the text cursor stops blinking. It is still there, > you can click on a spot and when you type the text shows > > up where you clicked, ther is just no visual indicator as to where it > is. Not a show-stopper for me, but it could be for someone > > else. > > Hmm, this is rather weird. It behaves differently if you use the > TextArea's Drag event. Try this in place of our original Drop > event handler: > > Public Sub TextArea1_Drag() > Stop Event > TextArea1.Text = File.Load(Drag.Data) > TextArea1.SetFocus > End > that can't be right though, drag fires on enter. It is a weird glitch. I noticed when trying to manually re-set the cursor image that the cursor is actually still there at EOF Even though the text position where you write changes where you click and types there the cursor image remains at EOF, BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Jul 19 16:26:11 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 19 Jul 2022 15:26:11 +0100 Subject: [Gambas-user] WebAudio, custom commands. In-Reply-To: References: <1a4ecf51-eb2c-b0b4-effd-38d0bcde94e0@gambas-basic.org> Message-ID: On Tue, 19 Jul 2022 at 11:39, Bruce Steers wrote: > > Thank you Safiur > >> > Can't get it to work though :( >> > All that happens is the page goes into busy mode (window disabled with >> 3 >> > circles) and freezes :( >> > >> > Debugging does not seem possible either, it just works or it freezes >> > till i figure out the error. >> > >> > I have this added to lib.js... >> > gettime: function(id, idx) >> > { >> > var elt = $_(id); >> > $_(idx + ':entry').value = elt.currentTime; >> > }, >> > >> > settime: function(id, seconds) >> > { >> > var elt = $_(id); >> > elt.currentTime = seconds; >> > }, >> > >> > and i call it like this.. >> > >> > Public Sub WebButton1_Click() >> > >> > WebForm1._AddJavascript("gw.sound.gettime(" & JS(WebAudio1.Name) & ", " >> > & JS(WebTextBox1.Name) & ")") >> > >> > End >> > >> > Public Sub WebButton2_Click() >> > >> > WebForm1._AddJavascript("gw.sound.settime(" & JS(WebAudio1.Name) & ", >> 20)") >> > >> > End >> > >> > Neither work, just locks the window up :( >> > >> > BruceS >> > >> >> Usually a javascript syntax error somewhere... Look in the browser >> debugger console. >> > > According to firefox debugger console the additions i put in lib.js have > not been added and are not there in the lib:1.0.1.js file? > > Cheers Ben :) > I have now tried removing the .gambas dir and the exe and all other stuff then recompiled and still the lib.js file in the browser is the same and not the modified one :-\ i have replaced the cgi in my localhost folder too. (just in case that one was being read) I have tried internal browser and firefox and chromium that was not even previously installed , still the lib.js file in the project differs to the one loaded in the browsers. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From sbungay at smartsonsite.com Tue Jul 19 16:34:21 2022 From: sbungay at smartsonsite.com (Stephen Bungay) Date: Tue, 19 Jul 2022 10:34:21 -0400 Subject: [Gambas-user] Text Area Cursor stops blinking and... In-Reply-To: References: <8e20f14d-1899-465d-0c27-b1bdc0715f18@smartsonsite.com> Message-ID: <18216e19dc8.284d.7b18a53a2c01c31c232c1ae1614fbb8a@smartsonsite.com> Yes- but I have discovered that if you initiate a drag from the TextArea to another control, the cursor in the text area begins working again. On July 19, 2022 08:25:04 Bruce Steers wrote: > > > On Mon, 18 Jul 2022 at 21:40, T Lee Davidson wrote: > On 7/18/22 15:46, sbungay wrote: >> With the ability to drop text files onto the text area now working as >> expected, thank you Bruce Steers, I notice that after >> it has loaded a file the text cursor stops blinking. It is still there, you >> can click on a spot and when you type the text shows >> up where you clicked, ther is just no visual indicator as to where it is. >> Not a show-stopper for me, but it could be for someone >> else. > > Hmm, this is rather weird. It behaves differently if you use the TextArea's > Drag event. Try this in place of our original Drop > event handler: > > Public Sub TextArea1_Drag() > Stop Event > TextArea1.Text = File.Load(Drag.Data) > TextArea1.SetFocus > End > > that can't be right though, drag fires on enter. > > It is a weird glitch. > > I noticed when trying to manually re-set the cursor image that the cursor > is actually still there at EOF > Even though the text position where you write changes where you click and > types there the cursor image remains at EOF, > > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Tue Jul 19 20:08:44 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Tue, 19 Jul 2022 23:53:44 +0545 Subject: [Gambas-user] WebAudio, custom commands. In-Reply-To: References: Message-ID: Hi gettime is used elsewhere. So use some other function name On Mon, 18 Jul 2022, 21:02 Safiur Rahman, wrote: > Hi Bruce > > I think you can do it in the following way: > > a) Add Javascript to lib.js or write separately. > eg. > sound: > { > getaudiotime: function(id, idx) > { > var elt = $_(id); > $_(idx + ':entry').value = elt.currentTime; > }, > > ....... > ......... > > b) Use WebTextBox to get the value. When I click a WebButton > > Public Sub WebButton1_Click() > > WebForm._AddJavascript("gw.sound.getaudiotime(" & JS(WebAudio1.Name) & > ", " & JS(WebTextBox2.Name) & ")") > > End > > The WebTextBox is populated with the required value. > > -- > Regards > Safiur Rahman > -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Tue Jul 19 20:29:57 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Wed, 20 Jul 2022 00:14:57 +0545 Subject: [Gambas-user] WebAudio, custom commands. In-Reply-To: References: Message-ID: Hi Bruce Attached a project to demonstrate. Just rename audio.txt to audio.js present in js foldwer On Tue, Jul 19, 2022 at 11:53 PM Safiur Rahman wrote: > Hi > > gettime is used elsewhere. So use some other function name > > On Mon, 18 Jul 2022, 21:02 Safiur Rahman, wrote: > >> Hi Bruce >> >> I think you can do it in the following way: >> >> a) Add Javascript to lib.js or write separately. >> eg. >> sound: >> { >> getaudiotime: function(id, idx) >> { >> var elt = $_(id); >> $_(idx + ':entry').value = elt.currentTime; >> }, >> >> ....... >> ......... >> >> b) Use WebTextBox to get the value. When I click a WebButton >> >> Public Sub WebButton1_Click() >> >> WebForm._AddJavascript("gw.sound.getaudiotime(" & JS(WebAudio1.Name) & >> ", " & JS(WebTextBox2.Name) & ")") >> >> End >> >> The WebTextBox is populated with the required value. >> >> -- >> Regards >> Safiur Rahman >> > -- Regards Safiur Rahman -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: webaudio.zip Type: application/zip Size: 89960 bytes Desc: not available URL: From bsteers4 at gmail.com Wed Jul 20 11:42:25 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 20 Jul 2022 10:42:25 +0100 Subject: [Gambas-user] WebAudio, custom commands. In-Reply-To: References: Message-ID: Well that was really confusing. Ironically i had already made similar modifications to your suggestions but still it did not work. It was this line... $_(idx + ':entry').value = elt.currentTime; what was confusing was it looked identical to the line you sent but did not work. I found there was an invisible character after the x of idx for some strange reason. after deleting it now it all works as expected. Many thanks for your help :) BruceS On Tue, 19 Jul 2022 at 19:31, Safiur Rahman wrote: > Hi Bruce > > Attached a project to demonstrate. Just rename audio.txt to audio.js > present in js foldwer > > > On Tue, Jul 19, 2022 at 11:53 PM Safiur Rahman wrote: > >> Hi >> >> gettime is used elsewhere. So use some other function name >> >> On Mon, 18 Jul 2022, 21:02 Safiur Rahman, wrote: >> >>> Hi Bruce >>> >>> I think you can do it in the following way: >>> >>> a) Add Javascript to lib.js or write separately. >>> eg. >>> sound: >>> { >>> getaudiotime: function(id, idx) >>> { >>> var elt = $_(id); >>> $_(idx + ':entry').value = elt.currentTime; >>> }, >>> >>> ....... >>> ......... >>> >>> b) Use WebTextBox to get the value. When I click a WebButton >>> >>> Public Sub WebButton1_Click() >>> >>> WebForm._AddJavascript("gw.sound.getaudiotime(" & JS(WebAudio1.Name) & >>> ", " & JS(WebTextBox2.Name) & ")") >>> >>> End >>> >>> The WebTextBox is populated with the required value. >>> >>> -- >>> Regards >>> Safiur Rahman >>> >> > > -- > Regards > Safiur Rahman > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Jul 20 11:52:23 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 20 Jul 2022 10:52:23 +0100 Subject: [Gambas-user] WebAudio, custom commands. In-Reply-To: References: Message-ID: On Wed, 20 Jul 2022 at 10:42, Bruce Steers wrote: > Well that was really confusing. > Ironically i had already made similar modifications to your suggestions > but still it did not work. > > It was this line... > > $_(idx + ':entry').value = elt.currentTime; > > what was confusing was it looked identical to the line you sent but did > not work. > > I found there was an invisible character after the x of idx for some > strange reason. > I've attached a txt file with the 2 lines, one with the invisible char and the other without just for anyone's curiosity. I find when moving the cursor past the x in idx on the bad line it pauses for one char on the good line it moves over as expected. No idea what char it is, if i try to Print Quote(sBadText) the bad char just shows as another whitespace Thanks again BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- Invisible char after x... $_(idx? + ':entry').value = elt.currentTime; no invisible char... $_(idx + ':entry').value = elt.currentTime; From bsteers4 at gmail.com Wed Jul 20 12:28:36 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 20 Jul 2022 11:28:36 +0100 Subject: [Gambas-user] gb.web.gui control access info Message-ID: Is there a way to find how to properly access things with js in gb.web.gui For example to get a WebTextBox text I must use JS(WebTextBox1.Name) & ":entry" it's the ":entry" part i wish to know about. and how to discover what i need to use and what's available for all other controls too. Is there a command/property for it? could there be? any docs ? when i start understanding what I'm doing i'll start adding to the wiki. Many thanks BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Wed Jul 20 14:20:02 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 20 Jul 2022 08:20:02 -0400 Subject: [Gambas-user] WebAudio, custom commands. In-Reply-To: References: Message-ID: On 7/20/22 05:52, Bruce Steers wrote: > > > On Wed, 20 Jul 2022 at 10:42, Bruce Steers > wrote: > > Well that was really confusing. > Ironically i had already made similar modifications to your suggestions but still it did not work. > > It was this line... > > $_(idx + ':entry').value = elt.currentTime; > > what was confusing was it looked identical to the line you sent but did not work. > > I found there was an invisible character after the x of idx for some strange reason. > > > I've attached a txt file with the 2 lines, one with the invisible char and the other without just for anyone's curiosity. > I find when moving the cursor past the x in idx on the bad line it pauses for one char on the good line it moves over as expected. > No idea what char it is, if i try to Print Quote(sBadText) the bad char just shows as another whitespace > > Thanks again > BruceS Interesting. My character selection tool says it's a ZERO WIDTH SPACE (Character: Non-printable U+200B); as opposed to the normal SPACE (Character: U+0020). -- Lee From t.lee.davidson at gmail.com Wed Jul 20 14:25:13 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 20 Jul 2022 08:25:13 -0400 Subject: [Gambas-user] gb.web.gui control access info In-Reply-To: References: Message-ID: <982a579c-c01a-e110-0155-a486ad7ebee1@gmail.com> On 7/20/22 06:28, Bruce Steers wrote: > Is there a way to find how to properly access things with js in gb.web.gui > > For example to get a WebTextBox text I must use > JS(WebTextBox1.Name) & ":entry" > > it's the ":entry" part i wish to know about. > and how to discover what i need to use and what's available for all other controls too. > Is there a command/property for it?? could there be? > any docs ?? when i start understanding what I'm doing i'll start adding to the wiki. > > Many thanks > BruceS From where are you getting the JS() function? I don't find it on the Wiki. -- Lee From bsteers4 at gmail.com Wed Jul 20 14:38:34 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 20 Jul 2022 13:38:34 +0100 Subject: [Gambas-user] gb.web.gui control access info In-Reply-To: <982a579c-c01a-e110-0155-a486ad7ebee1@gmail.com> References: <982a579c-c01a-e110-0155-a486ad7ebee1@gmail.com> Message-ID: gb.util.web http://gambaswiki.org/wiki/comp/gb.util.web/js On Wed, 20 Jul 2022 at 13:26, T Lee Davidson wrote: > On 7/20/22 06:28, Bruce Steers wrote: > > Is there a way to find how to properly access things with js in > gb.web.gui > > > > For example to get a WebTextBox text I must use > > JS(WebTextBox1.Name) & ":entry" > > > > it's the ":entry" part i wish to know about. > > and how to discover what i need to use and what's available for all > other controls too. > > Is there a command/property for it? could there be? > > any docs ? when i start understanding what I'm doing i'll start adding > to the wiki. > > > > Many thanks > > BruceS > > From where are you getting the JS() function? I don't find it on the Wiki. > > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Jul 20 15:31:30 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 20 Jul 2022 14:31:30 +0100 Subject: [Gambas-user] gb.web internal debug browser does not exit In-Reply-To: <26d390e7-1bb3-89d3-e602-a4d4678660d3@gambas-basic.org> References: <26d390e7-1bb3-89d3-e602-a4d4678660d3@gambas-basic.org> Message-ID: On Thu, 14 Jul 2022 at 09:53, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 14/07/2022 ? 10:49, Bruce Steers a ?crit : > > Whenever i test run/debug my gb.web or gb.web.form apps when i close the > > internal server window the program does not exit. I have to press the > > stop button. > > > > Works okay if i use external browser. > > > > Is that just me or anyone else get that problem? > > > > BruceS > > > > This window is a window of the IDE, so closing it just hides it, > contrary to external browsers. > > Maybe I should make it non persistent then? > I think it's better to not be persistent. I tried it on my gambas and i think it is better. Mostly because i am making a page with a WebAudio and when the debug browser window is persistent and i close it the audio continues playing, if i want to stop the audio i have to run the debugger again and it stops on the new load. when it's not persistent the audio stops on closing. (and i guess so would any other background processes still running) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Wed Jul 20 17:57:46 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Wed, 20 Jul 2022 21:42:46 +0545 Subject: [Gambas-user] Copying large string from javascript procedure Message-ID: Hi Is there a way to copy large string from javascript function (in gb.web.gui) so that it can be used elsewhere. Currently only few controls (eg. WebTextBox) can be filled from javascript procedure. However, WebTextBox is not able to hold large data (eg. from image). Case:1 (works fine) Public Sub WebButton5_Click() WebForm._AddJavascript("var xdata = 'abcdef'") WebForm._AddJavascript("$_(" & JS(WebTextBox1.Name & ":entry") & ").value = xdata") WebForm._AddJavascript("gw.update(" & JS(WebTextBox1.Name) & ", 'text', xdata);") End -> string shown in WebTextBox Public Sub WebButton4_Click() WebHtml1.Html = WebTextBox1.Text End -> "abcdef" is displayed in WebHtml Case:2 (doesn't work fine) Public Sub _new() Me.AddJavascriptFile("js/sketchpad.js") ''https://github.com/tsand/responsive-sketchpad End Public Sub WebContainer1_Render() WebForm._AddJavascript("var pad = new Sketchpad($_(" & JS(WebContainer1.Name) & "), { line: {color: '#f44335', size: 1}});") End -> Now I draw on the screen Public Sub WebButton1_Click() WebForm._AddJavascript("var xdata = pad.canvas.toDataURL(\"image/png\")") WebForm._AddJavascript("$_(" & JS(WebTextBox1.Name & ":entry") & ").value = xdata") WebForm._AddJavascript("gw.update(" & JS(WebTextBox1.Name) & ", 'text', xdata);") End -> Image data string shown in WebTextBox Public Sub WebButton4_Click() WebHtml1.Html = WebTextBox1.Text End -> image data string is not shown in WebHtml Question: Is there any way to show the image data string to any WebControl which can be copied and used elsewhere in other procedures? (Attached a project to reproduce the problem. Please rename js/sketchpad.txt to js/sketchpad.js) -- Regards Safiur Rahman From isafiur at gmail.com Wed Jul 20 18:04:06 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Wed, 20 Jul 2022 21:49:06 +0545 Subject: [Gambas-user] Copying large string from javascript procedure In-Reply-To: References: Message-ID: The project is attached here On Wed, Jul 20, 2022 at 9:42 PM Safiur Rahman wrote: > Hi > > Is there a way to copy large string from javascript function (in > gb.web.gui) so that it can be used elsewhere. > > Currently only few controls (eg. WebTextBox) can be filled from > javascript procedure. However, WebTextBox is not able to hold large > data (eg. from image). > > Case:1 (works fine) > > Public Sub WebButton5_Click() > > WebForm._AddJavascript("var xdata = 'abcdef'") > WebForm._AddJavascript("$_(" & JS(WebTextBox1.Name & ":entry") & > ").value = xdata") > WebForm._AddJavascript("gw.update(" & JS(WebTextBox1.Name) & ", > 'text', xdata);") > > End > -> string shown in WebTextBox > > > Public Sub WebButton4_Click() > > WebHtml1.Html = WebTextBox1.Text > > End > -> "abcdef" is displayed in WebHtml > > > > Case:2 (doesn't work fine) > > Public Sub _new() > > Me.AddJavascriptFile("js/sketchpad.js") > ''https://github.com/tsand/responsive-sketchpad > > End > > Public Sub WebContainer1_Render() > > WebForm._AddJavascript("var pad = new Sketchpad($_(" & > JS(WebContainer1.Name) & "), { line: {color: '#f44335', size: 1}});") > > End > > > -> Now I draw on the screen > > > Public Sub WebButton1_Click() > > WebForm._AddJavascript("var xdata = pad.canvas.toDataURL(\"image/png\")") > WebForm._AddJavascript("$_(" & JS(WebTextBox1.Name & ":entry") & > ").value = xdata") > WebForm._AddJavascript("gw.update(" & JS(WebTextBox1.Name) & ", > 'text', xdata);") > > End > -> Image data string shown in WebTextBox > > > Public Sub WebButton4_Click() > > WebHtml1.Html = WebTextBox1.Text > > End > -> image data string is not shown in WebHtml > > Question: Is there any way to show the image data string to any > WebControl which can be copied and used elsewhere in other procedures? > > (Attached a project to reproduce the problem. Please rename > js/sketchpad.txt to js/sketchpad.js) > > -- > Regards > Safiur Rahman > -- Regards Safiur Rahman -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: webdata.zip Type: application/zip Size: 18555 bytes Desc: not available URL: From benoit.minisini at gambas-basic.org Wed Jul 20 19:36:30 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 20 Jul 2022 19:36:30 +0200 Subject: [Gambas-user] gb.web.gui control access info In-Reply-To: References: Message-ID: <89fcfdaa-f9a9-bbd4-a841-73d0361bfc6e@gambas-basic.org> Le 20/07/2022 ? 12:28, Bruce Steers a ?crit?: > Is there a way to find how to properly access things with js in gb.web.gui > > For example to get a WebTextBox text I must use > JS(WebTextBox1.Name) & ":entry" > > it's the ":entry" part i wish to know about. > and how to discover what i need to use and what's available for all > other controls too. > Is there a command/property for it?? could there be? > any docs ?? when i start understanding what I'm doing i'll start adding > to the wiki. > > Many thanks > BruceS > This was not supposed to be accessed by the user, this is why it is not documented. The 'lib.js' interface may change at any moment. -- Beno?t Minisini. From bsteers4 at gmail.com Wed Jul 20 20:24:05 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 20 Jul 2022 19:24:05 +0100 Subject: [Gambas-user] gb.web.gui control access info In-Reply-To: <89fcfdaa-f9a9-bbd4-a841-73d0361bfc6e@gambas-basic.org> References: <89fcfdaa-f9a9-bbd4-a841-73d0361bfc6e@gambas-basic.org> Message-ID: On Wed, 20 Jul 2022 at 18:37, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 20/07/2022 ? 12:28, Bruce Steers a ?crit : > > Is there a way to find how to properly access things with js in > gb.web.gui > > > > For example to get a WebTextBox text I must use > > JS(WebTextBox1.Name) & ":entry" > > > > it's the ":entry" part i wish to know about. > > and how to discover what i need to use and what's available for all > > other controls too. > > Is there a command/property for it? could there be? > > any docs ? when i start understanding what I'm doing i'll start adding > > to the wiki. > > > > Many thanks > > BruceS > > > > This was not supposed to be accessed by the user, this is why it is not > documented. The 'lib.js' interface may change at any moment. > Ah i see.Okay, I'll stick with the basics for now then. I found it easy enough to load the gb.web.gui into gambas and see how the name fields are set in all the control classes. Cheers Ben BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Wed Jul 20 22:02:14 2022 From: brian at westwoodsvcs.com (Brian G) Date: Wed, 20 Jul 2022 13:02:14 -0700 (PDT) Subject: [Gambas-user] Issue with Namespace and debug In-Reply-To: <30fdce86-bcef-f6f4-ebe7-4b7d064b7435@gambas-basic.org> References: <1011570878.62325.1657921158944.JavaMail.zimbra@westwoodsvcs.com> <30fdce86-bcef-f6f4-ebe7-4b7d064b7435@gambas-basic.org> Message-ID: <103780352.63610.1658347334483.JavaMail.zimbra@westwoodsvcs.com> ----- On Jul 18, 2022, at 6:22 PM, Benoit Minisini benoit.minisini at gambas-basic.org wrote: > Le 15/07/2022 ? 23:39, Brian G a ?crit?: >> When trying to use name spaces if I export to a name space different >> from main namespace the debugger stops working. >> will not trace into the module. >> If using a namespace in a class, debugger never enters the class to debug. >> >> Is this normal, Am I doing something wrong? >> >> "Failure is the key to success; >> ?each mistake teaches us something" ?.. Morihei Ueshiba >> Brian G >> > > Do you have a simple project that reproduces the bug? > > -- > Beno?t Minisini. > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Here is a sample using name space, maybe I did not assign correctly. But breakpoints do not work at all in this example. I am using the latest daily build for this test. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: namespace-0.0.1.tar.gz.gmail.txt URL: From bsteers4 at gmail.com Thu Jul 21 00:01:40 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 20 Jul 2022 23:01:40 +0100 Subject: [Gambas-user] Copying large string from javascript procedure In-Reply-To: References: Message-ID: On Wed, 20 Jul 2022 at 17:05, Safiur Rahman wrote: > The project is attached here > > On Wed, Jul 20, 2022 at 9:42 PM Safiur Rahman wrote: > >> Hi >> >> Is there a way to copy large string from javascript function (in >> gb.web.gui) so that it can be used elsewhere. >> >> Currently only few controls (eg. WebTextBox) can be filled from >> javascript procedure. However, WebTextBox is not able to hold large >> data (eg. from image). >> >> Case:1 (works fine) >> >> Public Sub WebButton5_Click() >> >> WebForm._AddJavascript("var xdata = 'abcdef'") >> WebForm._AddJavascript("$_(" & JS(WebTextBox1.Name & ":entry") & >> ").value = xdata") >> WebForm._AddJavascript("gw.update(" & JS(WebTextBox1.Name) & ", >> 'text', xdata);") >> >> End >> -> string shown in WebTextBox >> >> >> Public Sub WebButton4_Click() >> >> WebHtml1.Html = WebTextBox1.Text >> >> End >> -> "abcdef" is displayed in WebHtml >> >> >> >> Case:2 (doesn't work fine) >> >> Public Sub _new() >> >> Me.AddJavascriptFile("js/sketchpad.js") >> ''https://github.com/tsand/responsive-sketchpad >> >> End >> >> Public Sub WebContainer1_Render() >> >> WebForm._AddJavascript("var pad = new Sketchpad($_(" & >> JS(WebContainer1.Name) & "), { line: {color: '#f44335', size: 1}});") >> >> End >> >> >> -> Now I draw on the screen >> >> >> Public Sub WebButton1_Click() >> >> WebForm._AddJavascript("var xdata = >> pad.canvas.toDataURL(\"image/png\")") >> WebForm._AddJavascript("$_(" & JS(WebTextBox1.Name & ":entry") & >> ").value = xdata") >> WebForm._AddJavascript("gw.update(" & JS(WebTextBox1.Name) & ", >> 'text', xdata);") >> >> End >> -> Image data string shown in WebTextBox >> >> >> Public Sub WebButton4_Click() >> >> WebHtml1.Html = WebTextBox1.Text >> >> End >> -> image data string is not shown in WebHtml >> >> Question: Is there any way to show the image data string to any >> WebControl which can be copied and used elsewhere in other procedures? >> >> (Attached a project to reproduce the problem. Please rename >> js/sketchpad.txt to js/sketchpad.js) >> >> -- >> Regards >> Safiur Rahman >> > > I'm new to GB.web but I'm thinking it's going to be limited with communication in some ways. So some workarounds will need figuring out My initial thoughts are going to need to use timers/webtimers a lot to initiate things one side then let event handlers finish or page refresh/etc before moving on. And possibly a better solution to many things could be to save a file on the server and then read it back rather than try to use the web controls? Not yet looked into cookies but maybe another possible route? Sorry I can't help more. (Or help at all yet) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Jul 21 12:10:48 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 21 Jul 2022 11:10:48 +0100 Subject: [Gambas-user] Filling a WebTable (need help) Message-ID: Can't get my head around a WebTable. Don't get why there's plenty of Column related things but no Row related things?? And how to initiate/fill it is really not clear. Why oh why wasn't the api made to emulate GridView ? never mind. So if i have a GridView i would do this... ' set it up... GridView1.Columns.Count = 2 GridView1.Column[0].Text = "Head 1" GridView1.Column[2].Text = "Head 2" ' fill it.. GridView1.Rows.Count += 1 GridView1[0,0].Text = "1st field" GridView1[0,1].Text = "2nd field" GridView1.Rows.Count += 1 GridView1[1,0].Text = "1st field" GridView1[1,1].Text = "2nd field" Can somebody please show me how to do the same as that but for a WebTable Many thanks BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Jul 21 12:33:07 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 21 Jul 2022 12:33:07 +0200 Subject: [Gambas-user] Filling a WebTable (need help) In-Reply-To: References: Message-ID: Le 21/07/2022 ? 12:10, Bruce Steers a ?crit?: > Can't get my head around a WebTable. > Don't get why there's plenty of Column related things but no Row related > things?? > And how to initiate/fill it is really not clear. > > Why oh why wasn't the api made to emulate GridView ? > never mind. Maybe this is the reason why the control is named "WebTable" and not "WebGridView"? You must define the number of rows ('Count' property) and fill the control through the 'Data' event. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Thu Jul 21 13:37:05 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 21 Jul 2022 12:37:05 +0100 Subject: [Gambas-user] Filling a WebTable (need help) In-Reply-To: References: Message-ID: On Thu, 21 Jul 2022 at 11:34, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 21/07/2022 ? 12:10, Bruce Steers a ?crit : > > Can't get my head around a WebTable. > > Don't get why there's plenty of Column related things but no Row related > > things?? > > And how to initiate/fill it is really not clear. > > > > Why oh why wasn't the api made to emulate GridView ? > > never mind. > > Maybe this is the reason why the control is named "WebTable" and not > "WebGridView"? > > You must define the number of rows ('Count' property) and fill the > control through the 'Data' event. > > Regards, > Thank you Benoit. I'll get some info on the wiki once i get my head around it. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From hans at gambas-buch.de Thu Jul 21 18:05:20 2022 From: hans at gambas-buch.de (Hans Lehmann) Date: Thu, 21 Jul 2022 18:05:20 +0200 Subject: [Gambas-user] Timer for the class Webpage Message-ID: <6bec26a3-d46e-b843-51e0-3097c3bea4d1@gambas-buch.de> Hello. We are currently developing websites based on the Webpage (gb.web) class. The (template) website consists of 5 sections: Head, Header, Navigation, Content and Footer. The first three sections and the footer are the same for all created web pages. Depending on the navigation, suitable content (type webpage) is included in the content section: ? <% Select Case Request.Query ??????? Case "Environment" %> ?????? <> ???? <% Case "DBReport" %> ?????? <> ???? <% Case "Multimedia" %> ?????? <> ???? <% Case "Formular" %> ?????? <> ???? <% Case "Impressum" %> ?????? <> ???? <% Default %> ?????? <> ? <% End Select %> This now works excellently, also after support from Lee. Here is an example that describes the task to be solved, which is a problem for us: The content of a web page to be included, in which a database report is displayed, consists of only one line: <%InsertDBTable()%>. The procedure 'InsertDBTable()' in the class IncDBReport.class queries an (SQLite) database table, prepares the data for the report and generates an HTML table with the selected data, which is displayed in the web browser. The data in the DB table changes constantly. A solution is sought for the task of changing, updating the table in the web page at a fixed interval. Since there is no timer for web applications based on the class Webpage (gb.web), we are grateful for any advice on how to realise and use such a timer. To put it a bit bluntly: without a timer, the class Webpage is nothing half and nothing whole. With kind regards Hans From benoit.minisini at gambas-basic.org Thu Jul 21 19:12:05 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 21 Jul 2022 19:12:05 +0200 Subject: [Gambas-user] Release of Gambas 3.17.3 In-Reply-To: References: Message-ID: Le 10/07/2022 ? 22:17, Benoit Minisini a ?crit?: > Hi, > > I am preparing the release of Gambas 3.17.3. > > You can download the sources at: > > https://gitlab.com/gambas/gambas/-/archive/stable/gambas-stable.tar.bz2 > > As usual, the changelog is at: > https://gambaswiki.org/edit/doc/release/3.17.3 > > Tell me if it works for you, so that I can tag the release and make the > stable ppa packages. > > Regards, > Hi, The 3.17.3 release is now public, and Ubuntu binary packages are available on the Gambas stable PPA. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Thu Jul 21 20:09:42 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 21 Jul 2022 19:09:42 +0100 Subject: [Gambas-user] Timer for the class Webpage In-Reply-To: <6bec26a3-d46e-b843-51e0-3097c3bea4d1@gambas-buch.de> References: <6bec26a3-d46e-b843-51e0-3097c3bea4d1@gambas-buch.de> Message-ID: Have you checked out the source code for the WebTimer in gb.web.gui ? https://gitlab.com/gambas/gambas/-/blob/master/comp/src/gb.web.gui/.src/WebTimer.class BruceS On Thu, 21 Jul 2022 at 17:06, Hans Lehmann wrote: > Hello. > > We are currently developing websites based on the Webpage (gb.web) > class. The (template) website consists of 5 sections: Head, Header, > Navigation, Content and Footer. The first three sections and the footer > are the same for all created web pages. Depending on the navigation, > suitable content (type webpage) is included in the content section: > > > <% Select Case Request.Query > Case "Environment" %> > <> > <% Case "DBReport" %> > <> > <% Case "Multimedia" %> > <> > <% Case "Formular" %> > <> > <% Case "Impressum" %> > <> > <% Default %> > <> > <% End Select %> > > > This now works excellently, also after support from Lee. > > Here is an example that describes the task to be solved, which is a > problem for us: > > The content of a web page to be included, in which a database report is > displayed, consists of only one line: > > <%InsertDBTable()%>. > > The procedure 'InsertDBTable()' in the class IncDBReport.class queries > an (SQLite) database table, prepares the data for the report and > generates an HTML table with the selected data, which is displayed in > the web browser. > > The data in the DB table changes constantly. > > A solution is sought for the task of changing, updating the table in the > web page at a fixed interval. Since there is no timer for web > applications based on the class Webpage (gb.web), we are grateful for > any advice on how to realise and use such a timer. To put it a bit > bluntly: without a timer, the class Webpage is nothing half and nothing > whole. > > With kind regards > > Hans > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Jul 21 21:00:46 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 21 Jul 2022 21:00:46 +0200 Subject: [Gambas-user] Issue with Namespace and debug In-Reply-To: <103780352.63610.1658347334483.JavaMail.zimbra@westwoodsvcs.com> References: <1011570878.62325.1657921158944.JavaMail.zimbra@westwoodsvcs.com> <30fdce86-bcef-f6f4-ebe7-4b7d064b7435@gambas-basic.org> <103780352.63610.1658347334483.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <5aec7c3e-3140-198e-92ef-c4f564479ee7@gambas-basic.org> Le 20/07/2022 ? 22:02, Brian G a ?crit?: > > Here is a sample using name space, maybe I did not assign correctly. > > But breakpoints do not work at all in this example. > > I am using the latest daily build for this test. > > "Failure is the key to success; > each mistake teaches us something" .. Morihei Ueshiba > Brian G > It should be fixed in last commit. This fix is not perfect, but it will be able to backported into the next stable release. Regards, -- Beno?t Minisini. From claus.dietrich at freenet.de Thu Jul 21 23:02:18 2022 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Thu, 21 Jul 2022 23:02:18 +0200 Subject: [Gambas-user] Filling a WebTable (need help) Message-ID: >Thank you Benoit. >I'll get some info on the wiki once i get my head around it. Hi Bruce As Benoit wrote it is filled through the data event and there actually not much to do get it work. The following lines are put together to make you understand how it works. Dim Matrix As New Variant[5, 9] '5 stands for the column, 9 for the row Dim i as Integer WebTable1.Columns.Count = 5 WebTable1.Count = 9 'can be set dynamically For i = 0 To 7 Matrix[0, i] = "

Col1

" Matrix[1, i] = "

Col2

" Matrix[2, i] = "

Col3

" Matrix[3, i] = "

Col4

" Matrix[4, i] = "

Col5

" Next Public Sub WebTable1_Data(Row As Integer, Column As Integer, Data As WebTableData) Data.Html = Matrix[Column, Row] End Please take note, that I launched a bug report, because the WebTable doesn't display icons when the web app has been compiled and deployed on a Lighttpd Web server. Regards Claus From bsteers4 at gmail.com Fri Jul 22 02:53:11 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 22 Jul 2022 01:53:11 +0100 Subject: [Gambas-user] Filling a WebTable (need help) In-Reply-To: References: Message-ID: On Thu, 21 Jul 2022 at 22:03, Claus Dietrich wrote: > >Thank you Benoit. > >I'll get some info on the wiki once i get my head around it. > > Hi Bruce > As Benoit wrote it is filled through the data event and there > actually not much to do get it work. The following lines are > put together to make you understand how it works. > > Dim Matrix As New Variant[5, 9] '5 stands for the column, 9 for the row > Dim i as Integer > > WebTable1.Columns.Count = 5 > WebTable1.Count = 9 'can be set dynamically > > For i = 0 To 7 > Matrix[0, i] = "

style='vertical-align:middle'>Col1

" > Matrix[1, i] = "

style='vertical-align:middle'>Col2

" > Matrix[2, i] = "

style='vertical-align:middle'>Col3

" > Matrix[3, i] = "

style='vertical-align:middle'>Col4

" > Matrix[4, i] = "

style='vertical-align:middle'>Col5

" > Next > > Public Sub WebTable1_Data(Row As Integer, Column As Integer, Data As > WebTableData) > > Data.Html = Matrix[Column, Row] > > End > > Please take note, that I launched a bug report, because the WebTable > doesn't > display icons when the web app has been compiled and deployed on a Lighttpd > Web server. > > Regards > > Claus > Thanks Claus :) I was unfamiliar with a Data event until now. I soon figured it out after seeing the light. Your example is different to mine. can i put it on the wiki? BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From claus.dietrich at freenet.de Fri Jul 22 11:10:00 2022 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Fri, 22 Jul 2022 11:10:00 +0200 Subject: [Gambas-user] Filling a WebTable (need help) Message-ID: <0ace1d3b-ea3c-39a1-c699-74928a3bc03d@freenet.de> >Thanks Claus :) >I was unfamiliar with a Data event until now. >I soon figured it out after seeing the light. > >Your example is different to mine. >can i put it on the wiki? Yes. I had the same problem. Many thanks and regards to Tobias who explained it to me. Regards Claus From bsteers4 at gmail.com Fri Jul 22 18:25:48 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 22 Jul 2022 17:25:48 +0100 Subject: [Gambas-user] WebView html source code? Message-ID: Would it take much for a new WebView method or property to get the source code? a Method like WebView1.GetSource() As String or WebView1.GetHtml() As String or a read property (or even read/write) sSource = WebView1.Source or sSource = WebView1.Html I really want to add an option to my gambas debug browser to read the source. Much respect BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Fri Jul 22 19:48:28 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 22 Jul 2022 19:48:28 +0200 Subject: [Gambas-user] WebView html source code? In-Reply-To: References: Message-ID: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> Le 22/07/2022 ? 18:25, Bruce Steers a ?crit?: > Would it take much for a new WebView method or property to get the > source code? > > a Method like > WebView1.GetSource() As String > or > WebView1.GetHtml() As String > > ora read property (or even read/write) > sSource = WebView1.Source > or > sSource = WebView1.Html > > > I really want to add an option to my gambas debug browser to read the > source. > Much respect > BruceS > Alas, AFAIK, this is not supported by WebKitGTK. Regards, -- Beno?t Minisini. From t.lee.davidson at gmail.com Fri Jul 22 22:01:33 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 22 Jul 2022 16:01:33 -0400 Subject: [Gambas-user] WebView html source code? In-Reply-To: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> Message-ID: <6488a142-dbe0-1d3e-6b8b-1739addc574f@gmail.com> On 7/22/22 13:48, Benoit Minisini wrote: > Le 22/07/2022 ? 18:25, Bruce Steers a ?crit?: >> Would it take much for a new WebView method or property to get the source code? >> >> a Method like >> WebView1.GetSource() As String >> or >> WebView1.GetHtml() As String >> >> ora read property (or even read/write) >> sSource = WebView1.Source >> or >> sSource = WebView1.Html >> >> >> I really want to add an option to my gambas debug browser to read the source. >> Much respect >> BruceS >> > > Alas, AFAIK, this is not supported by WebKitGTK. I would like something like that as well. Both gb.gtk3.webview and gb.qt5.webview say they embed the Chromium browser. I recall that qt5-webkit had that property. It would seem that the Chromium browser should at least have a 'view source' function. But then, I am not versed in how the embedding works. -- Lee From t.lee.davidson at gmail.com Fri Jul 22 22:52:00 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 22 Jul 2022 16:52:00 -0400 Subject: [Gambas-user] Timer for the class Webpage In-Reply-To: <6bec26a3-d46e-b843-51e0-3097c3bea4d1@gambas-buch.de> References: <6bec26a3-d46e-b843-51e0-3097c3bea4d1@gambas-buch.de> Message-ID: <43175f92-1801-6465-67a3-e2fb46818001@gmail.com> On 7/21/22 12:05, Hans Lehmann wrote: > A solution is sought for the task of changing, updating the table in the web page at a fixed interval. Since there is no timer > for web applications based on the class Webpage (gb.web), we are grateful for any advice on how to realise and use such a timer. > To put it a bit bluntly: without a timer, the class Webpage is nothing half and nothing whole. Hans, As I explained to you privately, gb.web's Webpage class is a server-side technology. It can do nothing with the page after it is sent to the web browser. To programmatically update a page periodically, one *must* use a client-side technology. Expecting Webpage to have a client-side timer is like expecting to have the capability of catching a train after it has already left the station. And, criticizing the Webpage class for not having what it cannot have is unreasonable and, IMO, disrespectful. If you need a Gambas-style web timer, then either use gb.web.gui's WebTimer or adapt to your liking the Javascript timer class example I created for you. -- Lee From bsteers4 at gmail.com Sat Jul 23 00:08:35 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 22 Jul 2022 23:08:35 +0100 Subject: [Gambas-user] WebView html source code? In-Reply-To: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> Message-ID: On Fri, 22 Jul 2022 at 18:49, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 22/07/2022 ? 18:25, Bruce Steers a ?crit : > > Would it take much for a new WebView method or property to get the > > source code? > > > > a Method like > > WebView1.GetSource() As String > > or > > WebView1.GetHtml() As String > > > > ora read property (or even read/write) > > sSource = WebView1.Source > > or > > sSource = WebView1.Html > > > > > > I really want to add an option to my gambas debug browser to read the > > source. > > Much respect > > BruceS > > > > Alas, AFAIK, this is not supported by WebKitGTK. > > Regards, > Dang. I looked at the source to see if i could find out where the debugger browser makes it's root dir and gets the page from to load the file manually. all i can find is the url:port details. Would that be possible? to get the real path of the exe that's being loaded? I could maybe do something with that. Cheers Ben BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From sbungay at smartsonsite.com Sat Jul 23 00:57:55 2022 From: sbungay at smartsonsite.com (sbungay) Date: Fri, 22 Jul 2022 18:57:55 -0400 Subject: [Gambas-user] TextArea test harness Message-ID: <6b50ad75-463e-5294-ff48-4eebcf1c72b1@smartsonsite.com> Hi all! This is kind of long, and I apologize, please read and try out the test harness project as described. It is only a test harness, there are lots of comments in the code as well as commented out lines etc. Not clean, not finished, so please excuse the mess. Attached is the test harness and text file I've been using with it. Extract both, load the project and run it. Usage #1. Use the file chooser to drag the test file (GAMBAS Test Text2.txt) to the text area. As soon as you drop the file on the text area the app will will process it. Drag and drop is working. :) Usage #2 (this is not going to remain in the final app) Select the text file in the file manager, then click button at the bottom of the FileChooser, it is labeled "Add Contents of selected TXT file to TextArea". The file will be loaded and you can see what it looks like before processing. Clicking on "Process File" buttom below the TextArea will reformat the text. If you used Usage #1 notice that the cursor is present in the TextArea after the drag and drop, and that it is not blinking. A clue? IF you used Usage #2 note that after the text is added the cursor is not visible in the text area, it also does not show up after pressing the "ProcessText" button. This is expected. Regardless of which Usage was chosen, mouse up to the first word "Ike" and double click on it to select it, then drag it to the TreeView. Expand the TreeView. Now double click on the word "Gordon" in the TextArea and drag that to the TreeView. Select "Ike" in the TreeView and drag it to the line that reads "Ready for another fantastic week?" This is dialogue for Ike's, so drop it at the very start of the line. As you're dragging, note the cursor of the TextArea is following the mouse around, I expected this, thinking that it SHOULD be an indication of where the text will inserted. When you drop the item though, it does not go where the cursor indicated it should. Also notice that while dragging the message "QDragManager::drag in possibly invalid state" keeps appears in the console. The dragged item can be forced to go where you want it to only if you click on the desired position in the TextArea first and then drag the item into the control. Do this and it goes to where you last clicked in the TextArea. This is not useful as there is too much mousing about, it consumes too much time when working on a long manuscript. Can anyone dig into this and see what is going on with the control? -- Steve. -------------- next part -------------- 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 -------------- next part -------------- Ike beamed at him. ?Good morning, Mr. Westchester.? Gordon nodded in return. ?Ike.? ?Ready for another fantastic week?? No one else was around. From bsteers4 at gmail.com Sat Jul 23 05:21:05 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 23 Jul 2022 04:21:05 +0100 Subject: [Gambas-user] WebView html source code? In-Reply-To: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> Message-ID: On Fri, 22 Jul 2022 at 18:49, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 22/07/2022 ? 18:25, Bruce Steers a ?crit : > > Would it take much for a new WebView method or property to get the > > source code? > > > > a Method like > > WebView1.GetSource() As String > > or > > WebView1.GetHtml() As String > > > > ora read property (or even read/write) > > sSource = WebView1.Source > > or > > sSource = WebView1.Html > > > > > > I really want to add an option to my gambas debug browser to read the > > source. > > Much respect > > BruceS > > > > Alas, AFAIK, this is not supported by WebKitGTK. > > Regards, > I have a working attempt, but it's awful the way i'm getting the path to the temporary cgi. :( https://gitlab.com/bsteers4/gambas/-/commit/0562c13d95a3bdc2684a4397cc17a30277e25b7f Im listing the dirs in temp folders session/gb.web.gui and getting the latest LastModified one. Couldn't find a way to get the path to the temp exe? Once I have the path i just execute the exe and get the process output. Currently got it set to hit F12 to get the viewer (with a nice TextEditor for html highlighting) Clip http://bws.org.uk/img/screenrecord-2022-07-23_04.13.24.mp4 Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Jul 23 10:38:45 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 23 Jul 2022 10:38:45 +0200 Subject: [Gambas-user] WebView html source code? In-Reply-To: References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> Message-ID: <96fb0a03-cb6f-4dc6-544c-8c794c0cb8a7@gambas-basic.org> Le 23/07/2022 ? 05:21, Bruce Steers a ?crit?: > > > On Fri, 22 Jul 2022 at 18:49, Benoit Minisini > > wrote: > > Le 22/07/2022 ? 18:25, Bruce Steers a ?crit?: > > Would it take much for a new WebView method or property to get the > > source code? > > > > a Method like > > WebView1.GetSource() As String > > or > > WebView1.GetHtml() As String > > > > ora read property (or even read/write) > > sSource = WebView1.Source > > or > > sSource = WebView1.Html > > > > > > I really want to add an option to my gambas debug browser to read > the > > source. > > Much respect > > BruceS > > > > Alas, AFAIK, this is not supported by WebKitGTK. > > Regards, > > > I have a working attempt, but it's awful the way i'm getting the path to > the temporary cgi. :( > https://gitlab.com/bsteers4/gambas/-/commit/0562c13d95a3bdc2684a4397cc17a30277e25b7f > > > Im listing the dirs in temp folders session/gb.web.gui and getting the > latest LastModified one. > Couldn't find a way to get the path to the temp exe? > > Once I have the path i just execute the exe and get the process output. > > Currently got it set to hit F12 to get the viewer (with a nice > TextEditor for html highlighting) > > Clip > http://bws.org.uk/img/screenrecord-2022-07-23_04.13.24.mp4 > > > Respects > BruceS > Can't you simply explain what you want to do? If you need to debug the client side of your application, you have to use an external browser at the moment, as the WebView control does not give access to the Chromium developer tools yet. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Sat Jul 23 10:58:26 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 23 Jul 2022 09:58:26 +0100 Subject: [Gambas-user] WebView html source code? In-Reply-To: <96fb0a03-cb6f-4dc6-544c-8c794c0cb8a7@gambas-basic.org> References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> <96fb0a03-cb6f-4dc6-544c-8c794c0cb8a7@gambas-basic.org> Message-ID: On Sat, 23 Jul 2022 at 09:39, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 23/07/2022 ? 05:21, Bruce Steers a ?crit : > > > > > > On Fri, 22 Jul 2022 at 18:49, Benoit Minisini > > > > wrote: > > > > Le 22/07/2022 ? 18:25, Bruce Steers a ?crit : > > > Would it take much for a new WebView method or property to get the > > > source code? > > > > > > a Method like > > > WebView1.GetSource() As String > > > or > > > WebView1.GetHtml() As String > > > > > > ora read property (or even read/write) > > > sSource = WebView1.Source > > > or > > > sSource = WebView1.Html > > > > > > > > > I really want to add an option to my gambas debug browser to read > > the > > > source. > > > Much respect > > > BruceS > > > > > > > Alas, AFAIK, this is not supported by WebKitGTK. > > > > Regards, > > > > > > I have a working attempt, but it's awful the way i'm getting the path to > > the temporary cgi. :( > > > https://gitlab.com/bsteers4/gambas/-/commit/0562c13d95a3bdc2684a4397cc17a30277e25b7f > > < > https://gitlab.com/bsteers4/gambas/-/commit/0562c13d95a3bdc2684a4397cc17a30277e25b7f > > > > > > Im listing the dirs in temp folders session/gb.web.gui and getting the > > latest LastModified one. > > Couldn't find a way to get the path to the temp exe? > > > > Once I have the path i just execute the exe and get the process output. > > > > Currently got it set to hit F12 to get the viewer (with a nice > > TextEditor for html highlighting) > > > > Clip > > http://bws.org.uk/img/screenrecord-2022-07-23_04.13.24.mp4 > > > > > > Respects > > BruceS > > > > Can't you simply explain what you want to do? > > If you need to debug the client side of your application, you have to > use an external browser at the moment, as the WebView control does not > give access to the Chromium developer tools yet. > I disagree. Clearly i can now view the page source using the internal browser ;) I want to be able to view the source of the app i'm debugging in the internal browser because it helps when debugging. Yes firefox has many great options to debug unlike the internal browser that is the most simplest a viewer can be but if i just want to inspect the source quickly it'd be good for some possibility Often firefox is already running in the background so i then have to close all my windows to debug with firefox. plus with internal browser it's faster and i don't get repeatedly asked for a profile even though i select "dont ask next time" Another option would be to add something like "print to stdout" as an option of the list of browsers to use. then the combobox on the designer used to change browser could be used to temporarily disable it but keep the combobox visible. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Jul 23 11:06:00 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 23 Jul 2022 11:06:00 +0200 Subject: [Gambas-user] WebView html source code? In-Reply-To: References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> <96fb0a03-cb6f-4dc6-544c-8c794c0cb8a7@gambas-basic.org> Message-ID: Le 23/07/2022 ? 10:58, Bruce Steers a ?crit?: > > I disagree.? Clearly i can now view the page source using the internal > browser? ;) > > I want to be able to view the source of the app i'm debugging in the > internal browser because it helps when debugging. > Yes firefox has many great options to debug unlike the internal browser > that is the most simplest a viewer can be but if i just want to inspect > the source quickly it'd be good for some possibility > Often firefox is already running in the background so i then have to > close all my windows to debug with firefox. > plus with internal browser it's faster and i don't get repeatedly asked > for a profile even though i select "dont ask next time" > > Another option would be to add something like "print to stdout" as an > option of the list of browsers to use. then the combobox on the designer > used to change browser could be used to temporarily disable it but keep > the combobox visible. > > BruceS > I don't understand the need to see the HTML source code. It won't tell you a lot as all the page is modified by AJAX request at each event. You have to use the browser debugger tools to see the current HTML displayed. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Sat Jul 23 11:25:06 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 23 Jul 2022 10:25:06 +0100 Subject: [Gambas-user] WebView html source code? In-Reply-To: References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> <96fb0a03-cb6f-4dc6-544c-8c794c0cb8a7@gambas-basic.org> Message-ID: On Sat, 23 Jul 2022 at 10:07, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 23/07/2022 ? 10:58, Bruce Steers a ?crit : > > > > I disagree. Clearly i can now view the page source using the internal > > browser ;) > > > > I want to be able to view the source of the app i'm debugging in the > > internal browser because it helps when debugging. > > Yes firefox has many great options to debug unlike the internal browser > > that is the most simplest a viewer can be but if i just want to inspect > > the source quickly it'd be good for some possibility > > Often firefox is already running in the background so i then have to > > close all my windows to debug with firefox. > > plus with internal browser it's faster and i don't get repeatedly asked > > for a profile even though i select "dont ask next time" > > > > Another option would be to add something like "print to stdout" as an > > option of the list of browsers to use. then the combobox on the designer > > used to change browser could be used to temporarily disable it but keep > > the combobox visible. > > > > BruceS > > > > I don't understand the need to see the HTML source code. It won't tell > you a lot as all the page is modified by AJAX request at each event. You > have to use the browser debugger tools to see the current HTML displayed. > > Regards, > I find it useful for things like seeing a WebTextBox name has :entry after it. checking for errors in the html code I think for learning purposes it tells me quite a bit. ajax may alter the page (yes i didn't know that) but the initial code output must be what the server initially reads too. It's a crying shame the WebView doesn't do view source :( I've been searching around and it seems there may be ways. https://stackoverflow.com/questions/47501369/getting-html-source-using-webkit2 Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Jul 23 11:29:54 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 23 Jul 2022 11:29:54 +0200 Subject: [Gambas-user] TextArea test harness In-Reply-To: <6b50ad75-463e-5294-ff48-4eebcf1c72b1@smartsonsite.com> References: <6b50ad75-463e-5294-ff48-4eebcf1c72b1@smartsonsite.com> Message-ID: <0ea15a16-c6b3-b5cc-0b86-3385813a1fd2@gambas-basic.org> Le 23/07/2022 ? 00:57, sbungay a ?crit?: > Hi all! > > ? This is kind of long, and I apologize, please read and try out the > test harness project as described. It is only a test harness, there are > lots of comments in the code as well as commented out lines etc. Not > clean, not finished, so please excuse the mess. > > ... > > Can anyone dig into this and see what is going on with the control? > I fixed the Qt drag & drop implementation bug in the last commit. The bug was that DnD move events were both handled by Gambas and by Qt, leading to the cursor mess. But now you must understand that you can't implement your own TextArea DnD support, and keep the default one. If you want the default behaviour when dragging text on the TextArea, you must unset the Drop property. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Sat Jul 23 11:34:42 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 23 Jul 2022 11:34:42 +0200 Subject: [Gambas-user] WebView html source code? In-Reply-To: References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> <96fb0a03-cb6f-4dc6-544c-8c794c0cb8a7@gambas-basic.org> Message-ID: <3a4f9d5e-0ff9-09c5-4a23-626477135644@gambas-basic.org> Le 23/07/2022 ? 11:25, Bruce Steers a ?crit?: > > It's a crying shame the WebView doesn't do view source :( > I've been searching around and it seems there may be ways. > https://stackoverflow.com/questions/47501369/getting-html-source-using-webkit2 > > Cool, this is what I was looking for and couln't find. Maybe I can do something then... -- Beno?t Minisini. From bsteers4 at gmail.com Sat Jul 23 11:50:21 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 23 Jul 2022 10:50:21 +0100 Subject: [Gambas-user] WebView html source code? In-Reply-To: <3a4f9d5e-0ff9-09c5-4a23-626477135644@gambas-basic.org> References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> <96fb0a03-cb6f-4dc6-544c-8c794c0cb8a7@gambas-basic.org> <3a4f9d5e-0ff9-09c5-4a23-626477135644@gambas-basic.org> Message-ID: On Sat, 23 Jul 2022 at 10:35, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 23/07/2022 ? 11:25, Bruce Steers a ?crit : > > > > It's a crying shame the WebView doesn't do view source :( > > I've been searching around and it seems there may be ways. > > > https://stackoverflow.com/questions/47501369/getting-html-source-using-webkit2 > > < > https://stackoverflow.com/questions/47501369/getting-html-source-using-webkit2 > > > > > > Cool, this is what I was looking for and couln't find. Maybe I can do > something then... > Oooh, now i'm all excited :) Best of luck , and many thanks in advance :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sat Jul 23 17:03:47 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 23 Jul 2022 16:03:47 +0100 Subject: [Gambas-user] WebView html source code? In-Reply-To: References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> <96fb0a03-cb6f-4dc6-544c-8c794c0cb8a7@gambas-basic.org> <3a4f9d5e-0ff9-09c5-4a23-626477135644@gambas-basic.org> Message-ID: On Sat, 23 Jul 2022 at 10:50, Bruce Steers wrote: > > > On Sat, 23 Jul 2022 at 10:35, Benoit Minisini < > benoit.minisini at gambas-basic.org> wrote: > >> Le 23/07/2022 ? 11:25, Bruce Steers a ?crit : >> > >> > It's a crying shame the WebView doesn't do view source :( >> > I've been searching around and it seems there may be ways. >> > >> https://stackoverflow.com/questions/47501369/getting-html-source-using-webkit2 >> > < >> https://stackoverflow.com/questions/47501369/getting-html-source-using-webkit2 >> > >> > >> >> Cool, this is what I was looking for and couln't find. Maybe I can do >> something then... >> > > Oooh, now i'm all excited :) > > Best of luck , and many thanks in advance :) > Benoit you are an absolute hero :) I just saw commit https://gitlab.com/gambas/gambas/-/commit/72d23a24f2592a4e68013f0fba4a0ee2f92a5d61 fantastic stuff kid sir :) Lee, there is now a WebView.GetHtml() method for us :) Many thanks again Ben. excellent upgrade :) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Sat Jul 23 17:16:54 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Sat, 23 Jul 2022 21:01:54 +0545 Subject: [Gambas-user] Read data from localstorage in gb.web.gui Message-ID: Hi Beno?t I can read data from cookies using Request.Cookies[]. Unfortunately cookie can store data upto 4 KB only. Is there any gambas way to read data from localStorage (which can store data upto 5 MB) -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Jul 23 17:31:39 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 23 Jul 2022 17:31:39 +0200 Subject: [Gambas-user] Read data from localstorage in gb.web.gui In-Reply-To: References: Message-ID: Le 23/07/2022 ? 17:16, Safiur Rahman a ?crit?: > Hi Beno?t > > I can read data from cookies using Request.Cookies[]. Unfortunately > cookie can store data upto 4 KB only. Is there any gambas way to read > data from localStorage (which can store data upto 5 MB) > I don't understand your request. Request.Cookies[] is on the server side. AFAIK, localStorage is on the client side. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Sat Jul 23 17:32:39 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 23 Jul 2022 17:32:39 +0200 Subject: [Gambas-user] Read data from localstorage in gb.web.gui In-Reply-To: References: Message-ID: Le 23/07/2022 ? 17:31, Benoit Minisini a ?crit?: > Le 23/07/2022 ? 17:16, Safiur Rahman a ?crit?: >> Hi Beno?t >> >> I can read data from cookies using Request.Cookies[]. Unfortunately >> cookie can store data upto 4 KB only. Is there any gambas way to read >> data from localStorage (which can store data upto 5 MB) >> > > I don't understand your request. Request.Cookies[] is on the server > side. AFAIK, localStorage is on the client side. > > Regards, > Moreover I don't see the need of using localStorage if you are using the 'gb.web.gui' component. -- Beno?t Minisini. From isafiur at gmail.com Sat Jul 23 18:02:43 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Sat, 23 Jul 2022 21:47:43 +0545 Subject: [Gambas-user] Read data from localstorage in gb.web.gui In-Reply-To: References: Message-ID: Hi I think that if localstorage could be used in gambas then data on the client can be uploaded to server without selecting file. To save data WebForm._AddJavascript("var xdata = canvas.toDataURL(\"image/png\")") WebForm._AddJavascript("localStorage.setItem('imagedata', xdata);") To upload Request.Localstorage[] On Sat, 23 Jul 2022, 21:01 Safiur Rahman, wrote: > Hi Beno?t > > I can read data from cookies using Request.Cookies[]. Unfortunately cookie > can store data upto 4 KB only. Is there any gambas way to read data from > localStorage (which can store data upto 5 MB) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sat Jul 23 18:06:16 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 23 Jul 2022 17:06:16 +0100 Subject: [Gambas-user] Read data from localstorage in gb.web.gui In-Reply-To: References: Message-ID: On Sat, 23 Jul 2022 at 16:18, Safiur Rahman wrote: > Hi Beno?t > > I can read data from cookies using Request.Cookies[]. Unfortunately cookie > can store data upto 4 KB only. Is there any gambas way to read data from > localStorage (which can store data upto 5 MB) > I think you would need a writable dir on the server and upload the local file to it then force an object/page refresh. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Sat Jul 23 18:06:46 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Sat, 23 Jul 2022 21:51:46 +0545 Subject: [Gambas-user] Read data from localstorage in gb.web.gui In-Reply-To: References: Message-ID: Hi Sorry for the Request.cookie example because cookies are sent to server On Sat, 23 Jul 2022, 21:47 Safiur Rahman, wrote: > Hi > > I think that if localstorage could be used in gambas then data on the > client can be uploaded to server without selecting file. > > To save data > WebForm._AddJavascript("var xdata = canvas.toDataURL(\"image/png\")") > WebForm._AddJavascript("localStorage.setItem('imagedata', xdata);") > > To upload > Request.Localstorage[] > > On Sat, 23 Jul 2022, 21:01 Safiur Rahman, wrote: > >> Hi Beno?t >> >> I can read data from cookies using Request.Cookies[]. Unfortunately >> cookie can store data upto 4 KB only. Is there any gambas way to read data >> from localStorage (which can store data upto 5 MB) >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sat Jul 23 18:14:20 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 23 Jul 2022 17:14:20 +0100 Subject: [Gambas-user] Read data from localstorage in gb.web.gui In-Reply-To: References: Message-ID: On Sat, 23 Jul 2022 at 17:04, Safiur Rahman wrote: > Hi > > I think that if localstorage could be used in gambas then data on the > client can be uploaded to server without selecting file. > I can read data from cookies using Request.Cookies[]. Unfortunately cookie > can store data upto 4 KB only. Is there any gambas way to read data from > localStorage (which can store data upto 5 MB) > >> But it's not possible. all local stuff happens in the browser, beit firefox/chrome/Edge/etc. they do not even have gambas. the gambas stuff can only happen on the server then the html/javascript data is sent for your browser to read. All the browser can do is html/Javascript. gb.web.gui (although i've only just started to learn it) seems to be one big gambas to html/javascript converter. all the gambas forms/objects/events/etc are converted to html/javascript code then sent from server to client. technically nothing gambas happens client side (locally). you can use a javascript routine locally to upload to a writable folder on your server then refresh the page set to read said data. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Sat Jul 23 18:24:33 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Sat, 23 Jul 2022 22:09:33 +0545 Subject: [Gambas-user] Read data from localstorage in gb.web.gui In-Reply-To: References: Message-ID: Hi Bruce The WebTextBox can be filled with value you receive from javascript on client side and then you can update on server side. WebForm._AddJavascript("var xdata = 'abcdef'") WebForm._AddJavascript("$_(" & JS(WebTextBox1.Name & ":entry") & ").value = xdata") I am using it extensively. The only problem is it cannot hold big size string. There should be some mechanism to communicate between javascript on client and gambas on server. On Sat, 23 Jul 2022, 21:51 Safiur Rahman, wrote: > Hi > Sorry for the Request.cookie example because cookies are sent to server > > On Sat, 23 Jul 2022, 21:47 Safiur Rahman, wrote: > >> Hi >> >> I think that if localstorage could be used in gambas then data on the >> client can be uploaded to server without selecting file. >> >> To save data >> WebForm._AddJavascript("var xdata = canvas.toDataURL(\"image/png\")") >> WebForm._AddJavascript("localStorage.setItem('imagedata', xdata);") >> >> To upload >> Request.Localstorage[] >> >> On Sat, 23 Jul 2022, 21:01 Safiur Rahman, wrote: >> >>> Hi Beno?t >>> >>> I can read data from cookies using Request.Cookies[]. Unfortunately >>> cookie can store data upto 4 KB only. Is there any gambas way to read data >>> from localStorage (which can store data upto 5 MB) >>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Jul 23 18:39:53 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 23 Jul 2022 18:39:53 +0200 Subject: [Gambas-user] Read data from localstorage in gb.web.gui In-Reply-To: References: Message-ID: <7cfca661-89cb-2500-c370-2e61c6c8d4c0@gambas-basic.org> Le 23/07/2022 ? 18:24, Safiur Rahman a ?crit?: > > There should be some mechanism to communicate between javascript on > client and gambas on server. > Indeed. -- Beno?t Minisini. From bsteers4 at gmail.com Sat Jul 23 19:01:36 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 23 Jul 2022 18:01:36 +0100 Subject: [Gambas-user] WebView html source code? In-Reply-To: <3a4f9d5e-0ff9-09c5-4a23-626477135644@gambas-basic.org> References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> <96fb0a03-cb6f-4dc6-544c-8c794c0cb8a7@gambas-basic.org> <3a4f9d5e-0ff9-09c5-4a23-626477135644@gambas-basic.org> Message-ID: On Sat, 23 Jul 2022 at 10:35, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 23/07/2022 ? 11:25, Bruce Steers a ?crit : > > > > It's a crying shame the WebView doesn't do view source :( > > I've been searching around and it seems there may be ways. > > > https://stackoverflow.com/questions/47501369/getting-html-source-using-webkit2 > > < > https://stackoverflow.com/questions/47501369/getting-html-source-using-webkit2 > > > > > > Cool, this is what I was looking for and couln't find. Maybe I can do > something then... > Perfect :) That's much better to code me a source viewer :) https://gitlab.com/bsteers4/gambas/-/commit/3d078c22cd6c1445f1af984bf990f86e3f4857d4 http://bws.org.uk/img/SR-ViewSource.mp4 you gonna do the same or want me to submit what i've done there or do you not really want it in the IDE? Happy as Larry :) Thank you again BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Jul 23 23:31:39 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 23 Jul 2022 23:31:39 +0200 Subject: [Gambas-user] WebView html source code? In-Reply-To: References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> <96fb0a03-cb6f-4dc6-544c-8c794c0cb8a7@gambas-basic.org> <3a4f9d5e-0ff9-09c5-4a23-626477135644@gambas-basic.org> Message-ID: <5a53eeeb-1d74-76d4-ab0c-ac740c8ae5cf@gambas-basic.org> Le 23/07/2022 ? 19:01, Bruce Steers a ?crit?: > > Perfect :) > > That's much better to code me a source viewer :) > > https://gitlab.com/bsteers4/gambas/-/commit/3d078c22cd6c1445f1af984bf990f86e3f4857d4 > > http://bws.org.uk/img/SR-ViewSource.mp4 > > > you gonna do the same or want me to submit what i've done there or do > you not really want it in the IDE? > > Happy as Larry :) > Thank you again > BruceS > As I said before, this is useless most of the time. What is needed are the developer tools. -- Beno?t Minisini. From bsteers4 at gmail.com Sun Jul 24 11:07:25 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 24 Jul 2022 10:07:25 +0100 Subject: [Gambas-user] WebView html source code? In-Reply-To: <5a53eeeb-1d74-76d4-ab0c-ac740c8ae5cf@gambas-basic.org> References: <71e5edc5-f120-975b-107f-d8017016e0a0@gambas-basic.org> <96fb0a03-cb6f-4dc6-544c-8c794c0cb8a7@gambas-basic.org> <3a4f9d5e-0ff9-09c5-4a23-626477135644@gambas-basic.org> <5a53eeeb-1d74-76d4-ab0c-ac740c8ae5cf@gambas-basic.org> Message-ID: On Sat, 23 Jul 2022 at 22:32, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 23/07/2022 ? 19:01, Bruce Steers a ?crit : > > > > Perfect :) > > > > That's much better to code me a source viewer :) > > > > > https://gitlab.com/bsteers4/gambas/-/commit/3d078c22cd6c1445f1af984bf990f86e3f4857d4 > > < > https://gitlab.com/bsteers4/gambas/-/commit/3d078c22cd6c1445f1af984bf990f86e3f4857d4 > > > > http://bws.org.uk/img/SR-ViewSource.mp4 > > > > > > you gonna do the same or want me to submit what i've done there or do > > you not really want it in the IDE? > > > > Happy as Larry :) > > Thank you again > > BruceS > > > > As I said before, this is useless most of the time. What is needed are > the developer tools. > > -- > Beno?t Minisini. > Yeah i guess. You seen chromium headless mode? https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md#client_devtools-api Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 24 17:25:29 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 24 Jul 2022 16:25:29 +0100 Subject: [Gambas-user] Filling a WebTable (need help) In-Reply-To: References: Message-ID: On Thu, 21 Jul 2022 at 22:03, Claus Dietrich wrote: > >Thank you Benoit. > >I'll get some info on the wiki once i get my head around it. > > Hi Bruce > As Benoit wrote it is filled through the data event and there > actually not much to do get it work. The following lines are > put together to make you understand how it works. > > Dim Matrix As New Variant[5, 9] '5 stands for the column, 9 for the row > Dim i as Integer > > WebTable1.Columns.Count = 5 > WebTable1.Count = 9 'can be set dynamically > > For i = 0 To 7 > Matrix[0, i] = "

style='vertical-align:middle'>Col1

" > Matrix[1, i] = "

style='vertical-align:middle'>Col2

" > Matrix[2, i] = "

style='vertical-align:middle'>Col3

" > Matrix[3, i] = "

style='vertical-align:middle'>Col4

" > Matrix[4, i] = "

style='vertical-align:middle'>Col5

" > Next > > Public Sub WebTable1_Data(Row As Integer, Column As Integer, Data As > WebTableData) > > Data.Html = Matrix[Column, Row] > > End > > Please take note, that I launched a bug report, because the WebTable > doesn't > display icons when the web app has been compiled and deployed on a Lighttpd > Web server. I looked for the bug report on the bugtracker but could not find it. I had trouble using in the webtable when using images in my project folder. i got it working by not using the files in the app but using them from the host addresses. I used this code... * $sHost = Replace(Env["HTTP_HOST"], "http://", "") If $sHost = "localhost" Or If InStr($sHost, "127.0.0.1") Or If $sHost = "::1" Then $sHost = "http://127.0.0.1 " Else $sHost = "http://" & $sHost* then put the images in my local lighttpd server and my remote one and removed them from the project. then if my app is running on my local server of through the IDE debugger it uses the images at http://127.0.0.1/ or it uses them at the server. Got it all working here... http://138.68.116.47/cgi-bin/MyPlayer.gambas the audio images work like play buttons when clicked BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Mon Jul 25 10:55:19 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Mon, 25 Jul 2022 14:40:19 +0545 Subject: [Gambas-user] Editable webview Message-ID: Hi Is it possible to use chrome based webview (gb.qt5.webview) as editable? When I changed from gb.qt5.webkit to gb.qt5.webview the editable area are no more allowing to write. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Mon Jul 25 14:40:28 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 25 Jul 2022 13:40:28 +0100 Subject: [Gambas-user] Editable webview In-Reply-To: References: Message-ID: On Mon, 25 Jul 2022 at 09:56, Safiur Rahman wrote: > Hi > > Is it possible to use chrome based webview (gb.qt5.webview) as editable? > > When I changed from gb.qt5.webkit to gb.qt5.webview the editable area are > no more allowing to write. > It looks like webview component does not have the Editable property like the webkit component does. So i guess it's a no for now. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Mon Jul 25 16:40:04 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Mon, 25 Jul 2022 20:25:04 +0545 Subject: [Gambas-user] Editable webview In-Reply-To: References: Message-ID: I request Benoit to not depreciate gb.qt5.webkit. It would be better if both gb.qt.webkit and gb.qt5.webview could be used in one project. On Mon, 25 Jul 2022, 14:40 Safiur Rahman, wrote: > Hi > > Is it possible to use chrome based webview (gb.qt5.webview) as editable? > > When I changed from gb.qt5.webkit to gb.qt5.webview the editable area are > no more allowing to write. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Tue Jul 26 06:18:08 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Tue, 26 Jul 2022 10:03:08 +0545 Subject: [Gambas-user] Functional EMR Message-ID: The github link of fully functional electronic medical record software being used in two dozen hospitals of Nepal https://github.com/hospinepal/HospiNepal -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Jul 26 11:17:22 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 26 Jul 2022 11:17:22 +0200 Subject: [Gambas-user] Functional EMR In-Reply-To: References: Message-ID: <46a13257-af95-6964-dba3-e2d82bbc4b68@gambas-basic.org> Le 26/07/2022 ? 06:18, Safiur Rahman a ?crit?: > The github link of fully functional electronic medical record software > being used in two dozen hospitals of Nepal > https://github.com/hospinepal/HospiNepal > > Big project! Congratulations. Note that apparently your application stores some of its data in Desktop.ConfigDir ("~/.config"). But this directory is for configuration only. You must store application data in Desktop.DataDir ("~/.local/share"). Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Tue Jul 26 11:23:30 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 26 Jul 2022 11:23:30 +0200 Subject: [Gambas-user] Debugging inside components or libraries Message-ID: <58f2f409-7c85-6afe-f844-1cb6fb7b2b65@gambas-basic.org> Hi, I have just added in the development version of the IDE the ability to debug inside the components used by the current project. When the debugger detects that a class inside the stack backtrace is located inside a component, it automatically asks the user to locate the project associated with that component, and will open its source code inside the IDE to debug it. At the moment, it only checks that the project has the same name as the component. But it supposed that the source code matches the component being used. The location of the different components is stored in the local project configuration file ("local" because it is not put on version control), and can be reset with a button in the debugger configuration dialog. The source code of the components is opened read-only, and at the moment setting breakpoints inside it does not work well. Note that I said "component", but library works as well. Enjoy it! -- Beno?t Minisini. From bsteers4 at gmail.com Wed Jul 27 13:57:30 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 27 Jul 2022 12:57:30 +0100 Subject: [Gambas-user] Supped up the WebAudio.class Message-ID: want a upgraded up WebAudio Ben? Mods make it MUCH more useful. I basically made a web player and needed these changes to make it better. https://gitlab.com/bsteers4/gambas/-/tree/WebAudio-upgrade changes... [GB.WEB.GUI] * NEW: WebAudio.AutoPlay, Autoplay audio on loading. * NEW: WebAudio.OtherSources for alternative items. * NEW: WebAudio.UnsupportedText sets message to display if browser does not support audio.. * NEW: WebAudio_Ready(Duration as Float) event fires when audio loads and contains track length. * NEW: WebAudio_TimeUpdate(Position As Float) event fires as audio plays with time pos. * NEW: WebAudio_Ended() event fires when a track finishes * NEW: WebAudio_HasPaused() event triggers when audio pauses. * New: WebAudio.SetPosition(Position As Float) sets playback position. * NEW: Use an observer to get event data internally. * NEW: Property WebAudio.Duration gets song length. * NEW: Property WebAudio.Position, get or set song position. * NEW: Property Paused gets or sets paused state. * OPT: clean up code and add inline wiki help. So with that we have quite a useable AudioPlayer able to get/set pos, get duration, useful events. with it i have made a web player with my own controls and a slider to show/set pos. Wishing well BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Jul 27 13:59:42 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 27 Jul 2022 12:59:42 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: Message-ID: On Wed, 27 Jul 2022 at 12:57, Bruce Steers wrote: > want a upgraded up WebAudio Ben? > > Mods make it MUCH more useful. > > I basically made a web player and needed these changes to make it better. > > https://gitlab.com/bsteers4/gambas/-/tree/WebAudio-upgrade > > changes... > > [GB.WEB.GUI] > * New: WebAudio.SetPosition(Position As Float) sets playback position. > > oops, i removed that one in place of the WebAudio.Position property. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Wed Jul 27 14:12:10 2022 From: isafiur at gmail.com (Safiur Rahman) Date: Wed, 27 Jul 2022 17:57:10 +0545 Subject: [Gambas-user] Supped up the WebAudio.class Message-ID: Wonderful -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Jul 27 15:45:28 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 27 Jul 2022 14:45:28 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: Message-ID: On Wed, 27 Jul 2022 at 13:13, Safiur Rahman wrote: > Wonderful > Cheers. In the last commit i made it stand-alone. I had previously added some things to lib.js but have removed them since adding the observer, so the WebAudio.class will work on it's own with normal gambas. (It's possibly too bloated now for Ben's taste so might not be a candidate for inclusion to the mainframe) Just download the file @ https://gitlab.com/bsteers4/gambas/-/blob/WebAudio-upgrade/comp/src/gb.web.gui/.src/WebAudio.class and import it into a project to use it. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Jul 27 18:26:45 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 27 Jul 2022 17:26:45 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: Message-ID: On Wed, 27 Jul 2022 at 14:45, Bruce Steers wrote: > > > On Wed, 27 Jul 2022 at 13:13, Safiur Rahman wrote: > >> Wonderful >> > > Cheers. > In the last commit i made it stand-alone. > I had previously added some things to lib.js but have removed them since > adding the observer, so the WebAudio.class will work on it's own with > normal gambas. > (It's possibly too bloated now for Ben's taste so might not be a candidate > for inclusion to the mainframe) > > Just download the file @ > https://gitlab.com/bsteers4/gambas/-/blob/WebAudio-upgrade/comp/src/gb.web.gui/.src/WebAudio.class > and import it into a project to use it. > Note: Using the default lib.js for the Play function will unpause at the start of the track not where it paused as it sets currentTime to 0 I've addressed that in my commits. fix by adding your own play function to a custom js file and omit the currentTime=0; line Eg... gx = { sound: { play: function(id) { var elt = $_(id); elt.play(); } } } then change the Play function in WebAudio.class to use gx not gw.. Public Sub Play() WebForm._AddJavascript("gx.sound.play(" & JS(Me.Name) & ")") $bPaused = False End I'm already using it on my web server where i have made a player ? Bruces gambas music page Wishing Well BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From sbungay at smartsonsite.com Wed Jul 27 20:19:42 2022 From: sbungay at smartsonsite.com (sbungay) Date: Wed, 27 Jul 2022 14:19:42 -0400 Subject: [Gambas-user] Building from source this happens with configure -C Message-ID: <1867fbf9-bd82-abb9-2978-fd466487c6f4@smartsonsite.com> Linux Mint 19.3 Tricia (Based on UBUNTU Bionic) Kernel: 5.4.0-122-generic GNOME 3.28.2 I've applied the package dependency list for Ubuntu Bionic (18.04). No problem there. On running ./configure -C I start to see errors towards the end (or what I think is the end). Then start to see permission denied messages and it all goes to he** after that. It looks like there is a permissions issue, but the ./configure -C is being run as me (not as root and not using sudo), in a directory my UID and GID have full access to. P.S. I've also tried using sudo to configure things and get the same error. It's as if another GroupID is being used and doesn't have rights. checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... (cached) GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking for libintl headers... ./configure: line 18935: cd: too many arguments /usr/include/ checking for libintl libraries... no configure: WARNING: Unable to find file: libintl.so ./configure: line 19108: ./warnings.log: Permission denied touch: cannot touch 'DISABLED.libintl': Permission denied touch: cannot touch 'FAILED': Permission denied configure: WARNING: Cannot find 'libintl' library. It may be located inside the system C library ./configure: line 19168: ./warnings.log: Permission denied checking for libiconv headers... /usr/include/ checking for libiconv libraries... no configure: WARNING: Unable to find file: libiconv.so ./configure: line 19477: ./warnings.log: Permission denied touch: cannot touch 'DISABLED.libiconv': Permission denied touch: cannot touch 'FAILED': Permission denied configure: WARNING: Cannot find 'libiconv' library. It may be merged inside the system C library ./configure: line 19537: ./warnings.log: Permission denied checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes cp: cannot create regular file 'warnings.log.before': Permission denied checking for libffi component with pkg-config... ./configure: line 20049: confdefs.h: Permission denied OK checking for gb.inotify headers... /usr/include/x86_64-linux-gnu/ checking for gb.inotify libraries... ./configure: line 21145: confdefs.h: Permission denied ./configure: line 21194: confdefs.h: Permission denied checking for xdg-mime... xdg-mime ./configure: line 21251: confcache: Permission denied ./configure: line 21312: confcache: Permission denied configure: not updating unwritable cache ../config.cache checking that generated files are newer than configure... done configure: creating ./config.status ./configure: line 21416: ./config.status: Permission denied ./configure: line 21430: ./config.status: Permission denied ./configure: line 21800: ./config.status: Permission denied ./configure: line 21828: ./config.status: Permission denied ./configure: line 21836: ./config.status: Permission denied ./configure: line 21869: ./config.status: Permission denied ./configure: line 21888: ./config.status: Permission denied ./configure: line 21965: ./config.status: Permission denied ./configure: line 21976: ./config.status: Permission denied ./configure: line 21987: ./config.status: Permission denied ./configure: line 22378: ./config.status: Permission denied ./configure: line 22490: conf12544subs.sh: Permission denied configure: error: could not make ./config.status rm: cannot remove './config.status': Permission denied configure: error: ./configure failed for main-- Steve. From bsteers4 at gmail.com Wed Jul 27 21:59:42 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 27 Jul 2022 20:59:42 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: Message-ID: On Wed, 27 Jul 2022 at 17:26, Bruce Steers wrote: > > > On Wed, 27 Jul 2022 at 14:45, Bruce Steers wrote: > >> >> >> On Wed, 27 Jul 2022 at 13:13, Safiur Rahman wrote: >> >>> Wonderful >>> >> >> Cheers. >> In the last commit i made it stand-alone. >> I had previously added some things to lib.js but have removed them since >> adding the observer, so the WebAudio.class will work on it's own with >> normal gambas. >> (It's possibly too bloated now for Ben's taste so might not be a >> candidate for inclusion to the mainframe) >> >> Just download the file @ >> https://gitlab.com/bsteers4/gambas/-/blob/WebAudio-upgrade/comp/src/gb.web.gui/.src/WebAudio.class >> and import it into a project to use it. >> > > Note: > Using the default lib.js for the Play function will unpause at the start > of the track not where it paused as it sets currentTime to 0 > I've addressed that in my commits. > fix by adding your own play function to a custom js file and omit the > currentTime=0; line > Ben we could do with a way to detect the slider being held down In my case to stop the event that updates it according to song time position. It glitches as the slider tries to update it's position while dragging unless it can be handled. Needs like a WebSlider.Dragging property or something. (or MouseDown, MouseUp events) so it can be bypassed Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Wed Jul 27 22:14:00 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 27 Jul 2022 22:14:00 +0200 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: Message-ID: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> Le 27/07/2022 ? 13:57, Bruce Steers a ?crit?: > want a upgraded up WebAudio Ben? > > Mods make it MUCH more useful. > > I basically made a web player and needed these changes to make it better. > > https://gitlab.com/bsteers4/gambas/-/tree/WebAudio-upgrade > > > changes... I'm not against the principle, but I don't like the interface you chosen: you must follow the same standards as the other Gambas classes as much as possible (look in 'gb.media' for example). > > [GB.WEB.GUI] > * NEW: WebAudio.AutoPlay, Autoplay audio on loading. > * NEW: WebAudio.OtherSources for alternative items. Rename as just "Sources", and fix your code: by copying the array internally, by detecting when the property value is null... > * NEW: WebAudio.UnsupportedText sets message to display if browser does not support audio.. I don't find this property useful. Just implement a standard translatable message inside the component. > * NEW: WebAudio_Ready(Duration as Float) event fires when audio loads and contains track length. Don't pass 'Duration' as argument. The user will read the property. > * NEW: WebAudio_TimeUpdate(Position As Float) event fires as audio plays with time pos. Rename the event as 'Position', with no argument. The user will read the property. > * NEW: WebAudio_Ended() event fires when a track finishes Rename as 'End'. > * NEW: WebAudio_HasPaused() event triggers when audio pauses. Rename as 'Pause'. > * New: WebAudio.SetPosition(Position As Float) sets playback position. Replace by the 'Position' property. > * NEW: Use an observer to get event data internally. > * NEW: Property WebAudio.Duration gets song length. > * NEW: Property WebAudio.Position, get or set song position. > * NEW: Property Paused gets or sets paused state. > * OPT: clean up code and add inline wiki help. > The remaining seems to be ok. Regards, -- Beno?t Minisini. From jussi.lahtinen at gmail.com Wed Jul 27 23:13:17 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Thu, 28 Jul 2022 00:13:17 +0300 Subject: [Gambas-user] Building from source this happens with configure -C In-Reply-To: <1867fbf9-bd82-abb9-2978-fd466487c6f4@smartsonsite.com> References: <1867fbf9-bd82-abb9-2978-fd466487c6f4@smartsonsite.com> Message-ID: The files are "read only"? How did you obtain the sources? Jussi On Wed, Jul 27, 2022 at 9:20 PM sbungay wrote: > Linux Mint 19.3 Tricia (Based on UBUNTU Bionic) > Kernel: 5.4.0-122-generic > GNOME 3.28.2 > > I've applied the package dependency list for Ubuntu Bionic (18.04). No > problem there. > > On running ./configure -C I start to see errors towards the end (or what > I think is the end). Then start to see permission denied messages and > it all goes to he** after that. > > It looks like there is a permissions issue, but the ./configure -C is > being run as me (not as root and not using sudo), in a directory my UID > and GID have full access to. > > P.S. I've also tried using sudo to configure things and get the same > error. It's as if another GroupID is being used and doesn't have rights. > > checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports > shared libraries... yes > checking dynamic linker characteristics... (cached) GNU/Linux ld.so > checking how to hardcode library paths into programs... immediate > checking for libintl headers... ./configure: line 18935: cd: too many > arguments > /usr/include/ > checking for libintl libraries... no > configure: WARNING: Unable to find file: libintl.so > ./configure: line 19108: ./warnings.log: Permission denied > touch: cannot touch 'DISABLED.libintl': Permission denied > touch: cannot touch 'FAILED': Permission denied > configure: WARNING: Cannot find 'libintl' library. It may be located > inside the system C library > ./configure: line 19168: ./warnings.log: Permission denied > checking for libiconv headers... /usr/include/ > checking for libiconv libraries... no > configure: WARNING: Unable to find file: libiconv.so > ./configure: line 19477: ./warnings.log: Permission denied > touch: cannot touch 'DISABLED.libiconv': Permission denied > touch: cannot touch 'FAILED': Permission denied > configure: WARNING: Cannot find 'libiconv' library. It may be merged > inside the system C library > ./configure: line 19537: ./warnings.log: Permission denied > checking for pkg-config... /usr/bin/pkg-config > checking pkg-config is at least version 0.9.0... yes > cp: cannot create regular file 'warnings.log.before': Permission denied > checking for libffi component with pkg-config... ./configure: line > 20049: confdefs.h: Permission denied > OK > checking for gb.inotify headers... /usr/include/x86_64-linux-gnu/ > checking for gb.inotify libraries... > ./configure: line 21145: confdefs.h: Permission denied > ./configure: line 21194: confdefs.h: Permission denied > checking for xdg-mime... xdg-mime > ./configure: line 21251: confcache: Permission denied > ./configure: line 21312: confcache: Permission denied > configure: not updating unwritable cache ../config.cache > checking that generated files are newer than configure... done > configure: creating ./config.status > ./configure: line 21416: ./config.status: Permission denied > ./configure: line 21430: ./config.status: Permission denied > ./configure: line 21800: ./config.status: Permission denied > ./configure: line 21828: ./config.status: Permission denied > ./configure: line 21836: ./config.status: Permission denied > ./configure: line 21869: ./config.status: Permission denied > ./configure: line 21888: ./config.status: Permission denied > ./configure: line 21965: ./config.status: Permission denied > ./configure: line 21976: ./config.status: Permission denied > ./configure: line 21987: ./config.status: Permission denied > ./configure: line 22378: ./config.status: Permission denied > ./configure: line 22490: conf12544subs.sh: Permission denied > configure: error: could not make ./config.status > rm: cannot remove './config.status': Permission denied > configure: error: ./configure failed for main-- > > > Steve. > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Jul 27 23:24:26 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 27 Jul 2022 22:24:26 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> Message-ID: On Wed, 27 Jul 2022, 21:15 Benoit Minisini, < benoit.minisini at gambas-basic.org> wrote: > Le 27/07/2022 ? 13:57, Bruce Steers a ?crit : > > want a upgraded up WebAudio Ben? > > > > Mods make it MUCH more useful. > > > > I basically made a web player and needed these changes to make it better. > > > > https://gitlab.com/bsteers4/gambas/-/tree/WebAudio-upgrade > > > > > > changes... > > I'm not against the principle, but I don't like the interface you > chosen: you must follow the same standards as the other Gambas classes > as much as possible (look in 'gb.media' for example). > Okay will do. > > > > > [GB.WEB.GUI] > > * NEW: WebAudio.AutoPlay, Autoplay audio on loading. > > * NEW: WebAudio.OtherSources for alternative items. > > Rename as just "Sources", and fix your code: by copying the array > internally, by detecting when the property value is null... > > > * NEW: WebAudio.UnsupportedText sets message to display if browser does > not support audio.. > > I don't find this property useful. Just implement a standard > translatable message inside the component. > Okay > * NEW: WebAudio_Ready(Duration as Float) event fires when audio loads and > contains track length. > > Don't pass 'Duration' as argument. The user will read the property But with this and the timeupdate event passing the argument is how the property ges set. Is there another way to get the javascript elt.currentTime value to the Duration property ? > * NEW: WebAudio_TimeUpdate(Position As Float) event fires as audio plays > with time pos. > > Rename the event as 'Position', with no argument. The user will read the > property. > But there is the property Position already. Can an event share a property name. (I am at work so cannot test) > > > * NEW: WebAudio_Ended() event fires when a track finishes > > Rename as 'End'. > Sure > > > * NEW: WebAudio_HasPaused() event triggers when audio pauses. > > Rename as 'Pause'. > Will it clash with the existing .Pause() method? > > > * New: WebAudio.SetPosition(Position As Float) sets playback position. > > Replace by the 'Position' property. > Yes oops, already did that. > > > * NEW: Use an observer to get event data internally. > > * NEW: Property WebAudio.Duration gets song length. > > * NEW: Property WebAudio.Position, get or set song position. > > * NEW: Property Paused gets or sets paused state. > > * OPT: clean up code and add inline wiki help. > > > > The remaining seems to be ok. > Okay I'll get on it and submit a merge soon... Respects BruceS > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Jul 28 01:23:36 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 28 Jul 2022 00:23:36 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> Message-ID: > > > * NEW: WebAudio_Ready(Duration as Float) event fires when audio loads >> and contains track length. >> >> Don't pass 'Duration' as argument. The user will read the property > > > But with this and the timeupdate event passing the argument is how the > property ges set. > > Is there another way to get the javascript elt.currentTime value to the > Duration property ? > How about a hidden event and use it for passing the data and firing required event? Respects BruceS > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Thu Jul 28 03:06:33 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Thu, 28 Jul 2022 04:06:33 +0300 Subject: [Gambas-user] Fwd: Building from source this happens with configure -C In-Reply-To: References: <1867fbf9-bd82-abb9-2978-fd466487c6f4@smartsonsite.com> Message-ID: Wait, I just noticed this " cd: too many arguments", maybe the script gets confused and it is not in the right path... Benoit? Jussi On Thu, Jul 28, 2022 at 4:01 AM Jussi Lahtinen wrote: > What example "touch warnings.log" gives you, no problems? > > > Jussi > > On Thu, Jul 28, 2022 at 3:39 AM sbungay wrote: > >> Downloaded from http://gambas.sourceforge.net/en/main.html, July 22 2022 >> release of gambas-3.17.3.tar.bz2. >> >> Permissions look OK, for example "warnings.log" (created during the >> .reconf-all is not in the tarball, so it has been created. It is zero >> bytes long but it IS there and has permissions of 552 (-RW-RW-R-). >> >> >> On 2022-07-27 17:13, Jussi Lahtinen wrote: >> > The files are "read only"? >> > How did you obtain the sources? >> > >> > Jussi >> > >> > On Wed, Jul 27, 2022 at 9:20 PM sbungay > > > wrote: >> > >> > Linux Mint 19.3 Tricia (Based on UBUNTU Bionic) >> > Kernel: 5.4.0-122-generic >> > GNOME 3.28.2 >> > >> > I've applied the package dependency list for Ubuntu Bionic (18.04). >> No >> > problem there. >> > >> > On running ./configure -C I start to see errors towards the end (or >> > what >> > I think is the end). Then start to see permission denied messages >> and >> > it all goes to he** after that. >> > >> > It looks like there is a permissions issue, but the ./configure -C >> is >> > being run as me (not as root and not using sudo), in a directory my >> UID >> > and GID have full access to. >> > >> > P.S. I've also tried using sudo to configure things and get the same >> > error. It's as if another GroupID is being used and doesn't have >> > rights. >> > >> > checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports >> > shared libraries... yes >> > checking dynamic linker characteristics... (cached) GNU/Linux ld.so >> > checking how to hardcode library paths into programs... immediate >> > checking for libintl headers... ./configure: line 18935: cd: too >> many >> > arguments >> > /usr/include/ >> > checking for libintl libraries... no >> > configure: WARNING: Unable to find file: libintl.so >> > ./configure: line 19108: ./warnings.log: Permission denied >> > touch: cannot touch 'DISABLED.libintl': Permission denied >> > touch: cannot touch 'FAILED': Permission denied >> > configure: WARNING: Cannot find 'libintl' library. It may be located >> > inside the system C library >> > ./configure: line 19168: ./warnings.log: Permission denied >> > checking for libiconv headers... /usr/include/ >> > checking for libiconv libraries... no >> > configure: WARNING: Unable to find file: libiconv.so >> > ./configure: line 19477: ./warnings.log: Permission denied >> > touch: cannot touch 'DISABLED.libiconv': Permission denied >> > touch: cannot touch 'FAILED': Permission denied >> > configure: WARNING: Cannot find 'libiconv' library. It may be merged >> > inside the system C library >> > ./configure: line 19537: ./warnings.log: Permission denied >> > checking for pkg-config... /usr/bin/pkg-config >> > checking pkg-config is at least version 0.9.0... yes >> > cp: cannot create regular file 'warnings.log.before': Permission >> denied >> > checking for libffi component with pkg-config... ./configure: line >> > 20049: confdefs.h: Permission denied >> > OK >> > checking for gb.inotify headers... /usr/include/x86_64-linux-gnu/ >> > checking for gb.inotify libraries... >> > ./configure: line 21145: confdefs.h: Permission denied >> > ./configure: line 21194: confdefs.h: Permission denied >> > checking for xdg-mime... xdg-mime >> > ./configure: line 21251: confcache: Permission denied >> > ./configure: line 21312: confcache: Permission denied >> > configure: not updating unwritable cache ../config.cache >> > checking that generated files are newer than configure... done >> > configure: creating ./config.status >> > ./configure: line 21416: ./config.status: Permission denied >> > ./configure: line 21430: ./config.status: Permission denied >> > ./configure: line 21800: ./config.status: Permission denied >> > ./configure: line 21828: ./config.status: Permission denied >> > ./configure: line 21836: ./config.status: Permission denied >> > ./configure: line 21869: ./config.status: Permission denied >> > ./configure: line 21888: ./config.status: Permission denied >> > ./configure: line 21965: ./config.status: Permission denied >> > ./configure: line 21976: ./config.status: Permission denied >> > ./configure: line 21987: ./config.status: Permission denied >> > ./configure: line 22378: ./config.status: Permission denied >> > ./configure: line 22490: conf12544subs.sh: Permission denied >> > configure: error: could not make ./config.status >> > rm: cannot remove './config.status': Permission denied >> > configure: error: ./configure failed for main-- >> > >> > >> > Steve. >> > >> > ----[ http://gambaswiki.org/wiki/doc/netiquette >> > ]---- >> > >> > >> > >> > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> >> -- >> Stephen A. Bungay, Prop. >> Smarts On Site >> Managed Information Systems & Support Services >> 705.734.0597 >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Thu Jul 28 06:10:05 2022 From: brian at westwoodsvcs.com (Brian G) Date: Wed, 27 Jul 2022 21:10:05 -0700 (PDT) Subject: [Gambas-user] TERMINALVIEW Dropping Characters Message-ID: <930830842.65616.1658981405609.JavaMail.zimbra@westwoodsvcs.com> I am having an issue with the terminal view when I am printing escape sequences. for instance printing "\e[6;10H" & "some message" to place text on the screen at a fixed location. Will randomly print a message that the "\e" is not supported and then print everything else as string of text it seems to be completely random. Is this a know issue, has anyone else seen this? I am using the teminalview.print method. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Jul 28 10:05:06 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 28 Jul 2022 09:05:06 +0100 Subject: [Gambas-user] Can an event be hidden? Message-ID: I tied making a hidden event with gb.web.gui GetEventJS(() command Event _Hidden That hides it from the IDE okay but then using Name__Hidden() does not work. Is there a way to make a hidden event? Cheers BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Jul 28 10:28:44 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 28 Jul 2022 10:28:44 +0200 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> Message-ID: <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> Le 28/07/2022 ? 01:23, Bruce Steers a ?crit?: > > ?How about a hidden event and use it for passing the data and firing > required event? > Nope. You must send the 'Position' property from the browser to the server by using: gw.update(, '', ); Where is the id of the control, the name of the property, and its value. Then you handle that message on the server in the '_UpdateProperty' hidden method of the control. Look at the source code of 'WebTextBox' to see how the 'Text' property is updated when the text changes on the browser. Once you have updated the property, you can raise the 'Position' event. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Thu Jul 28 10:40:07 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 28 Jul 2022 10:40:07 +0200 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> Message-ID: <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> Le 28/07/2022 ? 10:28, Benoit Minisini a ?crit?: > Le 28/07/2022 ? 01:23, Bruce Steers a ?crit?: >> >> ??How about a hidden event and use it for passing the data and firing >> required event? >> > > Nope. > > You must send the 'Position' property from the browser to the server by > using: > > ??? gw.update(, '', ); > > Where is the id of the control, the name of the > property, and its value. > > Then you handle that message on the server in the '_UpdateProperty' > hidden method of the control. > > Look at the source code of 'WebTextBox' to see how the 'Text' property > is updated when the text changes on the browser. > > Once you have updated the property, you can raise the 'Position' event. > > Regards, > Note that you have a WebControl '_GetUpdateJS()' method that generates for you the HTML code that calls 'gw.update' when a specific DOM event is triggered. See again WebTextBox '_Render()' method for an example. -- Beno?t Minisini. From bsteers4 at gmail.com Thu Jul 28 11:33:41 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 28 Jul 2022 10:33:41 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> Message-ID: On Thu, 28 Jul 2022 at 09:41, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 28/07/2022 ? 10:28, Benoit Minisini a ?crit : > > Le 28/07/2022 ? 01:23, Bruce Steers a ?crit : > >> > >> How about a hidden event and use it for passing the data and firing > >> required event? > >> > > > > Nope. > > > > You must send the 'Position' property from the browser to the server by > > using: > > > > gw.update(, '', ); > > > > Where is the id of the control, the name of the > > property, and its value. > > > > Then you handle that message on the server in the '_UpdateProperty' > > hidden method of the control. > > > > Look at the source code of 'WebTextBox' to see how the 'Text' property > > is updated when the text changes on the browser. > > > > Once you have updated the property, you can raise the 'Position' event. > > > > Regards, > > > > Note that you have a WebControl '_GetUpdateJS()' method that generates > for you the HTML code that calls 'gw.update' when a specific DOM event > is triggered. > > See again WebTextBox '_Render()' method for an example. > Thanks Ben, I've implemented the gw.update() + _UpdateProperty() method and it's sooo much better, the page objects were flickering during play before but now it's looking nice and clean, i guess for the above mentioned refreshing reasons Also now i can get rid of the Observer as no longer needed. Many thanks for the pointers :) Am currently rebuilding and checking out gb.media MediaPlayer for guidance :) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Jul 28 11:40:45 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 28 Jul 2022 11:40:45 +0200 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> Message-ID: <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> Le 28/07/2022 ? 11:33, Bruce Steers a ?crit?: > > > On Thu, 28 Jul 2022 at 09:41, Benoit Minisini > > wrote: > > Le 28/07/2022 ? 10:28, Benoit Minisini a ?crit?: > > Le 28/07/2022 ? 01:23, Bruce Steers a ?crit?: > >> > >> ??How about a hidden event and use it for passing the data and > firing > >> required event? > >> > > > > Nope. > > > > You must send the 'Position' property from the browser to the > server by > > using: > > > >? ??? gw.update(, '', ); > > > > Where is the id of the control, the name of the > > property, and its value. > > > > Then you handle that message on the server in the '_UpdateProperty' > > hidden method of the control. > > > > Look at the source code of 'WebTextBox' to see how the 'Text' > property > > is updated when the text changes on the browser. > > > > Once you have updated the property, you can raise the 'Position' > event. > > > > Regards, > > > > Note that you have a WebControl '_GetUpdateJS()' method that generates > for you the HTML code that calls 'gw.update' when a specific DOM event > is triggered. > > See again WebTextBox '_Render()' method for an example. > > > Thanks Ben, I've implemented the gw.update()?+ _UpdateProperty() method > and it's sooo much better, > the page objects were flickering during play before but now it's looking > nice and clean, i guess for the above mentioned refreshing reasons > > Also now i can get rid of the Observer as no longer needed. > > Many thanks for the pointers :) > Am currently rebuilding and checking out gb.media MediaPlayer for > guidance :) > > Respects > BruceS > When a property of a control changes, you usually must refresh it by calling the _Refresh() method. You can avoid a full refresh of the control to speed up things by using custom javascript code instead. Look at the SetText() method of the WebTextBox control to see an example. Another point: you must not catch an event on the browser side if you don't implement the event handler on the server side. To detect that, use the 'Object.CanRaise()' method. As usual, look at the '_Render' method of WebTextBox for an example. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Thu Jul 28 13:51:43 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 28 Jul 2022 12:51:43 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> Message-ID: On Thu, 28 Jul 2022 at 10:41, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 28/07/2022 ? 11:33, Bruce Steers a ?crit : > > > > > > On Thu, 28 Jul 2022 at 09:41, Benoit Minisini > > > > wrote: > > > > Le 28/07/2022 ? 10:28, Benoit Minisini a ?crit : > > > Le 28/07/2022 ? 01:23, Bruce Steers a ?crit : > > >> > > >> How about a hidden event and use it for passing the data and > > firing > > >> required event? > > >> > > > > > > Nope. > > > > > > You must send the 'Position' property from the browser to the > > server by > > > using: > > > > > > gw.update(, '', ); > > > > > > Where is the id of the control, the name of the > > > property, and its value. > > > > > > Then you handle that message on the server in the > '_UpdateProperty' > > > hidden method of the control. > > > > > > Look at the source code of 'WebTextBox' to see how the 'Text' > > property > > > is updated when the text changes on the browser. > > > > > > Once you have updated the property, you can raise the 'Position' > > event. > > > > > > Regards, > > > > > > > Note that you have a WebControl '_GetUpdateJS()' method that > generates > > for you the HTML code that calls 'gw.update' when a specific DOM > event > > is triggered. > > > > See again WebTextBox '_Render()' method for an example. > > > > > > Thanks Ben, I've implemented the gw.update() + _UpdateProperty() method > > and it's sooo much better, > > the page objects were flickering during play before but now it's looking > > nice and clean, i guess for the above mentioned refreshing reasons > > > > Also now i can get rid of the Observer as no longer needed. > > > > Many thanks for the pointers :) > > Am currently rebuilding and checking out gb.media MediaPlayer for > > guidance :) > > > > Respects > > BruceS > > > > When a property of a control changes, you usually must refresh it by > calling the _Refresh() method. > > You can avoid a full refresh of the control to speed up things by using > custom javascript code instead. Look at the SetText() method of the > WebTextBox control to see an example. > > Another point: you must not catch an event on the browser side if you > don't implement the event handler on the server side. > > To detect that, use the 'Object.CanRaise()' method. As usual, look at > the '_Render' method of WebTextBox for an example. > I see so i have my _Render sub like this now... Public Sub _Render() Print "" If $sSources Then PrintSources Print ("Html audio not supported") Print ""; End Have I understood correctly? The "End" event is the only event not handled internally, all the others set a property in the class >From studying the WebTextBox code i see the _GetUpdateJS() being used so i did that way. I only use "If Object.CanRaise()" on the End event as it's the only one that may not be used. thanks again :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Jul 28 14:48:17 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 28 Jul 2022 13:48:17 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> Message-ID: On Thu, 28 Jul 2022 at 10:41, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 28/07/2022 ? 11:33, Bruce Steers a ?crit : > > > > > > On Thu, 28 Jul 2022 at 09:41, Benoit Minisini > > > > wrote: > > > > Le 28/07/2022 ? 10:28, Benoit Minisini a ?crit : > > > Le 28/07/2022 ? 01:23, Bruce Steers a ?crit : > > >> > > >> How about a hidden event and use it for passing the data and > > firing > > >> required event? > > >> > > > > > > Nope. > > > > > > You must send the 'Position' property from the browser to the > > server by > > > using: > > > > > > gw.update(, '', ); > > > > > > Where is the id of the control, the name of the > > > property, and its value. > > > > > > Then you handle that message on the server in the > '_UpdateProperty' > > > hidden method of the control. > > > > > > Look at the source code of 'WebTextBox' to see how the 'Text' > > property > > > is updated when the text changes on the browser. > > > > > > Once you have updated the property, you can raise the 'Position' > > event. > > > > > > Regards, > > > > > > > Note that you have a WebControl '_GetUpdateJS()' method that > generates > > for you the HTML code that calls 'gw.update' when a specific DOM > event > > is triggered. > > > > See again WebTextBox '_Render()' method for an example. > > > > > > Thanks Ben, I've implemented the gw.update() + _UpdateProperty() method > > and it's sooo much better, > > the page objects were flickering during play before but now it's looking > > nice and clean, i guess for the above mentioned refreshing reasons > > > > Also now i can get rid of the Observer as no longer needed. > > > > Many thanks for the pointers :) > > Am currently rebuilding and checking out gb.media MediaPlayer for > > guidance :) > > > > Respects > > BruceS > > > > When a property of a control changes, you usually must refresh it by > calling the _Refresh() method. > > You can avoid a full refresh of the control to speed up things by using > custom javascript code instead. Look at the SetText() method of the > WebTextBox control to see an example. > > Another point: you must not catch an event on the browser side if you > don't implement the event handler on the server side. > > To detect that, use the 'Object.CanRaise()' method. As usual, look at > the '_Render' method of WebTextBox for an example. > Right, have modified (i hope to standard) [GB.WEB.GUI] - NEW: WebAudio.AutoPlay, Auto play audio on loading. - NEW: WebAudio.Sources for alternative items. - NEW: WebAudio_Ready() event fires when audio has loaded. - NEW: WebAudio_Position() event fires as audio position changes during play. - NEW: WebAudio_End() event fires when a track finishes - NEW: WebAudio_Pause() event triggers when audio pauses. - NEW: Property WebAudio.Duration gets song length. (Also WebAudio.Length as a synonym) - NEW: Property WebAudio.Position, get or set song position. (Also WebAudio.Pos as a synonym) - NEW: Property Paused gets or sets paused state. - OPT: Do not reset play position to 0 on gw.sound.play() in lib.js so audio can un-pause. - OPT: Clean up code and add inline wiki help in WebAudio.class Put up a merge request as a Draft: I think I addressed all the issues. Let me know if any thing is wrong. Many thanks BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Jul 28 14:57:53 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 28 Jul 2022 14:57:53 +0200 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> Message-ID: Le 28/07/2022 ? 14:48, Bruce Steers a ?crit?: > * OPT: Do not reset play position to 0 on gw.sound.play() in lib.js so > audio can un-pause. This seems to not be backward-compatible... If I remember, the goal was that Play() always plays from the start. Now there is a paused state, it is possible to let Play() always start from the start when the audio is not in paused state? -- Beno?t Minisini. From bsteers4 at gmail.com Thu Jul 28 15:14:45 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 28 Jul 2022 14:14:45 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> Message-ID: On Thu, 28 Jul 2022 at 13:58, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 28/07/2022 ? 14:48, Bruce Steers a ?crit : > > * OPT: Do not reset play position to 0 on gw.sound.play() in lib.js so > > audio can un-pause. > > This seems to not be backward-compatible... > > If I remember, the goal was that Play() always plays from the start. > > Now there is a paused state, it is possible to let Play() always start > from the start when the audio is not in paused state? > sure. i did this.. play: function(id) { var elt = $_(id); if (!elt.paused) { elt.pause(); elt.currentTime = 0; } elt.play(); } }, Respects. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Jul 28 15:17:35 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 28 Jul 2022 14:17:35 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> Message-ID: On Thu, 28 Jul 2022 at 13:58, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 28/07/2022 ? 14:48, Bruce Steers a ?crit : > > * OPT: Do not reset play position to 0 on gw.sound.play() in lib.js so > > audio can un-pause. > Oops seems this was the previous edit and I had not actually changed it on the new version lol ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Jul 28 15:24:01 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 28 Jul 2022 14:24:01 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> Message-ID: On Thu, 28 Jul 2022 at 14:14, Bruce Steers wrote: > > > On Thu, 28 Jul 2022 at 13:58, Benoit Minisini < > benoit.minisini at gambas-basic.org> wrote: > >> Le 28/07/2022 ? 14:48, Bruce Steers a ?crit : >> > * OPT: Do not reset play position to 0 on gw.sound.play() in lib.js so >> > audio can un-pause. >> >> This seems to not be backward-compatible... >> >> If I remember, the goal was that Play() always plays from the start. >> >> Now there is a paused state, it is possible to let Play() always start >> from the start when the audio is not in paused state? >> > > sure. > i did this.. > > play: function(id) > { > var elt = $_(id); > if (!elt.paused) > { > elt.pause(); > elt.currentTime = 0; > } > elt.play(); > } > }, > Respects. > Maybe it would be better for compatibility to just add a new unpause function instead and leave play() as is? Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Jul 28 15:32:06 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 28 Jul 2022 15:32:06 +0200 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> Message-ID: <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> Le 28/07/2022 ? 15:24, Bruce Steers a ?crit?: > > > Maybe it would be better for compatibility to just add a new unpause > function instead and leave play() as is? > Why? Calling play() while it's playing should have logically no effect, but I have no problem with letting play() starts again from zero instead. -- Beno?t Minisini. From bsteers4 at gmail.com Thu Jul 28 15:41:59 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 28 Jul 2022 14:41:59 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> Message-ID: On Thu, 28 Jul 2022 at 14:33, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 28/07/2022 ? 15:24, Bruce Steers a ?crit : > > > > > > Maybe it would be better for compatibility to just add a new unpause > > function instead and leave play() as is? > > > > Why? Calling play() while it's playing should have logically no effect, > but I have no problem with letting play() starts again from zero instead. > Well for compatibility Like Mr Monk says (reportedly) "don't change anything, ever" ;) I think I have done all i can with the merge request. If you are happy with the lib.js changes I just made then i guess it's ready for the masses :) I just did one final commit to re-disable the Width property from the IDE as i added that when before it had a Controls property to show the controls or not. I leave it in your oh so very capable hands :) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Jul 28 17:19:52 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 28 Jul 2022 17:19:52 +0200 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> Message-ID: <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> Le 28/07/2022 ? 15:41, Bruce Steers a ?crit?: > > I leave it in your oh so very capable hands :) > > Respects > BruceS > I have fixed a lot of problems in the last commit. Please look at it carefully, and ask me if you don't understand why what you wrote was wrong. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Thu Jul 28 17:20:37 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 28 Jul 2022 17:20:37 +0200 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> Message-ID: <95233f3c-ea96-a6c5-e4a2-bdda2ed1c3d2@gambas-basic.org> Le 28/07/2022 ? 17:19, Benoit Minisini a ?crit?: > Le 28/07/2022 ? 15:41, Bruce Steers a ?crit?: >> >> I leave it in your oh so very capable hands :) >> >> Respects >> BruceS >> > > I have fixed a lot of problems in the last commit. Please look at it > carefully, and ask me if you don't understand why what you wrote was wrong. > > Regards, > I added a Tracking property too. This was not to fix a bug, but if I don't care with the value of the Position property, I don't want my server to receive a request each time the position changes. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Thu Jul 28 20:27:20 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 28 Jul 2022 19:27:20 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> Message-ID: On Thu, 28 Jul 2022 at 16:20, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 28/07/2022 ? 15:41, Bruce Steers a ?crit : > > > > I leave it in your oh so very capable hands :) > > > > Respects > > BruceS > > > > I have fixed a lot of problems in the last commit. Please look at it > carefully, and ask me if you don't understand why what you wrote was wrong. > > Regards, > Sorry Ben. Alas there's one more bug but i'm having git problems at mo. I bypassed the gw.sound.play call in WebAudio.Play at some point and forgot to revert the change :( It is.. WebForm._AddJavascript("$_(" & JS(Me.Name) & ").play()") But should of course be... WebForm._AddJavascript("gw.sound.play(" & JS(Me.Name) & ")") Very sorry about that and the other errors. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Jul 29 10:53:12 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 29 Jul 2022 09:53:12 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> References: <6410af28-b285-05b4-ba04-07c8f79ef77d@gambas-basic.org> <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> Message-ID: On Thu, 28 Jul 2022 at 16:20, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 28/07/2022 ? 15:41, Bruce Steers a ?crit : > > > > I leave it in your oh so very capable hands :) > > > > Respects > > BruceS > > > > I have fixed a lot of problems in the last commit. Please look at it > carefully, and ask me if you don't understand why what you wrote was wrong. > Seems I didn't use the correct naming convention for $sSources but didn't see many actual "bug" fixes. More re-coded to your particular liking. and filetypes handled differently. (fair enough) Seemed pretty close to right to me :) Seems with a bit of teamwork WebAudio is now a much better control for us all :) Thanks Benoit. -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Fri Jul 29 12:12:25 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 29 Jul 2022 12:12:25 +0200 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> Message-ID: <290f0b46-9b1d-af9d-b7b4-4a2805295ecd@gambas-basic.org> Le 29/07/2022 ? 10:53, Bruce Steers a ?crit?: > > > On Thu, 28 Jul 2022 at 16:20, Benoit Minisini > > wrote: > > Le 28/07/2022 ? 15:41, Bruce Steers a ?crit?: > > > > I leave it in your oh so very capable hands :) > > > > Respects > > BruceS > > > > I have fixed a lot of problems in the last commit. Please look at it > carefully, and ask me if you don't understand why what you wrote was > wrong. > > > Seems I didn't use the correct naming convention for $sSources but > didn't see many actual "bug" fixes. 1) The way you handled the 'Source' property was incorrect. You must not store the reference of the array sent by the user, you had to make a copy so that the object owns the array. And you have to deal with NULL values. 2) You generated HTML without using the Html() conversion function, leading to possible incorrect HTML generation or worse (script injection...). 3) Your automatic detection of mimetypes didn't work. 4) The javascript emitted when setting the Position property was incorrect, because of a bad use of Str() instead of CStr(). Or use JS() like I did, if you want to be sure to emit syntactically correct javascript. Try at least to never do bug #2 and bug #4 (confusion between Str and CStr) again in any of your projects. The other are less critical! :-) Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Sat Jul 30 02:08:46 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 30 Jul 2022 01:08:46 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <290f0b46-9b1d-af9d-b7b4-4a2805295ecd@gambas-basic.org> References: <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> <290f0b46-9b1d-af9d-b7b4-4a2805295ecd@gambas-basic.org> Message-ID: On Fri, 29 Jul 2022 at 11:13, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 29/07/2022 ? 10:53, Bruce Steers a ?crit : > > > > > > On Thu, 28 Jul 2022 at 16:20, Benoit Minisini > > > > wrote: > > > > Le 28/07/2022 ? 15:41, Bruce Steers a ?crit : > > > > > > I leave it in your oh so very capable hands :) > > > > > > Respects > > > BruceS > > > > > > > I have fixed a lot of problems in the last commit. Please look at it > > carefully, and ask me if you don't understand why what you wrote was > > wrong. > > > > > > Seems I didn't use the correct naming convention for $sSources but > > didn't see many actual "bug" fixes. > > 1) The way you handled the 'Source' property was incorrect. You must not > store the reference of the array sent by the user, you had to make a > copy so that the object owns the array. And you have to deal with NULL > values. > ahh I see, will look into that. > 2) You generated HTML without using the Html() conversion function, > leading to possible incorrect HTML generation or worse (script > injection...). > Aah i see, will be sure to use Html for any generated output then. 3) Your automatic detection of mimetypes didn't work. > okay yeah maybe not for audio x-wav but audio/ogg is accepted format so. 2 out of 3 eh ;) > 4) The javascript emitted when setting the Position property was > incorrect, because of a bad use of Str() instead of CStr(). Or use JS() > like I did, if you want to be sure to emit syntactically correct > javascript. > Ahh okay, i didn't think just a numeric float would produce any chars in need of conversion but that's a valued note, thank you. Try at least to never do bug #2 and bug #4 (confusion between Str and > CStr) again in any of your projects. The other are less critical! :-) > Thanks again Ben, valued advice. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sat Jul 30 14:46:20 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 30 Jul 2022 13:46:20 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <290f0b46-9b1d-af9d-b7b4-4a2805295ecd@gambas-basic.org> References: <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> <290f0b46-9b1d-af9d-b7b4-4a2805295ecd@gambas-basic.org> Message-ID: On Fri, 29 Jul 2022 at 11:13, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 29/07/2022 ? 10:53, Bruce Steers a ?crit : > > > > > > On Thu, 28 Jul 2022 at 16:20, Benoit Minisini > > > > wrote: > > > > Le 28/07/2022 ? 15:41, Bruce Steers a ?crit : > > > > > > I leave it in your oh so very capable hands :) > > > > > > Respects > > > BruceS > > > > > > > I have fixed a lot of problems in the last commit. Please look at it > > carefully, and ask me if you don't understand why what you wrote was > > wrong. > > > > > > Seems I didn't use the correct naming convention for $sSources but > > didn't see many actual "bug" fixes. > > 1) The way you handled the 'Source' property was incorrect. You must not > store the reference of the array sent by the user, you had to make a > copy so that the object owns the array. And you have to deal with NULL > values. > > 2) You generated HTML without using the Html() conversion function, > leading to possible incorrect HTML generation or worse (script > injection...). > > 3) Your automatic detection of mimetypes didn't work. > > 4) The javascript emitted when setting the Position property was > incorrect, because of a bad use of Str() instead of CStr(). Or use JS() > like I did, if you want to be sure to emit syntactically correct > javascript. > > Try at least to never do bug #2 and bug #4 (confusion between Str and > CStr) again in any of your projects. The other are less critical! :-) > > Regards, > I got more cool ideas that will probably be coded terribly if I do it ;) lol 1. Make WebEvent.class for use in the WebForm_Event() event. this would open up many avenues for coding tricks with non-handled events. I figured it out by reading the WebControl.class but i think an Event.class and a wiki page to describe the class/WebForm_Event() event is needed. 2. Slider needs mouse-up, mouse-down events so you can disable it if it's currently being slid. (or handle internally in the WebSlider.class to not update if being slid) for purpose of something like an audio position slider that will update itself regularly. It's currently kinda unusable for that (i fixed by make my own version with mouseup/mousedown events) 3. I'm sure i'll think of more upgrades as I use it. On a more awesome note I should say I'm really liking gb.web.gui. ?? I've knocked up a webpage for my music as i've mentioned before http://bws.org.uk/music it's looking good (even on my phone) Got an audio player with custom controls thanks to my terrible coding abilities and Benoits awesome coding abilities :) I've made an alternative WebButton.class that supports a Hover image. (the play button) trouble is the image flicks to normal and back as it crosses into the image inside the button. Been able to make functions to pause video when audio is played and vice-versa Volume controls of the video/audio all link with a volume slider. Page hit counter/ song play counter Wrapping my head around the principles of the web interface is taking a while but i'm getting there :) All thanks to Gambas :) Cheers Ben Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Jul 30 16:16:49 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 30 Jul 2022 16:16:49 +0200 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: References: <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> <290f0b46-9b1d-af9d-b7b4-4a2805295ecd@gambas-basic.org> Message-ID: <31a1f8b5-98a0-aaa1-a43c-2e65d59a3ad3@gambas-basic.org> Le 30/07/2022 ? 14:46, Bruce Steers a ?crit?: > > I got more cool ideas that will probably be coded terribly if I do it ;) lol > > 1. Make WebEvent.class for use in the WebForm_Event() event.? this would > open up many avenues for coding tricks with non-handled events. I > figured it out by reading the WebControl.class but i think an > Event.class and a wiki page to describe the class/WebForm_Event() event > is needed. What do you want to achieve exactly? > > 2. Slider needs mouse-up, mouse-down events so you can disable it if > it's currently being slid.? (or handle internally in the WebSlider.class > to not update if being slid) for purpose of something like an audio > position slider that will update itself regularly.? It's currently kinda > unusable for that (i fixed by make my own version with mouseup/mousedown > events) But the WebSlider Change event is -not- raised when the slider button is slid. It is raised on mouse button release. What are you talking about? > > 3. I'm sure i'll think of more upgrades as I use it. > > On a more awesome note I should say I'm really liking gb.web.gui. ?? > I've knocked up a webpage for my music as i've mentioned before > http://bws.org.uk/music ? it's looking good > (even on my phone) > Got an audio player with custom controls thanks to my terrible coding > abilities and Benoits awesome coding abilities :) Thanks. It's mainly that you must think more before emitting code. :-) > I've made an alternative WebButton.class that supports a Hover image. > (the play button)? trouble is the image flicks to normal and back as it > crosses into the image inside the button. This should normally be done purely with CSS, and I don't see how it could not work. Regards, -- Beno?t Minisini. From t.lee.davidson at gmail.com Sat Jul 30 16:23:42 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 30 Jul 2022 10:23:42 -0400 Subject: [Gambas-user] TERMINALVIEW Dropping Characters In-Reply-To: <930830842.65616.1658981405609.JavaMail.zimbra@westwoodsvcs.com> References: <930830842.65616.1658981405609.JavaMail.zimbra@westwoodsvcs.com> Message-ID: On 7/28/22 00:10, Brian G wrote: > I am having an issue with the terminal view when I am printing escape sequences. > > for instance printing "\e[6;10H" & "some message" to place text on the screen at a fixed location. > > Will randomly print a message that the "\e" is not supported and then print everything else as string of text > > it seems to be completely random. Is this a know issue, has anyone else seen this? > I am using the teminalview.print method. > > "Failure is the key to success; > ?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G I just knocked up a small test and printed the escape sequence over 500 times with no error (using the Qt5 toolkit). If all you need the sequences for it to position the cursor, TerminalView has a Goto method. Be aware that Goto will add a line and scroll as necessary while an escape sequence does not. -- Lee From bsteers4 at gmail.com Sat Jul 30 17:22:03 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 30 Jul 2022 16:22:03 +0100 Subject: [Gambas-user] Supped up the WebAudio.class In-Reply-To: <31a1f8b5-98a0-aaa1-a43c-2e65d59a3ad3@gambas-basic.org> References: <0362fefd-26d2-9070-b405-14c1ed810186@gambas-basic.org> <544e3b9b-054c-5131-5c76-45a177cfdc2f@gambas-basic.org> <30c42dc0-af65-684f-a337-1e02aae0ac3e@gambas-basic.org> <7606b3e2-e34b-0455-d22e-2475cae8f585@gambas-basic.org> <70dcbbe5-39c0-d771-6c6a-295ba9daa630@gambas-basic.org> <290f0b46-9b1d-af9d-b7b4-4a2805295ecd@gambas-basic.org> <31a1f8b5-98a0-aaa1-a43c-2e65d59a3ad3@gambas-basic.org> Message-ID: On Sat, 30 Jul 2022, 15:17 Benoit Minisini, < benoit.minisini at gambas-basic.org> wrote: > Le 30/07/2022 ? 14:46, Bruce Steers a ?crit : > > > > I got more cool ideas that will probably be coded terribly if I do it ;) > lol > > > > 1. Make WebEvent.class for use in the WebForm_Event() event. this would > > open up many avenues for coding tricks with non-handled events. I > > figured it out by reading the WebControl.class but i think an > > Event.class and a wiki page to describe the class/WebForm_Event() event > > is needed. > > What do you want to achieve exactly? > Catching events that trigger that are not listed, like gotfocus for example. I could intercept and manage all kinds of events with it without having to set up a custom class like I did with webslider The WebForm_Event() seems pretty useless at present. > > > > 2. Slider needs mouse-up, mouse-down events so you can disable it if > > it's currently being slid. (or handle internally in the WebSlider.class > > to not update if being slid) for purpose of something like an audio > > position slider that will update itself regularly. It's currently kinda > > unusable for that (i fixed by make my own version with mouseup/mousedown > > events) > > But the WebSlider Change event is -not- raised when the slider button is > slid. It is raised on mouse button release. > > What are you talking about? > My web audio player uses a slider to show position and to change position. You can see what I mean in the test app I made for WebAudio as your webslider is not fixed. Because the code updates the WebSlider.value on time change triggers. When I grab the slider to move it the time change event moves the slider back to time position while dragging. I can't stop.it On the player on that website link of mine a similar method is used but I've made mousedown and mouseup events for slider so I can disable the position updating the slider till mouseup. > > > 3. I'm sure i'll think of more upgrades as I use it. > > > > On a more awesome note I should say I'm really liking gb.web.gui. ?? > > I've knocked up a webpage for my music as i've mentioned before > > http://bws.org.uk/music it's looking good > > (even on my phone) > > Got an audio player with custom controls thanks to my terrible coding > > abilities and Benoits awesome coding abilities :) > > Thanks. It's mainly that you must think more before emitting code. :-) > Yes, and learn more I guess. Cheers Ben > > I've made an alternative WebButton.class that supports a Hover image. > > (the play button) trouble is the image flicks to normal and back as it > > crosses into the image inside the button. > > This should normally be done purely with CSS, and I don't see how it > could not work. > It worked nicely when I triggered the image change from just the image hover event, then I changed it to be the button hover event not the inside image. It shows hover image when hovering over both the button and the image but when crossing over the image boundary it flicks back to normal image for a moment. It's not a deal breaker for me ? Perhaps you could do a better job of enabling a dual image button. My ultimate objective was a triple image button that's has images for normal, hovered and pressed states. And then possibly image saturation/dimming for disabled state. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 31 21:44:44 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 31 Jul 2022 20:44:44 +0100 Subject: [Gambas-user] gb.web.gui and Canvas Message-ID: Anything been considered with html Canvas? https://www.w3schools.com/tags/ref_canvas.asp Looks like some kind of WebPaint.class could be added to gb.web.gui. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sun Jul 31 21:58:40 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 31 Jul 2022 21:58:40 +0200 Subject: [Gambas-user] gb.web.gui and Canvas In-Reply-To: References: Message-ID: Le 31/07/2022 ? 21:44, Bruce Steers a ?crit?: > Anything been considered with html Canvas? > https://www.w3schools.com/tags/ref_canvas.asp > > > Looks like some kind of WebPaint.class could be added to gb.web.gui. > > Respects > BruceS > Yep. The difficulty is keeping the state of the canvas on the server. -- Beno?t Minisini. From bsteers4 at gmail.com Sun Jul 31 22:22:02 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 31 Jul 2022 21:22:02 +0100 Subject: [Gambas-user] gb.web.gui and Canvas In-Reply-To: References: Message-ID: On Sun, 31 Jul 2022 at 20:59, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 31/07/2022 ? 21:44, Bruce Steers a ?crit : > > Anything been considered with html Canvas? > > https://www.w3schools.com/tags/ref_canvas.asp > > > > > > Looks like some kind of WebPaint.class could be added to gb.web.gui. > > > > Respects > > BruceS > > > > Yep. The difficulty is keeping the state of the canvas on the server. > Dang, i was thinking of a brand new era of hand draw controls.. :) I guess small image data could work using gb.image serverside and just keep painting it onto canvas. (i guess image data can be sent somehow from server and not just loaded from a file refresh) An initial Image maker i guess is easy enough to use gb.image to save a on-the-fly made image to server for page to read. gonna look into canvas though and see what i can accomplish :) (fancy sharing any test sources ?) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: