From charlie at cogier.com Thu Jul 1 18:37:52 2021 From: charlie at cogier.com (Charlie Ogier) Date: Thu, 1 Jul 2021 17:37:52 +0100 Subject: [Gambas-user] Me.Close not working as expected Message-ID: Hi, Can you try this code and see if you experience my problem. The program should end on clicking the button, but it doesn't close until the end of the 'Sub'. Thanks, Charlie ***Code*** Button1 As Button Public Sub Form_Open() ? With Me ??? .Height = 400 ??? .Width = 500 ??? .Padding = 5 ??? .Center ? End With ? With Button1 = New Button(Me) As "Button1" ??? .W = 100 ??? .H = 28 ??? .X = 10 ??? .Y = 10 ??? .Text = "&Click me!" ? End With End Public Sub Button1_Click() ? Dim iLoop As Integer ? Me.Close '' Shouldn't the program stop here? ? For iLoop = 0 To 1000 ??? Print Str(iLoop) & " Hello" ? Next End ***End code*** From adamnt42 at gmail.com Thu Jul 1 19:04:26 2021 From: adamnt42 at gmail.com (bb) Date: Fri, 02 Jul 2021 02:34:26 +0930 Subject: [Gambas-user] Me.Close not working as expected In-Reply-To: References: Message-ID: On Thu, 2021-07-01 at 17:37 +0100, Charlie Ogier wrote: > Hi, > > Can you try this code and see if you experience my problem. The > program > should end on clicking the button, but it doesn't close until the end > of > the 'Sub'. > > Thanks, > > Charlie > > ***Code*** > Button1 As Button > > Public Sub Form_Open() > > With Me > .Height = 400 > .Width = 500 > .Padding = 5 > .Center > End With > > With Button1 = New Button(Me) As "Button1" > .W = 100 > .H = 28 > .X = 10 > .Y = 10 > .Text = "&Click me!" > End With > > End > > Public Sub Button1_Click() > > Dim iLoop As Integer > > Me.Close '' Shouldn't the program stop here? > > For iLoop = 0 To 1000 > Print Str(iLoop) & " Hello" > Next > > End > > ***End code*** > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- You are just closing the form, not the executing instance of the project. If you really want to "kill" the execution, then use Quit. From bagonergi at gmail.com Thu Jul 1 19:13:24 2021 From: bagonergi at gmail.com (Gianluigi) Date: Thu, 1 Jul 2021 19:13:24 +0200 Subject: [Gambas-user] Me.Close not working as expected In-Reply-To: References: Message-ID: Il giorno gio 1 lug 2021 alle ore 19:05 bb ha scritto: > On Thu, 2021-07-01 at 17:37 +0100, Charlie Ogier wrote: > > Hi, > > > > Can you try this code and see if you experience my problem. The > > program > > should end on clicking the button, but it doesn't close until the end > > of > > the 'Sub'. > > > > Thanks, > > > > Charlie > > > > ***Code*** > > Button1 As Button > > > > Public Sub Form_Open() > > > > With Me > > .Height = 400 > > .Width = 500 > > .Padding = 5 > > .Center > > End With > > > > With Button1 = New Button(Me) As "Button1" > > .W = 100 > > .H = 28 > > .X = 10 > > .Y = 10 > > .Text = "&Click me!" > > End With > > > > End > > > > Public Sub Button1_Click() > > > > Dim iLoop As Integer > > > > Me.Close '' Shouldn't the program stop here? > > > > For iLoop = 0 To 1000 > > Print Str(iLoop) & " Hello" > > Next > > > > End > > > > ***End code*** > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > You are just closing the form, not the executing instance of the > project. > If you really want to "kill" the execution, then use Quit. > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > i think that you should add this, the use of quit in graphics programs is not recommended: Private $bStop As Boolean Public Sub Button1_Click() Dim iLoop As Integer Me.Close '' Shouldn't the program stop here? $bStop = True For iLoop = 0 To 1000 Print Str(iLoop) & " Hello" If $bStop Then Break Next End Regards Gianluigi -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Thu Jul 1 19:19:14 2021 From: adamnt42 at gmail.com (bb) Date: Fri, 02 Jul 2021 02:49:14 +0930 Subject: [Gambas-user] Me.Close not working as expected In-Reply-To: References: Message-ID: <1a5b1ba3ed0a44af834f295d35d0a72363c79d40.camel@gmail.com> On Thu, 2021-07-01 at 19:13 +0200, Gianluigi wrote: > i think that you should add this, the use of quit in graphics > programs is not recommended: By whom? Where? Given the example code from Charlie, I can't see any problems with Quit(). When I ran it with Quit() under valgrind there were no leftover mallocs which would seem to me to be the only possible problem. Just askin' b From bsteers4 at gmail.com Thu Jul 1 19:58:11 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 1 Jul 2021 18:58:11 +0100 Subject: [Gambas-user] Me.Close not working as expected In-Reply-To: References: Message-ID: On Thu, 1 Jul 2021 at 17:59, Charlie Ogier wrote: > Hi, > > Can you try this code and see if you experience my problem. The program > should end on clicking the button, but it doesn't close until the end of > the 'Sub'. > > Thanks, > > Charlie > > ***Code*** > Button1 As Button > > Public Sub Form_Open() > > With Me > .Height = 400 > .Width = 500 > .Padding = 5 > .Center > End With > > With Button1 = New Button(Me) As "Button1" > .W = 100 > .H = 28 > .X = 10 > .Y = 10 > .Text = "&Click me!" > End With > > End > > Public Sub Button1_Click() > > Dim iLoop As Integer > > Me.Close '' Shouldn't the program stop here? > > For iLoop = 0 To 1000 > Print Str(iLoop) & " Hello" > Next > > End > > ***End code*** > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > Maybe it's because you're inside an event already. Maybe Button1_Click event has to finish before the form can close. so does this work as expected.. Me.Close ' trigger close event Return ' exit the current event BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobs at taboege.de Thu Jul 1 20:01:43 2021 From: tobs at taboege.de (Tobias Boege) Date: Thu, 1 Jul 2021 20:01:43 +0200 Subject: [Gambas-user] Me.Close not working as expected In-Reply-To: References: Message-ID: <20210701180143.GC557112@T580.localdomain> On Thu, 01 Jul 2021, Charlie Ogier wrote: > Hi, > > Can you try this code and see if you experience my problem. The program > should end on clicking the button, but it doesn't close until the end of the > 'Sub'. > > ***Code*** > Button1 As Button > > Public Sub Button1_Click() > > ? Dim iLoop As Integer > > ? Me.Close '' Shouldn't the program stop here? > > ? For iLoop = 0 To 1000 > ??? Print Str(iLoop) & " Hello" > ? Next > > End > > ***End code*** > It happens on my Gambas, too. Let me give you an explanation of why I think this is the expected behavior, on top of the practical advice by the others. I think what happens is the following. You call the Close method on a Window object. Gambas delegates this to the underlying GUI toolkit. In the case of gb.qt5, apparently this sends a close event to the QT window object. Now, Gambas installs a QT event handler for this close event. This is necessary to support the Form_Close event on the Gambas level. The window cannot be closed before the Gambas programmer had a chance to react to the Close event in Gambas. Thus, it is necessary that the window does not close immediately. gb.qt5 posts the Form_Close event to the event queue of Gambas. The event is *not* raised immediately from there, but only when you next enter the Gambas event loop. This does not happen from native C++ code and it does not happen either when passing between Gambas and native code. So, the window is kept alive for yet a little longer. Namely until your current event handler, Button1_Click, finished executing. This is why you see the result of the Print statements. We have this chain of events: Button1_Click happens --> Me.Close() is executed --> gb.qt5 closes the window --> close is intercepted by gb.qt5 --> Form_Close event is posted --> gb.qt5 call returns --> rest of Button1_Click code is executed --> after Click event is processed, event loop is re-entered Form_Close is processed Window can be finally closed and program terminates This all has to do with certain guarantees Gambas makes (not sure if they are documented though) about processing events and at which points it is considered safe to re-enter the event loop. Even though the Gambas inter- preter is a single-threaded application, recursively entering the event loop is a kind of parallelism, which most Gambas code and Gambas components are not prepared to handle. Most Gambas code is not "reentrant" and you should be thankful that you don't have to worry about that, usually. As a rule of thumb, events are only processed when you are not currently running code from an event handler or when you ask for it explicitly by using the Wait instruction. Let me give you an example of what I mean by "it is too unsafe to run the event loop from a native component". Suppose a native component (or any component, really) has a function F which you can call to do something meaningful and which does re-enter the event loop. Suppose you are in a Socket_Read() event -- some data arrived on your socket. You call the function F because your program requires its functionality. It re-enters the event loop. But you haven't read all the data of your socket yet, so the Socket_Read event fires again, which causes your event handler to recurse into F, fire the Socket_Read event again... Within a second, the function call stack is exhausted and your program crashes with a segfault. Note that even if you did read all the data in the socket before calling F in this example, more data might have arrived in the meantime. This new data is now processed before you unwind back to the original data. Thus you end up processing the data in the wrong order! Writing programs which are reentrant is hard. Be happy that Gambas doesn't make you do it. Finally, my advice would be to use Me.Close() Return if you want the closing to take place as soon as possible. Best, Tobias -- "There's an old saying: Don't change anything... ever!" -- Mr. Monk From adamnt42 at gmail.com Thu Jul 1 20:08:40 2021 From: adamnt42 at gmail.com (bb) Date: Fri, 02 Jul 2021 03:38:40 +0930 Subject: [Gambas-user] Me.Close not working as expected In-Reply-To: References: Message-ID: On Thu, 2021-07-01 at 18:58 +0100, Bruce Steers wrote: > > > Maybe it's because you're inside an event already. > Maybe Button1_Click event has to finish before the form can close. > > so does this work as expected.. > > Me.Close ' trigger close event > Return ' exit the current event > > BruceS > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- It's another "Read every word ..." message, I'm afraid. >From Window.Close (which is what Me.Close is calling) "Closes the window, and returns an optional integer val....." "Closes the window" != "Ends the program" :-) b From adamnt42 at gmail.com Thu Jul 1 20:26:58 2021 From: adamnt42 at gmail.com (bb) Date: Fri, 02 Jul 2021 03:56:58 +0930 Subject: [Gambas-user] Me.Close not working as expected In-Reply-To: References: Message-ID: On Thu, 2021-07-01 at 17:37 +0100, Charlie Ogier wrote: > Hi, > > Can you try this code and see if you experience my problem. The > program > should end on clicking the button, but it doesn't close until the end > of > the 'Sub'. > > Thanks, > > Charlie > > ***Code*** > Button1 As Button > > Public Sub Form_Open() > > With Me > .Height = 400 > .Width = 500 > .Padding = 5 > .Center > End With > > With Button1 = New Button(Me) As "Button1" > .W = 100 > .H = 28 > .X = 10 > .Y = 10 > .Text = "&Click me!" > End With > > End > > Public Sub Button1_Click() > > Dim iLoop As Integer > > Me.Close '' Shouldn't the program stop here? > > For iLoop = 0 To 1000 > Print Str(iLoop) & " Hello" > Next > > End > > ***End code*** > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Try this for fun and education. Public Sub Button1_Click() Me.Persistent = True ' Just prevents the window object becoming invalid Me.Close Me.X = Rand(0, Screen.W) Me.Y = Rand(0, Screen.H) Me.Show End From adamnt42 at gmail.com Thu Jul 1 21:08:20 2021 From: adamnt42 at gmail.com (bb) Date: Fri, 02 Jul 2021 04:38:20 +0930 Subject: [Gambas-user] Me.Close not working as expected In-Reply-To: <20210701180143.GC557112@T580.localdomain> References: <20210701180143.GC557112@T580.localdomain> Message-ID: On Thu, 2021-07-01 at 20:01 +0200, Tobias Boege via User wrote: > Finally, my advice would be to use > > > > Me.Close() > > Return > > > > if you want the closing to take place as soon as possible. or just don't put anything after the Me.Close(). Which is what "we" all normally do and is probably why "we" expect that Me.Close() is the same as "exit the program". As you say, this (Brian's code) is expected behaviour. But just to finish off this topic (and I think you have alluded to some of these): The program will loop then while: There is a Process that runs. There is a Timer that is enabled. There is a File that is watched. There is at least one toplevel Window that was created. ( That is straight from ^cat*eventloop. ) Notice that last sentence, particularly "at least one" and "was created" and note that it doesn't say "The main toplevel Window is no longer visible." even if your brains "insist" that is what it says. :-) Anyway, that is why I keep harping on about this "read every word" business. cheers all! (my coffee is ready) b From dovey.john at gmail.com Thu Jul 1 22:01:48 2021 From: dovey.john at gmail.com (John Dovey) Date: Thu, 1 Jul 2021 15:01:48 -0500 Subject: [Gambas-user] Railroad Diagrams Message-ID: Does anyone think this would be a worthwhile exercise to create these for Gambas? -------------- next part -------------- A non-text attachment was scrubbed... Name: diagram.zip Type: application/x-zip-compressed Size: 103051 bytes Desc: not available URL: From dovey.john at gmail.com Thu Jul 1 22:59:43 2021 From: dovey.john at gmail.com (John Dovey) Date: Thu, 1 Jul 2021 15:59:43 -0500 Subject: [Gambas-user] Railroad Diagrams In-Reply-To: References: Message-ID: For those interested, go to https://www.bottlecaps.de/rr/ui Choose the "Edit grammar" tab, paste in the contents of the attached file and click on "View Diagram". JD On Thu, 1 Jul 2021 at 15:01, John Dovey wrote: > Does anyone think this would be a worthwhile exercise to create these > for Gambas? > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: GambasGrammar.ebnf Type: application/octet-stream Size: 2545 bytes Desc: not available URL: From tercoide at hotmail.com Thu Jul 1 23:00:15 2021 From: tercoide at hotmail.com (martin p cristia) Date: Thu, 1 Jul 2021 18:00:15 -0300 Subject: [Gambas-user] Me.Close not working as ( I :) expected In-Reply-To: References: Message-ID: Great reading. I was having "not closing" stubborn programs! El 7/1/21 a las 5:02 PM, user-request at lists.gambas-basic.org escribi?: > As you say, this (Brian's code) is expected behaviour. But just to > finish off this topic (and I think you have alluded to some of these): > > The program will loop then while: > There is a Process that runs. > There is a Timer that is enabled. > There is a File that is watched. > There is at least one toplevel Window that was created. > > ( That is straight from ^cat*eventloop. ) > > Notice that last sentence, particularly "at least one" and "was > created" and note that it doesn't say "The main toplevel Window is no > longer visible." even if your brains "insist" that is what it says.:-) > > Anyway, that is why I keep harping on about this "read every word" > business. -- Saludos Ing. Martin P Cristia From bagonergi at gmail.com Thu Jul 1 23:35:05 2021 From: bagonergi at gmail.com (Gianluigi) Date: Thu, 1 Jul 2021 23:35:05 +0200 Subject: [Gambas-user] Me.Close not working as ( I :) expected In-Reply-To: References: Message-ID: I read everything with great interest and enjoyment, thank you. I just add this, in the Gambas wiki at the quit page ( http://gambaswiki.org/wiki/lang/quit ) there is a warning that explains: This instruction is not very successful in freeing things with GUI programs. So you should use it only with console applications. Regards Gianluigi -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagonergi at gmail.com Fri Jul 2 00:18:45 2021 From: bagonergi at gmail.com (Gianluigi) Date: Fri, 2 Jul 2021 00:18:45 +0200 Subject: [Gambas-user] Me.Close not working as expected In-Reply-To: References: <20210701180143.GC557112@T580.localdomain> Message-ID: Hi Charlie, to understand what I wanted to suggest, you can try this code. You need a project with an empty class Class1 and a Form with 2 buttons: Private $bStop As Boolean Public Sub Button1_Click() Me.Close $bStop = True End Public Sub Form_Open() Dim hClass As New Class1 Me.Show() Do Print "Hello" Wait 1 If $bStop Then Break Loop End Public Sub Button2_Click() Me.Close Quit End in console with Button2 I get: Hello Hello Hello gbx3 [159986]: warning: circular references detected: gbx3: 1 Class1 gbx3: 1 FMain gbx3 [159986]: warning: 4 allocation(s) non freed. If you write Return instead of Quit, the program continues and does not close. Regards Gianluigi -------------- next part -------------- An HTML attachment was scrubbed... URL: From rwe-sse at osnanet.de Fri Jul 2 08:19:45 2021 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Fri, 2 Jul 2021 08:19:45 +0200 Subject: [Gambas-user] Question about TextEdit In-Reply-To: References: Message-ID: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> Am 30.06.21 um 21:25 schrieb Bruce Steers: > > > On Wed, 30 Jun 2021 at 16:50, Rolf-Werner Eilert > wrote: > > Some day in March I last tried around some features in one of my > applications. I do not remember why, but I switched off gb.qt4.ext or > gb.qt5.ext and changed it to gb.gui. > > Here the TextEdit is missing. I would need it in one dialog, so now I > changed back to gb.qt5 and gb.qt5.ext. > > There are a lot of small texts (notes) which have been made with > TextEdit, and it would be a shame if it missing in future. > > Can you imagine why I switched? I cannot remember. Maybe I wanted to > try > something else, but I vaguely remember there was something about Editor > or TextEdit, respectively. > > If it is that TextEdit is no longer supported in future, how to convert > already saved texts from RichText to Text? > > Thanks so much for your help. > > Rolf > > > If you just want to display richtext and not edit it you can use a TextLabel > > BruceS > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > Yes I know, but as I said it is a note field, so there is editing. Over the years, however, it has come out that I do not use the RichText features in those notes, so it might be possible to switch to the simpler TextArea here. I would need some kind of filter though to convert the existing RichTexts into simple texts. Regards Rolf From adamnt42 at gmail.com Fri Jul 2 12:50:53 2021 From: adamnt42 at gmail.com (bb) Date: Fri, 02 Jul 2021 20:20:53 +0930 Subject: [Gambas-user] Railroad Diagrams In-Reply-To: References: Message-ID: <2a65f8cdb488a225e04099ce418143f4f2f19d1f.camel@gmail.com> On Thu, 2021-07-01 at 15:01 -0500, John Dovey wrote: > Does anyone think this would be a worthwhile exercise to create these > for Gambas? > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- For Gambas itself, I doubt it. But Where they could be useful to a developer is when he/she is trying to define the syntax for their own code. By way of an example, I am currently trying to define a new interface class for our database front-end library. Our "Load" method front-ends gb.db.Find(la, la, la) with a flexible method that would allow Finds * on the primary key * on a partial key * on non-pkey criteria * and negated criteria Working out the syntax I want, even before "I need", is difficult to describe textually. Maybe a visual syntax like these railroad diagrams may be useful. Some things to note about this type of syntax modelling is that 1. It is incredibly important to recognize that "the model is not reality". 2. To justify its use it must be very swift and unintrusive into the thought process. 3. Sometimes the model can be more confusing than the reality. 4. (Railroad diagrams were useful(?) for procedural languages. I don't know whether they are fully capable of handling object oriented languages.) That's what I thinks. bruce From antonio.j.teixeira at gmail.com Fri Jul 2 18:33:24 2021 From: antonio.j.teixeira at gmail.com (Antonio Teixeira) Date: Fri, 2 Jul 2021 17:33:24 +0100 Subject: [Gambas-user] Missing files in a new instalation gambas 3.16.1 in a Ubuntu 20.04.2 LTS Message-ID: Hi everyone, I am trying to install gambas3 on a new laptop with Ubuntu 20.04.2 LTS. No errors during the installation but when I try to start gambas3 I am getting this message: gbr3: unable to load component: gb.image ANy help please? Thank you Atentamente / Regards Ant?nio Teixeira -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Fri Jul 2 18:41:08 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Fri, 2 Jul 2021 18:41:08 +0200 Subject: [Gambas-user] Missing files in a new instalation gambas 3.16.1 in a Ubuntu 20.04.2 LTS In-Reply-To: References: Message-ID: <88a03ec1-01a3-5191-bc33-e3437e593643@gmail.com> Le 02/07/2021 ? 18:33, Antonio Teixeira a ?crit?: > > Hi everyone, > > I am trying to install gambas3 on a new laptop with Ubuntu 20.04.2 LTS. > No errors during the installation but when I try to start gambas3 I am > getting this message:?gbr3: unable to load component: gb.image > > ANy help please? > Any information about what you did exactly? -- Beno?t Minisini From adamnt42 at gmail.com Fri Jul 2 21:42:31 2021 From: adamnt42 at gmail.com (bb) Date: Sat, 03 Jul 2021 05:12:31 +0930 Subject: [Gambas-user] SQLRequest (Q1 of 2) Message-ID: I am trying to create an SQLRequest with a literal instead of a column name as in the following examples SELECT 1 FROM "mytable"; SELECT 'ME' FROM "mytable"; SELECT 13579 AS seed; SELECT 'Gambas' AS lang; Constructs along the lines of Print hSQLRequest.Select(1).From("mytable").Get() & ";" Print hSQLRequest.Select("ME").From("notable").Get() & ";" Print hSQLRequest.Select(13579).Get() & ";" Print hSQLRequest.Select("Gambas").Get() & ";" are just not getting there. (N.B. the above code are examples, not algorithm.) The outputs from those samples are SELECT "1" FROM "mytable"; SELECT "ME" FROM "notable"; ---------------------------------------- ERR: No table specified (-1) SQLRequest._call.125 SQLRequest.Get.112 ---------------------------------------- ERR: No table specified (-1) SQLRequest._call.125 SQLRequest.Get.112 FMain.Form_Open.29 ---------------------------------------- All those SELECTs are valid SQL and commonly used for setting function (or stored procedure) parameters. Can SQLRequest do this type of stuff? regards bruce From adamnt42 at gmail.com Fri Jul 2 22:04:06 2021 From: adamnt42 at gmail.com (bb) Date: Sat, 03 Jul 2021 05:34:06 +0930 Subject: [Gambas-user] SQLRequest (Q2 of 2) Actually a couple of questions/wishes Message-ID: @Benoit 1. Could you please add a Clear() method to the class. (It would be really handy when building complex sets of queries.) 2. How about CTE's? hSQLRequest.With(CTEx).Select(... where CTEx is another SQLRequest. Now that would be super handy! 3. Joins? Yes, I recognize that one could be difficult. 4. UNION? EXCEPT? INTERSECT? 5. Calling functions or stored procedures with and without parameters? 6. Uniting a whole bunch of SQLReqests, separated by ";" for submission to the server as a "script"? regards bruce From dovey.john at gmail.com Sat Jul 3 09:06:38 2021 From: dovey.john at gmail.com (John Dovey) Date: Sat, 3 Jul 2021 02:06:38 -0500 Subject: [Gambas-user] SQLRequest (Q2 of 2) Actually a couple of questions/wishes In-Reply-To: References: Message-ID: I don?t understand this. I do that routinely with SQLite with a simple $con.exec(MySQL) and up to around a hundred sql statements concatted together in MySQL. Just do a $con.begin before and $con.commit after. On Fri, Jul 2, 2021 at 3:05 PM bb wrote: > > 6. Uniting a whole bunch of SQLReqests, separated by ";" for submission > to the server as a "script"? > > regards > bruce > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -- Sent from Gmail Mobile -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Jul 3 10:09:10 2021 From: adamnt42 at gmail.com (bb) Date: Sat, 03 Jul 2021 17:39:10 +0930 Subject: [Gambas-user] SQLRequest (Q2 of 2) Actually a couple of questions/wishes In-Reply-To: References: Message-ID: <6987e69470f0693b4396a0bcec9ff9051e7da02b.camel@gmail.com> On Sat, 2021-07-03 at 02:06 -0500, John Dovey wrote: > > I don?t understand this. I do that routinely with SQLite with a > simple $con.exec(MySQL) > and up to around a hundred sql statements concatted together in > MySQL. Just do a $con.begin before and $con.commit after. > > > On Fri, Jul 2, 2021 at 3:05 PM bb wrote: > > 6. Uniting a whole bunch of SQLReqests, separated by ";" for > > submission > > to the server as a "script"? > > > > regards > > bruce > > > > Ah John, you missed my point. These are suggestions for enhancement of the SQLRequest class in gb.db, not a "How do I". I am looking at ways to implement dynamic SQL*. At the moment SQLRequest only copes with simple single table requests. BTW you can use it (as it is) with the (pseudo-code) construct: Dim hSQL as new SQLRequest Dim hRlt as Result hRlt = MyConn {or} DB {or} Connections["xyz"].Exec( hSQl.Select(blah blah).From(blah blah).Where(blah blah) ) regards bruce * No comments needed on "dynamic SQL" thanks. From gambas.fr at gmail.com Sat Jul 3 11:15:23 2021 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sat, 3 Jul 2021 11:15:23 +0200 Subject: [Gambas-user] SQLRequest (Q2 of 2) Actually a couple of questions/wishes In-Reply-To: <6987e69470f0693b4396a0bcec9ff9051e7da02b.camel@gmail.com> References: <6987e69470f0693b4396a0bcec9ff9051e7da02b.camel@gmail.com> Message-ID: Hi Bruce , So you want something like 'In' I think the good way may look like hMyNewRequest.In(OtherOne) or .With(OtherOne) Request Is a simple constructor not really a true function. It allow to modify easily part of a requisition.. more than modifying a sql request string. But something like the MS request class will be cool. From bagonergi at gmail.com Sat Jul 3 12:16:14 2021 From: bagonergi at gmail.com (Gianluigi) Date: Sat, 3 Jul 2021 12:16:14 +0200 Subject: [Gambas-user] Question about TextEdit In-Reply-To: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> Message-ID: Il giorno ven 2 lug 2021 alle ore 08:20 Rolf-Werner Eilert < rwe-sse at osnanet.de> ha scritto: > Am 30.06.21 um 21:25 schrieb Bruce Steers: > > > > > > On Wed, 30 Jun 2021 at 16:50, Rolf-Werner Eilert > > wrote: > > > > Some day in March I last tried around some features in one of my > > applications. I do not remember why, but I switched off gb.qt4.ext or > > gb.qt5.ext and changed it to gb.gui. > > > > Here the TextEdit is missing. I would need it in one dialog, so now I > > changed back to gb.qt5 and gb.qt5.ext. > > > > There are a lot of small texts (notes) which have been made with > > TextEdit, and it would be a shame if it missing in future. > > > > Can you imagine why I switched? I cannot remember. Maybe I wanted to > > try > > something else, but I vaguely remember there was something about > Editor > > or TextEdit, respectively. > > > > If it is that TextEdit is no longer supported in future, how to > convert > > already saved texts from RichText to Text? > > > > Thanks so much for your help. > > > > Rolf > > > > > > If you just want to display richtext and not edit it you can use a > TextLabel > > > > BruceS > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > Yes I know, but as I said it is a note field, so there is editing. > > Over the years, however, it has come out that I do not use the RichText > features in those notes, so it might be possible to switch to the > simpler TextArea here. I would need some kind of filter though to > convert the existing RichTexts into simple texts. > > Regards > Rolf > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > I have never used textedit but to get only the text you cannot use TextEdit.Text, or did I not understand the question? http://gambaswiki.org/wiki/comp/gb.qt4.ext/textedit/text Regards Gianluigi -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas.fr at gmail.com Sat Jul 3 13:24:26 2021 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sat, 3 Jul 2021 13:24:26 +0200 Subject: [Gambas-user] Question about TextEdit In-Reply-To: References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> Message-ID: No, it's about the missing of the widget TextEdit in the new gb.qt5.ext. It will be cool to be able to write a new widget in gambas for small rich text editing. It can't handle big textes but for some ko ones it will be enought. The difficulties for me will be on wrapping and height management ... but nothing unreachable for Benoit ;-). > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -- Fabien Bodard From adamnt42 at gmail.com Sat Jul 3 13:36:38 2021 From: adamnt42 at gmail.com (bb) Date: Sat, 03 Jul 2021 21:06:38 +0930 Subject: [Gambas-user] Question about TextEdit In-Reply-To: References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> Message-ID: On Sat, 2021-07-03 at 13:24 +0200, Fabien Bodard wrote: > No, it's about the missing of the widget TextEdit in the new > gb.qt5.ext. > > It will be cool to be able to write a new widget in gambas for small > rich text editing. > > It can't handle big textes but for some ko ones it will be enought. > > The difficulties for me will be on wrapping and height management ... > but nothing unreachable for Benoit ;-). > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > -- > Fabien Bodard > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Strange, I thought he asked How do I convert a whole lot of "rich text" strings into plain text? In other words, how to strip out all the markup. The answer to which I do not know. b From bagonergi at gmail.com Sat Jul 3 13:46:27 2021 From: bagonergi at gmail.com (Gianluigi) Date: Sat, 3 Jul 2021 13:46:27 +0200 Subject: [Gambas-user] Question about TextEdit In-Reply-To: References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> Message-ID: Il giorno sab 3 lug 2021 alle ore 13:25 Fabien Bodard ha scritto: > No, it's about the missing of the widget TextEdit in the new gb.qt5.ext. > > It will be cool to be able to write a new widget in gambas for small > rich text editing. > > It can't handle big textes but for some ko ones it will be enought. > > The difficulties for me will be on wrapping and height management ... > but nothing unreachable for Benoit ;-). > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > > -- > Fabien Bodard > > Hi Fabien, it is nice to hear you again :-) here with QT5 and Master it works: Public Sub Form_Open() TextEdit1.RichText = "Pippo st? ballando" TextArea1.Text = TextEdit1.Text End Regards Gianluigi -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Jul 3 13:32:00 2021 From: adamnt42 at gmail.com (bb) Date: Sat, 03 Jul 2021 21:02:00 +0930 Subject: [Gambas-user] SQLRequest (Q2 of 2) Actually a couple of questions/wishes In-Reply-To: References: <6987e69470f0693b4396a0bcec9ff9051e7da02b.camel@gmail.com> Message-ID: <4bd4dff386c67b7cf21792efaa892f0e02762fcc.camel@gmail.com> On Sat, 2021-07-03 at 11:15 +0200, Fabien Bodard wrote: > Hi Bruce , > > So you want something like 'In' > > I think the good way may look like > > hMyNewRequest.In(OtherOne) > > or .With(OtherOne) > > Request Is a simple constructor not really a true function. It allow > to modify easily part of a requisition.. more than modifying a sql > request string. > > But something like the MS request class will be cool. > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Both In and With are reserved words. For 2. I could envisage something like hSQLRequest.CTE(sqlRequestxyz as SQLRequest).Select(... where sqlRequestxyz is a previously instantiated SQLRequest For 6. I dont know, maybe "Compose" hSQLRequest.Compose(Begin(),q1,q2,q3,Commit()[ Rollback() ]) where each previously created q1,q2 and q3 SQLRequest objects (ie the string version thereby created) are included, delineated by a ";". That way the entire transaction could be executed by hResult = Conn.Exec(hSQLRequest.Compose(....)) or bResult = Conn.Exec(hSQLRequest.Compose(....)) b From adamnt42 at gmail.com Sat Jul 3 13:50:33 2021 From: adamnt42 at gmail.com (bb) Date: Sat, 03 Jul 2021 21:20:33 +0930 Subject: [Gambas-user] Question about TextEdit In-Reply-To: References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> Message-ID: On Sat, 2021-07-03 at 13:46 +0200, Gianluigi wrote: Does it display Pippo st? ballando or Pippo st? ballando ? b From bagonergi at gmail.com Sat Jul 3 14:05:25 2021 From: bagonergi at gmail.com (Gianluigi) Date: Sat, 3 Jul 2021 14:05:25 +0200 Subject: [Gambas-user] Question about TextEdit In-Reply-To: References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> Message-ID: Il giorno sab 3 lug 2021 alle ore 13:51 bb ha scritto: > On Sat, 2021-07-03 at 13:46 +0200, Gianluigi wrote: > > Does it display > Pippo st? ballando > or > Pippo st? ballando > ? > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > With this code: Public Sub Form_Open() TextEdit1.RichText = "Pippo st? ballando" '---------------------------------------------- TextArea1.Text = TextEdit1.Text TextArea1.Text &= "\n\n" & String(20, "=") & "\n\n" TextArea1.Text &= TextEdit1.RichText End you get: Pippo st? ballando ====================

Pippo st? ballando

Regards Gianluigi -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Jul 3 14:09:49 2021 From: adamnt42 at gmail.com (bb) Date: Sat, 03 Jul 2021 21:39:49 +0930 Subject: [Gambas-user] Question about TextEdit In-Reply-To: References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> Message-ID: <226b05a93b25b3794e0b5cb48a1f343792d76755.camel@gmail.com> On Sat, 2021-07-03 at 14:05 +0200, Gianluigi wrote: > > > Il giorno sab 3 lug 2021 alle ore 13:51 bb ha > scritto: > > On Sat, 2021-07-03 at 13:46 +0200, Gianluigi wrote: > > > > Does it display > > Pippo st? ballando > > or > > Pippo st? ballando > > ? > > b > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > With this code: > > Public Sub Form_Open() > > TextEdit1.RichText = "Pippo st? ballando" > '---------------------------------------------- > TextArea1.Text = TextEdit1.Text > TextArea1.Text &= "\n\n" & String(20, "=") & "\n\n" > TextArea1.Text &= TextEdit1.RichText > > End > > you get: > > Pippo st? ballando > > ==================== > > http://www.w3.org/TR/REC-html40/strict.dtd"> > equiv="Content-Type" content="text/html; charset=utf-8" /> >

Pippo st? ballando

> > Regards > Gianluigi > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Aha, now I see what you have done. Nice trick. I'll have to remember that one for scraping rich text. b From g4mba5 at gmail.com Sat Jul 3 17:11:57 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Sat, 3 Jul 2021 17:11:57 +0200 Subject: [Gambas-user] Question about TextEdit In-Reply-To: <226b05a93b25b3794e0b5cb48a1f343792d76755.camel@gmail.com> References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> <226b05a93b25b3794e0b5cb48a1f343792d76755.camel@gmail.com> Message-ID: Le 03/07/2021 ? 14:09, bb a ?crit?: > > Aha, now I see what you have done. Nice trick. I'll have to remember > that one for scraping rich text. > > b > You can use String.FromHTML() from 'gb.util' too. But beware that just a few HTML entities are handled. Hopefully, they are less and less frequent now that HTML is mostly UTF-8. Regards, -- Beno?t Minisini From dovey.john at gmail.com Sat Jul 3 17:40:48 2021 From: dovey.john at gmail.com (John Dovey) Date: Sat, 3 Jul 2021 10:40:48 -0500 Subject: [Gambas-user] Telegram Bot Library Message-ID: Hi, I have to make a choice again between writing in vb or Gambas, and this time it's based on the availability of a library/class whatever to wrap the Telegram bot API. Does anyone know of anything like that? Something along those lines? This is the nuget package I'm looking at..https://github.com/TelegramBots/telegram.bot Thanks John From bagonergi at gmail.com Sat Jul 3 17:49:32 2021 From: bagonergi at gmail.com (Gianluigi) Date: Sat, 3 Jul 2021 17:49:32 +0200 Subject: [Gambas-user] Question about TextEdit In-Reply-To: References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> <226b05a93b25b3794e0b5cb48a1f343792d76755.camel@gmail.com> Message-ID: Il giorno sab 3 lug 2021 alle ore 17:12 Beno?t Minisini ha scritto: > > You can use String.FromHTML() from 'gb.util' too. But beware that just a > few HTML entities are handled. Hopefully, they are less and less > frequent now that HTML is mostly UTF-8. > > Regards, > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > Hi Benoit, it seemed to me that it existed! I had looked for it in the wiki and I have not found it. I have tried again and the search still does not find it. Returns this page, see image [image: Schermata da 2021-07-03 17-42-14.png] Regards Gianluigi -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Schermata da 2021-07-03 17-42-14.png Type: image/png Size: 39674 bytes Desc: not available URL: From bsteers4 at gmail.com Sat Jul 3 18:12:44 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 3 Jul 2021 17:12:44 +0100 Subject: [Gambas-user] Question about TextEdit In-Reply-To: References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> <226b05a93b25b3794e0b5cb48a1f343792d76755.camel@gmail.com> Message-ID: gb.util / String http://gambaswiki.org/wiki/comp/gb.util/string/fromhtml wiki does not say much but lists the handled codes BruceS On Sat, 3 Jul 2021 at 16:50, Gianluigi wrote: > > > Il giorno sab 3 lug 2021 alle ore 17:12 Beno?t Minisini > ha scritto: > >> >> You can use String.FromHTML() from 'gb.util' too. But beware that just a >> few HTML entities are handled. Hopefully, they are less and less >> frequent now that HTML is mostly UTF-8. >> >> Regards, >> >> -- >> Beno?t Minisini >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > > Hi Benoit, > > it seemed to me that it existed! I had looked for it in the wiki and I > have not found it. > I have tried again and the search still does not find it. > Returns this page, see image > [image: Schermata da 2021-07-03 17-42-14.png] > Regards > Gianluigi > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Schermata da 2021-07-03 17-42-14.png Type: image/png Size: 39674 bytes Desc: not available URL: From hartmut.w.wagener at t-online.de Sun Jul 4 12:05:31 2021 From: hartmut.w.wagener at t-online.de (Hartmut Wagener) Date: Sun, 4 Jul 2021 12:05:31 +0200 Subject: [Gambas-user] Problems with the editor after update to 3.16.1 Message-ID: <3d382d1e-7005-e317-eacb-d7d6a521fd21@t-online.de> Hi, i use arch Linux and have some gambas programs running for my desktop convienience. Gambas is installed using pacman in Arch-Linux by "pacman -S gambas3". After an update of gambas (or some other tool, i am not sure with this) the program changed the behaviour. It was shown in the center of the screen, now it is located in the top-left, and background-color is not set anymore. Now i tried to edit the code to change an Exec-command to start a new version of an installed program, and the editor is unuseable for me. The cursor is located to a position to add text, but when i enter the text, the text is added on a different position of the text. When i input the numbers 0123456789 the cursor is located more than one character to the right of the 9. When i move the cursor from the first character to the right, it is somewhere in the middle of the 3 when it should be at the beginning of it, when it is located before the 8 the press of a key adds the character before the 7. I have had this problem some years in the past, was on some version of Ubuntu, perhaps in 2015. It disappeared, i don't remember what i needed to do to get this working, or if it was solved by an update. I use the Mate-Desktop-environment. Any hints what can be done to solve this problem? Thanks a lot for your answers. From hartmut.w.wagener at t-online.de Sun Jul 4 12:33:07 2021 From: hartmut.w.wagener at t-online.de (Hartmut Wagener) Date: Sun, 4 Jul 2021 12:33:07 +0200 Subject: [Gambas-user] Problems with the editor after update to 3.16.1 In-Reply-To: <3d382d1e-7005-e317-eacb-d7d6a521fd21@t-online.de> References: <3d382d1e-7005-e317-eacb-d7d6a521fd21@t-online.de> Message-ID: I solved the editor-thing, changed the font from "Sans Regular" to "Serif Regular"... So i can look for the next problem... :) Am 04.07.21 um 12:05 schrieb Hartmut Wagener: > Hi, > > i use arch Linux and have some gambas programs running for my desktop > convienience. > > Gambas is installed using pacman in Arch-Linux by "pacman -S gambas3". > > After an update of gambas (or some other tool, i am not sure with > this) the program changed the behaviour. > > It was shown in the center of the screen, now it is located in the > top-left, and background-color is not set anymore. > > Now i tried to edit the code to change an Exec-command to start a new > version of an installed program, and the editor is unuseable for me. > > The cursor is located to a position to add text, but when i enter the > text, the text is added on a different position of the text. > > When i input the numbers 0123456789 the cursor is located more than > one character to the right of the 9. When i move the cursor from the > first character to the right, it is somewhere in the middle of the 3 > when it should be at the beginning of it, when it is located before > the 8 the press of a key adds the character before the 7. > > I have had this problem some years in the past, was on some version of > Ubuntu, perhaps in 2015. It disappeared, i don't remember what i > needed to do to get this working, or if it was solved by an update. > > I use the Mate-Desktop-environment. > > Any hints what can be done to solve this problem? > > Thanks a lot for your answers. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From brian at westwoodsvcs.com Sun Jul 4 14:55:15 2021 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Sun, 04 Jul 2021 15:55:15 +0300 Subject: [Gambas-user] =?utf-8?q?Telegram_Bot_Library?= In-Reply-To: References: Message-ID: <1625403315.65798613@f20.my.com> I don't know about gambas, but there is a c++ library https://github.com/reo7sp/tgbot-cpp Can that be called directly from gambas? -- Thanks Brian G Saturday, 03 July 2021, 08:41AM -07:00 from John Dovey dovey.john at gmail.com : >Hi, >I have to make a choice again between writing in vb or Gambas, and >this time it's based on the availability of a library/class whatever >to wrap the Telegram bot API. > >Does anyone know of anything like that? Something along those lines? >This is the nuget package I'm looking >at..https://github.com/TelegramBots/telegram.bot >Thanks >John > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Sun Jul 4 16:22:51 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Sun, 4 Jul 2021 16:22:51 +0200 Subject: [Gambas-user] Problems with the editor after update to 3.16.1 In-Reply-To: References: <3d382d1e-7005-e317-eacb-d7d6a521fd21@t-online.de> Message-ID: Le 04/07/2021 ? 12:33, Hartmut Wagener a ?crit?: > I solved the editor-thing, changed the font from "Sans Regular" to > "Serif Regular"... > As far I as know, these names are aliases. I'd like to know the real fonts behind them to fix the problem. Regards, -- Beno?t Minisini From g4mba5 at gmail.com Sun Jul 4 17:36:05 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Sun, 4 Jul 2021 17:36:05 +0200 Subject: [Gambas-user] Problems with the editor after update to 3.16.1 In-Reply-To: <1c5501c0-8534-359c-42e8-af59a3658dc2@t-online.de> References: <3d382d1e-7005-e317-eacb-d7d6a521fd21@t-online.de> <1c5501c0-8534-359c-42e8-af59a3658dc2@t-online.de> Message-ID: Le 04/07/2021 ? 17:18, Hartmut Wagener a ?crit?: > I had changed from "Sans regular" to "Serif Regular", and was able to > use the editor. > > Now i have changed the Fonts back to "Sans regular", and still i am able > to use the editor... :) > > So, it had to be something else with the fonts, i believe it was > something in an mate-update that did not do everything... > OK, thanks for the answer. I asked that to see if eventually a specific font was in fault, but as you said, it is not the case. -- Beno?t Minisini From hartmut.w.wagener at t-online.de Sun Jul 4 18:02:50 2021 From: hartmut.w.wagener at t-online.de (Hartmut Wagener) Date: Sun, 4 Jul 2021 18:02:50 +0200 Subject: [Gambas-user] Changes after updating (either gambas or system-things) Message-ID: <1b1e1225-e665-e469-c0d1-58e3552e0cef@t-online.de> I have a programs running that is called by a keyboard-shortcut. The program is used to show a list of graphical programs to choose from. It is made of 15 buttons (Button1-Button15) and the same amount of panels containing a label. Blender-Starter After an update this tool did not react as before. In the past it was possible to navigate through the buttons by using either the TAB-button, but also the cursor-buttons were used to navigate. The cursor-buttons don't work anymore... But the navigation was disabled cause the Button1 did not get the Focus after starting, i had to add the line "Button1.setfocus" to get it to work again. When changing the focus with TAB the color of the buttan and the panel should change. That worked for the button, but not for the panels, so i had to put the line "Panelx.refresh" to every gotfocus and lostfocus-part with x numbering the panel number. Any hints why this happens after an update? I am not sure when this update happens, cause arch Linux is a rolling release and the causes showed up when needing one of the programs. Thanks a lot, regards Hartmut -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Bildschirmfoto zu 2021-07-04 17-50-44.jpg Type: image/jpeg Size: 36604 bytes Desc: not available URL: From g4mba5 at gmail.com Sun Jul 4 18:08:32 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Sun, 4 Jul 2021 18:08:32 +0200 Subject: [Gambas-user] Changes after updating (either gambas or system-things) In-Reply-To: <1b1e1225-e665-e469-c0d1-58e3552e0cef@t-online.de> References: <1b1e1225-e665-e469-c0d1-58e3552e0cef@t-online.de> Message-ID: Le 04/07/2021 ? 18:02, Hartmut Wagener a ?crit?: > I have a programs running that is called by a keyboard-shortcut. > > The program is used to show a list of graphical programs to choose from. > > It is made of 15 buttons (Button1-Button15) and the same amount of > panels containing a label. > > Blender-Starter > > After an update this tool did not react as before. In the past it was > possible to navigate through the buttons by using either the TAB-button, > but also the cursor-buttons were used to navigate. The cursor-buttons > don't work anymore... > > But the navigation was disabled cause the Button1 did not get the Focus > after starting, i had to add the line "Button1.setfocus" to get it to > work again. > > When changing the focus with TAB the color of the buttan and the panel > should change. That worked for the button, but not for the panels, so i > had to put the line "Panelx.refresh" to every gotfocus and > lostfocus-part with x numbering the panel number. > > Any hints why this happens after an update? I am not sure when this > update happens, cause arch Linux is a rolling release and the causes > showed up when needing one of the programs. > > Thanks a lot, regards > > Hartmut > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > Focus management has been hijacked recently so that it behave the same both in QT and GTK+ Gambas components (look at the commit logs for the detail). Please provide your project (or part of it) so that I can check and fix the behaviour against what you are describing. Note that the arrow keys do not move the focus anymore because they are ambiguous. So you will have to do it yourself. Regards, -- Beno?t Minisini From hartmut.w.wagener at t-online.de Sun Jul 4 22:29:12 2021 From: hartmut.w.wagener at t-online.de (Hartmut Wagener) Date: Sun, 4 Jul 2021 22:29:12 +0200 Subject: [Gambas-user] Changes after updating (either gambas or system-things) In-Reply-To: References: <1b1e1225-e665-e469-c0d1-58e3552e0cef@t-online.de> Message-ID: <626d780e-242a-8f4f-8f3f-3d3a6bb07183@t-online.de> Here is my project file, thanks for helping me and perhaps others... I have added a setfocus in Form_Open and many Panelx.refresh in Buttonx.getfocus and Buttinx.lostfocus to get it running I must have a look how to catch the cursor-presses, they are not inside the strings of keypress-event, or am i mistaken here? Regards Hartmut Am 04.07.21 um 18:08 schrieb Beno?t Minisini: > Le 04/07/2021 ? 18:02, Hartmut Wagener a ?crit?: >> I have a programs running that is called by a keyboard-shortcut. >> >> The program is used to show a list of graphical programs to choose from. >> >> It is made of 15 buttons (Button1-Button15) and the same amount of >> panels containing a label. >> >> Blender-Starter >> >> After an update this tool did not react as before. In the past it was >> possible to navigate through the buttons by using either the >> TAB-button, but also the cursor-buttons were used to navigate. The >> cursor-buttons don't work anymore... >> >> But the navigation was disabled cause the Button1 did not get the >> Focus after starting, i had to add the line "Button1.setfocus" to get >> it to work again. >> >> When changing the focus with TAB the color of the buttan and the >> panel should change. That worked for the button, but not for the >> panels, so i had to put the line "Panelx.refresh" to every gotfocus >> and lostfocus-part with x numbering the panel number. >> >> Any hints why this happens after an update? I am not sure when this >> update happens, cause arch Linux is a rolling release and the causes >> showed up when needing one of the programs. >> >> Thanks a lot, regards >> >> Hartmut >> >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > > Focus management has been hijacked recently so that it behave the same > both in QT and GTK+ Gambas components (look at the commit logs for the > detail). > > Please provide your project (or part of it) so that I can check and > fix the behaviour against what you are describing. > > Note that the arrow keys do not move the focus anymore because they > are ambiguous. So you will have to do it yourself. > > Regards, > -------------- next part -------------- A non-text attachment was scrubbed... Name: BlenderStarter.gambas Type: application/octet-stream Size: 26174 bytes Desc: not available URL: From bsteers4 at gmail.com Sun Jul 4 22:35:36 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 4 Jul 2021 21:35:36 +0100 Subject: [Gambas-user] Changes after updating (either gambas or system-things) In-Reply-To: <1b1e1225-e665-e469-c0d1-58e3552e0cef@t-online.de> References: <1b1e1225-e665-e469-c0d1-58e3552e0cef@t-online.de> Message-ID: On Sun, 4 Jul 2021, 17:03 Hartmut Wagener, wrote: > I have a programs running that is called by a keyboard-shortcut. > > The program is used to show a list of graphical programs to choose from. > > It is made of 15 buttons (Button1-Button15) and the same amount of panels > containing a label. > > [image: Blender-Starter] > > After an update this tool did not react as before. In the past it was > possible to navigate through the buttons by using either the TAB-button, > but also the cursor-buttons were used to navigate. The cursor-buttons don't > work anymore... > > But the navigation was disabled cause the Button1 did not get the Focus > after starting, i had to add the line "Button1.setfocus" to get it to work > again. > > When changing the focus with TAB the color of the buttan and the panel > should change. That worked for the button, but not for the panels, so i had > to put the line "Panelx.refresh" to every gotfocus and lostfocus-part with > x numbering the panel number. > > Any hints why this happens after an update? I am not sure when this update > happens, cause arch Linux is a rolling release and the causes showed up > when needing one of the programs. > > Thanks a lot, regards > > Hartmut > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > I find QT to be better with keyboard navigation than gtk3. You may find an app functions better if you remove gb.gui and add gb.gui.qt instead to force your app to be qt. Just a suggestion, worth a try. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Bildschirmfoto zu 2021-07-04 17-50-44.jpg Type: image/jpeg Size: 36604 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Bildschirmfoto zu 2021-07-04 17-50-44.jpg Type: image/jpeg Size: 36604 bytes Desc: not available URL: From rwe-sse at osnanet.de Mon Jul 5 08:46:24 2021 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 5 Jul 2021 08:46:24 +0200 Subject: [Gambas-user] Question about TextEdit In-Reply-To: References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> <226b05a93b25b3794e0b5cb48a1f343792d76755.camel@gmail.com> Message-ID: Am 03.07.21 um 17:11 schrieb Beno?t Minisini: > Le 03/07/2021 ? 14:09, bb a ?crit?: >> >> Aha, now I see what you have done. Nice trick. I'll have to remember >> that one for scraping rich text. >> >> b >> > > You can use String.FromHTML() from 'gb.util' too. But beware that just a > few HTML entities are handled. Hopefully, they are less and less > frequent now that HTML is mostly UTF-8. > > Regards, > Ok... interesting thing. I will try it with these notes, hopefully it can handle them. Then I could write a one-time conversion for the notes and would get rid of the old RichText ones. RichText as such still is important for me in other applications, so in the long run, a new TextEdit control would be nice... Regards Rolf From hans at gambas-buch.de Mon Jul 5 11:37:55 2021 From: hans at gambas-buch.de (Hans Lehmann) Date: Mon, 5 Jul 2021 11:37:55 +0200 Subject: [Gambas-user] Reading and displaying a picture - stored directly in a DB Message-ID: <28db5eac-3942-6737-f6b8-6b0dfcf2127f@gambas-buch.de> An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: gnklibhmdbedjpnp.png Type: image/png Size: 121693 bytes Desc: not available URL: From cybercamera at gmail.com Mon Jul 5 12:15:56 2021 From: cybercamera at gmail.com (Cam Era) Date: Mon, 5 Jul 2021 20:15:56 +1000 Subject: [Gambas-user] Gambas 3.16.1, package creation and dependencies Message-ID: Greetings all. Can someone point me in the direction of any documentation which covers the areas of application package creation, specifically with respect to specifying package dependencies which are older than 3.16.1 runtimes. Searching has failed to locate this information. (By way of background, I had a situation recently where I shipped Ubuntu DEBs to a user, who had no luck installing them, because they had been built with Gambas 3.16.1, and the packages requested from the package management installer weren't available from the current Ubuntu repo. Getting them to add the current Gambas PPA fixed the problem, but if possible, I'd prefer to nominate the dependency versions directly. Obviously, this would work out-of-the-box if I was running the version of Gambas from the current Ubuntu repos, but I'd prefer to run a more recent version if possible.) Thanks in advance. Cheers. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rwe-sse at osnanet.de Mon Jul 5 12:23:17 2021 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 5 Jul 2021 12:23:17 +0200 Subject: [Gambas-user] Question about TextEdit In-Reply-To: References: <9ae15a42-85ec-c35f-1120-0c302c8e5f01@osnanet.de> <226b05a93b25b3794e0b5cb48a1f343792d76755.camel@gmail.com> Message-ID: Am 03.07.21 um 17:11 schrieb Beno?t Minisini: > Le 03/07/2021 ? 14:09, bb a ?crit?: >> >> Aha, now I see what you have done. Nice trick. I'll have to remember >> that one for scraping rich text. >> >> b >> > > You can use String.FromHTML() from 'gb.util' too. But beware that just a > few HTML entities are handled. Hopefully, they are less and less > frequent now that HTML is mostly UTF-8. > > Regards, > I tried it, and it works flawlessly. Then I saw that sometimes I included E-Mail-Texts, and these look quite nice if displayed as RichText. So this would be another pro for RichText. There are two minor issues: String.FromHTML() leaves a trailing LF and double LFs within the text. So I included a String.Mid(..., 2) and Replace(..., "\n\n", "\n"). That leaves perfect plain UTF-8 texts in a TextArea. Regards Rolf From antonio.j.teixeira at gmail.com Mon Jul 5 12:38:08 2021 From: antonio.j.teixeira at gmail.com (Antonio Teixeira) Date: Mon, 5 Jul 2021 11:38:08 +0100 Subject: [Gambas-user] Missing files in a new instalation gambas 3.16.1 in a Ubuntu 20.04.2 LTS Message-ID: Hi Benoit, I Tried to install as usual. Changing the ppa and doing apt-get install gambas3. After a while I compiled from git using someone else's instructions and now everything is working fine. Thank you anyway. Atentamente / Regards Ant?nio Teixeira -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Mon Jul 5 15:00:48 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 5 Jul 2021 09:00:48 -0400 Subject: [Gambas-user] Reading and displaying a picture - stored directly in a DB In-Reply-To: <28db5eac-3942-6737-f6b8-6b0dfcf2127f@gambas-buch.de> References: <28db5eac-3942-6737-f6b8-6b0dfcf2127f@gambas-buch.de> Message-ID: On 7/5/21 5:37 AM, Hans Lehmann wrote: > Hello, > > I am currently testing a DB project for our Gambas online book, where in a SQLite DB table, the name of the flower and its > picture are stored *directly* in the DB next to an ID. This does not cause any problems. The picture was inserted into the > PictureBox by hand! > > > > In the GUI I want either > > * after a click on a row in the used component 'DataBrowser' or > * via the navigation( Start, Back, Next, End) > > I want to display the corresponding picture in a PictureBox. > > In which event routine do I have to insert the logic for reading the picture content? > > With kind regards > > Hans I don't have time to test it at the moment, but perhaps the DataBrowser.MouseDown event? -- Lee From hans at gambas-buch.de Mon Jul 5 15:55:43 2021 From: hans at gambas-buch.de (Hans Lehmann) Date: Mon, 5 Jul 2021 15:55:43 +0200 Subject: [Gambas-user] Reading and displaying a picture - stored directly in a DB In-Reply-To: References: <28db5eac-3942-6737-f6b8-6b0dfcf2127f@gambas-buch.de> Message-ID: <05f93cab-f87a-057e-87fb-ad577206ea84@gambas-buch.de> An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Mon Jul 5 16:03:17 2021 From: adamnt42 at gmail.com (bb) Date: Mon, 05 Jul 2021 23:33:17 +0930 Subject: [Gambas-user] Reading and displaying a picture - stored directly in a DB In-Reply-To: <05f93cab-f87a-057e-87fb-ad577206ea84@gambas-buch.de> References: <28db5eac-3942-6737-f6b8-6b0dfcf2127f@gambas-buch.de> <05f93cab-f87a-057e-87fb-ad577206ea84@gambas-buch.de> Message-ID: <27e7127dd8b0ad14619692197752846f5a4d162c.camel@gmail.com> On Mon, 2021-07-05 at 15:55 +0200, Hans Lehmann wrote: > Am 05.07.21 um 15:00 schrieb T Lee Davidson: > > I don't have time to test it at the moment, but perhaps the > > DataBrowser.MouseDown event? > > Hello, > > no, this only works if you click on the individual rows in the > DataBrowser1.View. But the navigation is not affected by this. > > With kind regards > > Hans > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Try the Arrange event, it fires after the control has redrawn the content, so theoretically unless you are already on first and click the "first" button or etc. b From bagonergi at gmail.com Mon Jul 5 16:08:21 2021 From: bagonergi at gmail.com (Gianluigi) Date: Mon, 5 Jul 2021 16:08:21 +0200 Subject: [Gambas-user] Reading and displaying a picture - stored directly in a DB In-Reply-To: <27e7127dd8b0ad14619692197752846f5a4d162c.camel@gmail.com> References: <28db5eac-3942-6737-f6b8-6b0dfcf2127f@gambas-buch.de> <05f93cab-f87a-057e-87fb-ad577206ea84@gambas-buch.de> <27e7127dd8b0ad14619692197752846f5a4d162c.camel@gmail.com> Message-ID: Il giorno lun 5 lug 2021 alle ore 16:04 bb ha scritto: > On Mon, 2021-07-05 at 15:55 +0200, Hans Lehmann wrote: > > Am 05.07.21 um 15:00 schrieb T Lee Davidson: > > > I don't have time to test it at the moment, but perhaps the > > > DataBrowser.MouseDown event? > > > > Hello, > > > > no, this only works if you click on the individual rows in the > > DataBrowser1.View. But the navigation is not affected by this. > > > > With kind regards > > > > Hans > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > Try the Arrange event, it fires after the control has redrawn the > content, so theoretically unless you are already on first and click the > "first" button or etc. > > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > Here I only followed the logic of selecting where we want on delete (next for all rows, previous only for the last row) and moving with the arrows. I used MouseUp because MouseDown doesn't seem to work here, Benoit? Can you see the attached project (*) and tell where is wrong, if wrong? (*) https://paste.c-net.org/CradleCredible Thank you and greetings Gianluigi -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Mon Jul 5 16:30:15 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 06 Jul 2021 00:00:15 +0930 Subject: [Gambas-user] Reading and displaying a picture - stored directly in a DB In-Reply-To: References: <28db5eac-3942-6737-f6b8-6b0dfcf2127f@gambas-buch.de> <05f93cab-f87a-057e-87fb-ad577206ea84@gambas-buch.de> <27e7127dd8b0ad14619692197752846f5a4d162c.camel@gmail.com> Message-ID: <2aea0fd28a3391dfd6977884a680cb4161af0bb6.camel@gmail.com> On Mon, 2021-07-05 at 16:08 +0200, Gianluigi wrote: > > > Il giorno lun 5 lug 2021 alle ore 16:04 bb ha > scritto: > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > Here I only followed the logic of selecting where we want on delete > (next for all rows, previous only for the last row) and moving with > the arrows. > I used MouseUp because MouseDown doesn't seem to work here, Benoit? > > Can you see the attached project (*) and tell where is wrong, if > wrong? > > (*) https://paste.c-net.org/CradleCredible > > Thank you and greetings > > Gianluigi > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Here we go again! ;-) comp ? gb.qt4 ? control ? .mousedown Raised when a mouse button is pressed while the cursor is inside the control. The event will only fire if the cursor is "inside" the control. The DataBrowser is a compound control with the proxy being the gridview. So MouseDown will only fire if the pointer is in the gridview. Also MouseDown will interupt the processing of the actual click until Xyzzy_MouseDown() is finished, so you may get the wrong item anyway! You get information about the pressed button with the Mouse class. MouseDown is ONLY useful for getting which button was pressed, NOT what is going on in the control! MouseUp will give similar problems. Last wont help. You need to stand-by and twiddle your thumbs until the Gambas control (and the GUI) has finished jigging around with the control, the database and the flower garden. comp ? gb.db.form ? databrowser DataBrowser (gb.db.form) ... The data is provided by the the first DataSource parent control. Now, there's a clue! comp ? gb.db.form ? datasource ? .change Event DataSource.Change (gb.db.form) Event Change ( ) Raised when the DataSource current record has changed and all bound child controls are updated. ;-) It's all there in the wiki in the "read every word" page. cheers bruce From t.lee.davidson at gmail.com Mon Jul 5 16:35:13 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 5 Jul 2021 10:35:13 -0400 Subject: [Gambas-user] Reading and displaying a picture - stored directly in a DB In-Reply-To: References: <28db5eac-3942-6737-f6b8-6b0dfcf2127f@gambas-buch.de> <05f93cab-f87a-057e-87fb-ad577206ea84@gambas-buch.de> <27e7127dd8b0ad14619692197752846f5a4d162c.camel@gmail.com> Message-ID: <0781441f-f534-fc48-0048-002e900454a7@gmail.com> On 7/5/21 10:08 AM, Gianluigi wrote: > > > Il giorno lun 5 lug 2021 alle ore 16:04 bb > ha scritto: > > On Mon, 2021-07-05 at 15:55 +0200, Hans Lehmann wrote: > > Am 05.07.21 um 15:00 schrieb T Lee Davidson: > > > I don't have time to test it at the moment, but perhaps the > > > DataBrowser.MouseDown event? > > > > Hello, > > > > no, this only works if you click on the individual rows in the > > DataBrowser1.View. But the navigation is not affected by this. > > > > With kind regards > > > > Hans > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > Try the Arrange event, it fires after the control has redrawn the > content, so theoretically unless you are already on first and click the > "first" button or etc. > > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > Here I only followed the logic of selecting where we want on delete (next for all rows, previous only for the last row) and > moving with the arrows. > I used MouseUp because MouseDown doesn't seem to work here, Benoit? > > Can you see the attached project (*) and tell where is wrong, if wrong? > > (*) https://paste.c-net.org/CradleCredible > > Thank you and greetings > > Gianluigi I couldn't figure out where you found a DataBrowser BeforeDelete event. After finding that out, I had an epiphany ;-) Good thinking, Gianluigi. Hans, try the DataSource.Change event. -- Lee From t.lee.davidson at gmail.com Mon Jul 5 16:40:54 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 5 Jul 2021 10:40:54 -0400 Subject: [Gambas-user] Reading and displaying a picture - stored directly in a DB In-Reply-To: <2aea0fd28a3391dfd6977884a680cb4161af0bb6.camel@gmail.com> References: <28db5eac-3942-6737-f6b8-6b0dfcf2127f@gambas-buch.de> <05f93cab-f87a-057e-87fb-ad577206ea84@gambas-buch.de> <27e7127dd8b0ad14619692197752846f5a4d162c.camel@gmail.com> <2aea0fd28a3391dfd6977884a680cb4161af0bb6.camel@gmail.com> Message-ID: <6d2ce936-b037-4b5e-98d2-c52b8954ffdb@gmail.com> On 7/5/21 10:30 AM, bb wrote: > comp ? gb.db.form ? datasource ? .change > Event DataSource.Change (gb.db.form) > > Event Change ( ) > > Raised when the DataSource current record has changed and all bound > child controls are updated. Ah, geez, Bruce. While I was composing and sending my epiphany, you slipped this in. :-D -- Lee From t.lee.davidson at gmail.com Mon Jul 5 17:26:59 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 5 Jul 2021 11:26:59 -0400 Subject: [Gambas-user] Telegram Bot Library In-Reply-To: <1625403315.65798613@f20.my.com> References: <1625403315.65798613@f20.my.com> Message-ID: <2baf2d56-9523-a38e-3e22-4f3043f6fe38@gmail.com> On 7/4/21 8:55 AM, Brian G wrote: > I don't know about gambas, but there is a c++ library > > https://github.com/reo7sp/tgbot-cpp > > Can that be called directly from gambas? > > -- > Thanks > Brian G > They call it a library, but it's more of a class definition designed for instantiation of an object and subsequent execution of methods of that object; not a actual library with externally callable functions. That is also true of the other C/C++ (so-called) libraries I looked at. John, if you're averse to coding in VB and would prefer Gambas, you could just code against the HTTP-based Telegram Bot API directly. There are only 54 methods, and the call format is quite simple: https://api.telegram.org/bot/METHOD_NAME (https://core.telegram.org/bots/api#making-requests) It should be relatively easy to convert the response to a collection using JSON.Decode from the gb.util.web component. -- Lee From dovey.john at gmail.com Mon Jul 5 18:04:36 2021 From: dovey.john at gmail.com (John Dovey) Date: Mon, 5 Jul 2021 11:04:36 -0500 Subject: [Gambas-user] Telegram Bot Library In-Reply-To: <2baf2d56-9523-a38e-3e22-4f3043f6fe38@gmail.com> References: <1625403315.65798613@f20.my.com> <2baf2d56-9523-a38e-3e22-4f3043f6fe38@gmail.com> Message-ID: Thank you.. That's a damn fine idea.. I'm not too sure about the wrapping stuff, so I'd have to work on that. On Mon, 5 Jul 2021 at 10:28, T Lee Davidson wrote: > > On 7/4/21 8:55 AM, Brian G wrote: > > I don't know about gambas, but there is a c++ library > > > > https://github.com/reo7sp/tgbot-cpp > > > > Can that be called directly from gambas? > > > > -- > > Thanks > > Brian G > > > > They call it a library, but it's more of a class definition designed for instantiation of an object and subsequent execution of > methods of that object; not a actual library with externally callable functions. That is also true of the other C/C++ > (so-called) libraries I looked at. > > John, if you're averse to coding in VB and would prefer Gambas, you could just code against the HTTP-based Telegram Bot API > directly. There are only 54 methods, and the call format is quite simple: > https://api.telegram.org/bot/METHOD_NAME > (https://core.telegram.org/bots/api#making-requests) > > It should be relatively easy to convert the response to a collection using JSON.Decode from the gb.util.web component. > > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From herberthguzman at gmail.com Tue Jul 6 03:42:19 2021 From: herberthguzman at gmail.com (Herberth Guzman) Date: Mon, 5 Jul 2021 19:42:19 -0600 Subject: [Gambas-user] Data.Image WebTable (gb-web-gui) Message-ID: Hi I have a web project (gb-web-gui) I need to display an image in a webtable the code: Data.Image = ("img/alert.png") but it doesn't work, am I doing something wrong ..? this code if it works Data.Html = "" The problem with this code is that it works fine at runtime. But when I compile and upload it to my server it doesn't show the image. Can anybody help me. Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Tue Jul 6 03:55:36 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Tue, 6 Jul 2021 03:55:36 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 Message-ID: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> Hi, I have released Gambas 3.16.2 with most of the bug fixed since the previous 3.16.1. You can download it at: https://gitlab.com/gambas/gambas/-/archive/3.16.2/gambas-3.16.2.tar.bz2 to check it before I update the Ubuntu PPA packages and make it official. The changelog is at: https://gambaswiki.org/wiki/doc/release/3.16.2. Report any problem as usual. Enjoy! -- Beno?t Minisini From dovey.john at gmail.com Tue Jul 6 06:04:36 2021 From: dovey.john at gmail.com (John Dovey) Date: Mon, 5 Jul 2021 23:04:36 -0500 Subject: [Gambas-user] Data.Image WebTable (gb-web-gui) In-Reply-To: References: Message-ID: This might have nothing to do with your problem, but I would construct that string something like this: Data.Html = "" because I've had all sorts of problems with escaped strings through the years.. ;-) On Mon, 5 Jul 2021 at 20:43, Herberth Guzman wrote: > > Hi > I have a web project (gb-web-gui) > > I need to display an image in a webtable > > the code: > Data.Image = ("img/alert.png") > > but it doesn't work, am I doing something wrong ..? > > this code if it works > Data.Html = "" > > The problem with this code is that it works fine at runtime. > But when I compile and upload it to my server it doesn't show the image. > > Can anybody help me. > > Thanks > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From kicking177 at gmail.com Tue Jul 6 09:53:14 2021 From: kicking177 at gmail.com (KKing) Date: Tue, 6 Jul 2021 08:53:14 +0100 Subject: [Gambas-user] Data.Image WebTable (gb-web-gui) Message-ID: > The problem with this code is that it works fine at runtime. > But when I compile and upload it to my server it doesn't show the image. random ideas: If it runs locally in IDE can you not compile and run the built .gambas locally to test? Does the running path vary when running the .gambas (locally or on server) from when under IDE? Put some code in to display the running path? For testing can you change it from a relative path to a fixed path to test? K. From bsteers4 at gmail.com Tue Jul 6 10:03:25 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 6 Jul 2021 09:03:25 +0100 Subject: [Gambas-user] Data.Image WebTable (gb-web-gui) In-Reply-To: References: Message-ID: On Tue, 6 Jul 2021 at 02:43, Herberth Guzman wrote: > Hi > I have a web project (gb-web-gui) > > I need to display an image in a webtable > > the code: > Data.Image = ("img/alert.png") > > but it doesn't work, am I doing something wrong ..? > > this code if it works > Data.Html = "" > > The problem with this code is that it works fine at runtime. > But when I compile and upload it to my server it doesn't show the image. > > Can anybody help me. > try using absolute paths including the domain.etc it's probably to do with your server settings and the visibility/url of the img folder relative to the source using the full url of the image will probably work BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From isafiur at gmail.com Tue Jul 6 13:09:03 2021 From: isafiur at gmail.com (Safiur Rahman) Date: Tue, 6 Jul 2021 16:54:03 +0545 Subject: [Gambas-user] Data.Image WebTable (gb-web-gui) Message-ID: Hi In Ubuntu 20.04 you can create a folder in /var/www/html to host your images, documents. sudo mkdir /var/www/html/docs Now you have to send your image file to this document sudo cp /var/www/html/image.png Now you can use this image file in web Table Data.Html = "/docs/image.png>" -- Regards Safiur Rahman From g4mba5 at gmail.com Tue Jul 6 13:18:54 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Tue, 6 Jul 2021 13:18:54 +0200 Subject: [Gambas-user] Data.Image WebTable (gb-web-gui) In-Reply-To: References: Message-ID: <4c7a7c45-2306-0d67-9b39-891216cdf87e@gmail.com> Le 06/07/2021 ? 03:42, Herberth Guzman a ?crit?: > Hi > I have a web project (gb-web-gui) > > I need to display an image in a webtable > > the code: > Data.Image = ("img/alert.png") > > but it doesn't work, am I doing something wrong ..? > > this code if it works > Data.Html = "" > > The problem with this code is that it works fine at runtime. > But when I compile and upload it to my server it doesn't show the image. > > Can anybody help me. > > Thanks > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > The image file must be in the "Public" project folder so that it can be served through HTTP. So, if you put Data.Image = "img/alert.png" (no parenthesis, this is not a translatable string), then the "alert.png" file must be in a "img" folder located in the "Public" folder of the project. The URL associated with the file will be "http(s):///img/alert.png", where "" is the name of your application executable as CGI script. Regards, -- Beno?t Minisini From chrisml at deganius.de Tue Jul 6 14:15:19 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Tue, 6 Jul 2021 14:15:19 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> Message-ID: <66e79bea-30c0-faec-3619-0e9bef6d0262@deganius.de> Hello Beno?t, Am 06.07.21 um 03:55 schrieb Beno?t Minisini: > The changelog is at: > > https://gambaswiki.org/wiki/doc/release/3.16.2. > > Report any problem as usual. > > Enjoy Thank you for the new version! As I see there are no new version tags in the Git repo any more. How can I check out a newer version? AFAICS the last version tag in the repo is '3.15.0'. It lacks the tags '3.15.1', '3.15.2', '3.16.0', '3.16.1' and of course '3.16.2'. Was this intentionally? Alles Gute Christof Thalhofer -- 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 g4mba5 at gmail.com Tue Jul 6 14:45:26 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Tue, 6 Jul 2021 14:45:26 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <66e79bea-30c0-faec-3619-0e9bef6d0262@deganius.de> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <66e79bea-30c0-faec-3619-0e9bef6d0262@deganius.de> Message-ID: <1348d5df-9c27-f91c-bfa6-18b2a2cd7c85@gmail.com> Le 06/07/2021 ? 14:15, Christof Thalhofer a ?crit?: > Hello Beno?t, > > Am 06.07.21 um 03:55 schrieb Beno?t Minisini: > >> The changelog is at: >> >> https://gambaswiki.org/wiki/doc/release/3.16.2. >> >> Report any problem as usual. >> >> Enjoy > > Thank you for the new version! > > As I see there are no new version tags in the Git repo any more. > > How can I check out a newer version? AFAICS the last version tag in the > repo is '3.15.0'. > > It lacks the tags '3.15.1', '3.15.2', '3.16.0', '3.16.1' and of course > '3.16.2'. > > Was this intentionally? > > Alles Gute > > Christof Thalhofer > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > The tags exist, look on gitlab.org. -- Beno?t Minisini From chrisml at deganius.de Tue Jul 6 15:36:08 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Tue, 6 Jul 2021 15:36:08 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <1348d5df-9c27-f91c-bfa6-18b2a2cd7c85@gmail.com> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <66e79bea-30c0-faec-3619-0e9bef6d0262@deganius.de> <1348d5df-9c27-f91c-bfa6-18b2a2cd7c85@gmail.com> Message-ID: <1f044aa6-5ebe-ccda-cd73-cddb56737b9b@deganius.de> Am 06.07.21 um 14:45 schrieb Beno?t Minisini: > The tags exist, look on gitlab.org. But not in the repository: christof at chrisvirt ~/programming/gambas/gambas ?master? ? git tag > tag.txt Look at the file. Alles Gute Christof Thalhofer -- Dies ist keine Signatur -------------- next part -------------- 3.11.0 3.11.1 3.11.2 3.11.3 3.11.4 3.12.0 3.12.1 3.12.2 3.13.0 3.14.0 3.14.1 3.14.2 3.14.3 3.15.0 help v1.9.44 v1.9.45 v1.9.46 v1.9.47 v1.9.48 v1.9.49 v1.9.50 v1.9.51 v1.9.90 v1.9.91 v1.9.92 v2.0.0 v2.1 v2.1.1 v2.10 v2.10.1 v2.10.2 v2.11 v2.11.1 v2.12 v2.13 v2.13.1 v2.14 v2.15 v2.15.1 v2.15.2 v2.16.0 v2.17.0 v2.18.0 v2.19.0 v2.2 v2.2.1 v2.20.0 v2.20.1 v2.20.2 v2.21.0 v2.22.0 v2.23.0 v2.23.1 v2.24.0 v2.3 v2.4 v2.4.1 v2.5 v2.6 v2.7 v2.8 v2.8.1 v2.8.2 v2.9 v2.9.0 v2.99.1 v2.99.2 v2.99.3 v2.99.4 v2.99.5 v2.99.6 v2.99.7 v3.0.0 v3.1.0 v3.1.1 v3.10.0 v3.11.0-rc1 v3.2.0 v3.2.1 v3.3.0 v3.3.1 v3.3.2 v3.3.3 v3.3.4 v3.4.0 v3.4.1 v3.4.2 v3.5.0 v3.5.1 v3.5.2 v3.5.3 v3.5.4 v3.6.0 v3.6.1 v3.6.2 v3.7.0 v3.7.1 v3.8.0 v3.8.1 v3.8.2 v3.8.3 v3.8.4 v3.9.0 v3.9.1 v3.9.2 -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From chrisml at deganius.de Tue Jul 6 15:42:35 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Tue, 6 Jul 2021 15:42:35 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <1f044aa6-5ebe-ccda-cd73-cddb56737b9b@deganius.de> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <66e79bea-30c0-faec-3619-0e9bef6d0262@deganius.de> <1348d5df-9c27-f91c-bfa6-18b2a2cd7c85@gmail.com> <1f044aa6-5ebe-ccda-cd73-cddb56737b9b@deganius.de> Message-ID: <63625cbe-4a8b-efc9-fb60-117eb2c958c3@deganius.de> Am 06.07.21 um 15:36 schrieb Christof Thalhofer: > Am 06.07.21 um 14:45 schrieb Beno?t Minisini: > >> The tags exist, look on gitlab.org. > > But not in the repository: > > christof at chrisvirt ~/programming/gambas/gambas ?master? ? git tag > tag.txt > > Look at the file. Sorry, my fault, I always forget to do 'git fetch --all --tags' sigh ... Alles Gute Christof Thalhofer -- 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 g4mba5 at gmail.com Tue Jul 6 16:07:50 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Tue, 6 Jul 2021 16:07:50 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <63625cbe-4a8b-efc9-fb60-117eb2c958c3@deganius.de> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <66e79bea-30c0-faec-3619-0e9bef6d0262@deganius.de> <1348d5df-9c27-f91c-bfa6-18b2a2cd7c85@gmail.com> <1f044aa6-5ebe-ccda-cd73-cddb56737b9b@deganius.de> <63625cbe-4a8b-efc9-fb60-117eb2c958c3@deganius.de> Message-ID: <35d808a4-e736-e755-0657-b7c57b85ade5@gmail.com> Le 06/07/2021 ? 15:42, Christof Thalhofer a ?crit?: > Am 06.07.21 um 15:36 schrieb Christof Thalhofer: >> Am 06.07.21 um 14:45 schrieb Beno?t Minisini: >> >>> The tags exist, look on gitlab.org. >> >> But not in the repository: >> >> christof at chrisvirt ~/programming/gambas/gambas ?master? ? git tag > tag.txt >> >> Look at the file. > > Sorry, my fault, I always forget to do > 'git fetch --all --tags' > > sigh ... > > Alles Gute > > Christof Thalhofer > > If I don't make a tag for a version, gitlab.com does not give me the download link. -- Beno?t Minisini From herberthguzman at gmail.com Tue Jul 6 21:25:23 2021 From: herberthguzman at gmail.com (Herberth Guzman) Date: Tue, 6 Jul 2021 13:25:23 -0600 Subject: [Gambas-user] Data.Image WebTable (gb-web-gui) In-Reply-To: <4c7a7c45-2306-0d67-9b39-891216cdf87e@gmail.com> References: <4c7a7c45-2306-0d67-9b39-891216cdf87e@gmail.com> Message-ID: Hi Thank you very much to all. The following code worked for me. Data.Html = ("") El mar, 6 jul 2021 a las 5:19, Beno?t Minisini () escribi?: > Le 06/07/2021 ? 03:42, Herberth Guzman a ?crit : > > Hi > > I have a web project (gb-web-gui) > > > > I need to display an image in a webtable > > > > the code: > > Data.Image = ("img/alert.png") > > > > but it doesn't work, am I doing something wrong ..? > > > > this code if it works > > Data.Html = "" > > > > The problem with this code is that it works fine at runtime. > > But when I compile and upload it to my server it doesn't show the image. > > > > Can anybody help me. > > > > Thanks > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > The image file must be in the "Public" project folder so that it can be > served through HTTP. > > So, if you put Data.Image = "img/alert.png" (no parenthesis, this is not > a translatable string), then the "alert.png" file must be in a "img" > folder located in the "Public" folder of the project. > > The URL associated with the file will be "http(s):// root>/img/alert.png", where "" is the name of your > application executable as CGI script. > > Regards, > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Tue Jul 6 22:59:42 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Tue, 6 Jul 2021 22:59:42 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> Message-ID: <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> Le 06/07/2021 ? 03:55, Beno?t Minisini a ?crit?: > Hi, > > I have released Gambas 3.16.2 with most of the bug fixed since the > previous 3.16.1. > > You can download it at: > > https://gitlab.com/gambas/gambas/-/archive/3.16.2/gambas-3.16.2.tar.bz2 > > to check it before I update the Ubuntu PPA packages and make it official. > > The changelog is at: > > https://gambaswiki.org/wiki/doc/release/3.16.2. > > Report any problem as usual. > > Enjoy! > The 3.16.2 tag has been redone because of a last minute fix. Regards, -- Beno?t Minisini From chrisml at deganius.de Wed Jul 7 11:33:13 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 7 Jul 2021 11:33:13 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> Message-ID: <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> Am 06.07.21 um 22:59 schrieb Beno?t Minisini: > The 3.16.2 tag has been redone because of a last minute fix. I am unsure, but I have problems with the IDE which doesn't execute any key combination starting with 'Ctrl' here. I am investigating. Alles Gute Christof Thalhofer -- 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 g4mba5 at gmail.com Wed Jul 7 11:52:09 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 7 Jul 2021 11:52:09 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> Message-ID: Le 07/07/2021 ? 11:33, Christof Thalhofer a ?crit?: > Am 06.07.21 um 22:59 schrieb Beno?t Minisini: > >> The 3.16.2 tag has been redone because of a last minute fix. > > I am unsure, but I have problems with the IDE which doesn't execute any > key combination starting with 'Ctrl' here. I am investigating. > > Alles Gute > > Christof Thalhofer > Check first that it works with the QT5 IDE, and that it is a GTK+ problem. I have not this problem here with GTK+ IDE. Then check the input method in use with GTK+. This is the only thing I imagine that could modify the keyboard events behaviour in GTK+. Regards, -- Beno?t Minisini From bsteers4 at gmail.com Wed Jul 7 12:24:14 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 7 Jul 2021 11:24:14 +0100 Subject: [Gambas-user] Single instance application, anyone else done it? Message-ID: Hi all, I'm looking for a sure fire recommended way to make an application a "Single Instance" application that takes filepath args. The Reason: If i create a desktop launcher for my app and drop multiple files on it linux does not launch the application once and send all the dropped file paths to it. it launches the application multiple times all with one file arg. So i needed a way to only let one app launch and the other instances just send the file args to the first instance. Currently i have used a pipe and Shell "pgrep -f AppName" to list all app id's the lowest app id is selected as the working app and any other instances of the app launched are quickly closed after sending their file args to the pipe. Then the first app picks up the file args from the pipe file. (example app here... https://forum.gambas.one/viewtopic.php?f=13&t=1149) I'm currently looking into DBus as a better alternative for detecting an already loaded app and sending it args but i'm making slow progress with DBus atm (any simple app DBus communication examples would be handy) Just wondered if anyone here has done this sort of thing already and may have any advice / examples. Cheers in advance :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From tmorehen at ajm-software.com Wed Jul 7 14:00:52 2021 From: tmorehen at ajm-software.com (Tony Morehen) Date: Wed, 7 Jul 2021 08:00:52 -0400 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: References: Message-ID: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> On 2021-07-07 5:24 a.m., Bruce Steers wrote: > Hi all, > I'm looking for a sure fire recommended way to make an application a > "Single Instance" application that takes filepath args. > > The Reason: > If i create a desktop launcher for my app and drop multiple files on > it linux does not launch the application once and send all the dropped > file paths to it.? it launches the application multiple times all with > one file arg. > So i needed a way to only let one app launch and the other instances > just send the file args to the first instance. > > Currently i have used a pipe and Shell "pgrep -f AppName" to list all > app id's the lowest app id is selected as the working app and any > other instances of the app launched are quickly closed after sending > their file args to the pipe. > Then the first app picks up the file args from the pipe file. > (example app here... > https://forum.gambas.one/viewtopic.php?f=13&t=1149 > ) > > I'm currently looking into DBus as a better alternative for detecting > an already loaded app and sending it args but i'm making slow progress > with DBus atm (any simple app DBus communication examples would be handy) > > Just wondered if anyone here has done this sort of thing already and > may have any advice / examples. > > Cheers in advance :) > BruceS > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I have the following code in a startup module.? It could go in a startup form as well. Private hDbusObj As DbusObj Const TEXTEDITOR_DBUS_NAME As String = "org.ajmconsulting.TextEditor" Const TEXTEDITOR_PATH As String = "/org/ajmconsulting/TextEditor" Const TEXTEDITOR_DBUS_INTERFACE As String = "org.ajmconsulting.TextEditor" Public Sub Main()??? 'Form_Open if startup form ??? 'check if gbTE is already open ??? If DBus.Session.Applications.Exist(TEXTEDITOR_DBUS_NAME) Then ????? 'yes it is, so pass-off current file list ????? If Files.Count > 0 Then ??????? For Each $file In Files ????????? DBus[TEXTEDITOR_DBUS_NAME][TEXTEDITOR_PATH, TEXTEDITOR_DBUS_INTERFACE].Open($file.Name, $file.ReadOnly, $file.LineNumber, $file.ColumnNumber) ??????? Next ????? Endif ????? Try DBus[TEXTEDITOR_DBUS_NAME][TEXTEDITOR_PATH, TEXTEDITOR_DBUS_INTERFACE].Show() ????? Return??? 'exit, replace with Me.Close if in startup form ??? Endif ??? 'set up to receive pass-off commands ??? DBus.Name = TEXTEDITOR_DBUS_NAME ??? hDbusObj = New DbusObj ??? DBus.Session.Register(hDbusObj, TEXTEDITOR_PATH, TEXTEDITOR_DBUS_INTERFACE]) ? Endif ? fEditor.ShowModal()? 'wait until editing is all done, skip if in startup form ? 'clean-up and exit, place remaining code in Form_Close if in startup form ? If Not IsNull(hDbusObj) And If DBus.IsRegistered(hDbusObj) Then ??? DBus.Unregister(hDbusObj) ? Endif End The remaining code goes into a class file named dbusobj. ' Gambas class file Inherits DBusObject Public Sub org_ajmconsulting_TextEditor_Show() ? fEditor.Show() End Public Sub org_ajmconsulting_TextEditor_Open(sFilePath As String, bReadOnly As Boolean, nLine As Integer, nColumn As Integer) ? fEditor.AddEditor(sFilePath, bReadOnly, nLine, nColumn) ? fEditor.Raise() End -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Jul 7 15:18:55 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 7 Jul 2021 14:18:55 +0100 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> Message-ID: On Wed, 7 Jul 2021 at 13:11, Tony Morehen wrote: > > On 2021-07-07 5:24 a.m., Bruce Steers wrote: > > Hi all, > I'm looking for a sure fire recommended way to make an application a > "Single Instance" application that takes filepath args. > > The Reason: > If i create a desktop launcher for my app and drop multiple files on it > linux does not launch the application once and send all the dropped file > paths to it. it launches the application multiple times all with one file > arg. > So i needed a way to only let one app launch and the other instances just > send the file args to the first instance. > > Currently i have used a pipe and Shell "pgrep -f AppName" to list all app > id's the lowest app id is selected as the working app and any other > instances of the app launched are quickly closed after sending their file > args to the pipe. > Then the first app picks up the file args from the pipe file. > (example app here... https://forum.gambas.one/viewtopic.php?f=13&t=1149) > > I'm currently looking into DBus as a better alternative for detecting an > already loaded app and sending it args but i'm making slow progress with > DBus atm (any simple app DBus communication examples would be handy) > > Just wondered if anyone here has done this sort of thing already and may > have any advice / examples. > > Cheers in advance :) > BruceS > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > I have the following code in a startup module. It could go in a startup > form as well. > > Private hDbusObj As DbusObj > > Const TEXTEDITOR_DBUS_NAME As String = "org.ajmconsulting.TextEditor" > Const TEXTEDITOR_PATH As String = "/org/ajmconsulting/TextEditor" > Const TEXTEDITOR_DBUS_INTERFACE As String = "org.ajmconsulting.TextEditor" > > Public Sub Main() 'Form_Open if startup form > 'check if gbTE is already open > If DBus.Session.Applications.Exist(TEXTEDITOR_DBUS_NAME) Then > 'yes it is, so pass-off current file list > If Files.Count > 0 Then > For Each $file In Files > DBus[TEXTEDITOR_DBUS_NAME][TEXTEDITOR_PATH, > TEXTEDITOR_DBUS_INTERFACE].Open($file.Name, $file.ReadOnly, > $file.LineNumber, $file.ColumnNumber) > Next > Endif > Try DBus[TEXTEDITOR_DBUS_NAME][TEXTEDITOR_PATH, > TEXTEDITOR_DBUS_INTERFACE].Show() > Return 'exit, replace with Me.Close if in startup form > Endif > 'set up to receive pass-off commands > DBus.Name = TEXTEDITOR_DBUS_NAME > hDbusObj = New DbusObj > DBus.Session.Register(hDbusObj, TEXTEDITOR_PATH, > TEXTEDITOR_DBUS_INTERFACE]) > Endif > > fEditor.ShowModal() 'wait until editing is all done, skip if in startup > form > > 'clean-up and exit, place remaining code in Form_Close if in startup form > If Not IsNull(hDbusObj) And If DBus.IsRegistered(hDbusObj) Then > DBus.Unregister(hDbusObj) > Endif > > End > > The remaining code goes into a class file named dbusobj. > > ' Gambas class file > > Inherits DBusObject > > Public Sub org_ajmconsulting_TextEditor_Show() > > fEditor.Show() > > End > > Public Sub org_ajmconsulting_TextEditor_Open(sFilePath As String, > bReadOnly As Boolean, nLine As Integer, nColumn As Integer) > > fEditor.AddEditor(sFilePath, bReadOnly, nLine, nColumn) > fEditor.Raise() > > End > Excellent thank you Tony :) I was so close lol, things are working now though thanks to your help. Much appreciated :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Wed Jul 7 15:38:54 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 7 Jul 2021 15:38:54 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> Message-ID: Am 07.07.21 um 11:52 schrieb Beno?t Minisini: > Le 07/07/2021 ? 11:33, Christof Thalhofer a ?crit?: >> Am 06.07.21 um 22:59 schrieb Beno?t Minisini: >> >>> The 3.16.2 tag has been redone because of a last minute fix. >> >> I am unsure, but I have problems with the IDE which doesn't execute any >> key combination starting with 'Ctrl' here. I am investigating. > > Check first that it works with the QT5 IDE, and that it is a GTK+ > problem. I have not this problem here with GTK+ IDE. With GB_GUI='gb.gtk3' it happens. With GB_GUI='gb.qt5' it does not happen. > Then check the input method in use with GTK+. This is the only thing I > imagine that could modify the keyboard events behaviour in GTK+. It's not only 'Ctrl' but every shortcut fails. After I execute the project one time (hit 'Run' with the mouse), the shortcuts work afterwards. I have no idea what you mean with "check the input method". Alles Gute Christof Thalhofer -- 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 g4mba5 at gmail.com Wed Jul 7 17:37:04 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 7 Jul 2021 17:37:04 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> Message-ID: Le 07/07/2021 ? 15:38, Christof Thalhofer a ?crit?: > Am 07.07.21 um 11:52 schrieb Beno?t Minisini: >> Le 07/07/2021 ? 11:33, Christof Thalhofer a ?crit?: >>> Am 06.07.21 um 22:59 schrieb Beno?t Minisini: >>> >>>> The 3.16.2 tag has been redone because of a last minute fix. >>> >>> I am unsure, but I have problems with the IDE which doesn't execute any >>> key combination starting with 'Ctrl' here. I am investigating. >> >> Check first that it works with the QT5 IDE, and that it is a GTK+ >> problem. I have not this problem here with GTK+ IDE. > > With GB_GUI='gb.gtk3' it happens. > With GB_GUI='gb.qt5' it does not happen. > >> Then check the input method in use with GTK+. This is the only thing I >> imagine that could modify the keyboard events behaviour in GTK+. > > It's not only 'Ctrl' but every shortcut fails. After I execute the > project one time (hit 'Run' with the mouse), the shortcuts work afterwards. > > I have no idea what you mean with "check the input method". > > Alles Gute > > Christof Thalhofer > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > I have installed Gambas 3.16.2 on a Mate system on VirtualBox, and I confirm your problem. -- Beno?t Minisini From g4mba5 at gmail.com Wed Jul 7 17:38:33 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 7 Jul 2021 17:38:33 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> Message-ID: Le 07/07/2021 ? 17:37, Beno?t Minisini a ?crit?: > Le 07/07/2021 ? 15:38, Christof Thalhofer a ?crit?: >> >> It's not only 'Ctrl' but every shortcut fails. After I execute the >> project one time (hit 'Run' with the mouse), the shortcuts work >> afterwards. >> >> I have no idea what you mean with "check the input method". >> >> Alles Gute >> >> Christof Thalhofer >> >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > > I have installed Gambas 3.16.2 on a Mate system on VirtualBox, and I > confirm your problem. > Apparently it's related to the initial focus. If you run the IDE, then click on a text field to give it the focus, shortcuts work. Regards, -- Beno?t Minisini From chrisml at deganius.de Wed Jul 7 17:55:08 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 7 Jul 2021 17:55:08 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> Message-ID: <49038726-ec26-a8b9-b032-f96efb448fb5@deganius.de> Am 07.07.21 um 17:38 schrieb Beno?t Minisini: >> I have installed Gambas 3.16.2 on a Mate system on VirtualBox, and I >> confirm your problem. Here it's Ubuntu 20.04 in a VM. > Apparently it's related to the initial focus. If you run the IDE, then > click on a text field to give it the focus, shortcuts work. Yes, here also. Alles Gute Christof Thalhofer -- 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 g4mba5 at gmail.com Wed Jul 7 19:49:41 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 7 Jul 2021 19:49:41 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <49038726-ec26-a8b9-b032-f96efb448fb5@deganius.de> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> <49038726-ec26-a8b9-b032-f96efb448fb5@deganius.de> Message-ID: Le 07/07/2021 ? 17:55, Christof Thalhofer a ?crit?: > Am 07.07.21 um 17:38 schrieb Beno?t Minisini: > >>> I have installed Gambas 3.16.2 on a Mate system on VirtualBox, and I >>> confirm your problem. > > Here it's Ubuntu 20.04 in a VM. > >> Apparently it's related to the initial focus. If you run the IDE, then >> click on a text field to give it the focus, shortcuts work. > > Yes, here also. > > Alles Gute > > Christof Thalhofer > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > OK, the bug has been fixed (it was present in the development version), and the 3.16.2 tag has been updated. Regards, -- Beno?t Minisini From g4mba5 at gmail.com Wed Jul 7 20:05:34 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 7 Jul 2021 20:05:34 +0200 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> Message-ID: Le 07/07/2021 ? 15:18, Bruce Steers a ?crit?: > > Excellent thank you Tony :) > I was so close lol, things are working now though thanks to your help. > > Much appreciated :) > BruceS > Actually doing that: If DBus.Session.Applications.Exist(TEXTEDITOR_DBUS_NAME) Then to know if you are already on the bus is wrong, because it's not atomic. You must instead set the DBus.Unique property to TRUE before registering, so that a unique name is used. That way, if you register on the DBus bus again, you will get an error, and it will be atomic. So you should do instead: DBus.Unique = TRUE hDbusObj = New DbusObj ' Registering the first object automatically registers the application. Try DBus.Session.Register(hDbusObj, TEXTEDITOR_PATH, TEXTEDITOR_DBUS_INTERFACE]) If Error Then ' We suppose we are already registered. If Files.Count > 0 Then For Each $file In Files DBus[DBus.Name][TEXTEDITOR_PATH, TEXTEDITOR_DBUS_INTERFACE].Open($file.Name, $file.ReadOnly, $file.LineNumber, $file.ColumnNumber) Next Endif Try DBus[DBus.Name][TEXTEDITOR_PATH, TEXTEDITOR_DBUS_INTERFACE].Show() Endif Tell me if it actually works! -- Beno?t Minisini From bsteers4 at gmail.com Wed Jul 7 20:15:18 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 7 Jul 2021 19:15:18 +0100 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> Message-ID: It's working a treat here.. Thank you I'm attaching a test app, it just adds args to the listview works for multiple file drops the ArgAdded event remains active while running so further launches/drops add to list too. BruceS On Wed, 7 Jul 2021 at 19:06, Beno?t Minisini wrote: > Le 07/07/2021 ? 15:18, Bruce Steers a ?crit : > > > > Excellent thank you Tony :) > > I was so close lol, things are working now though thanks to your help. > > > > Much appreciated :) > > BruceS > > > > Actually doing that: > > If DBus.Session.Applications.Exist(TEXTEDITOR_DBUS_NAME) Then > > to know if you are already on the bus is wrong, because it's not atomic. > > You must instead set the DBus.Unique property to TRUE before > registering, so that a unique name is used. > > That way, if you register on the DBus bus again, you will get an error, > and it will be atomic. > > So you should do instead: > > DBus.Unique = TRUE > > hDbusObj = New DbusObj > > ' Registering the first object automatically registers the application. > > Try DBus.Session.Register(hDbusObj, TEXTEDITOR_PATH, > TEXTEDITOR_DBUS_INTERFACE]) > > If Error Then > > ' We suppose we are already registered. > > If Files.Count > 0 Then > For Each $file In Files > DBus[DBus.Name][TEXTEDITOR_PATH, > TEXTEDITOR_DBUS_INTERFACE].Open($file.Name, $file.ReadOnly, > $file.LineNumber, $file.ColumnNumber) > Next > Endif > > Try DBus[DBus.Name][TEXTEDITOR_PATH, TEXTEDITOR_DBUS_INTERFACE].Show() > > Endif > > Tell me if it actually works! > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 From bsteers4 at gmail.com Wed Jul 7 20:20:16 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 7 Jul 2021 19:20:16 +0100 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> Message-ID: Sorry Ben i missed a bit. Yes if i set unique and remove the Exist() check it still works okay as the Error equals the condition. BruceS On Wed, 7 Jul 2021 at 19:15, Bruce Steers wrote: > It's working a treat here.. > Thank you > I'm attaching a test app, it just adds args to the listview > works for multiple file drops > the ArgAdded event remains active while running so further launches/drops > add to list too. > > BruceS > > > On Wed, 7 Jul 2021 at 19:06, Beno?t Minisini wrote: > >> Le 07/07/2021 ? 15:18, Bruce Steers a ?crit : >> > >> > Excellent thank you Tony :) >> > I was so close lol, things are working now though thanks to your help. >> > >> > Much appreciated :) >> > BruceS >> > >> >> Actually doing that: >> >> If DBus.Session.Applications.Exist(TEXTEDITOR_DBUS_NAME) Then >> >> to know if you are already on the bus is wrong, because it's not atomic. >> >> You must instead set the DBus.Unique property to TRUE before >> registering, so that a unique name is used. >> >> That way, if you register on the DBus bus again, you will get an error, >> and it will be atomic. >> >> So you should do instead: >> >> DBus.Unique = TRUE >> >> hDbusObj = New DbusObj >> >> ' Registering the first object automatically registers the application. >> >> Try DBus.Session.Register(hDbusObj, TEXTEDITOR_PATH, >> TEXTEDITOR_DBUS_INTERFACE]) >> >> If Error Then >> >> ' We suppose we are already registered. >> >> If Files.Count > 0 Then >> For Each $file In Files >> DBus[DBus.Name][TEXTEDITOR_PATH, >> TEXTEDITOR_DBUS_INTERFACE].Open($file.Name, $file.ReadOnly, >> $file.LineNumber, $file.ColumnNumber) >> Next >> Endif >> >> Try DBus[DBus.Name][TEXTEDITOR_PATH, TEXTEDITOR_DBUS_INTERFACE].Show() >> >> Endif >> >> Tell me if it actually works! >> >> -- >> Beno?t Minisini >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From karl.reinl at fen-net.de Wed Jul 7 21:37:18 2021 From: karl.reinl at fen-net.de (Karl Reinl) Date: Wed, 07 Jul 2021 21:37:18 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> <49038726-ec26-a8b9-b032-f96efb448fb5@deganius.de> Message-ID: <8ce0100eafc94d083557478518a5beb075be162c.camel@fen-net.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Am Mittwoch, den 07.07.2021, 19:49 +0200 schrieb Beno?t Minisini: > Le 07/07/2021 ? 17:55, Christof Thalhofer a ?crit : > > Am 07.07.21 um 17:38 schrieb Beno?t Minisini: > > > > > > I have installed Gambas 3.16.2 on a Mate system on VirtualBox, > > > > and I > > > > confirm your problem. > > > > Here it's Ubuntu 20.04 in a VM. > > > > > Apparently it's related to the initial focus. If you run the IDE, > > > then > > > click on a text field to give it the focus, shortcuts work. > > > > Yes, here also. > > > > Alles Gute > > > > Christof Thalhofer > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > OK, the bug has been fixed (it was present in the development > version), > and the 3.16.2 tag has been updated. > > Regards, > Salut, now, debuging became to be painful, F8 does not go on every time, you have to click with the mouse on the next line first. on both gtk3/qt5 [System] Gambas=3.16.90 c6ed9848a (master) OperatingSystem=Linux Kernel=5.4.0-77-generic Architecture=x86_64 Distribution=Ubuntu 20.04.2 LTS Desktop=MATE Font=Ubuntu,11 Scale=8 Theme=proxy Language=de_DE.UTF-8 Memory=5918M - -- Amicalement Charlie -----BEGIN PGP SIGNATURE----- iQGzBAEBCgAdFiEEjowiKCHQ+TXcV68jJzngniJtB0MFAmDmAm4ACgkQJzngniJt B0PUlAv8CbKqc/568SYzJd8X7InMZeCuUgXxOhFQ8fNL6hpeteELNj+i4jMAN82I I/h4GWX81D842jkvzEa0ZleSwifAPUQCVGYqdKgrNSCYSTSQesu4C5SR0TqoNSJ5 EeH/4ltksKtq68lJu0G1ZWEV3tCpDLArsnHecVH7WCoiuF3iE9QOjTr3lpykO2CE NnJaZ5EpCN6GSltxq4urZOcKrQDBf1ilrmfxFVMworMN39eGw5S/LDGAlVMxDyiq EVyW6SQqzpfCuP3qUghBQhE6b+gf2MWtTyvZTtmTQBMnDr35t/kixnTD65c7w+68 GRVaL0DDSs5iOqJQMEY958t7x8nTRHUVLFieyNFtSUq+ro4pU1gdHXFA9Hp8BMmU NTmIJut/B8V72SjVb9goG/YksvEoj/pxMnOYjjYBjxs8yx0rQJxT40fgCvsdcVmj xIh5Vj5Ig6skUajFnUhWnKrMQhh75+RdpOqQY6Fft7WQzvgsU2QCJpUJNH07vedV senvasQn =hLpB -----END PGP SIGNATURE----- From g4mba5 at gmail.com Wed Jul 7 21:50:52 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 7 Jul 2021 21:50:52 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <8ce0100eafc94d083557478518a5beb075be162c.camel@fen-net.de> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> <49038726-ec26-a8b9-b032-f96efb448fb5@deganius.de> <8ce0100eafc94d083557478518a5beb075be162c.camel@fen-net.de> Message-ID: Le 07/07/2021 ? 21:37, Karl Reinl a ?crit : > Am Mittwoch, den 07.07.2021, 19:49 +0200 schrieb Beno?t Minisini: >> Le 07/07/2021 ? 17:55, Christof Thalhofer a ?crit : >>> Am 07.07.21 um 17:38 schrieb Beno?t Minisini: >>> >>>>> I have installed Gambas 3.16.2 on a Mate system on VirtualBox, >>>>> and I >>>>> confirm your problem. >>> >>> Here it's Ubuntu 20.04 in a VM. >>> >>>> Apparently it's related to the initial focus. If you run the IDE, >>>> then >>>> click on a text field to give it the focus, shortcuts work. >>> >>> Yes, here also. >>> >>> Alles Gute >>> >>> Christof Thalhofer >>> >>> >>> >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >>> > >> OK, the bug has been fixed (it was present in the development >> version), >> and the 3.16.2 tag has been updated. > >> Regards, > > > Salut, > > now, debuging became to be painful, F8 does not go on every time, you > have to click with the mouse on the next line first. > > on both gtk3/qt5 No problem here. And we are talking about 3.16.2, not the development version. -- Beno?t Minisini From chrisml at deganius.de Thu Jul 8 10:33:11 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 8 Jul 2021 10:33:11 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> <49038726-ec26-a8b9-b032-f96efb448fb5@deganius.de> <8ce0100eafc94d083557478518a5beb075be162c.camel@fen-net.de> Message-ID: <172be3e4-6b21-231a-3dfb-5e558c809376@deganius.de> Am 07.07.21 um 21:50 schrieb Beno?t Minisini: > No problem here. And we are talking about 3.16.2, not the development > version. It looks good on my test machine. But I could not test everything as I would have to rewrite parts of my software for Ubuntu 20. Unfortunately I do not have time at the moment. Alles Gute Christof Thalhofer -- 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 bsteers4 at gmail.com Thu Jul 8 11:51:51 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 8 Jul 2021 10:51:51 +0100 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> Message-ID: On Wed, 7 Jul 2021 at 19:06, Beno?t Minisini wrote: > Le 07/07/2021 ? 15:18, Bruce Steers a ?crit : > > > > Excellent thank you Tony :) > > I was so close lol, things are working now though thanks to your help. > > > > Much appreciated :) > > BruceS > > > > Actually doing that: > > If DBus.Session.Applications.Exist(TEXTEDITOR_DBUS_NAME) Then > > to know if you are already on the bus is wrong, because it's not atomic. > > You must instead set the DBus.Unique property to TRUE before > registering, so that a unique name is used. > > That way, if you register on the DBus bus again, you will get an error, > and it will be atomic. > > So you should do instead: > > DBus.Unique = TRUE > > hDbusObj = New DbusObj > > ' Registering the first object automatically registers the application. > > Try DBus.Session.Register(hDbusObj, TEXTEDITOR_PATH, > TEXTEDITOR_DBUS_INTERFACE]) > > If Error Then > > ' We suppose we are already registered. > > If Files.Count > 0 Then > For Each $file In Files > DBus[DBus.Name][TEXTEDITOR_PATH, > TEXTEDITOR_DBUS_INTERFACE].Open($file.Name, $file.ReadOnly, > $file.LineNumber, $file.ColumnNumber) > Next > Endif > > Try DBus[DBus.Name][TEXTEDITOR_PATH, TEXTEDITOR_DBUS_INTERFACE].Show() > > Endif > > Tell me if it actually works! > Seems problematic though maybe. To suppose an Error means the interface exists is not right. Error.code is always -1 so that's no help Error.text differs (bad address / unique address already registered/ etc) but is not safe to use due to languages. Is it possible to get the GError value? https://dbus.freedesktop.org/doc/dbus-glib/dbus-glib-DBusGError.html#DBusGError otherwise i will have to use the If DBus.Session.Applications.Exist(DBUS_NAME) Then just to be sure that's the error i got. Regards BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Jul 8 15:56:41 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 8 Jul 2021 14:56:41 +0100 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> Message-ID: On Thu, 8 Jul 2021 at 10:51, Bruce Steers wrote: > > > On Wed, 7 Jul 2021 at 19:06, Beno?t Minisini wrote: > >> Le 07/07/2021 ? 15:18, Bruce Steers a ?crit : >> > >> > Excellent thank you Tony :) >> > I was so close lol, things are working now though thanks to your help. >> > >> > Much appreciated :) >> > BruceS >> > >> >> Actually doing that: >> >> If DBus.Session.Applications.Exist(TEXTEDITOR_DBUS_NAME) Then >> >> to know if you are already on the bus is wrong, because it's not atomic. >> >> You must instead set the DBus.Unique property to TRUE before >> registering, so that a unique name is used. >> >> That way, if you register on the DBus bus again, you will get an error, >> and it will be atomic. >> >> So you should do instead: >> >> DBus.Unique = TRUE >> >> hDbusObj = New DbusObj >> >> ' Registering the first object automatically registers the application. >> >> Try DBus.Session.Register(hDbusObj, TEXTEDITOR_PATH, >> TEXTEDITOR_DBUS_INTERFACE]) >> >> If Error Then >> >> ' We suppose we are already registered. >> >> If Files.Count > 0 Then >> For Each $file In Files >> DBus[DBus.Name][TEXTEDITOR_PATH, >> TEXTEDITOR_DBUS_INTERFACE].Open($file.Name, $file.ReadOnly, >> $file.LineNumber, $file.ColumnNumber) >> Next >> Endif >> >> Try DBus[DBus.Name][TEXTEDITOR_PATH, TEXTEDITOR_DBUS_INTERFACE].Show() >> >> Endif >> >> Tell me if it actually works! >> > > > Seems problematic though maybe. > To suppose an Error means the interface exists is not right. > Error.code is always -1 so that's no help > Error.text differs (bad address / unique address already registered/ etc) > but is not safe to use due to languages. > Is it possible to get the GError value? > > https://dbus.freedesktop.org/doc/dbus-glib/dbus-glib-DBusGError.html#DBusGError > > otherwise i will have to use the > If DBus.Session.Applications.Exist(DBUS_NAME) Then > just to be sure that's the error i got. > Regards > BruceS > Nope it does not work using DBus.Session.Applications.Exist() , it works if one app is ready loaded but launching 2 apps together fails to connect for the second but Applications[] is not yet updated. seems all i can do is test error.Text ends with "already registered" (im not sure if gambas translates that msg) Another option on a gambas level is to edit the DBus.class gb.dbus and add a boolean property "ApplicationExists" that gets set to true if the connection fails due to already existing interface during _RegisterApplication() Or if Error.Code could be something other than -1 if connection exists? then i can tell if error was because connection exists or something else. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Thu Jul 8 16:37:46 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Thu, 8 Jul 2021 16:37:46 +0200 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> Message-ID: <5318bb26-10d3-4ece-e881-c8056f73c132@gmail.com> Le 08/07/2021 ? 15:56, Bruce Steers a ?crit?: > > Nope it does not work using DBus.Session.Applications.Exist() , it works > if one app is ready loaded but launching 2 apps together fails to > connect for the second but Applications[] is not yet updated. > > seems all i can do is test error.Text ends with "already registered" (im > not sure if gambas translates that msg) > > Another option on a gambas level is to edit the DBus.class gb.dbus and > add a boolean property "ApplicationExists" that gets set to true if the > connection fails due to already existing interface during > _RegisterApplication() > > Or if Error.Code could be something other than -1 if connection exists? > > then i can tell if error was because connection exists or something else. > > BruceS > Error messages are never translated (otherwise it's a bug). But of course this is a temporary workaround, and a solution like you suggest must be implemented. Regards, -- Beno?t Minisini From dovey.john at gmail.com Thu Jul 8 16:39:26 2021 From: dovey.john at gmail.com (John Dovey) Date: Thu, 8 Jul 2021 09:39:26 -0500 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: <5318bb26-10d3-4ece-e881-c8056f73c132@gmail.com> References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> <5318bb26-10d3-4ece-e881-c8056f73c132@gmail.com> Message-ID: Just to throw a spammer in the works, what about those of us who run everything throw X windows and don?t have a desktop at all? On Thu, Jul 8, 2021 at 9:38 AM Beno?t Minisini wrote: > Le 08/07/2021 ? 15:56, Bruce Steers a ?crit : > > > > Nope it does not work using DBus.Session.Applications.Exist() , it works > > if one app is ready loaded but launching 2 apps together fails to > > connect for the second but Applications[] is not yet updated. > > > > seems all i can do is test error.Text ends with "already registered" (im > > not sure if gambas translates that msg) > > > > Another option on a gambas level is to edit the DBus.class gb.dbus and > > add a boolean property "ApplicationExists" that gets set to true if the > > connection fails due to already existing interface during > > _RegisterApplication() > > > > Or if Error.Code could be something other than -1 if connection exists? > > > > then i can tell if error was because connection exists or something else. > > > > BruceS > > > > Error messages are never translated (otherwise it's a bug). > > But of course this is a temporary workaround, and a solution like you > suggest must be implemented. > > Regards, > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -- Sent from Gmail Mobile -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobs at taboege.de Thu Jul 8 16:59:05 2021 From: tobs at taboege.de (Tobias Boege) Date: Thu, 8 Jul 2021 16:59:05 +0200 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> <5318bb26-10d3-4ece-e881-c8056f73c132@gmail.com> Message-ID: <20210708145905.GE3158646@T580.localdomain> On Thu, 08 Jul 2021, John Dovey wrote: > Just to throw a spammer in the works, what about those of us who run > everything throw X windows and don?t have a desktop at all? > D-Bus does not need a desktop either, it is a message passing mechanism. For example, systemd depends on D-Bus, so many systems without a desktop or even without a graphical display at all might already run D-Bus. If you don't want to rely on the presence of D-Bus, there is still the "pid file" technique (but you have to handle stale pid files). Or you could make your program set up a UNIX socket in a well-known location. Other instances of your program will try to connect to the socket and if they get a response, another instance is running. If not, they create that socket and answer on it to prove that they're running. Best, Tobias -- "There's an old saying: Don't change anything... ever!" -- Mr. Monk From jose.rodriguez at cenpalab.cu Thu Jul 8 17:11:02 2021 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Thu, 08 Jul 2021 15:11:02 +0000 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: <20210708145905.GE3158646@T580.localdomain> References: <20210708145905.GE3158646@T580.localdomain> <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> <5318bb26-10d3-4ece-e881-c8056f73c132@gmail.com> Message-ID: July 8, 2021 10:59 AM, "Tobias Boege via User" wrote: > Or you > could make your program set up a UNIX socket in a well-known location. > Other instances of your program will try to connect to the socket and > if they get a response, another instance is running. If not, they > create that socket and answer on it to prove that they're running. > I did this on a couple of my java developments, but using a TCP socket for cross-platform use. Regards, Joe1962 From bsteers4 at gmail.com Thu Jul 8 18:14:49 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 8 Jul 2021 17:14:49 +0100 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> <5318bb26-10d3-4ece-e881-c8056f73c132@gmail.com> Message-ID: On Thu, 8 Jul 2021 at 15:40, John Dovey wrote: > Just to throw a spammer in the works, what about those of us who run > everything throw X windows and don?t have a desktop at all? > Then the problem we are addressing of drag-dropping multiple files on a launcher or selecting "open with" and it launching the application multiple times is completely irrelevant to you . just use the Args[] array ;) ;) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Jul 8 18:40:36 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 8 Jul 2021 17:40:36 +0100 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: <20210708145905.GE3158646@T580.localdomain> References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> <5318bb26-10d3-4ece-e881-c8056f73c132@gmail.com> <20210708145905.GE3158646@T580.localdomain> Message-ID: On Thu, 8 Jul 2021 at 15:59, Tobias Boege via User < user at lists.gambas-basic.org> wrote: > On Thu, 08 Jul 2021, John Dovey wrote: > > Just to throw a spammer in the works, what about those of us who run > > everything throw X windows and don?t have a desktop at all? > > > > D-Bus does not need a desktop either, it is a message passing mechanism. > For example, systemd depends on D-Bus, so many systems without a desktop > or even without a graphical display at all might already run D-Bus. > > If you don't want to rely on the presence of D-Bus, there is still the > "pid file" technique (but you have to handle stale pid files). Or you > could make your program set up a UNIX socket in a well-known location. > Other instances of your program will try to connect to the socket and > if they get a response, another instance is running. If not, they > create that socket and answer on it to prove that they're running. > > Best, > Tobias > i used shell and pgrep Dim sResult As String Shell "pgrep -f -d , " & Application.Name To sResult that returns a list of running application Id's matching the app separated by commas You can then... Dim sIDs As String[] = Split(sResult, ",") if sIDs.Count=1 (only one app loaded) If SIDs.Count>1 Then then the application chooses the lowest number PID and selects it as the master app. Dim iLowPID as Integer = Val(sIDs[0]) For i As Integer = 1 To SIDs.Max iLowPID = Min(iLowPID, Val(sIDs[i])) Next If iLowPID = Application.Id (then this app is master) I've an example of doing this and using a pipe to send the master app the args on the gambas.one forum.. https://forum.gambas.one/viewtopic.php?f=13&t=943 BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobs at taboege.de Thu Jul 8 19:27:32 2021 From: tobs at taboege.de (Tobias Boege) Date: Thu, 8 Jul 2021 19:27:32 +0200 Subject: [Gambas-user] Single instance application, anyone else done it? In-Reply-To: References: <395e1f61-d443-299b-4695-d8f254585957@ajm-software.com> <5318bb26-10d3-4ece-e881-c8056f73c132@gmail.com> <20210708145905.GE3158646@T580.localdomain> Message-ID: <20210708172732.GF3158646@T580.localdomain> On Thu, 08 Jul 2021, Bruce Steers wrote: > On Thu, 8 Jul 2021 at 15:59, Tobias Boege via User < > user at lists.gambas-basic.org> wrote: > > > On Thu, 08 Jul 2021, John Dovey wrote: > > > Just to throw a spammer in the works, what about those of us who run > > > everything throw X windows and don?t have a desktop at all? > > > > > > > D-Bus does not need a desktop either, it is a message passing mechanism. > > For example, systemd depends on D-Bus, so many systems without a desktop > > or even without a graphical display at all might already run D-Bus. > > > > If you don't want to rely on the presence of D-Bus, there is still the > > "pid file" technique (but you have to handle stale pid files). Or you > > could make your program set up a UNIX socket in a well-known location. > > Other instances of your program will try to connect to the socket and > > if they get a response, another instance is running. If not, they > > create that socket and answer on it to prove that they're running. > > > > Best, > > Tobias > > > > i used shell and pgrep > Dim sResult As String > Shell "pgrep -f -d , " & Application.Name To sResult > > that returns a list of running application Id's matching the app separated > by commas > > You can then... > Dim sIDs As String[] = Split(sResult, ",") > > if sIDs.Count=1 (only one app loaded) > This works until someone copies the program to a different location and starts both, the original and the copy. Then, pgrep will not be able to tell you that these two are in fact the same program because the executables and hence the command lines matched by pgrep are different. This is probably an okay assumption to make (that people who make and run copies of the executable are asking for trouble), but one should be aware of making this assumption when using the pgrep method. Best, Tobias -- "There's an old saying: Don't change anything... ever!" -- Mr. Monk From adamnt42 at gmail.com Thu Jul 8 20:08:37 2021 From: adamnt42 at gmail.com (bb) Date: Fri, 09 Jul 2021 03:38:37 +0930 Subject: [Gambas-user] gambas | Draft: DBus, add ConnectionExists boolean property (!238) In-Reply-To: References: Message-ID: <2f185cab6633033f309f8936b7feb259990cc8e7.camel@gmail.com> On Thu, 2021-07-08 at 17:51 +0000, Bruce Steers (@bsteers4) wrote: > Bruce Steers created a merge request: !238 > > Project:Branches: bsteers4/gambas:dbus-connectionexists to > gambas/gambas:master > Author: Bruce Steers > Assignees: > Reviewers: > [GB.DBUS] > > NEW: ConnectionExists boolean property sets true if connection fails > due to already existing connection. > It's a solution. Or maybe just a workaround? With this if Register() > fails and ConnectionExists = False i know i have a different error. > > I understand if you think it's not the best idea and you have a > better idea :) > Bruce, It's not the connection that is failing. It is the attempted registration. >From memory, checking whether a (any) dbus server already exists can be done by simply trying to connect to it. BUT! as Benoit said, that is not a "atomic" process. The way he described is the best way to do such a "set and test" check. try(set registration) except (set error) on_error(do something) else (do something else, like attempt to "become" the server*) So it's actually failing successfully (!) b * a BAD idea imo. Servers should serve, clients should be simple and stupid. ! You also have the problem when using an asynchronous check in that the server may well exit between the check and the subsequent attempt to use that server. From g4mba5 at gmail.com Thu Jul 8 20:15:06 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Thu, 8 Jul 2021 20:15:06 +0200 Subject: [Gambas-user] gambas | Draft: DBus, add ConnectionExists boolean property (!238) In-Reply-To: <2f185cab6633033f309f8936b7feb259990cc8e7.camel@gmail.com> References: <2f185cab6633033f309f8936b7feb259990cc8e7.camel@gmail.com> Message-ID: <2ee39281-ad19-4b9b-0408-ec9f6cb883a7@gmail.com> Le 08/07/2021 ? 20:08, bb a ?crit?: > > Bruce, > > It's not the connection that is failing. It is the attempted > registration. > >>From memory, checking whether a (any) dbus server already exists can be > done by simply trying to connect to it. BUT! as Benoit said, that is > not a "atomic" process. > The way he described is the best way to do such a "set and test" check. > > try(set registration) > except (set error) > > on_error(do something) > else (do something else, like attempt to "become" the server*) > This is not necessary to "attempt to become the server", because this is what is already done by the DBus registration process. Once registered, you are "de facto" the unique "server" process. DBus gives you the atomicity. -- Beno?t Minisini From adamnt42 at gmail.com Thu Jul 8 20:22:12 2021 From: adamnt42 at gmail.com (bb) Date: Fri, 09 Jul 2021 03:52:12 +0930 Subject: [Gambas-user] gambas | Draft: DBus, add ConnectionExists boolean property (!238) In-Reply-To: <2ee39281-ad19-4b9b-0408-ec9f6cb883a7@gmail.com> References: <2f185cab6633033f309f8936b7feb259990cc8e7.camel@gmail.com> <2ee39281-ad19-4b9b-0408-ec9f6cb883a7@gmail.com> Message-ID: <52055216cc2bde75688a6c52e666d68b97f113a6.camel@gmail.com> On Thu, 2021-07-08 at 20:15 +0200, Beno?t Minisini wrote: > Le 08/07/2021 ? 20:08, bb a ?crit : > > Bruce, > > > > It's not the connection that is failing. It is the attempted > > registration. > > > > > From memory, checking whether a (any) dbus server already exists > > > can be > > done by simply trying to connect to it. BUT! as Benoit said, that > > is > > not a "atomic" process. > > The way he described is the best way to do such a "set and test" > > check. > > > > try(set registration) > > except (set error) > > > > on_error(do something) > > else (do something else, like attempt to "become" the server*) > > > > This is not necessary to "attempt to become the server", because this > is > what is already done by the DBus registration process. > > Once registered, you are "de facto" the unique "server" process. > DBus > gives you the atomicity. > Yep. For some unknown reason I was trying to come up with some kind of else clause... b From tercoide at hotmail.com Thu Jul 8 21:10:42 2021 From: tercoide at hotmail.com (martin cristia) Date: Thu, 8 Jul 2021 16:10:42 -0300 Subject: [Gambas-user] glClearColor error Message-ID: Hi, I'm having this error, with a GLArea in a form: opengl-clearcolor: symbol lookup error: /usr/lib/gambas3/gb.gtk3.opengl.so: undefined symbol: glClearColor project attatched, [System] Gambas=3.16.90 OperatingSystem=Linux Kernel=5.11.0-22-generic Architecture=x86_64 Distribution=Ubuntu 21.04 Desktop=UBUNTU:GNOME Font=Ubuntu,11 Scale=8 Theme=yaru Language=es_AR.UTF-8 Memory=11847M [Libraries] Cairo=libcairo.so.2.11600.0 Curl=libcurl.so.4.7.0 DBus=libdbus-1.so.3.19.13 GDK2=libgdk-x11-2.0.so.0.2400.33 GDK3=libgdk-3.so.0.2404.21 GStreamer=libgstreamer-1.0.so.0.1804.0 GTK+2=libgtk-x11-2.0.so.0.2400.33 GTK+3=libgtk-3.so.0.2404.21 OpenGL=libGL.so.1.7.0 Poppler=libpoppler.so.102.0.0 Poppler=libpoppler.so.107.0.0 QT5=libQt5Core.so.5.15.2 SDL=libSDL-1.2.so.0.11.4 SQLite=libsqlite3.so.0.8.6 [Environment] DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus DESKTOP_SESSION=ubuntu DISPLAY=:0 EDITOR=gedit GB_GUI=gb.gtk3 GDMSESSION=ubuntu GIO_LAUNCHED_DESKTOP_FILE=/usr/share/applications/gambas3.desktop GIO_LAUNCHED_DESKTOP_FILE_PID=3551 GJS_DEBUG_OUTPUT=stderr GJS_DEBUG_TOPICS=JS ERROR;JS LOG GNOME_DESKTOP_SESSION_ID=this-is-deprecated GNOME_SETUP_DISPLAY=:1 GNOME_SHELL_SESSION_MODE=ubuntu GTK_MODULES=gail:atk-bridge HOME= IM_CONFIG_PHASE=1 INVOCATION_ID=97a4c6636e594d40bd4502b38387d1c2 JOURNAL_STREAM=8:28939 LANG=es_AR.UTF-8 LANGUAGE=es_AR.UTF-8 LC_ALL=es_AR.UTF-8 LOGNAME= MANAGERPID=949 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin PWD= QT_ACCESSIBILITY=1 QT_IM_MODULE=ibus QT_LOGGING_RULES=*.debug=false SESSION_MANAGER=local/:@/tmp/.ICE-unix/1114,unix/:/tmp/.ICE-unix/1114 SHELL=/bin/bash SHLVL=0 SSH_AGENT_LAUNCHER=gnome-keyring SSH_AUTH_SOCK=/run/user/1000/keyring/ssh TZ=:/etc/localtime USER= USERNAME= WAYLAND_DISPLAY=wayland-0 XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.RQX350 XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg XDG_CURRENT_DESKTOP=ubuntu:GNOME XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop XDG_MENU_PREFIX=gnome- XDG_RUNTIME_DIR=/run/user/1000 XDG_SESSION_CLASS=user XDG_SESSION_DESKTOP=ubuntu XDG_SESSION_TYPE=wayland XMODIFIERS=@im=ibus _=/usr/bin/gnome-session -------------- next part -------------- A non-text attachment was scrubbed... Name: opengl-clearcolor-0.0.3.tar.gz Type: application/gzip Size: 12294 bytes Desc: not available URL: From g4mba5 at gmail.com Thu Jul 8 21:30:11 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Thu, 8 Jul 2021 21:30:11 +0200 Subject: [Gambas-user] glClearColor error In-Reply-To: References: Message-ID: Le 08/07/2021 ? 21:10, martin cristia a ?crit?: > Hi, I'm having this error, with a GLArea in a form: > > opengl-clearcolor: symbol lookup error: > /usr/lib/gambas3/gb.gtk3.opengl.so: undefined symbol: glClearColor > > project attatched, > > No problem here (Ubuntu 21.04). 'glClearColor' is a standard OpenGL function, so I guess there is something wrong in your Gambas compilation. -- Beno?t Minisini From chrisml at deganius.de Fri Jul 9 11:20:22 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Fri, 9 Jul 2021 11:20:22 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <172be3e4-6b21-231a-3dfb-5e558c809376@deganius.de> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> <49038726-ec26-a8b9-b032-f96efb448fb5@deganius.de> <8ce0100eafc94d083557478518a5beb075be162c.camel@fen-net.de> <172be3e4-6b21-231a-3dfb-5e558c809376@deganius.de> Message-ID: <6d550897-2108-fd9e-84cf-819975220538@deganius.de> Am 08.07.21 um 10:33 schrieb Christof Thalhofer: > Am 07.07.21 um 21:50 schrieb Beno?t Minisini: > >> No problem here. And we are talking about 3.16.2, not the development >> version. > > It looks good on my test machine. But I could not test everything as I > would have to rewrite parts of my software for Ubuntu 20. I see a problem with QT5 with positioning a window. But I think it's old and has nothing to do with the current release. But it prevents me to switch my software from QT4 to QT5. I attach a project. It's a component, when you open it and hit [F5] you see a window with a combobox. With [F4] the combobox opens/closes. In QT4 the window of the combobox is positioned right under the textbox, in QT5 it's mostly positioned off the right position, but in seldom cases it is positioned right. Should I write a bug for that? Apart of that everything seems to be working as expected. Alles Gute Christof Thalhofer -- Dies ist keine Signatur -------------- next part -------------- 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 PqPc/8pnzsG587874scNNbW1N8bu3/O4ww4+cHp6yaYrwwft2D937/HqbhVliUcuCun6Dyb/4aO9 Dz9228gzN+0Y2Lph/2f3aVg98oGn+o67fUN+288/W9v7yNjbjtuxfvn02BU37WxnR258N3reeT2z T3ziutGzr//zjfrD+z33/POFd65ec1GtOfrsne4vO/CV95dV2L9/YmRo+pKbjvz9e3d89tbmTz9Z f/nii+wzVsZfPLF64Wn77fXknV/UP31n115XrVl50yvtu5/VOuqATVvnrtxj/DnjPvrbR9rK2yaW nbLuxHteXbLhofMfWXjDiVfM3dvcdcdTp2ffeOP1s899673ks/Vbcn+5Nf9Kbvd058LEhi3zn8i9 e/Czvzd2AvpWvVr2wfF7jTRrH4tsrl7x+pyWmfrqu0aeNO6QB05Zvf/I/a94uew6BaW55eUTrtj/ 6ONWNi/52aiPMi8+dPG0vs7Pj38hWzsQPKr109WfbN4RrMduiUdXX33HaT89p3rDfld1tN1/0cU/ e6Jn1GtXbr3n1KNn3Nu743Hvr9s1fdwHeuDq/vT0A2/7wentY96f9XnNb1/ea3YotMONiUcPuOPy Ua0H1V2y7aIL7VXnj8lcckbN6r+dUTNizE9GXDdi9ojQokUHTr5928Rr64+a//mTSw/ozzbudOuJ I0Y9d2Mydfys0fe/t+XcCy5oLr94XGXk3/Mzx6mTJ++1+Y8VTd/J6Sd/8V7n699dFXr5/J3+6+ab P7z3hFlz//7WD//+t5dOm72q6vldj3x+8+XhC0IHzvhe+6Uz1p19wrbYb6+5pvrIa19YG/3O92Z+ /4xxYyofuus3Z46/87/e33x5x7Llu3ZtsspA779f159764kxe46e1dLa8sKHly2/uK5vvwfjq/7w 18MuOXnmHXvMKDslEKuYWP7Sn3bcvWfjn49a/vNbXjr2Z4ce/fnEl2//4u9jnjm+bcyY6x7b3LL3 yBMOf3DJ4Q92vmKfOFudvWJF/cGjf/fmo1v+kpqx/qy16fILrpz3yR4v/u7Wrbtkj6w6uG39M89v 3FB72mOvvXf663uFL9JuuiEy4o37R1/18R2fPXHyusf/3L3v/MM+rbhkVMuJE3fetW6bc9rrxz37 0XcbVjc3jPt8xX+8+ZjaXlu2eqf5u9Z8f1GHs/bGQ0LRp3Z/tzZw96VHn7XfHucec93pd37x6stj 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 vP8w1yNzPDIvv/EfpnZ/ZL6/mVXpkfn5Tf5KZ31kYxhzP6a/eGSTf9j9Lzb9i1Ue2fQflv2Lzf5i 80c2+ydd4S/+O93sH+Z5ZPVHNv+bqf/Ub8Fv/hdLPjAXG4x5H/O/fGRuY3ZTvsd000fm+YfFHtnY GKbSIz8eL5eJMZep8SPbPLLpP2z5wNzsxrymJo/yxR+Z19jY1OyR7R6Z39jE1PyRJR7Z5OFHFB7Z 65FNYWzxyI/6cJsbm//FFn+z2Z/2fjwebou/06m9/ua/0jUfmIfThM2M/THd5ZH5TDjMHv2HWu6R TU24zf60p/QD83Ka8Jn9sddjfbxcJvx/mNXxkbn/YY1H5jMxNnu0J/Vje/Hym5j8xY/25WM3sTB7 tB+r5z/8aC9W70fmNmU3e7QXtdUj8/zDPn8xxx9mdX1kmLeamT4y+yPDvMHs0b7U8g/Mz2HKZ/bH Xk6PzPk3Uz/qz89jym/+aB9qtb/Y+C92eGTef1j1kflMTf4wK9sjm8Ca69GerLqPbGpq9hfzPLIZ jP/Y99EfjdlMLcz/xNejfjDv+ps5H5nDjO0PU5s8MieM/8STxF/M/odZH/3LmOsf1n5kHjOOv/ix PzDmhfGf+Pgjj8+M8w9TGz+yqRm3+Z/2tX1ks7+Z1eORzc14zP/Ex6P/G1v8zdSP8QrzFn7zP/Fg /Rcb/2HWx3iAeYeJ+Z/21fmLTf/ix/aEecdfTP0YDybmZubmf9qb+oFN2cwszB/bl/rRH005zNnM /7TvY3ua8phzmD/GC/Wjvqbm5jwWf9rr0R9hR8tv8cf+j/0FTHtjiz/2fYxHs4dw+WMvvkc2+Ydl /mKzP0z96J+w2i0s/tjz0V/MOS3YLP7Y77G/NeeyYLf4Y69He5rzWXBa/Ok/PP9irj/Myv3I/P+w 4iObwPiP/bj+Yu6/yv9JN4XxH3s/6mdubsHzFyv/w3/s+djfw7Tj/cOsj/07TDs+iz/xo/XIHH8z 9aO/wLTl/yv90d8ftPmL+R8Z1qFY/Im3x/7iobY/TP3Y/8JqM/kr/TF+H6T/xdb/8J/+79H/YNJN /+JH/R+k/WHqx/h+IIs//eFjPD7QX/zYfz3QX/zoLxaPrz/nw//e+48MVur/5+//I+N/owxjVhNW U1YzVnNWC1ZLVqv/Id2a1eZ/IcOW1Y7V/t+97WB7/n26A6sjq9O/lGH8jwTnfyfF+J90F1ZX2B7L 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 17oBCW3DPX6eZFitHn9U362Kte70MlntbfWvrar1tmF42/Br01I/3nYubdCGB/ubd8pM1zRcFst8 sSp6bUDMuDYXt11t89Stwv3XFdperD0guUqDI5+MnX574Ij2855mzj8QbdfHdP1lcqW2JycEtg0p eAyIcacJbosr+nh/uO/IV3crN9rYspd7TrD2creZM+bUqQowec6nFWueWF2xzhjd5U1ZV7Ly++WU OzG2Q7sjI/f0+SIv7cze7fWSB/fUq9QnJv997cm49ppP9iceGjDjs/dtT5S5HvXMx/tgrUoHSucV ll/y8A3r1LU7kVTX/mFZ9t3ORp3WlW99onHF3na4U7smTsqdl5NRVzWm6ahVf+6reCK/j/dPh771 /Tv2wcd696tPl//u7Gz/ZFjLmNulRra88dZ2yZ2dN+i7W3dya1UaXbrJ25onJ909sKqw/NDQ0Tda Hgg4krzW0rLizGaDZ4/K1u3f5NWy0aoVOfbRpXPcv43Y2jfu9dA9ZXJqjWGtvcvWW9cr5oJb7dSK tQ11G3x42rdvo4ZlI6cOjG7f/tBHPeM9VdNv/n3mSfOwtZ/uP8Ac8gW30iTNoSbjv1Dd94qdZO3m eLT905X7fhvU5ceWSaemjUx6v2spkz/Dx21p51NHji6r2775vcHrb1w/FNCx3Yn8hG55OxrlXp59 NyuvyeuKi1vM7te5zYNOL5ck3N/f/JtvPadPsm2acW/u25FVrYCymw/MH9H35/lXT27+2Doq4PAA 27NfDr764OXv7C/jBk7qXn7USlM+4BuGaCfVyJyinfHhn3uT97ZLHmhbv2OgM0EzKneWet9X5VWF DcPfF9gyCyOyWuXOX6demOE5csfVkzfd1VXGfN/v8myP7psftl0Uu3rzReZE1vX5AduPlgaHxLKh +bf6sDJ5y4w/Vn8ZZByzvG/UO0Ca9qv3drMO6n7HffWWiN6q5hPAUmqn7Lt+d1/SL/vAxmVuNLd/ dK/c6go/n8oqODyw1NULA926sXvehE4KOPZt7M9eZXVZXaaONww4sMm693TO5exS566fu7UpocXU IxuvXTifcv5L/6X9GwE8qFL2k9I1F6zfaZp76/zDCecHXuzdJPvv389dW6jd9Ff+0Bc7AdI/fnyl SsJz9zZ1OrT0mvFzWJZ20I8ZwYA4DF5379rubz7yOlHAfrtq2s/HOt27PU5nNQabjMGRql9rg+M6 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 thCSlkqxL7Lzai1c9T7Oc8Oi0LGLsse8+LnnqzbJXj+tCX5eMOlSxkLPH15t81y61bvGuCr5UYfq RR1OSnNTnzgafGPmatPhZoD+5UfXfVEw+bJbWtnHUbVnNFXFnzu44dKD/F4JX/n7vrdFjQB8krfV q//rE5tit0XMy5msHb1o1MWHn58o/WtimA3wIgsv+IX/4u++tOX7T28emtqxnLbPwHdLHlUqiGvi t9b7ZNur170a5+WsW1R2z+5T+w8suzXi9/2MuRKgq6MmZ2/9Y/ibJZV198utHWrNWzx8kNeYpi9W eNcZUeej7KldhmXm33hvflFw5F2Vz0udvWKcvf74mcR6lcFteT1U+7pJ/Kno44+Sf1bdGmmy/jg0 OHjB1ItXJgWuWBTdqu2cT7dlgyO5tsbSvKyCW2t7dZ39pHoj3bjI4YciN+TOueWeOQNQsMdA4Jr2 fPzLQw9VeblHb7eLfvLEZ8W2vy4MTl8+Lr1FH3C2zzxMrVDfLaCcOnxFARAVL0boC3eNC62a033u 9VVNXgdMGrj9w3M7PkjImLs67RaQ/R7PvD28zd0yLcv/Pm9YZvsu7wDuAiIIZKvDQxc0jrsbpa7z NGFeqbI6QDI++wkK6wu61N6ZaXv4U/vM+Tfu9Z8IkPebuMqN89Q7bp44Z+z5eYUKY9fkDFp47S9m /6o34fAOBJhw/tnMeY32rP18ADjPu3bfulZ4PPjK/SEA2JsvmviDy7DD9ivDjx/Qfrc/+om9TPsZ nk+XVZ82Lezt24h6ZXWDLZvKnNt8u/Ufm+8kvu3Sbn+nneHDBt258bj7xPiEMp8krw8789XkXhc1 716vW/eywFyu9uL5b4MK51SDhGb9/TNrt5aduqz61afhT/dXf1UrolnY2ik5/afn3yjUznPrPG7C rGUJbZOP3t7r0Tq1yofrXlY6UB2IFHvulnn5J+DPgAheuerYGudzu8U1hZIK1N1BIjlghdu5m8fW F6ZC3WlAp/mzR7XoFfL0hle9B5UKhlVp8OvB7fGjn04N0wJBpZn3WP+25wfeMB/rnjc6YVBb9s+V KyrsafP0MRttSng+rOaNlkfzV7Wa4RnU7Gzo3s8bl9ubsXdy5Udp1g3rP3pd8In/y/orwwHX1Ht8 n7ZDNzy4/s2HlSeEtj5dd7hBc8ozRr+9ff+Uu0FzAHX1++hmTeunO91rR531TIn47BOm/ree7JXk 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 y3r1+K10eP7v8gsKhx1TMGy4Y/iIY4YXj3C43E6vr/SXvJ6l5ceOLPOVV5SVjjlu9JiR46rGXu5w /Dx40HETqidMrB41adak4yZOmXb8T9Lvps6s/f3MGcfPDtTOnjVuXuzEk2bPnX/yTz7vbH+4MtF3 gf+U4+uWBOVAfUPdrSeddM+CAxeFlZmnXiBHTzt++W9qE5dEY01PB/K2T502p+VyNXHqXxsObU3E T21ZNv+Ma8Knnd96WsvCpdfeE4nMu2R44Kwbzlx6xtlnnv56bN/Fyy+efn3ey4sPbjjvlpZzLj9r xfLv5dB9LUtWnX3Wc6cVrzzvnMvOPS168R1PLR297ML/Of/CVbHrJv152emXXXjBlRcuS1xx78l3 7XPxpRede9l1DVe3fdvSsurKm1uv+b/YtRtvuOLcK668PHz9Uw9c1rT5ojnq9W3XXfmHxOpNV//P VX+9ovHM1X9qvump6264dvH941pvefrm66+L3/bM01fLt99w2aq7Fq5YuzH5x+fC6/NvvGn11bfc 23zn829dM195Yp8Vdzx9wR8fX3bnC/esvXrtbbc8dtPKO2+95ZG1l99/+3W333HbN1dd/eTNt6xa P++8R3//v3ffef9dd1704Cu3PPj4fQ/ce83DLz/8wP0PPvTAO/cu2/LAfU+vu/WRPz980YuT3n3w /C3r7r7psXf+8tc/r3lm6bpHn3xs/Z8f2PjcXzesv2/z/zz56Lpbtize8NijmzZuuHPT21+sW3fD K4vuefK1x9o2PP7EY/c8/f6GzVs2bW7732c+W//UK89ufnLz3zZteWrjU09v/vDJ27f87al1r171 9LN/W/fiZ89teeZvL7z+8pa/b3nh7x899/Cml95/8/m21194+tFXPn3hpedfe/GFF19+4aV/vLjp 7Xve+MdLn7/w3D9effmV1/7xzJufvv3aK6+98cpLb259783X33z79bfeefPDd95+57233/vg3Tc+ eumNrZ9//P67H3z43qdb33/jk+8//Hjrtg/f/uiTD7/4+KOPP/1o2ycff/LZx//69JNP//nJZ59/ +t4XP2/94ruvPv/s822f/fPLb7Z9+fm/vtr28TftX3zz3dfffvXldz98/cNP3/3wzQ8/frfrp+0/ 7Nj1047tSLLauWvHrvadoeGtc9B+6IEZofP2OnxSXkoe6N2eBx54eL+FN7bEgJsiirBtb+8XO/TV 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 -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From cybercamera at gmail.com Sat Jul 10 12:40:58 2021 From: cybercamera at gmail.com (Cam Era) Date: Sat, 10 Jul 2021 20:40:58 +1000 Subject: [Gambas-user] Question on WebView (gb.qt4.webkit) and (fav)Icons Message-ID: Greetings all. I have a form which instances gb.qt4.webkit WebViews. I cannot seem to either extract any Icons, nor get the _icon event for fire, even though I know the websites have favicons. Anyone have any experience with getting this to work? Cheers. -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Sat Jul 10 14:12:20 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Sat, 10 Jul 2021 14:12:20 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <6d550897-2108-fd9e-84cf-819975220538@deganius.de> References: <359597b0-171b-044d-e066-278e21fa0835@gmail.com> <96fda1a8-a393-f5c9-79f8-9f9c6b25d6ea@gmail.com> <895ae5ca-926e-192b-6775-f2c8566a6b51@deganius.de> <49038726-ec26-a8b9-b032-f96efb448fb5@deganius.de> <8ce0100eafc94d083557478518a5beb075be162c.camel@fen-net.de> <172be3e4-6b21-231a-3dfb-5e558c809376@deganius.de> <6d550897-2108-fd9e-84cf-819975220538@deganius.de> Message-ID: <8bc36a8a-8a3c-153c-20af-1a5e093d0aee@deganius.de> Am 09.07.21 um 11:20 schrieb Christof Thalhofer: > Should I write a bug for that? Please forget that. It's my old, buggy code. > Apart of that everything seems to be working as expected. That seems to be right from my side. Alles Gute Christof Thalhofer -- 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 cybercamera at gmail.com Sun Jul 11 12:18:55 2021 From: cybercamera at gmail.com (Cam Era) Date: Sun, 11 Jul 2021 20:18:55 +1000 Subject: [Gambas-user] (qt4) WebView .WebView property and _Icon event Message-ID: Hello all. Has anyone had any success in getting the (qt4) WebView .WebView property and _Icon event to work? If so, some pointers to code or sample projects would be appreciated. Cheers. -------------- next part -------------- An HTML attachment was scrubbed... URL: From dovey.john at gmail.com Mon Jul 12 04:49:47 2021 From: dovey.john at gmail.com (John Dovey) Date: Sun, 11 Jul 2021 21:49:47 -0500 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: References: Message-ID: I encountered this error and wasn?t quite sure where to report it -- Sent from Gmail Mobile -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image_6487327.JPG Type: image/jpg Size: 160826 bytes Desc: not available URL: From bsteers4 at gmail.com Mon Jul 12 10:47:59 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 09:47:59 +0100 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: References: Message-ID: Do you know of the bugtracker ? usually for bugs like that the code producing it will need to be seen. or a detailed explanation of how it happens (we may be psychic but not that psychic ;) ) a m/l is not the best place to send code. the bugtracker is the best place. BruceS On Mon, 12 Jul 2021 at 03:51, John Dovey wrote: > I encountered this error and wasn?t quite sure where to report it > > > > -- > Sent from Gmail Mobile > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Mon Jul 12 10:53:02 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 09:53:02 +0100 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: References: Message-ID: oops sorry i now see that's a link (non enough coffee yet) the error seems to be the URL , where did you link to it? there is no gb.qt.ext on the wiki just gb.qt4.ext and gb.qt5.ext but no gb.qt.ext BruceS On Mon, 12 Jul 2021 at 03:51, John Dovey wrote: > I encountered this error and wasn?t quite sure where to report it > > > -- > Sent from Gmail Mobile > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image_6487327.JPG Type: image/jpeg Size: 160826 bytes Desc: not available URL: From bsteers4 at gmail.com Mon Jul 12 10:59:14 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 09:59:14 +0100 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: References: Message-ID: On Mon, 12 Jul 2021 at 09:53, Bruce Steers wrote: > oops sorry i now see that's a link (non enough coffee yet) > > the error seems to be the URL , where did you link to it? > > there is no gb.qt.ext on the wiki just gb.qt4.ext and gb.qt5.ext but no > gb.qt.ext > BruceS > There also isn't anything called "Drawing" that I know of, there is Draw and DrawingArea ??? Certainly no "Drawing" in gb.qt4.ext BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Mon Jul 12 11:15:00 2021 From: adamnt42 at gmail.com (bb) Date: Mon, 12 Jul 2021 18:45:00 +0930 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: References: Message-ID: On Mon, 2021-07-12 at 09:59 +0100, Bruce Steers wrote: > > > the error seems to be the URL , where did you link to it? > > > > there is no gb.qt.ext on the wiki just gb.qt4.ext and gb.qt5.ext > > but no gb.qt.ext > > BruceS > > > > > There also isn't anything called "Drawing" that I know of, there is > Draw and DrawingArea ??? > Certainly no "Drawing" in gb.qt4.ext > > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- @BruceS Could it be a translated page somewhere? b From rwe-sse at osnanet.de Mon Jul 12 11:30:44 2021 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 12 Jul 2021 11:30:44 +0200 Subject: [Gambas-user] TreeView.ToolTip a nice-to-have Message-ID: Just stumbled over this one: There is no TreeView.Current.ToolTip or TreeView[theKey].ToolTip right? Would be a nice thing to have though. Thunderbird (as an example) makes use of it, showing mail dirs containing unread messages in bold or bold+blue AND showing the latest new messages contained in a tooltip. There is an application of mine which would be happy to have such a thing.So, Benoit, if one day you are absolutely failing to find anything you could improve in Gambas... :) Regards Rolf From bsteers4 at gmail.com Mon Jul 12 12:20:45 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 11:20:45 +0100 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: References: Message-ID: On Mon, 12 Jul 2021 at 10:16, bb wrote: > On Mon, 2021-07-12 at 09:59 +0100, Bruce Steers wrote: > > > > > the error seems to be the URL , where did you link to it? > > > > > > there is no gb.qt.ext on the wiki just gb.qt4.ext and gb.qt5.ext > > > but no gb.qt.ext > > > BruceS > > > > > > > > > There also isn't anything called "Drawing" that I know of, there is > > Draw and DrawingArea ??? > > Certainly no "Drawing" in gb.qt4.ext > > > > BruceS > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > @BruceS > Could it be a translated page somewhere? > b > I was veering more towards a possible external search engine link error? But then it could also be an internal wiki link error. need more details from John on how he arrived at it. i can reproduce it if i try the URL http://gambaswiki.org/wiki/comp/gb.qt/drawing but that's not a link that should exist. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Mon Jul 12 12:28:09 2021 From: adamnt42 at gmail.com (bb) Date: Mon, 12 Jul 2021 19:58:09 +0930 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: References: Message-ID: <9082e5cb0a3c8546b4381cb0414367862ff5feb7.camel@gmail.com> On Mon, 2021-07-12 at 11:20 +0100, Bruce Steers wrote: > > > On Mon, 12 Jul 2021 at 10:16, bb wrote: > > On Mon, 2021-07-12 at 09:59 +0100, Bruce Steers wrote: > > > > > > > the error seems to be the URL , where did you link to it? > > > > > > > > there is no gb.qt.ext on the wiki just gb.qt4.ext and > > gb.qt5.ext > > > > but no gb.qt.ext > > > > BruceS > > > > > > > > > > > > > There also isn't anything called "Drawing" that I know of, there > > is > > > Draw and DrawingArea ??? > > > Certainly no "Drawing" in gb.qt4.ext > > > > > > BruceS > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > @BruceS > > Could it be a translated page somewhere? > > b > > I was veering more towards a possible external search engine link > error? > But then it could also be an internal wiki link error. > > need more details from John on how he arrived at it. > i can reproduce it if i try the URL > http://gambaswiki.org/wiki/comp/gb.qt/drawing > but that's not a link that should exist. > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Man, we are both blind and dumb! That is the output from the wiki generator, not a page. b 8-( From bsteers4 at gmail.com Mon Jul 12 12:31:56 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 11:31:56 +0100 Subject: [Gambas-user] TreeView.ToolTip a nice-to-have In-Reply-To: References: Message-ID: On Mon, 12 Jul 2021 at 10:31, Rolf-Werner Eilert wrote: > Just stumbled over this one: There is no > > TreeView.Current.ToolTip > > or > TreeView[theKey].ToolTip > > right? > > Would be a nice thing to have though. Thunderbird (as an example) makes > use of it, showing mail dirs containing unread messages in bold or > bold+blue AND showing the latest new messages contained in a tooltip. > > There is an application of mine which would be happy to have such a > thing.So, Benoit, if one day you are absolutely failing to find anything > you could improve in Gambas... :) > > Regards > Rolf > should be fairly easy to make this for your app. Enabling TreeView1.Tracking, using the TreeView1_MouseMove() event, TreeView1.FindChild() and Balloon() (and possibly a Timer to make things smoother) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Mon Jul 12 12:43:19 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 11:43:19 +0100 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: <9082e5cb0a3c8546b4381cb0414367862ff5feb7.camel@gmail.com> References: <9082e5cb0a3c8546b4381cb0414367862ff5feb7.camel@gmail.com> Message-ID: On Mon, 12 Jul 2021 at 11:29, bb wrote: > On Mon, 2021-07-12 at 11:20 +0100, Bruce Steers wrote: > > > > > > On Mon, 12 Jul 2021 at 10:16, bb wrote: > > > On Mon, 2021-07-12 at 09:59 +0100, Bruce Steers wrote: > > > > > > > > > the error seems to be the URL , where did you link to it? > > > > > > > > > > there is no gb.qt.ext on the wiki just gb.qt4.ext and > > > gb.qt5.ext > > > > > but no gb.qt.ext > > > > > BruceS > > > > > > > > > > > > > > > > > There also isn't anything called "Drawing" that I know of, there > > > is > > > > Draw and DrawingArea ??? > > > > Certainly no "Drawing" in gb.qt4.ext > > > > > > > > BruceS > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > @BruceS > > > Could it be a translated page somewhere? > > > b > > > > I was veering more towards a possible external search engine link > > error? > > But then it could also be an internal wiki link error. > > > > need more details from John on how he arrived at it. > > i can reproduce it if i try the URL > > http://gambaswiki.org/wiki/comp/gb.qt/drawing > > but that's not a link that should exist. > > BruceS > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > Man, we are both blind and dumb! > That is the output from the wiki generator, not a page. > b 8-( > haha , i thought i'd hit the nail on the head ! :) Looks like a screenshot of a phone browser trying to access http://gambaswiki.org/wiki/comp/gb.qt/drawing question is where did that link come from? BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From rwe-sse at osnanet.de Mon Jul 12 13:05:14 2021 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 12 Jul 2021 13:05:14 +0200 Subject: [Gambas-user] TreeView.ToolTip a nice-to-have In-Reply-To: References: Message-ID: Am 12.07.21 um 12:31 schrieb Bruce Steers: > > > On Mon, 12 Jul 2021 at 10:31, Rolf-Werner Eilert > wrote: > > Just stumbled over this one: There is no > > ? ? ? ? TreeView.Current.ToolTip > > or > ? ? ? ? TreeView[theKey].ToolTip > > right? > > Would be a nice thing to have though. Thunderbird (as an example) makes > use of it, showing mail dirs containing unread messages in bold or > bold+blue AND showing the latest new messages contained in a tooltip. > > There is an application of mine which would be happy to have such a > thing.So, Benoit, if one day you are absolutely failing to find > anything > you could improve in Gambas... :) > > Regards > Rolf > > > should be fairly easy to make this for your app. > Enabling TreeView1.Tracking, using the TreeView1_MouseMove() event, > TreeView1.FindChild() and Balloon() > (and possibly a Timer to make things smoother) > BruceS > > Oh yes, I had this idea too. Is TreeView originally a qt or GTK thing, Gambas only linking to it? And does it have this tooltip option? That would make it rather easy for Benoit to implement it. If not, it might be easier if each Gambas coder makes one. BUT to make a start, I will try around a bit with the events you posted above, thank you for that! Regards Rolf From g4mba5 at gmail.com Mon Jul 12 13:12:30 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Mon, 12 Jul 2021 13:12:30 +0200 Subject: [Gambas-user] TreeView.ToolTip a nice-to-have In-Reply-To: References: Message-ID: Le 12/07/2021 ? 11:30, Rolf-Werner Eilert a ?crit?: > Just stumbled over this one: There is no > > ????TreeView.Current.ToolTip > > or > ????TreeView[theKey].ToolTip > > right? > > Would be a nice thing to have though. Thunderbird (as an example) makes > use of it, showing mail dirs containing unread messages in bold or > bold+blue AND showing the latest new messages contained in a tooltip. > > There is an application of mine which would be happy to have such a > thing.So, Benoit, if one day you are absolutely failing to find anything > you could improve in Gambas... :) > > Regards > Rolf > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- There is no tooltip on TreeView items because treeview items are not widgets. It must be implemented by using the MouseMove event and changing the TreeView tooltip on the fly. But it does not ensure that the underlying GUI toolkit tooltip will follow the mouse cursor, something to test. Regards, -- Beno?t Minisini From rwe-sse at osnanet.de Mon Jul 12 13:16:06 2021 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 12 Jul 2021 13:16:06 +0200 Subject: [Gambas-user] TreeView.ToolTip a nice-to-have In-Reply-To: References: Message-ID: <60e7c24f-a23b-a79a-b666-b4199570dd0d@osnanet.de> Am 12.07.21 um 12:31 schrieb Bruce Steers: > > > On Mon, 12 Jul 2021 at 10:31, Rolf-Werner Eilert > wrote: > > Just stumbled over this one: There is no > > ? ? ? ? TreeView.Current.ToolTip > > or > ? ? ? ? TreeView[theKey].ToolTip > > right? > > Would be a nice thing to have though. Thunderbird (as an example) makes > use of it, showing mail dirs containing unread messages in bold or > bold+blue AND showing the latest new messages contained in a tooltip. > > There is an application of mine which would be happy to have such a > thing.So, Benoit, if one day you are absolutely failing to find > anything > you could improve in Gambas... :) > > Regards > Rolf > > > should be fairly easy to make this for your app. > Enabling TreeView1.Tracking, using the TreeView1_MouseMove() event, > TreeView1.FindChild() and Balloon() > (and possibly a Timer to make things smoother) > BruceS > > First result: I am confused :) FindChild() offers properties: There is actually .ToolTip (!) and .Tag, but it has neither .Key nor .Text How should I find out which child the mouse points at if not using Treeview.FindChild(Mouse.X, Mouse.Y).Key ?? Strange! Regards Rolf From g4mba5 at gmail.com Mon Jul 12 13:19:39 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Mon, 12 Jul 2021 13:19:39 +0200 Subject: [Gambas-user] TreeView.ToolTip a nice-to-have In-Reply-To: <60e7c24f-a23b-a79a-b666-b4199570dd0d@osnanet.de> References: <60e7c24f-a23b-a79a-b666-b4199570dd0d@osnanet.de> Message-ID: <837a7a39-773a-b096-727f-7a1d45fde5bc@gmail.com> Le 12/07/2021 ? 13:16, Rolf-Werner Eilert a ?crit?: > Am 12.07.21 um 12:31 schrieb Bruce Steers: >> >> >> On Mon, 12 Jul 2021 at 10:31, Rolf-Werner Eilert > > wrote: >> >> ??? Just stumbled over this one: There is no >> >> ???? ? ? ? ? TreeView.Current.ToolTip >> >> ??? or >> ???? ? ? ? ? TreeView[theKey].ToolTip >> >> ??? right? >> >> ??? Would be a nice thing to have though. Thunderbird (as an example) >> makes >> ??? use of it, showing mail dirs containing unread messages in bold or >> ??? bold+blue AND showing the latest new messages contained in a tooltip. >> >> ??? There is an application of mine which would be happy to have such a >> ??? thing.So, Benoit, if one day you are absolutely failing to find >> ??? anything >> ??? you could improve in Gambas... :) >> >> ??? Regards >> ??? Rolf >> >> >> should be fairly easy to make this for your app. >> Enabling TreeView1.Tracking, using the TreeView1_MouseMove() event, >> TreeView1.FindChild() and Balloon() >> (and possibly a Timer to make things smoother) >> BruceS >> >> > > First result: I am confused :) > > FindChild() offers properties: There is actually .ToolTip (!) and .Tag, > but it has neither .Key nor .Text > > How should I find out which child the mouse points at if not using > > Treeview.FindChild(Mouse.X, Mouse.Y).Key? ?? > > Strange! > > Regards > Rolf > FindChild() is the method for finding the child widget of a container. TreeView is internally a Container, as every widget written in Gambas, even if it has actually no children (except when you edit an item, where a temporary text field is created). Again, Treeview items are -not- widgets, they are not children of the TreeView. -- Beno?t Minisini From rwe-sse at osnanet.de Mon Jul 12 13:22:21 2021 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 12 Jul 2021 13:22:21 +0200 Subject: [Gambas-user] TreeView.ToolTip a nice-to-have In-Reply-To: References: Message-ID: <6db58edb-ebca-8a88-dc36-c4a392bc2507@osnanet.de> Am 12.07.21 um 13:12 schrieb Beno?t Minisini: > Le 12/07/2021 ? 11:30, Rolf-Werner Eilert a ?crit?: >> Just stumbled over this one: There is no >> >> ?????TreeView.Current.ToolTip >> >> or >> ?????TreeView[theKey].ToolTip >> >> right? >> >> Would be a nice thing to have though. Thunderbird (as an example) >> makes use of it, showing mail dirs containing unread messages in bold >> or bold+blue AND showing the latest new messages contained in a tooltip. >> >> There is an application of mine which would be happy to have such a >> thing.So, Benoit, if one day you are absolutely failing to find >> anything you could improve in Gambas... :) >> >> Regards >> Rolf >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > There is no tooltip on TreeView items because treeview items are not > widgets. > > It must be implemented by using the MouseMove event and changing the > TreeView tooltip on the fly. But it does not ensure that the underlying > GUI toolkit tooltip will follow the mouse cursor, something to test. > > Regards, > Ah ok, that's why (not). Good hint, thank you! Regards Rolf From rwe-sse at osnanet.de Mon Jul 12 13:23:43 2021 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 12 Jul 2021 13:23:43 +0200 Subject: [Gambas-user] TreeView.ToolTip a nice-to-have In-Reply-To: <837a7a39-773a-b096-727f-7a1d45fde5bc@gmail.com> References: <60e7c24f-a23b-a79a-b666-b4199570dd0d@osnanet.de> <837a7a39-773a-b096-727f-7a1d45fde5bc@gmail.com> Message-ID: Am 12.07.21 um 13:19 schrieb Beno?t Minisini: > Le 12/07/2021 ? 13:16, Rolf-Werner Eilert a ?crit?: >> Am 12.07.21 um 12:31 schrieb Bruce Steers: >>> >>> >>> On Mon, 12 Jul 2021 at 10:31, Rolf-Werner Eilert >> > wrote: >>> >>> ??? Just stumbled over this one: There is no >>> >>> ???? ? ? ? ? TreeView.Current.ToolTip >>> >>> ??? or >>> ???? ? ? ? ? TreeView[theKey].ToolTip >>> >>> ??? right? >>> >>> ??? Would be a nice thing to have though. Thunderbird (as an example) >>> makes >>> ??? use of it, showing mail dirs containing unread messages in bold or >>> ??? bold+blue AND showing the latest new messages contained in a >>> tooltip. >>> >>> ??? There is an application of mine which would be happy to have such a >>> ??? thing.So, Benoit, if one day you are absolutely failing to find >>> ??? anything >>> ??? you could improve in Gambas... :) >>> >>> ??? Regards >>> ??? Rolf >>> >>> >>> should be fairly easy to make this for your app. >>> Enabling TreeView1.Tracking, using the TreeView1_MouseMove() event, >>> TreeView1.FindChild() and Balloon() >>> (and possibly a Timer to make things smoother) >>> BruceS >>> >>> >> >> First result: I am confused :) >> >> FindChild() offers properties: There is actually .ToolTip (!) and >> .Tag, but it has neither .Key nor .Text >> >> How should I find out which child the mouse points at if not using >> >> Treeview.FindChild(Mouse.X, Mouse.Y).Key? ?? >> >> Strange! >> >> Regards >> Rolf >> > > FindChild() is the method for finding the child widget of a container. > TreeView is internally a Container, as every widget written in Gambas, > even if it has actually no children (except when you edit an item, where > a temporary text field is created). > > Again, Treeview items are -not- widgets, they are not children of the > TreeView. > Ah ok. Hm, is there another way to find out which item the mouse is currently hovering over? From adamnt42 at gmail.com Mon Jul 12 14:21:47 2021 From: adamnt42 at gmail.com (bb) Date: Mon, 12 Jul 2021 21:51:47 +0930 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: References: <9082e5cb0a3c8546b4381cb0414367862ff5feb7.camel@gmail.com> Message-ID: <8decf59dd06aae54b050e02e63c58d0ee5a964ee.camel@gmail.com> On Mon, 2021-07-12 at 11:43 +0100, Bruce Steers wrote: > > > On Mon, 12 Jul 2021 at 11:29, bb wrote: > > On Mon, 2021-07-12 at 11:20 +0100, Bruce Steers wrote: > > > > > > > > > On Mon, 12 Jul 2021 at 10:16, bb wrote: > > > > On Mon, 2021-07-12 at 09:59 +0100, Bruce Steers wrote: > > > > > > > > > > > the error seems to be the URL , where did you link to it? > > > > > > > > > > > > there is no gb.qt.ext on the wiki just gb.qt4.ext and > > > > gb.qt5.ext > > > > > > but no gb.qt.ext > > > > > > BruceS > > > > > > > > > > > > > > > > > > > > > There also isn't anything called "Drawing" that I know of, > > there > > > > is > > > > > Draw and DrawingArea ??? > > > > > Certainly no "Drawing" in gb.qt4.ext > > > > > > > > > > BruceS > > > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > @BruceS > > > > Could it be a translated page somewhere? > > > > b > > > > > > I was veering more towards a possible external search engine link > > > error? > > > But then it could also be an internal wiki link error. > > > > > > need more details from John on how he arrived at it. > > > i can reproduce it if i try the URL > > > http://gambaswiki.org/wiki/comp/gb.qt/drawing > > > but that's not a link that should exist. > > > BruceS > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > Man, we are both blind and dumb! > > That is the output from the wiki generator, not a page. > > b 8-( > > haha , i thought i'd hit the nail on the head ! :) > > Looks like a screenshot of a phone browser trying to access > http://gambaswiki.org/wiki/comp/gb.qt/drawing > question is where did that link come from? > > BruceS > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- At a guess, it's not a link at all. It's from some markdown on a wiki page somewhere. I'd tend to think not one of the top section (syntax/components/etc) but seeing we have no idea what to look for ... We'll just have to wait for John to provide a bit more info. IF I am right this is not a bug, just bad markdown by someone. b From bsteers4 at gmail.com Mon Jul 12 18:19:31 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 17:19:31 +0100 Subject: [Gambas-user] something's broken (do not know what) Message-ID: My texteditor app... https://gitlab.com/bsteers4/scripted worked last time i used it, now neither version can load a file. it's working okay on previous gambas versions. my other apps work okay just this one is now broken. only thing i can think of that makes it different is it has a Texteditor thanks for listening. you're a wonderful audience ;) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Mon Jul 12 18:27:52 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 13 Jul 2021 01:57:52 +0930 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: Message-ID: On Mon, 2021-07-12 at 17:19 +0100, Bruce Steers wrote: > My texteditor app... > https://gitlab.com/bsteers4/scripted > > worked last time i used it, now neither version can load a file. > > it's working okay on previous gambas versions. > > my other apps work okay just this one is now broken. > only thing i can think of that makes it different is it has a > Texteditor > > thanks for listening. > you're a wonderful audience ;) > BruceS > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I'm game (I am sick to death of bug #2301) Dis what I see... Cannot open project file : /srv/gb3prj/demo/./scripted This project has duplicated class files! - ExternalTools/myGrid.class - CustomClasses/myGrid.class - MyEditor.class - CustomClasses/MyEditor.class But me not know what dat means. b From dovey.john at gmail.com Mon Jul 12 18:32:14 2021 From: dovey.john at gmail.com (John Dovey) Date: Mon, 12 Jul 2021 11:32:14 -0500 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: <8decf59dd06aae54b050e02e63c58d0ee5a964ee.camel@gmail.com> References: <9082e5cb0a3c8546b4381cb0414367862ff5feb7.camel@gmail.com> <8decf59dd06aae54b050e02e63c58d0ee5a964ee.camel@gmail.com> Message-ID: My apologies, I should have provided more info. In the ?how to? on creating charts, it links to that page (drawing) and I got very frustrated trying to find anything resembling that. http://gambaswiki.org/wiki/howto/makechart Hope that clears it up. All the best John On Mon, Jul 12, 2021 at 7:22 AM bb wrote: > On Mon, 2021-07-12 at 11:43 +0100, Bruce Steers wrote: > > > > > > On Mon, 12 Jul 2021 at 11:29, bb wrote: > > > On Mon, 2021-07-12 at 11:20 +0100, Bruce Steers wrote: > > > > > > > > > > > > On Mon, 12 Jul 2021 at 10:16, bb wrote: > > > > > On Mon, 2021-07-12 at 09:59 +0100, Bruce Steers wrote: > > > > > > > > > > > > > the error seems to be the URL , where did you link to it? > > > > > > > > > > > > > > there is no gb.qt.ext on the wiki just gb.qt4.ext and > > > > > gb.qt5.ext > > > > > > > but no gb.qt.ext > > > > > > > BruceS > > > > > > > > > > > > > > > > > > > > > > > > > There also isn't anything called "Drawing" that I know of, > > > there > > > > > is > > > > > > Draw and DrawingArea ??? > > > > > > Certainly no "Drawing" in gb.qt4.ext > > > > > > > > > > > > BruceS > > > > > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > > @BruceS > > > > > Could it be a translated page somewhere? > > > > > b > > > > > > > > I was veering more towards a possible external search engine link > > > > error? > > > > But then it could also be an internal wiki link error. > > > > > > > > need more details from John on how he arrived at it. > > > > i can reproduce it if i try the URL > > > > http://gambaswiki.org/wiki/comp/gb.qt/drawing > > > > but that's not a link that should exist. > > > > BruceS > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > > > Man, we are both blind and dumb! > > > That is the output from the wiki generator, not a page. > > > b 8-( > > > > haha , i thought i'd hit the nail on the head ! :) > > > > Looks like a screenshot of a phone browser trying to access > > http://gambaswiki.org/wiki/comp/gb.qt/drawing > > question is where did that link come from? > > > > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > At a guess, it's not a link at all. It's from some markdown on a wiki > page somewhere. I'd tend to think not one of the top section > (syntax/components/etc) but seeing we have no idea what to look for ... > > We'll just have to wait for John to provide a bit more info. > > IF I am right this is not a bug, just bad markdown by someone. > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -- Sent from Gmail Mobile -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Mon Jul 12 18:35:40 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Mon, 12 Jul 2021 18:35:40 +0200 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: References: <9082e5cb0a3c8546b4381cb0414367862ff5feb7.camel@gmail.com> <8decf59dd06aae54b050e02e63c58d0ee5a964ee.camel@gmail.com> Message-ID: <24017020-939b-eb12-9387-b6cc99e39556@gmail.com> Le 12/07/2021 ? 18:32, John Dovey a ?crit?: > My apologies, I should have provided more info. > In the ?how to? on creating charts, it links to that page (drawing) and > I got very frustrated trying to find anything resembling that. > http://gambaswiki.org/wiki/howto/makechart > > > Hope that clears it up. > All the best > John > In the past, the wiki made automatic links, often incorrectly. So what you see is a broken automatic link that can be safely removed. -- Beno?t Minisini From adamnt42 at gmail.com Mon Jul 12 18:38:07 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 13 Jul 2021 02:08:07 +0930 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: <24017020-939b-eb12-9387-b6cc99e39556@gmail.com> References: <9082e5cb0a3c8546b4381cb0414367862ff5feb7.camel@gmail.com> <8decf59dd06aae54b050e02e63c58d0ee5a964ee.camel@gmail.com> <24017020-939b-eb12-9387-b6cc99e39556@gmail.com> Message-ID: <0a2b7eb19b11d246c3263c8e611eb6bded04fcd5.camel@gmail.com> On Mon, 2021-07-12 at 18:35 +0200, Beno?t Minisini wrote: > Le 12/07/2021 ? 18:32, John Dovey a ?crit : > > My apologies, I should have provided more info. > > In the ?how to? on creating charts, it links to that page (drawing) > > and > > I got very frustrated trying to find anything resembling that. > > http://gambaswiki.org/wiki/howto/makechart > > > > > > Hope that clears it up. > > All the best > > John > > > > In the past, the wiki made automatic links, often incorrectly. So > what > you see is a broken automatic link that can be safely removed. > I'm doing it now. b From bsteers4 at gmail.com Mon Jul 12 18:39:34 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 17:39:34 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: Message-ID: On Mon, 12 Jul 2021 at 17:28, bb wrote: > On Mon, 2021-07-12 at 17:19 +0100, Bruce Steers wrote: > > My texteditor app... > > https://gitlab.com/bsteers4/scripted > > > > worked last time i used it, now neither version can load a file. > > > > it's working okay on previous gambas versions. > > > > my other apps work okay just this one is now broken. > > only thing i can think of that makes it different is it has a > > Texteditor > > > > thanks for listening. > > you're a wonderful audience ;) > > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > I'm game (I am sick to death of bug #2301) > > Dis what I see... > > Cannot open project file : > /srv/gb3prj/demo/./scripted > > This project has duplicated class files! > - ExternalTools/myGrid.class > - CustomClasses/myGrid.class > - MyEditor.class > - CustomClasses/MyEditor.class > > > But me not know what dat means. > b > Me neither , i checked i do not have duplicates.. aah oops sorry my gitlab was messed up a bit. have fixed it now Cheers B -------------- next part -------------- An HTML attachment was scrubbed... URL: From dovey.john at gmail.com Mon Jul 12 18:40:12 2021 From: dovey.john at gmail.com (John Dovey) Date: Mon, 12 Jul 2021 11:40:12 -0500 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: <0a2b7eb19b11d246c3263c8e611eb6bded04fcd5.camel@gmail.com> References: <9082e5cb0a3c8546b4381cb0414367862ff5feb7.camel@gmail.com> <8decf59dd06aae54b050e02e63c58d0ee5a964ee.camel@gmail.com> <24017020-939b-eb12-9387-b6cc99e39556@gmail.com> <0a2b7eb19b11d246c3263c8e611eb6bded04fcd5.camel@gmail.com> Message-ID: Maybe link to http://gambaswiki.org/wiki/comp/gb.qt4.ext/drawingarea instead? On Mon, Jul 12, 2021 at 11:39 AM bb wrote: > On Mon, 2021-07-12 at 18:35 +0200, Beno?t Minisini wrote: > > Le 12/07/2021 ? 18:32, John Dovey a ?crit : > > > My apologies, I should have provided more info. > > > In the ?how to? on creating charts, it links to that page (drawing) > > > and > > > I got very frustrated trying to find anything resembling that. > > > http://gambaswiki.org/wiki/howto/makechart > > > > > > > > > Hope that clears it up. > > > All the best > > > John > > > > > > > In the past, the wiki made automatic links, often incorrectly. So > > what > > you see is a broken automatic link that can be safely removed. > > > I'm doing it now. > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -- Sent from Gmail Mobile -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Mon Jul 12 18:46:16 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Mon, 12 Jul 2021 18:46:16 +0200 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: Message-ID: <0d611e19-9781-222b-0e54-e6f82c4e2357@gmail.com> Le 12/07/2021 ? 18:27, bb a ?crit?: > On Mon, 2021-07-12 at 17:19 +0100, Bruce Steers wrote: >> My texteditor app... >> https://gitlab.com/bsteers4/scripted >> >> worked last time i used it, now neither version can load a file. >> >> it's working okay on previous gambas versions. >> >> my other apps work okay just this one is now broken. >> only thing i can think of that makes it different is it has a >> Texteditor >> >> thanks for listening. >> you're a wonderful audience ;) >> BruceS >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > I'm game (I am sick to death of bug #2301) > > Dis what I see... > > Cannot open project file : > /srv/gb3prj/demo/./scripted > > This project has duplicated class files! > - ExternalTools/myGrid.class > - CustomClasses/myGrid.class > - MyEditor.class > - CustomClasses/MyEditor.class > > > But me not know what dat means. > b > It means what it means: you have two source code files with the same name in different directories inside ".src". -- Beno?t Minisini From adamnt42 at gmail.com Mon Jul 12 18:53:44 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 13 Jul 2021 02:23:44 +0930 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: References: <9082e5cb0a3c8546b4381cb0414367862ff5feb7.camel@gmail.com> <8decf59dd06aae54b050e02e63c58d0ee5a964ee.camel@gmail.com> <24017020-939b-eb12-9387-b6cc99e39556@gmail.com> <0a2b7eb19b11d246c3263c8e611eb6bded04fcd5.camel@gmail.com> Message-ID: On Mon, 2021-07-12 at 11:40 -0500, John Dovey wrote: > Maybe link to > http://gambaswiki.org/wiki/comp/gb.qt4.ext/drawingarea instead? Nup, that's wrong. It's just the gb.qt.drawingarea. Anyway, I've done it and fixed some of the Ingrish, but left the text as was. > > On Mon, Jul 12, 2021 at 11:39 AM bb wrote: > > On Mon, 2021-07-12 at 18:35 +0200, Beno?t Minisini wrote: > > > Le 12/07/2021 ? 18:32, John Dovey a ?crit : > > > > My apologies, I should have provided more info. > > > > In the ?how to? on creating charts, it links to that page > > (drawing) > > > > and > > > > I got very frustrated trying to find anything resembling that. > > > > http://gambaswiki.org/wiki/howto/makechart > > > > > > > > > > > > Hope that clears it up. > > > > All the best > > > > John > > > > > > > > > > In the past, the wiki made automatic links, often incorrectly. So > > > what > > > you see is a broken automatic link that can be safely removed. > > > > > I'm doing it now. > > b > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > -- > Sent from Gmail Mobile > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From bsteers4 at gmail.com Mon Jul 12 18:54:18 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 17:54:18 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: <0d611e19-9781-222b-0e54-e6f82c4e2357@gmail.com> References: <0d611e19-9781-222b-0e54-e6f82c4e2357@gmail.com> Message-ID: On Mon, 12 Jul 2021 at 17:47, Beno?t Minisini wrote: > Le 12/07/2021 ? 18:27, bb a ?crit : > > On Mon, 2021-07-12 at 17:19 +0100, Bruce Steers wrote: > >> My texteditor app... > >> https://gitlab.com/bsteers4/scripted > >> > >> worked last time i used it, now neither version can load a file. > >> > >> it's working okay on previous gambas versions. > >> > >> my other apps work okay just this one is now broken. > >> only thing i can think of that makes it different is it has a > >> Texteditor > >> > >> thanks for listening. > >> you're a wonderful audience ;) > >> BruceS > >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > I'm game (I am sick to death of bug #2301) > > > > Dis what I see... > > > > Cannot open project file : > > /srv/gb3prj/demo/./scripted > > > > This project has duplicated class files! > > - ExternalTools/myGrid.class > > - CustomClasses/myGrid.class > > - MyEditor.class > > - CustomClasses/MyEditor.class > > > > > > But me not know what dat means. > > b > > > > It means what it means: you have two source code files with the same > name in different directories inside ".src". > i did not update my gitlab correctly after moving some files around it seems. This is not the bug though. I've now fixed the gitlab duplicates and still have a program that won't load files any more :( the scripted-newgambas (uses gtk webview) branch has a version that has not been updated for a long time and no folders for duplicates , that won't load a file now either :( Cheers BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Mon Jul 12 19:13:16 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 18:13:16 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <0d611e19-9781-222b-0e54-e6f82c4e2357@gmail.com> Message-ID: On Mon, 12 Jul 2021 at 17:54, Bruce Steers wrote: > > > On Mon, 12 Jul 2021 at 17:47, Beno?t Minisini wrote: > >> Le 12/07/2021 ? 18:27, bb a ?crit : >> > On Mon, 2021-07-12 at 17:19 +0100, Bruce Steers wrote: >> >> My texteditor app... >> >> https://gitlab.com/bsteers4/scripted >> >> >> >> worked last time i used it, now neither version can load a file. >> >> >> >> it's working okay on previous gambas versions. >> >> >> >> my other apps work okay just this one is now broken. >> >> only thing i can think of that makes it different is it has a >> >> Texteditor >> >> >> >> thanks for listening. >> >> you're a wonderful audience ;) >> >> BruceS >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > I'm game (I am sick to death of bug #2301) >> > >> > Dis what I see... >> > >> > Cannot open project file : >> > /srv/gb3prj/demo/./scripted >> > >> > This project has duplicated class files! >> > - ExternalTools/myGrid.class >> > - CustomClasses/myGrid.class >> > - MyEditor.class >> > - CustomClasses/MyEditor.class >> > >> > >> > But me not know what dat means. >> > b >> > >> >> It means what it means: you have two source code files with the same >> name in different directories inside ".src". >> > > i did not update my gitlab correctly after moving some files around it > seems. > > This is not the bug though. > I've now fixed the gitlab duplicates and still have a program that won't > load files any more :( > > the scripted-newgambas (uses gtk webview) branch has a version that has > not been updated for a long time and no folders for duplicates , that won't > load a file now either :( > sorry there was still a poxy duplicate. have now completely fixed the git had a play to find this is a gtk bug (2 and 3), files load okay if app is qt. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Mon Jul 12 19:18:26 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 13 Jul 2021 02:48:26 +0930 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <0d611e19-9781-222b-0e54-e6f82c4e2357@gmail.com> Message-ID: On Mon, 2021-07-12 at 17:54 +0100, Bruce Steers wrote: > > I've now fixed the gitlab duplicates and still have a program that > won't load files any more :( > > the scripted-newgambas (uses gtk webview) branch has a version that > has not been updated for a long time and no folders for duplicates , > that won't load a file now either :( > > Cheers > BruceS > Guessing, after looking at the code for <3 minutes either * you have a non-terminating recursive call somewhere? * look at TimerCursor_Timer() - it seems to spend a lot of time there? Try running it with the profiler, that might shed a bit of light. b From dovey.john at gmail.com Mon Jul 12 19:25:33 2021 From: dovey.john at gmail.com (John Dovey) Date: Mon, 12 Jul 2021 12:25:33 -0500 Subject: [Gambas-user] Request for advice Message-ID: I am working on wrapping theTelegram bot API in Gambas (as recommended here before) but I'm not sure of a few things in the best approach. For example, the simplest call to the API is to get info about the bot. This looks like this: public Token as string = "xxx" Public apiURL As String = "https://api.telegram.org/bot" & Token & "/" Public hClient As HttpClient Public sBuffer As String Public cmdResponse As String Public cmdJSON As Collection Public Sub Main() getBotMe End Public Sub getBotMe() hClient = New HttpClient As "hClient" hClient.URL = apiURL & "getMe" hClient.Async = False hClient.Timeout = 60 hClient.Get Print "Begin" If hClient.Status < 0 Then Print "ERROR" Else ' Success - read the data If Lof(hClient) Then sBuffer = Read #hClient, Lof(hClient) Print sBuffer cmdResponse = sBuffer End If cmdJSON = JSON.Decode(cmdResponse) botMe = cmdJSON["result"] Print "End" End Some of the questions I have include: - does this make sense as a way to do this? - What is the best way to store the returned collection? I thought about usingSTRUCT, but there is a prettyheavy warning in the wiki not to do so. The BotMe info is in the attached image: JD -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 14974 bytes Desc: not available URL: From dovey.john at gmail.com Mon Jul 12 19:25:52 2021 From: dovey.john at gmail.com (John Dovey) Date: Mon, 12 Jul 2021 12:25:52 -0500 Subject: [Gambas-user] Wiki error: Drawing In-Reply-To: References: <9082e5cb0a3c8546b4381cb0414367862ff5feb7.camel@gmail.com> <8decf59dd06aae54b050e02e63c58d0ee5a964ee.camel@gmail.com> <24017020-939b-eb12-9387-b6cc99e39556@gmail.com> <0a2b7eb19b11d246c3263c8e611eb6bded04fcd5.camel@gmail.com> Message-ID: Awesome. Thank you! On Mon, 12 Jul 2021 at 11:54, bb wrote: > > On Mon, 2021-07-12 at 11:40 -0500, John Dovey wrote: > > Maybe link to > > http://gambaswiki.org/wiki/comp/gb.qt4.ext/drawingarea instead? > Nup, that's wrong. It's just the gb.qt.drawingarea. > Anyway, I've done it and fixed some of the Ingrish, but left the text > as was. > > > > On Mon, Jul 12, 2021 at 11:39 AM bb wrote: > > > On Mon, 2021-07-12 at 18:35 +0200, Beno?t Minisini wrote: > > > > Le 12/07/2021 ? 18:32, John Dovey a ?crit : > > > > > My apologies, I should have provided more info. > > > > > In the ?how to? on creating charts, it links to that page > > > (drawing) > > > > > and > > > > > I got very frustrated trying to find anything resembling that. > > > > > http://gambaswiki.org/wiki/howto/makechart > > > > > > > > > > > > > > > Hope that clears it up. > > > > > All the best > > > > > John > > > > > > > > > > > > > In the past, the wiki made automatic links, often incorrectly. So > > > > what > > > > you see is a broken automatic link that can be safely removed. > > > > > > > I'm doing it now. > > > b > > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > -- > > Sent from Gmail Mobile > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From adamnt42 at gmail.com Mon Jul 12 19:31:11 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 13 Jul 2021 03:01:11 +0930 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <0d611e19-9781-222b-0e54-e6f82c4e2357@gmail.com> Message-ID: <22db8ecd9a7a37a0527d0e764071e6cf7ef4f7fb.camel@gmail.com> On Mon, 2021-07-12 at 18:13 +0100, Bruce Steers wrote: > > sorry there was still a poxy duplicate. > have now completely fixed the git > > had a play to find this is a gtk bug (2 and 3), files load okay if > app is qt. > BruceS > > MacroRecorder.LoadX11Defs -> MacroRecorder.InTrim called 2498 times? From bsteers4 at gmail.com Mon Jul 12 19:32:58 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 18:32:58 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <0d611e19-9781-222b-0e54-e6f82c4e2357@gmail.com> Message-ID: On Mon, 12 Jul 2021 at 18:19, bb wrote: > On Mon, 2021-07-12 at 17:54 +0100, Bruce Steers wrote: > > > > I've now fixed the gitlab duplicates and still have a program that > > won't load files any more :( > > > > the scripted-newgambas (uses gtk webview) branch has a version that > > has not been updated for a long time and no folders for duplicates , > > that won't load a file now either :( > > > > Cheers > > BruceS > > > > Guessing, after looking at the code for <3 minutes either > * you have a non-terminating recursive call somewhere? > * look at TimerCursor_Timer() - it seems to spend a lot of time there? > > Try running it with the profiler, that might shed a bit of light. > b > Cheers dude , i tried the profiler, it didn't give any hints even after letting it hang for a while. I'm pretty sure "I" don't have an eternally recursive call TimerCursor_Timer() isn't one of my functions it's part of gb.form.editor. It runs okay with QT just not gtk and it worked okay the other day. the editor app is my default text viewer so i use it a lot. I suspect a recent gtk changing commit. Cheers BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Mon Jul 12 19:55:05 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 12 Jul 2021 18:55:05 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: <22db8ecd9a7a37a0527d0e764071e6cf7ef4f7fb.camel@gmail.com> References: <0d611e19-9781-222b-0e54-e6f82c4e2357@gmail.com> <22db8ecd9a7a37a0527d0e764071e6cf7ef4f7fb.camel@gmail.com> Message-ID: On Mon, 12 Jul 2021 at 18:32, bb wrote: > On Mon, 2021-07-12 at 18:13 +0100, Bruce Steers wrote: > > > > > sorry there was still a poxy duplicate. > > have now completely fixed the git > > > > had a play to find this is a gtk bug (2 and 3), files load okay if > > app is qt. > > BruceS > > > > > MacroRecorder.LoadX11Defs -> MacroRecorder.InTrim called 2498 times? > seems legit. it goes through the keysysdef.h file turning multiple spaces into a single space on each line. so #define XK_BackSpace 0xff08 /* Back space, back char */ becomes... #define XK_BackSpace 0xff08 /* Back space, back char */ though i did recently discover the Scan() command so might change that. the file has 2.5k lines BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Mon Jul 12 20:22:14 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 12 Jul 2021 14:22:14 -0400 Subject: [Gambas-user] Request for advice In-Reply-To: References: Message-ID: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> On 7/12/21 1:25 PM, John Dovey wrote: > I am working on wrapping theTelegram bot API in Gambas (as recommended > here before) but I'm not sure of a few things in the best approach. > [snip] > > Some of the questions I have include: > - does this make sense as a way to do this? It looks sensible to me. There are a couple things I might do a bit differently, but what you have obviously works (though I don't see where 'botMe' was declared). One thing I would do is, since you've defined hClient globally, set it's unchanging parameters once and reuse it. Second, I'd define one universal function to retrieve the response and return a collection. See the code further down below. > - What is the best way to store the returned collection? As a collection? Do you see something wrong with that? For whatever state data needs to be maintained, you can declare as many collections as you need to store response data from the only 50-some respective methods. And, the values are very easy to access. [code] Public Token as string = "xxx" Public apiURL As String = "https://api.telegram.org/bot" & Token & "/" Public hClient As HttpClient 'Public cmdResponse As String 'Public cmdJSON As Collection Public MyBot, ImaginaryData as Collection Public Sub Main() hClient = New HttpClient As "hClient" hClient.Async = False hClient.Timeout = 60 ' Get my bot's ID MyBot = getResponse("getMe") If MyBot Then ' May need to use "If Not IsNull(MyBot) Then" here. My recall is sometimes faulty. Print MyBot["id"] Else Print "ERROR" End If ' Get data from imaginary method ImaginaryData = getResponse("virtData") If ImaginaryData Then Print ImaginaryData["ether"] End Public Sub getResponse(sMethod) as Variant Dim sBuffer as String Dim respJSON as Collection hClient.URL = apiURL & sMethod hClient.Get Print "Begin" If hClient.Status < 0 Then Print "ERROR" Else ' Success - read the data If Lof(hClient) Then sBuffer = Read #hClient, Lof(hClient) Print sBuffer 'cmdResponse = sBuffer End If Try respJSON = JSON.Decode(sBuffer) If Error Then Return Null Return respJSON Print "End" End [/code] One other thing: if there is the possibility for the API to return a JSON object with null values, you will want to use JSONCollection as opposed to the Gambas native Collection. -- Lee From adamnt42 at gmail.com Mon Jul 12 20:28:29 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 13 Jul 2021 03:58:29 +0930 Subject: [Gambas-user] Request for advice In-Reply-To: References: Message-ID: On Mon, 2021-07-12 at 12:25 -0500, John Dovey wrote: > > > Some of the questions I have include: > - does this make sense as a way to do this? Yeah, it is "a" way. > - What is the best way to store the returned collection? I thought > about usingSTRUCT, but there is a prettyheavy warning in the wiki not > to do so. Let's get this STRUCT warning stuff sorted once and for all. Structs were introduced to allow calls to and results from c++ libraries that packed stuff such that you couldn't access the innards directly. They are technically a word aligned memory area that is used by the Gambas runtime interpreter to push and pull bits of that memory area in and out of real Gambas variables. Conceptually they are a pseudo-class with no methods and some public variables. So unless you are putting together an interface to a lower level shared library (let me say this quietly) THERE IS NO SANE REASON TO USE A STRUCT WHEN A CLASS WILL DO. Gambas is an object oriented language offering many (not all, personal gripe omitted) OO features that guarantee lots of stuff like type protection, inheritance , blah, blah, blah. So use the object- orientation. Don't use stuff that is there for "getting around" the protections to interact with languages that allow such BS. Gambas classes use word alignment for data allocs, Structs don't. Gambas variables are run length limited, structs aren't!!!!!! Finally, structs may LOOK like a quick and easy way to set up a "data structure" instead of the oh, maybe 12 seconds it takes to declare a class. > The BotMe info is in the attached image: > JD > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- b From adamnt42 at gmail.com Mon Jul 12 21:15:09 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 13 Jul 2021 04:45:09 +0930 Subject: [Gambas-user] Request for advice In-Reply-To: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> Message-ID: On Mon, 2021-07-12 at 14:22 -0400, T Lee Davidson wrote: > On 7/12/21 1:25 PM, John Dovey wrote: > > I am working on wrapping theTelegram bot API in Gambas (as > > recommended > > here before) but I'm not sure of a few things in the best approach. > > > [snip] > > Some of the questions I have include: > > - does this make sense as a way to do this? > > It looks sensible to me. There are a couple things I might do a bit > differently, but what you have obviously works (though I > don't see where 'botMe' was declared). > > One thing I would do is, since you've defined hClient globally, set > it's unchanging parameters once and reuse it. Second, I'd > define one universal function to retrieve the response and return a > collection. See the code further down below. > > > > - What is the best way to store the returned collection? > > As a collection? Do you see something wrong with that? For whatever > state data needs to be maintained, you can declare as many > collections as you need to store response data from the only 50-some > respective methods. And, the values are very easy to access. > > > [code] > Public Token as string = "xxx" > Public apiURL As String = "https://api.telegram.org/bot" & Token & > "/" > Public hClient As HttpClient > 'Public cmdResponse As String > 'Public cmdJSON As Collection > Public MyBot, ImaginaryData as Collection > > Public Sub Main() > > hClient = New HttpClient As "hClient" > hClient.Async = False > hClient.Timeout = 60 > > ' Get my bot's ID > MyBot = getResponse("getMe") > If MyBot Then ' May need to use "If Not IsNull(MyBot) Then" > here. My recall is sometimes faulty. > Print MyBot["id"] > Else > Print "ERROR" > End If > > ' Get data from imaginary method > ImaginaryData = getResponse("virtData") > If ImaginaryData Then Print ImaginaryData["ether"] > > End > > Public Sub getResponse(sMethod) as Variant > > Dim sBuffer as String > Dim respJSON as Collection > > hClient.URL = apiURL & sMethod > hClient.Get > > Print "Begin" > If hClient.Status < 0 Then > Print "ERROR" > Else > ' Success - read the data > If Lof(hClient) Then sBuffer = Read #hClient, Lof(hClient) > Print sBuffer > 'cmdResponse = sBuffer > End If > Try respJSON = JSON.Decode(sBuffer) > If Error Then Return Null > Return respJSON > Print "End" > End > [/code] > > > One other thing: if there is the possibility for the API to return a > JSON object with null values, you will want to use > JSONCollection as opposed to the Gambas native Collection. > > Hi Lee, I had a quick look at their "API". It is just a pure JSON service. So maybe John is over complicating things there. Without spending more time, couldn't he just let the xml/JSON components do the heavy lifting and just leave the "API" responses as JSON objects until such times as they are needed somewhere in the code. BTW is that "null" you say in the last paragraph one of those JSON_null things? or a real null? b From dovey.john at gmail.com Mon Jul 12 21:22:40 2021 From: dovey.john at gmail.com (John Dovey) Date: Mon, 12 Jul 2021 14:22:40 -0500 Subject: [Gambas-user] Request for advice In-Reply-To: References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> Message-ID: I love to hear I?m over complicating things because it means there?s a better way? which is why the advice requested. On Mon, Jul 12, 2021 at 2:16 PM bb wrote: > On Mon, 2021-07-12 at 14:22 -0400, T Lee Davidson wrote: > > On 7/12/21 1:25 PM, John Dovey wrote: > > > I am working on wrapping theTelegram bot API in Gambas (as > > > recommended > > > here before) but I'm not sure of a few things in the best approach. > > > > > [snip] > > > Some of the questions I have include: > > > - does this make sense as a way to do this? > > > > It looks sensible to me. There are a couple things I might do a bit > > differently, but what you have obviously works (though I > > don't see where 'botMe' was declared). > > > > One thing I would do is, since you've defined hClient globally, set > > it's unchanging parameters once and reuse it. Second, I'd > > define one universal function to retrieve the response and return a > > collection. See the code further down below. > > > > > > > - What is the best way to store the returned collection? > > > > As a collection? Do you see something wrong with that? For whatever > > state data needs to be maintained, you can declare as many > > collections as you need to store response data from the only 50-some > > respective methods. And, the values are very easy to access. > > > > > > [code] > > Public Token as string = "xxx" > > Public apiURL As String = "https://api.telegram.org/bot" & Token & > > "/" > > Public hClient As HttpClient > > 'Public cmdResponse As String > > 'Public cmdJSON As Collection > > Public MyBot, ImaginaryData as Collection > > > > Public Sub Main() > > > > hClient = New HttpClient As "hClient" > > hClient.Async = False > > hClient.Timeout = 60 > > > > ' Get my bot's ID > > MyBot = getResponse("getMe") > > If MyBot Then ' May need to use "If Not IsNull(MyBot) Then" > > here. My recall is sometimes faulty. > > Print MyBot["id"] > > Else > > Print "ERROR" > > End If > > > > ' Get data from imaginary method > > ImaginaryData = getResponse("virtData") > > If ImaginaryData Then Print ImaginaryData["ether"] > > > > End > > > > Public Sub getResponse(sMethod) as Variant > > > > Dim sBuffer as String > > Dim respJSON as Collection > > > > hClient.URL = apiURL & sMethod > > hClient.Get > > > > Print "Begin" > > If hClient.Status < 0 Then > > Print "ERROR" > > Else > > ' Success - read the data > > If Lof(hClient) Then sBuffer = Read #hClient, Lof(hClient) > > Print sBuffer > > 'cmdResponse = sBuffer > > End If > > Try respJSON = JSON.Decode(sBuffer) > > If Error Then Return Null > > Return respJSON > > Print "End" > > End > > [/code] > > > > > > One other thing: if there is the possibility for the API to return a > > JSON object with null values, you will want to use > > JSONCollection as opposed to the Gambas native Collection. > > > > > Hi Lee, > > I had a quick look at their "API". It is just a pure JSON service. So > maybe John is over complicating things there. Without spending more > time, couldn't he just let the xml/JSON components do the heavy lifting > and just leave the "API" responses as JSON objects until such times as > they are needed somewhere in the code. > BTW is that "null" you say in the last paragraph one of those JSON_null > things? or a real null? > > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -- Sent from Gmail Mobile -------------- next part -------------- An HTML attachment was scrubbed... URL: From tercoide at hotmail.com Mon Jul 12 21:38:48 2021 From: tercoide at hotmail.com (martin p cristia) Date: Mon, 12 Jul 2021 16:38:48 -0300 Subject: [Gambas-user] glClearColor error In-Reply-To: References: Message-ID: Did you tried in both GTK and QT enviroments? I still have the hang using official gambas /trunk PPA El 7/9/21 a las 6:21 AM, user-request at lists.gambas-basic.org escribi?: > No problem here (Ubuntu 21.04). 'glClearColor' is a standard OpenGL > function, so I guess there is something wrong in your Gambas compilation. > > -- Beno?t Minisini -- Saludos Ing. Martin P Cristia From adamnt42 at gmail.com Mon Jul 12 22:46:48 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 13 Jul 2021 06:16:48 +0930 Subject: [Gambas-user] Request for advice In-Reply-To: References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> Message-ID: On Mon, 2021-07-12 at 14:22 -0500, John Dovey wrote: > > I love to hear I?m over complicating things because it means there?s > a better way? which is why the advice requested. > > > > > I had a quick look at their "API". It is just a pure JSON service > > This is how I would be doing it. It's a standard web service pattern and the Telegram "API" is just a web service that uses JSON over http: rather than html. Attached pic : tb_BOT is the class that "stores" the current state of your _bot_. The other classes excise the "general" code away from that class so they can be pluggable, changeable, etc without disturbing the tb_BOT code. bruce p.s. That word "bot" almost makes me PUKE as much as "app". (Not your fault.) -------------- next part -------------- A non-text attachment was scrubbed... Name: TGram_API.png Type: image/png Size: 34430 bytes Desc: not available URL: From dovey.john at gmail.com Tue Jul 13 01:24:34 2021 From: dovey.john at gmail.com (John Dovey) Date: Mon, 12 Jul 2021 18:24:34 -0500 Subject: [Gambas-user] OOP/Classes etc Message-ID: After much searching, I came across this thread (https://forum.gambas.one/viewtopic.php?f=4&t=816) It looks to me like something that REALLY deserves it's own "How To".. I don't know whether the original author is around to give permission to create a "how to" from this thread? JD From bsteers4 at gmail.com Tue Jul 13 02:44:06 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 13 Jul 2021 01:44:06 +0100 Subject: [Gambas-user] OOP/Classes etc In-Reply-To: References: Message-ID: On Tue, 13 Jul 2021 at 00:25, John Dovey wrote: > After much searching, I came across this thread > (https://forum.gambas.one/viewtopic.php?f=4&t=816) > It looks to me like something that REALLY deserves it's own "How To".. > I don't know whether the original author is around to give permission > to create a "how to" from this thread? > you can send messages on the forum, Steve is still around. he has a cool website too with more gambas help. http://captainbodgit.blogspot.com/search/label/Gambas BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Tue Jul 13 03:54:55 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 12 Jul 2021 21:54:55 -0400 Subject: [Gambas-user] Request for advice In-Reply-To: References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> Message-ID: <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> On 7/12/21 3:15 PM, bb wrote: > BTW is that "null" you say in the last paragraph one of those JSON_null > things? or a real null? Well as I understand it, JSON can contain null values but they are not referred to as JSON_null, per se. JSONCollection refers to them as JSON_null. So, I guess I was referring to both/either depending upon if one is examining the JSON object or its decoded JSONCollection. BTW, that's a nice, logical birds-eye view of an object oriented implementation of a Telegram 'bot' (sorry). John could do testing of the API while refining his code with the simple program he has now. Then, if desired, relatively easily roll it into a class. -- Lee From bsteers4 at gmail.com Tue Jul 13 10:12:44 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 13 Jul 2021 09:12:44 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: Message-ID: On Mon, 12 Jul 2021 at 17:19, Bruce Steers wrote: > My texteditor app... > https://gitlab.com/bsteers4/scripted > > worked last time i used it, now neither version can load a file. > > it's working okay on previous gambas versions. > > my other apps work okay just this one is now broken. > only thing i can think of that makes it different is it has a Texteditor > > thanks for listening. > you're a wonderful audience ;) > BruceS > Seems to be commit https://gitlab.com/gambas/gambas/-/commit/dbded520666e679b8ce8abef5f4a89700ebf88bd If i revert that commit my editor loads files again. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Tue Jul 13 10:22:38 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Tue, 13 Jul 2021 10:22:38 +0200 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: Message-ID: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> Le 13/07/2021 ? 10:12, Bruce Steers a ?crit?: > > > On Mon, 12 Jul 2021 at 17:19, Bruce Steers > wrote: > > My texteditor app... > https://gitlab.com/bsteers4/scripted > > > worked last time i used it, now neither version can load a file. > > it's working okay on previous gambas versions. > > my other apps work okay just this one is now broken. > only thing i can think of that makes it different is it has a Texteditor > > thanks for listening. > you're a wonderful audience ;) > BruceS > > > Seems to be commit > https://gitlab.com/gambas/gambas/-/commit/dbded520666e679b8ce8abef5f4a89700ebf88bd > > If i revert that commit my editor loads files again. > > BruceS > What does not work exactly? Which program should I install and what should I do to reproduce which problem? -- Beno?t Minisini From bsteers4 at gmail.com Tue Jul 13 10:30:31 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 13 Jul 2021 09:30:31 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> Message-ID: The application loads fine. But when selecting a file to open (any file) it just hangs while trying to load it. My ScriptEd editor in the above link. I got no error messages to try to track it down. Like I say it was still working with qt and only recently stopped with gtk. Thanks Ben Bruce's On Tue, 13 Jul 2021, 09:23 Beno?t Minisini, wrote: > Le 13/07/2021 ? 10:12, Bruce Steers a ?crit : > > > > > > On Mon, 12 Jul 2021 at 17:19, Bruce Steers > > wrote: > > > > My texteditor app... > > https://gitlab.com/bsteers4/scripted > > > > > > worked last time i used it, now neither version can load a file. > > > > it's working okay on previous gambas versions. > > > > my other apps work okay just this one is now broken. > > only thing i can think of that makes it different is it has a > Texteditor > > > > thanks for listening. > > you're a wonderful audience ;) > > BruceS > > > > > > Seems to be commit > > > https://gitlab.com/gambas/gambas/-/commit/dbded520666e679b8ce8abef5f4a89700ebf88bd > > < > https://gitlab.com/gambas/gambas/-/commit/dbded520666e679b8ce8abef5f4a89700ebf88bd > > > > If i revert that commit my editor loads files again. > > > > BruceS > > > > What does not work exactly? Which program should I install and what > should I do to reproduce which problem? > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Tue Jul 13 10:34:01 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Tue, 13 Jul 2021 10:34:01 +0200 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> Message-ID: <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Le 13/07/2021 ? 10:30, Bruce Steers a ?crit?: > The application loads fine. > But when selecting a file to open (any file) it just hangs while trying > to load it. > > My ScriptEd editor in the above link. > > I got no error messages to try to track it down. > > Like I say it was still working with qt and only recently stopped with gtk. > > Thanks Ben > > Bruce's > I have no hang at all. -- Beno?t Minisini From bsteers4 at gmail.com Tue Jul 13 10:49:18 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 13 Jul 2021 09:49:18 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Message-ID: On Tue, 13 Jul 2021 at 09:35, Beno?t Minisini wrote: > Le 13/07/2021 ? 10:30, Bruce Steers a ?crit : > > The application loads fine. > > But when selecting a file to open (any file) it just hangs while trying > > to load it. > > > > My ScriptEd editor in the above link. > > > > I got no error messages to try to track it down. > > > > Like I say it was still working with qt and only recently stopped with > gtk. > > > > Thanks Ben > > > > Bruce's > > > > I have no hang at all. > darn it !! it does here :( i just reverted the revert and it's locking up again. have tried changing themes / window manager BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Tue Jul 13 11:23:29 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Tue, 13 Jul 2021 11:23:29 +0200 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Message-ID: Le 13/07/2021 ? 10:49, Bruce Steers a ?crit?: > > > On Tue, 13 Jul 2021 at 09:35, Beno?t Minisini > wrote: > > Le 13/07/2021 ? 10:30, Bruce Steers a ?crit?: > > The application loads fine. > > But when selecting a file to open (any file) it just hangs while > trying > > to load it. > > > > My ScriptEd editor in the above link. > > > > I got no error messages to try to track it down. > > > > Like I say it was still working with qt and only recently stopped > with gtk. > > > > Thanks Ben > > > > Bruce's > > > > I have no hang at all. > > > darn it !! > > it does here :( > i just reverted the revert and it's locking up again. > have tried changing themes / window manager > > BruceS > In that commit, the only thing that can hang is the automatic focus on window opening. Try to check that with 'gdb'. $ cd /myproject/directory $ GB_GUI=gb.gtk3 gdb gbx3 ... (gdb) run ... ^C (gdb) bt -- Beno?t Minisini From bsteers4 at gmail.com Tue Jul 13 11:51:13 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 13 Jul 2021 10:51:13 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Message-ID: On Tue, 13 Jul 2021 at 10:24, Beno?t Minisini wrote: > Le 13/07/2021 ? 10:49, Bruce Steers a ?crit : > > > > > > On Tue, 13 Jul 2021 at 09:35, Beno?t Minisini > > wrote: > > > > Le 13/07/2021 ? 10:30, Bruce Steers a ?crit : > > > The application loads fine. > > > But when selecting a file to open (any file) it just hangs while > > trying > > > to load it. > > > > > > My ScriptEd editor in the above link. > > > > > > I got no error messages to try to track it down. > > > > > > Like I say it was still working with qt and only recently stopped > > with gtk. > > > > > > Thanks Ben > > > > > > Bruce's > > > > > > > I have no hang at all. > > > > > > darn it !! > > > > it does here :( > > i just reverted the revert and it's locking up again. > > have tried changing themes / window manager > > > > BruceS > > > > In that commit, the only thing that can hang is the automatic focus on > window opening. Try to check that with 'gdb'. > > $ cd /myproject/directory > $ GB_GUI=gb.gtk3 gdb gbx3 > ... > (gdb) run > ... > ^C > (gdb) bt > (cheers Ben i will make note of those commands for next time) As for this problem I've fixed it. Not sure what it was but when you said you wasn't getting the problem i decided to fully install master branch (from ./reconf-all) The bug did not exist on master. (phew) so then i did just a make install on my tweaked version. still bug was gone. (phew) then i did a full instal from ./reconf-all on my version and bug is still gone. (dumbfounded but still phew) Sorry to waste anyone's time on this. Many thanks BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Tue Jul 13 12:13:38 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 13 Jul 2021 19:43:38 +0930 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Message-ID: <606f9988f1d7f1eb3e2919ddb71575aaa1784936.camel@gmail.com> On Tue, 2021-07-13 at 10:51 +0100, Bruce Steers wrote: > > > On Tue, 13 Jul 2021 at 10:24, Beno?t Minisini > wrote: > > Le 13/07/2021 ? 10:49, Bruce Steers a ?crit : > > > > > > > > > On Tue, 13 Jul 2021 at 09:35, Beno?t Minisini > > > wrote: > > > > > > Le 13/07/2021 ? 10:30, Bruce Steers a ?crit : > > > > The application loads fine. > > > > But when selecting a file to open (any file) it just hangs > > while > > > trying > > > > to load it. > > > > > > > > My ScriptEd editor in the above link. > > > > > > > > I got no error messages to try to track it down. > > > > > > > > Like I say it was still working with qt and only recently > > stopped > > > with gtk. > > > > > > > > Thanks Ben > > > > > > > > Bruce's > > > > > > > > > > I have no hang at all. > > > > > > > > > darn it !! > > > > > > it does here :( > > > i just reverted the revert and it's locking up again. > > > have tried changing themes / window manager > > > > > > BruceS > > > > > > > In that commit, the only thing that can hang is the automatic focus > > on > > window opening. Try to check that with 'gdb'. > > > > $ cd /myproject/directory > > $ GB_GUI=gb.gtk3 gdb gbx3 > > ... > > (gdb) run > > ... > > ^C > > (gdb) bt > > (cheers Ben i will make note of those commands for next time) > > As for this problem I've fixed it. > Not sure what it was but when you said you wasn't getting the problem > i decided to fully install master branch (from ./reconf-all) > The bug did not exist on master. (phew) > so then i did just a make install on my tweaked version. > still bug was gone. (phew) > then i did a full instal from ./reconf-all on my version and bug is > still gone. (dumbfounded but still phew) > > Sorry to waste anyone's time on this. > > Many thanks > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ~"Ah Glasshopper, you must rearn to hole tounge in collect cheek!" Does that mean I can now clone it again from your gitlab, cause it looks interesting. b From adamnt42 at gmail.com Tue Jul 13 12:24:01 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 13 Jul 2021 19:54:01 +0930 Subject: [Gambas-user] Request for advice In-Reply-To: <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> Message-ID: <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> On Mon, 2021-07-12 at 21:54 -0400, T Lee Davidson wrote: > On 7/12/21 3:15 PM, bb wrote: > > BTW is that "null" you say in the last paragraph one of those > > JSON_null > > things? or a real null? > > Well as I understand it, JSON can contain null values but they are > not referred to as JSON_null, per se. JSONCollection refers > to them as JSON_null. So, I guess I was referring to both/either > depending upon if one is examining the JSON object or its > decoded JSONCollection. > > BTW, that's a nice, logical birds-eye view of an object oriented > implementation of a Telegram 'bot' (sorry). John could do > testing of the API while refining his code with the simple program he > has now. Then, if desired, relatively easily roll it into > a class. > > Thanks Lee, that is a fine accolade from you. The diagram was "thrown together in only a few minutes from looking at the Telegram (so called) "API". I am very interested in how John goes with his bot (cough, spit). We have a similar project for a very different JSON service on hold at the moment due to resource constraints. cheers b From dovey.john at gmail.com Tue Jul 13 12:28:52 2021 From: dovey.john at gmail.com (John Dovey) Date: Tue, 13 Jul 2021 05:28:52 -0500 Subject: [Gambas-user] Request for advice In-Reply-To: <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> Message-ID: I'm working on it. Slowly. In the meantime, my VB version is running on my laptop and performing well. Feel free to test https://t.me/FireCatShopBot or https://t.me/GOSATestBot On Tue, 13 Jul 2021 at 05:25, bb wrote: > On Mon, 2021-07-12 at 21:54 -0400, T Lee Davidson wrote: > > On 7/12/21 3:15 PM, bb wrote: > > > BTW is that "null" you say in the last paragraph one of those > > > JSON_null > > > things? or a real null? > > > > Well as I understand it, JSON can contain null values but they are > > not referred to as JSON_null, per se. JSONCollection refers > > to them as JSON_null. So, I guess I was referring to both/either > > depending upon if one is examining the JSON object or its > > decoded JSONCollection. > > > > BTW, that's a nice, logical birds-eye view of an object oriented > > implementation of a Telegram 'bot' (sorry). John could do > > testing of the API while refining his code with the simple program he > > has now. Then, if desired, relatively easily roll it into > > a class. > > > > > Thanks Lee, that is a fine accolade from you. > > The diagram was "thrown together in only a few minutes from looking at > the Telegram (so called) "API". I am very interested in how John goes > with his bot (cough, spit). We have a similar project for a very > different JSON service on hold at the moment due to resource > constraints. > > cheers > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Jul 13 13:28:29 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 13 Jul 2021 12:28:29 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: <606f9988f1d7f1eb3e2919ddb71575aaa1784936.camel@gmail.com> References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> <606f9988f1d7f1eb3e2919ddb71575aaa1784936.camel@gmail.com> Message-ID: On Tue, 13 Jul 2021 at 11:18, bb wrote: > On Tue, 2021-07-13 at 10:51 +0100, Bruce Steers wrote: > > > > > > On Tue, 13 Jul 2021 at 10:24, Beno?t Minisini > > wrote: > > > Le 13/07/2021 ? 10:49, Bruce Steers a ?crit : > > > > > > > > > > > > On Tue, 13 Jul 2021 at 09:35, Beno?t Minisini > > > > wrote: > > > > > > > > Le 13/07/2021 ? 10:30, Bruce Steers a ?crit : > > > > > The application loads fine. > > > > > But when selecting a file to open (any file) it just hangs > > > while > > > > trying > > > > > to load it. > > > > > > > > > > My ScriptEd editor in the above link. > > > > > > > > > > I got no error messages to try to track it down. > > > > > > > > > > Like I say it was still working with qt and only recently > > > stopped > > > > with gtk. > > > > > > > > > > Thanks Ben > > > > > > > > > > Bruce's > > > > > > > > > > > > > I have no hang at all. > > > > > > > > > > > > darn it !! > > > > > > > > it does here :( > > > > i just reverted the revert and it's locking up again. > > > > have tried changing themes / window manager > > > > > > > > BruceS > > > > > > > > > > In that commit, the only thing that can hang is the automatic focus > > > on > > > window opening. Try to check that with 'gdb'. > > > > > > $ cd /myproject/directory > > > $ GB_GUI=gb.gtk3 gdb gbx3 > > > ... > > > (gdb) run > > > ... > > > ^C > > > (gdb) bt > > > > (cheers Ben i will make note of those commands for next time) > > > > As for this problem I've fixed it. > > Not sure what it was but when you said you wasn't getting the problem > > i decided to fully install master branch (from ./reconf-all) > > The bug did not exist on master. (phew) > > so then i did just a make install on my tweaked version. > > still bug was gone. (phew) > > then i did a full instal from ./reconf-all on my version and bug is > > still gone. (dumbfounded but still phew) > > > > Sorry to waste anyone's time on this. > > > > Many thanks > > BruceS > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > ~"Ah Glasshopper, you must rearn to hole tounge in collect cheek!" > Innit, sorry, pretty sure i've danced this dance before as well :-\ I need my desktop background to be some text saying "have you tried re-installing gambas first? :) > Does that mean I can now clone it again from your gitlab, cause it > looks interesting. > Sure, I've fixed the file duplicates so all should be good now. It's coolest feature is the keystroke macro recorder, recording keystroke events and play them back. (spent ages on that and it's still far from perfect) (it's not great with QT if using F3 to search text in a macro, gtk will do the search at the time F3 is pressed in the macro but QT only does the search at the end of all the macro keystrokes , so only works if you make your macro so Search is the last keystroke) Really wish Gambas had a keystroke recorder, such a useful thing (i just had to make one) I also emulated Pluma's External tools plugin as that's also a really useful feature. Wishing well BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From hans at gambas-buch.de Tue Jul 13 13:34:22 2021 From: hans at gambas-buch.de (Hans Lehmann) Date: Tue, 13 Jul 2021 13:34:22 +0200 Subject: [Gambas-user] Error ODBC Message-ID: An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Tue Jul 13 13:53:59 2021 From: adamnt42 at gmail.com (bb) Date: Tue, 13 Jul 2021 21:23:59 +0930 Subject: [Gambas-user] Error ODBC In-Reply-To: References: Message-ID: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> On Tue, 2021-07-13 at 13:34 +0200, Hans Lehmann wrote: > Public Sub btnDoTest_Click() > > Dim sSQLStatement As String > Dim dbResult As Result > > sSQLStatement = "SELECT vorname, nachname, gebdatum FROM contacts > WHERE id BETWEEN 4 AND 7" > > DBConnection.Begin() > dbResult = DBConnection.Exec(sSQLStatement) > DBConnection.Commit() > > dbResult.MoveFirst() > > While (dbResult.Available) > Print dbResult!vorname & " " & dbResult!nachname & " ---? " & > Format(dbResult["gebdatum"], "yyyy-mm-dd") > dbResult.MoveNext() > Wend > > End I am not totally conversant with Sqlite but... 1) You don't need the DBConnection.Begin() and Commit() as Select doesn't need a transaction. 2) dbResult.Available just tells you there is some result. AFAIK you should be using something like dbResult.MoveFirst Print dbResult!vorname & " " & dbResult!nachname .... While dbResult.MoveNext() Print dbResult!vorname & ... etc Wend or is it While Not dbResult.MoveNext() ? (can't remember) hth bruce From hans at gambas-buch.de Tue Jul 13 14:16:37 2021 From: hans at gambas-buch.de (Hans Lehmann) Date: Tue, 13 Jul 2021 14:16:37 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> Message-ID: An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: iajojdlojlkkhckl.png Type: image/png Size: 15503 bytes Desc: not available URL: From demosthenesk at gmail.com Tue Jul 13 14:18:20 2021 From: demosthenesk at gmail.com (Demosthenes Koptsis) Date: Tue, 13 Jul 2021 15:18:20 +0300 Subject: [Gambas-user] Gambas 3.16.2 and PPA Message-ID: Hello, there are a few days from the release of gambas 3.16.2. However the PPA for Focal Fossa is not updated yet. When do you plan to make pakages for PPA? Thanks Demosthenes. From denisc at exemail.com.au Tue Jul 13 14:28:13 2021 From: denisc at exemail.com.au (Denis Crowther) Date: Tue, 13 Jul 2021 22:28:13 +1000 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> Message-ID: Hi Hans, I've never used the ODBC driver for Sqlite. There was talk recently here about some problem(s) with it. I have always connected directly with Sqlite. Maybe try connecting directly and see if the problem still exists. You can enumerate a Result object so typically I would; If dbResult.Available Then For Each dbResult see.. http://gambaswiki.org/wiki/comp/gb.db/result/_next Regards Denis On 13/7/21 10:16 pm, Hans Lehmann wrote: > Hello Bruce, > > regardless of which suggestion I implement - the result remains the > display of the first record. > > Or it results in an (additional) error: > > > > Yours sincerely > > Hans > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > From bsteers4 at gmail.com Tue Jul 13 15:57:18 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 13 Jul 2021 14:57:18 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Message-ID: On Tue, 13 Jul 2021 at 10:24, Beno?t Minisini wrote: > Le 13/07/2021 ? 10:49, Bruce Steers a ?crit : > > > > > > On Tue, 13 Jul 2021 at 09:35, Beno?t Minisini > > wrote: > > > > Le 13/07/2021 ? 10:30, Bruce Steers a ?crit : > > > The application loads fine. > > > But when selecting a file to open (any file) it just hangs while > > trying > > > to load it. > > > > > > My ScriptEd editor in the above link. > > > > > > I got no error messages to try to track it down. > > > > > > Like I say it was still working with qt and only recently stopped > > with gtk. > > > > > > Thanks Ben > > > > > > Bruce's > > > > > > > I have no hang at all. > > > > > > darn it !! > > > > it does here :( > > i just reverted the revert and it's locking up again. > > have tried changing themes / window manager > > > > BruceS > > > > In that commit, the only thing that can hang is the automatic focus on > window opening. Try to check that with 'gdb'. > > $ cd /myproject/directory > $ GB_GUI=gb.gtk3 gdb gbx3 > ... > (gdb) run > ... > ^C > (gdb) bt > Right this bug fixed on LinuxMint but on Debian11 i'm getting it and i cannot fix it. i used your gdb command and got this text... I hope it means more to you than it does to me. bonus at debian:/mnt/SSDiskspace/git/scripted-oldgambas$ GB_GUI=gb.gtk3 gdb gbx3 GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git Copyright (C) 2021 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from gbx3... (gdb) run Starting program: /usr/bin/gbx3 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Detaching after vfork from child process 412840] [New Thread 0x7ffff159d700 (LWP 412842)] [New Thread 0x7ffff0d9c700 (LWP 412843)] [Detaching after vfork from child process 412845] [Detaching after vfork from child process 412848] [Detaching after vfork from child process 412849] [Detaching after vfork from child process 412850] [New Thread 0x7fffeafff700 (LWP 412851)] [New Thread 0x7fffea7fe700 (LWP 412852)] [Thread 0x7fffea7fe700 (LWP 412852) exited] [New Thread 0x7fffea7fe700 (LWP 412854)] [New Thread 0x7fffebeff700 (LWP 412855)] [New Thread 0x7fffe9ffd700 (LWP 412856)] [Thread 0x7fffebeff700 (LWP 412855) exited] [Thread 0x7fffea7fe700 (LWP 412854) exited] [Detaching after fork from child process 412859] ^C Thread 1 "gbx3" received signal SIGINT, Interrupt. 0x00007ffff62b82e0 in gtk_widget_get_type () from /lib/x86_64-linux-gnu/libgtk-3.so.0 (gdb) bt #0 0x00007ffff62b82e0 in gtk_widget_get_type () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #1 0x00007ffff62ba60e in gtk_widget_get_can_focus () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #2 0x00007ffff7120be0 in gControl::canFocus() const (this=) at gcontrol.cpp:1283 #3 0x00007ffff713c93f in gMainWindow::setVisible(bool) (this=0x555555963d80, vl=) at gmainwindow.cpp:913 #4 0x00007ffff713d4fd in gControl::show() (this=0x555555963d80) at gcontrol.h:86 #5 gMainWindow::showActivate() (this=0x555555963d80) at gmainwindow.cpp:1123 #6 0x00005555555b9905 in EXEC_native_quick () at gbx_exec.c:1175 #7 0x00005555555baa4b in EXEC_native_check (defined=) at gbx_exec.c:1125 #8 0x00005555555b3caa in EXEC_loop () at gbx_exec_loop.c:1172 #9 0x00005555555b90ad in EXEC_function_loop () at gbx_exec.c:905 #10 0x00005555555b9816 in EXEC_function_real () at gbx_exec.c:892 #11 0x00005555555bac11 in EXEC_public_desc (class=class at entry=0x55555587a0e8, object=object at entry=0x555555a907f8, desc=desc at entry=0x555555895158, nparam=nparam at entry=0) at gbx_exec.c:1585 #12 0x00005555555916c7 in raise_event --Type for more, q to quit, c to continue without paging--q Cheers BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From dovey.john at gmail.com Tue Jul 13 17:13:22 2021 From: dovey.john at gmail.com (John Dovey) Date: Tue, 13 Jul 2021 10:13:22 -0500 Subject: [Gambas-user] Request for advice In-Reply-To: References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> Message-ID: Ok.. I'm really battling to understand how this is supposed to work. Any suggestions? On Tue, 13 Jul 2021 at 05:28, John Dovey wrote: > > I'm working on it. Slowly. > In the meantime, my VB version is running on my laptop and performing well. Feel free to test https://t.me/FireCatShopBot or https://t.me/GOSATestBot > > > > On Tue, 13 Jul 2021 at 05:25, bb wrote: >> >> On Mon, 2021-07-12 at 21:54 -0400, T Lee Davidson wrote: >> > On 7/12/21 3:15 PM, bb wrote: >> > > BTW is that "null" you say in the last paragraph one of those >> > > JSON_null >> > > things? or a real null? >> > >> > Well as I understand it, JSON can contain null values but they are >> > not referred to as JSON_null, per se. JSONCollection refers >> > to them as JSON_null. So, I guess I was referring to both/either >> > depending upon if one is examining the JSON object or its >> > decoded JSONCollection. >> > >> > BTW, that's a nice, logical birds-eye view of an object oriented >> > implementation of a Telegram 'bot' (sorry). John could do >> > testing of the API while refining his code with the simple program he >> > has now. Then, if desired, relatively easily roll it into >> > a class. >> > >> > >> Thanks Lee, that is a fine accolade from you. >> >> The diagram was "thrown together in only a few minutes from looking at >> the Telegram (so called) "API". I am very interested in how John goes >> with his bot (cough, spit). We have a similar project for a very >> different JSON service on hold at the moment due to resource >> constraints. >> >> cheers >> b >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- A non-text attachment was scrubbed... Name: ApiTest-0.0.5.tar.gz Type: application/x-gzip Size: 28726 bytes Desc: not available URL: From chrisml at deganius.de Tue Jul 13 17:20:00 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Tue, 13 Jul 2021 17:20:00 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> Message-ID: <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> Hi Hans, Am 13.07.21 um 14:16 schrieb Hans Lehmann: > regardless of which suggestion I implement - the result remains the > display of the first record. > > Or it results in an (additional) error: Can you tell the number of 'DbResult.Count'? I always use another way to iterate through the tuples of a result. To call 'Result.Available' seems to be the wrong question, because it only seems to say if tuples are available or not: "Returns True if the result object contains one or more accessible database rows." This should be always the case, if the Result contains tuples at all, even if your program iterated through all until the end of the result set. I usually do it this way (sry i use my own naming not your's): > Dim qry As String > Dim res As Result > > qry = "SELECT vorname, nachname, gebdatum FROM contacts WHERE id BETWEEN 4 And 7;" > res = DBConnection.Exec(qry) > > 'Print res.Count > > If res.Count > 0 Then > For Each res > Print res!vorname & " " & res!nachname & " ---? " & Format(res["gebdatum"], "yyyy-mm-dd") > Next > Endif (not tested) And do you really want to use odbc? odbc is a crutch that we only use when there is no direct way of accessing the database. But Gambas can access Sqlite databases directly: http://gambaswiki.org/wiki/comp/gb.db/_connection/type Alles Gute Christof Thalhofer -- [x] nail here for new monitor From t.lee.davidson at gmail.com Tue Jul 13 17:20:13 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 13 Jul 2021 11:20:13 -0400 Subject: [Gambas-user] Request for advice In-Reply-To: References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> Message-ID: <248de454-1e4d-d724-05c4-fbd1364c50cb@gmail.com> On 7/13/21 11:13 AM, John Dovey wrote: > Ok.. I'm really battling to understand how this is supposed to work. > Any suggestions? What exactly are you referring to with "this"? Are you talking about using the Telegram API generally, or the OO version of a bot that Bruce conceptualized? -- Lee From dovey.john at gmail.com Tue Jul 13 17:29:37 2021 From: dovey.john at gmail.com (John Dovey) Date: Tue, 13 Jul 2021 10:29:37 -0500 Subject: [Gambas-user] Request for advice In-Reply-To: <248de454-1e4d-d724-05c4-fbd1364c50cb@gmail.com> References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> <248de454-1e4d-d724-05c4-fbd1364c50cb@gmail.com> Message-ID: OO in general. Bruce?s model I am battling to make out. I?ve figured that using classes is easy enough to use as a substitute for struct, but how I do the rest is a little beyond me. In the attached project you can see I created a bot class, and I can populate the data in it. I created the botme class (which I think is actually an object, and I can populate that easily enough. What I?m not sure about is the right way to do it. JD On Tue, Jul 13, 2021 at 10:22 AM T Lee Davidson wrote: > On 7/13/21 11:13 AM, John Dovey wrote: > > Ok.. I'm really battling to understand how this is supposed to work. > > Any suggestions? > > What exactly are you referring to with "this"? Are you talking about using > the Telegram API generally, or the OO version of a > bot that Bruce conceptualized? > > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -- Sent from Gmail Mobile -------------- next part -------------- An HTML attachment was scrubbed... URL: From dovey.john at gmail.com Tue Jul 13 17:43:17 2021 From: dovey.john at gmail.com (John Dovey) Date: Tue, 13 Jul 2021 10:43:17 -0500 Subject: [Gambas-user] Request for advice In-Reply-To: <248de454-1e4d-d724-05c4-fbd1364c50cb@gmail.com> References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> <248de454-1e4d-d724-05c4-fbd1364c50cb@gmail.com> Message-ID: Now I'm looking at one of the objects. (user) and setting the Property for "photo" which is another object called chatphoto. How do I implement this? I've got --- tb_type_chat.class Export Property id As Long Use $id Property type As String Use $type ' etc then Property photo As Tb_type_chatphoto Use $tb_type_chatphoto '<- This obviously refers to a different object. in the Read function, I guess I populate the new object? --- JD On Tue, 13 Jul 2021 at 10:22, T Lee Davidson wrote: > > On 7/13/21 11:13 AM, John Dovey wrote: > > Ok.. I'm really battling to understand how this is supposed to work. > > Any suggestions? > > What exactly are you referring to with "this"? Are you talking about using the Telegram API generally, or the OO version of a > bot that Bruce conceptualized? > > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From t.lee.davidson at gmail.com Tue Jul 13 18:24:03 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 13 Jul 2021 12:24:03 -0400 Subject: [Gambas-user] Request for advice In-Reply-To: References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> <248de454-1e4d-d724-05c4-fbd1364c50cb@gmail.com> Message-ID: On 7/13/21 11:29 AM, John Dovey wrote: > What I?m not sure about is the right way to do it. The "right" way to do it is whatever way works for you [and/or your user(s)] without causing undue issues for you, them, or the API server. I admit that Bruce's conceptualization is a bit confusing at first glance and may actually be more complex than necessary for your project. However, I do understand his reasoning for the separate classes, ie. mainly future maintenance. What I see in your project is you have separated the bot itself into two separate classes when it appears they should be one since they maintain properties, upon instantiation, for the same object. Also, if you are trying to follow Bruce's concept, the HTTP request functionality would be moved to its own module. The tb_APIdef class is merely to encapsulate the various API methods and the API endpoint (URL) in a separate file for ease of maintenance should they change. This is how I see the process working. The Main form (or module) is the manager. It creates, destroys, and manages any number of bots. When a bot is created, it should use the botMe method to establish its identity. To do this, it would query the tb_APIdef class and receive a properly formatted request URL, for that specific method, which it would then pass to the tb_interface module for processing. The tb_interface module would then return the data retrieved from the API endpoint, and tb_BOT would then populate its properties accordingly. (That same process would be used for other queries/methods as well.) I don't know what a chatphoto would be. But, if it is unique to a particular bot and does not have a multitude of required meta datum attached, then perhaps you could simply store it in a tb_BOT property and not bother with yet another class. -- Lee From dovey.john at gmail.com Tue Jul 13 18:53:09 2021 From: dovey.john at gmail.com (John Dovey) Date: Tue, 13 Jul 2021 11:53:09 -0500 Subject: [Gambas-user] Request for advice In-Reply-To: References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> <248de454-1e4d-d724-05c4-fbd1364c50cb@gmail.com> Message-ID: Thank you for this!! It makes it clearer. >What I see in your project is you have separated the bot itself into two separate classes when it appears they should be one since they maintain properties, upon instantiation, for the same object. I was under the impression that I would need to create a new object/class for each of the "objects" which the app defines. On the page https://core.telegram.org/bots/api#user you will see the "available types" listed. Each one is _called_ an object. How would I implement those? Each "object" has a list of properties. When requested from the api, each one is returned (or set) as a JSON string. Some objects include others.. such as the message which includes the user (multiple times), the chat (multiple times), the message , an array of messageentity objects, etc etc. Would it make sense to have bot.message which includes bot.message.fromuser , bot.message.forwardfromuser or rather bot.message(fromuser, forwardfrom) (fromuser and forwardfrom are both user objects)? Also, I don't know how to do that. Sorry to be an absolute pain, but I am truly lost. If I can't figure this out, it's back to spagetti dotnet VB code... JD On Tue, 13 Jul 2021 at 11:25, T Lee Davidson wrote: > On 7/13/21 11:29 AM, John Dovey wrote: > > What I?m not sure about is the right way to do it. > > The "right" way to do it is whatever way works for you [and/or your > user(s)] without causing undue issues for you, them, or the > API server. > > I admit that Bruce's conceptualization is a bit confusing at first glance > and may actually be more complex than necessary for > your project. However, I do understand his reasoning for the separate > classes, ie. mainly future maintenance. > > What I see in your project is you have separated the bot itself into two > separate classes when it appears they should be one > since they maintain properties, upon instantiation, for the same object. > Also, if you are trying to follow Bruce's concept, the > HTTP request functionality would be moved to its own module. > > The tb_APIdef class is merely to encapsulate the various API methods and > the API endpoint (URL) in a separate file for ease of > maintenance should they change. > > This is how I see the process working. The Main form (or module) is the > manager. It creates, destroys, and manages any number of > bots. When a bot is created, it should use the botMe method to establish > its identity. > > To do this, it would query the tb_APIdef class and receive a properly > formatted request URL, for that specific method, which it > would then pass to the tb_interface module for processing. The > tb_interface module would then return the data retrieved from the > API endpoint, and tb_BOT would then populate its properties accordingly. > (That same process would be used for other > queries/methods as well.) > > I don't know what a chatphoto would be. But, if it is unique to a > particular bot and does not have a multitude of required meta > datum attached, then perhaps you could simply store it in a tb_BOT > property and not bother with yet another class. > > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Tue Jul 13 20:37:10 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 13 Jul 2021 14:37:10 -0400 Subject: [Gambas-user] Request for advice In-Reply-To: References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> <248de454-1e4d-d724-05c4-fbd1364c50cb@gmail.com> Message-ID: On 7/13/21 12:53 PM, John Dovey wrote: > I was under the impression that I would need to create a new object/class for each of the "objects" which the app defines. On > the page https://core.telegram.org/bots/api#user you will see the "available types" > listed. Each one is _called_ an object. How would I implement those? Each "object" has a list of properties. When requested from > the api, each one is returned (or set) as a JSON string. Some objects include others.. such as the message > ?which includes the user ?(multiple times), > the chat ?(multiple times), the message , > an array of messageentity ?objects, etc etc. > > Would it make sense to have bot.message which includes bot.message.fromuser , bot.message.forwardfromuser or rather > bot.message(fromuser, forwardfrom) (fromuser and forwardfrom are both user objects)? Also, I don't know how to do that. > > Sorry to be an absolute pain, but I am truly lost. If I can't figure this out, it's back to spagetti?dotnet VB code... The API documentation refers to them as objects because they are JSON objects. That doesn't necessarily mean that they correlate to, or need to be represented by, Gambas objects. One main difference between objects and collections is objects can contain methods, Collections cannot. If a set of related data does not also require one or more functions (methods) to manage or manipulate that data, I prefer to use Collections. Others prefer to use objects. Once created, the manner of accessing data in either one is a matter of syntax, ie. Chat["id"] vs. Chat.id. The reason I try to prefer Collections over objects is that they are simpler and don't require another file in my project. However, for more complex projects (such as this TG API appears to present) it is quite handy to have the various data objects defined in a location which is easy to find; which would be in a descriptively named class as opposed to buried among many others in, for example, a single module. And, for data structures that are used multiple times, classes are handy for that too. The Message object has quite a few fields. For simplicity's sake, let's say it has just three: id, user, and chat. Since 'id' is an integer, there's no need to create a 'type' for it. So then we would need to create classes for User and Chat. You've already done User as tb_BotMe.class (which I did not realize when I said the two should be one and apologize if that confused you): [code] ' Gambas class file Property id As String Use $id Property is_bot As Boolean Use $is_bot Property first_name As String Use $first_name Property username As String Use $username Property can_join_groups As Boolean Use $can_join_groups Property can_read_all_group_messages As Boolean Use $can_read_all_group_messages Property supports_inline_queries As Boolean Use $supports_inline_queries [/code] That is the *entirety* of the file. With the use of the "Use" keyword, all of the respective Read() and Write() functions are automatically created internally. Also, unless you are creating a component, the Export keyword is not required. [http://gambaswiki.org/wiki/lang/propdecl] [http://gambaswiki.org/wiki/lang/export] The Chat object has a few more fields. Its 'photo' field is of type ChatPhoto; which I suspect is used only once in the Chat object. And, it appears simple enough to be represented by a Collection, or an object if you wish - your choice. The class definition through the first seven properties could be: (tb_Chat.class) [code] ' Gambas class file Property id as Integer Use $id Property type as String Use $type Property title as String Use $title Property username as String Use $username Property first_name as String Use $first_name Property last_name as String Use $last_name Property photo as ChatPhoto Use $photo [snip] [/code] Suppose the definition for the 'photo' property was: Property photo as Collection Use $photo Which is clearer to you (or possibly anyone reading your code)? Which do you think would be easier to maintain? And, again, with "Use", we do not need to explicitly define the getter and setter functions _unless_ we need to override any of their read or write behavior. Given the syntax, "bot.message(fromuser, forwardfrom)", 'message' would be a method, not a property, of bot. So, the formats bot.message.fromuser and bot.message.forwardfromuser make more sense for data access. And, finally, you're not being a pain. What do you think this list is for? :-) I just hope I have helped instead of causing you (even more?) confusion. -- Lee From t.lee.davidson at gmail.com Tue Jul 13 21:51:08 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 13 Jul 2021 15:51:08 -0400 Subject: [Gambas-user] Request for advice In-Reply-To: References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> <248de454-1e4d-d724-05c4-fbd1364c50cb@gmail.com> Message-ID: <683fe235-e372-371b-f602-31820000bb95@gmail.com> On 7/13/21 11:43 AM, John Dovey wrote: > Now I'm looking at one of the objects. (user) and setting the Property > for "photo" which is another object called chatphoto. > How do I implement this? > > I've got > --- > tb_type_chat.class > > Export > Property id As Long Use $id > Property type As String Use $type > ' etc then > Property photo As Tb_type_chatphoto Use $tb_type_chatphoto '<- This > obviously refers to a different object. in the Read function, I guess > I populate the new object? It would be preferable to populate the object in its _new() method as opposed to its Read() method. Let's assume that, using the tb_interface module, you have retrieved a Chat (JSON) object from the API server (with the getChat method?), decoded it to a JSONCollection, and returned it to the Main module in a JSONCollection called "jsonChat". You could populate your Chat object with just: Dim oChat = New tb_type_chat(jsonChat) The _new() method of tb_type_chat could be, in part: [code] Public Sub _new(cChat as JSONCollection) $id = cChat["id"] $type = cChat["type"] [snip] $photo = New tb_type_chatphoto(cChat["photo"]) [snip] End Sub [/code] The _new() method of tb_type_chatphoto could be: [code] Public Sub _new(cPhoto as JSONCollection) $small_file_id = cPhoto["small_file_id"] $small_file_unique_id = cPhoto["small_file_unique_id"] $big_file_id = cPhoto["big_file_id"] $big_file_unique_id = cPhoto["big_file_unique_id"] End Sub [/code] This highlights one thing to me. Since JSON.Decode converts the JSON object into its appropriate Gambas type (most often collections), it actually might be much simpler to let the JSON component (and JSONCollection) handle the data structure instead of going through the pain (and possible confusion) of converting/transferring the data to objects. In that case, accessing the big_file_id of a Chat object's ChatPhoto object would simply be jsonChat["photo"]["big_file_id"]. And, personally if it were me, I actually might do that since I prefer simplicity over strict OO adherence. But as I said, others prefer objects. Pick your poison. -- Lee From t.lee.davidson at gmail.com Tue Jul 13 22:46:52 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 13 Jul 2021 16:46:52 -0400 Subject: [Gambas-user] Gambas v3.16.2 release for openSUSE missing components? Message-ID: I don't know if anyone here would have any idea about a distro-specific Gambas repo issue, but here goes. The openSUSE package manager tells me that there are new Gambas updates from a community (stable version) repo. But, it lists only 13 components for v3.16.2 when there are usually about 98 listed when an update comes out: gambas3-gb-complex gambas3-gb-compress gambas3-gb-compress-zstd gambas3-gb-crypt gambas3-gb-gmp gambas3-gb-gsl gambas3-gb-httpd gambas3-gb-inotify gambas3-gb-ncurses gambas3-gb-openal gambas3-gb-openssl gambas3-gb-sdl2-audio gambas3-gb-vb That can't be all that is required to upgrade from v3.16.1 to v 3.16.2. Or, is it? I don't see anything missing in the spec file at https://build.opensuse.org/package/show/home%3Amunix9/gambas3. Any clues? -- Lee openSUSE Leap 15.2; X86_64 From g4mba5 at gmail.com Tue Jul 13 22:56:02 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Tue, 13 Jul 2021 22:56:02 +0200 Subject: [Gambas-user] Gambas v3.16.2 release for openSUSE missing components? In-Reply-To: References: Message-ID: <2b2ea809-46b9-9c0d-e80b-93ee86bfaf9b@gmail.com> Le 13/07/2021 ? 22:46, T Lee Davidson a ?crit?: > I don't know if anyone here would have any idea about a distro-specific > Gambas repo issue, but here goes. > > The openSUSE package manager tells me that there are new Gambas updates > from a community (stable version) repo. But, it lists only 13 components > for v3.16.2 when there are usually about 98 listed when an update comes > out: > gambas3-gb-complex > gambas3-gb-compress > gambas3-gb-compress-zstd > gambas3-gb-crypt > gambas3-gb-gmp > gambas3-gb-gsl > gambas3-gb-httpd > gambas3-gb-inotify > gambas3-gb-ncurses > gambas3-gb-openal > gambas3-gb-openssl > gambas3-gb-sdl2-audio > gambas3-gb-vb > > > That can't be all that is required to upgrade from v3.16.1 to v 3.16.2. > Or, is it? > > I don't see anything missing in the spec file at > https://build.opensuse.org/package/show/home%3Amunix9/gambas3. > > Any clues? > > 3.16.2 is tagged, but not yet released. I don't know how this openSUSE Gambas repository is filled. -- Beno?t Minisini From dovey.john at gmail.com Tue Jul 13 22:58:57 2021 From: dovey.john at gmail.com (John Dovey) Date: Tue, 13 Jul 2021 15:58:57 -0500 Subject: [Gambas-user] Request for advice In-Reply-To: <683fe235-e372-371b-f602-31820000bb95@gmail.com> References: <72edd851-463c-2461-767d-c78c9aa06591@gmail.com> <6a31e7e8-8602-c090-c988-7d6a310c28c0@gmail.com> <16e3dde2ca48462ebd4326685884482c28b83edb.camel@gmail.com> <248de454-1e4d-d724-05c4-fbd1364c50cb@gmail.com> <683fe235-e372-371b-f602-31820000bb95@gmail.com> Message-ID: Thank you. That's pretty clear now. In terms of picking my poison, I'm leaning heavily in the direction of using the JSON directly!!! I'll experiment a little more and see how that goes. All the best John On Tue, 13 Jul 2021 at 14:52, T Lee Davidson wrote: > On 7/13/21 11:43 AM, John Dovey wrote: > > Now I'm looking at one of the objects. (user) and setting the Property > > for "photo" which is another object called chatphoto. > > How do I implement this? > > > > I've got > > --- > > tb_type_chat.class > > > > Export > > Property id As Long Use $id > > Property type As String Use $type > > ' etc then > > Property photo As Tb_type_chatphoto Use $tb_type_chatphoto '<- This > > obviously refers to a different object. in the Read function, I guess > > I populate the new object? > > It would be preferable to populate the object in its _new() method as > opposed to its Read() method. > > Let's assume that, using the tb_interface module, you have retrieved a > Chat (JSON) object from the API server (with the getChat > method?), decoded it to a JSONCollection, and returned it to the Main > module in a JSONCollection called "jsonChat". > > You could populate your Chat object with just: > Dim oChat = New tb_type_chat(jsonChat) > > The _new() method of tb_type_chat could be, in part: > [code] > Public Sub _new(cChat as JSONCollection) > $id = cChat["id"] > $type = cChat["type"] > [snip] > $photo = New tb_type_chatphoto(cChat["photo"]) > [snip] > End Sub > [/code] > > The _new() method of tb_type_chatphoto could be: > [code] > Public Sub _new(cPhoto as JSONCollection) > $small_file_id = cPhoto["small_file_id"] > $small_file_unique_id = cPhoto["small_file_unique_id"] > $big_file_id = cPhoto["big_file_id"] > $big_file_unique_id = cPhoto["big_file_unique_id"] > End Sub > [/code] > > > This highlights one thing to me. Since JSON.Decode converts the JSON > object into its appropriate Gambas type (most often > collections), it actually might be much simpler to let the JSON component > (and JSONCollection) handle the data structure instead > of going through the pain (and possible confusion) of > converting/transferring the data to objects. In that case, accessing the > big_file_id of a Chat object's ChatPhoto object would simply be > jsonChat["photo"]["big_file_id"]. > > And, personally if it were me, I actually might do that since I prefer > simplicity over strict OO adherence. But as I said, > others prefer objects. Pick your poison. > > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Tue Jul 13 23:05:25 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 13 Jul 2021 17:05:25 -0400 Subject: [Gambas-user] Gambas v3.16.2 release for openSUSE missing components? In-Reply-To: <2b2ea809-46b9-9c0d-e80b-93ee86bfaf9b@gmail.com> References: <2b2ea809-46b9-9c0d-e80b-93ee86bfaf9b@gmail.com> Message-ID: <0ba6ca06-f410-2dbe-38b4-414a47f1f9b8@gmail.com> On 7/13/21 4:56 PM, Beno?t Minisini wrote: > 3.16.2 is tagged, but not yet released. I don't know how this openSUSE Gambas?repository?is?filled. I don't know how it is filled either. I'll just wait until v3.16.2 is officially released and see if that changes anything on the updates. Thank you. -- Lee From g4mba5 at gmail.com Tue Jul 13 23:12:55 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Tue, 13 Jul 2021 23:12:55 +0200 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Message-ID: Le 13/07/2021 ? 15:57, Bruce Steers a ?crit?: > > Right this bug fixed on LinuxMint but on Debian11 i'm getting it and i > cannot fix it. > i used your gdb command and got this text... > > I hope it means more to you than it does to me. > > bonus at debian:/mnt/SSDiskspace/git/scripted-oldgambas$ GB_GUI=gb.gtk3 gdb > gbx3 > [...] Thanks, it is looping forever where it should, or (better) where it should not: searching for a default control to focus. I have no idea why I can't reproduce the problem. Maybe you didn't tell me exactly what you did. Otherwise, there is another bug in GTK+3 that makes your program eat 100% CPU: opeing a pipe for watching. For an unknown reason to me, the GTK+3 event loop is woken up permanently when it watches the pipe file descriptor (but not the QT event loop). By the way, I don't know why you implemented this pipe thing. You are reinventing DBus actually. Regards, -- Beno?t Minisini From bsteers4 at gmail.com Wed Jul 14 00:10:54 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 13 Jul 2021 23:10:54 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Message-ID: On Tue, 13 Jul 2021, 22:13 Beno?t Minisini, wrote: > Le 13/07/2021 ? 15:57, Bruce Steers a ?crit : > > > > Right this bug fixed on LinuxMint but on Debian11 i'm getting it and i > > cannot fix it. > > i used your gdb command and got this text... > > > > I hope it means more to you than it does to me. > > > > bonus at debian:/mnt/SSDiskspace/git/scripted-oldgambas$ GB_GUI=gb.gtk3 > gdb > > gbx3 > > [...] > > Thanks, it is looping forever where it should, or (better) where it > should not: searching for a default control to focus. > > I have no idea why I can't reproduce the problem. Maybe you didn't tell > me exactly what you did. > > Otherwise, there is another bug in GTK+3 that makes your program eat > 100% CPU: opeing a pipe for watching. For an unknown reason to me, the > GTK+3 event loop is woken up permanently when it watches the pipe file > descriptor (but not the QT event loop). > > By the way, I don't know why you implemented this pipe thing. You are > reinventing DBus actually. > Aah I'll look into that, any pipe stuff is residual from me recently changing to dbus (only did that the other day) using a pipe was how I first did it. I'll remove it. I pushed the changes to fix the git repo yesterday but it wasn't really ready. Will be nice if it's the pipe causing the trouble. Will be home in an hour to test. Thanks for looking into it. Odd though how it's now fixed in mint. Deb 11 now has bug but not if I revert that commit i mentioned. Bug goes away without those changes? Respects BruceS > -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Wed Jul 14 00:36:28 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 14 Jul 2021 00:36:28 +0200 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Message-ID: Le 14/07/2021 ? 00:10, Bruce Steers a ?crit?: > > > On Tue, 13 Jul 2021, 22:13 Beno?t Minisini, > wrote: > > Le 13/07/2021 ? 15:57, Bruce Steers a ?crit?: > > > > Right this bug fixed on LinuxMint but on Debian11 i'm getting it > and i > > cannot fix it. > > i used your gdb command and got this text... > > > > I hope it means more to you than it does to me. > > > > bonus at debian:/mnt/SSDiskspace/git/scripted-oldgambas$ > GB_GUI=gb.gtk3 gdb > > gbx3 > ?> [...] > > Thanks, it is looping forever where it should, or (better) where it > should not: searching for a default control to focus. > > I have no idea why I can't reproduce the problem. Maybe you didn't tell > me exactly what you did. > > Otherwise, there is another bug in GTK+3 that makes your program eat > 100% CPU: opeing a pipe for watching. For an unknown reason to me, the > GTK+3 event loop is woken up permanently when it watches the pipe file > descriptor (but not the QT event loop). > > By the way, I don't know why you implemented this pipe thing. You are > reinventing DBus actually. > > > Aah I'll look into that, any pipe stuff is residual from me recently > changing to dbus (only did that the other day) using a pipe was how I > first did it. I'll remove it. I pushed the changes to fix the git repo > yesterday but it wasn't really ready. > Will be nice if it's the pipe causing the trouble. Will be home in an > hour to test. > > Thanks for looking into it. > > Odd though how it's now fixed in mint. > Deb 11 now has bug but not if I revert that commit i mentioned. Bug goes > away without those changes? > > Respects > BruceS > This is not directly the pipe the problem, but the `Shell "echo '' > ..."` command that you issue to prevent possible blocking on pipe open. If I remove that line, the GTK+ event loop now blocks normally, and does not eat CPU anymore. That's strange: if I keep the Shell command, then there is something to read on the pipe, so the "File_Read" event is raised, the data is read, and so there is nothing left inside the pipe, the pipe is not ready to be read anymore, and no event is raised. So why then does it make the GTK+ event loop wake up repeatedly (without telling me that the pipe is ready to read)? It actually woke up because of an internal timeout parameter (which is normally associated with the earlier timer to be raised) very low. If I remove the Shell initial command, that timeout has the expected value (which correspond to the blinking editor cursor). I will try to run a little program with just the pipe... Regards, -- Beno?t Minisini From g4mba5 at gmail.com Wed Jul 14 00:47:44 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 14 Jul 2021 00:47:44 +0200 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Message-ID: <95993035-9169-99bd-5596-d0664b144e77@gmail.com> Le 14/07/2021 ? 00:36, Beno?t Minisini a ?crit?: > > This is not directly the pipe the problem, but the `Shell "echo '' > > ..."` command that you issue to prevent possible blocking on pipe open. > > If I remove that line, the GTK+ event loop now blocks normally, and does > not eat CPU anymore. > > That's strange: if I keep the Shell command, then there is something to > read on the pipe, so the "File_Read" event is raised, the data is read, > and so there is nothing left inside the pipe, the pipe is not ready to > be read anymore, and no event is raised. > > So why then does it make the GTK+ event loop wake up repeatedly (without > telling me that the pipe is ready to read)? > > It actually woke up because of an internal timeout parameter (which is > normally associated with the earlier timer to be raised) very low. If I > remove the Shell initial command, that timeout has the expected value > (which correspond to the blinking editor cursor). > > I will try to run a little program with just the pipe... > > Regards, > Same behaviour: reading the pipe ready to read make the GTK+ event loop wake up repeatedly even if there is nothing to read anymore on the pipe. -- Beno?t Minisini From g4mba5 at gmail.com Wed Jul 14 01:16:56 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 14 Jul 2021 01:16:56 +0200 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: <95993035-9169-99bd-5596-d0664b144e77@gmail.com> References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> <95993035-9169-99bd-5596-d0664b144e77@gmail.com> Message-ID: <1257ea91-45b9-0923-b7d2-79bc3d890344@gmail.com> Le 14/07/2021 ? 00:47, Beno?t Minisini a ?crit?: > Le 14/07/2021 ? 00:36, Beno?t Minisini a ?crit?: >> >> This is not directly the pipe the problem, but the `Shell "echo '' > >> ..."` command that you issue to prevent possible blocking on pipe open. >> >> If I remove that line, the GTK+ event loop now blocks normally, and >> does not eat CPU anymore. >> >> That's strange: if I keep the Shell command, then there is something >> to read on the pipe, so the "File_Read" event is raised, the data is >> read, and so there is nothing left inside the pipe, the pipe is not >> ready to be read anymore, and no event is raised. >> >> So why then does it make the GTK+ event loop wake up repeatedly >> (without telling me that the pipe is ready to read)? >> >> It actually woke up because of an internal timeout parameter (which is >> normally associated with the earlier timer to be raised) very low. If >> I remove the Shell initial command, that timeout has the expected >> value (which correspond to the blinking editor cursor). >> >> I will try to run a little program with just the pipe... >> >> Regards, >> > > Same behaviour: reading the pipe ready to read make the GTK+ event loop > wake up repeatedly even if there is nothing to read anymore on the pipe. > OK, this is apparently not a bug, but a feature. As you open the pipe for read, as soon as you write something on the other side of the pipe, and then terminates (with "echo" for example), Linux starts to wake up the process with repeated "POLLHUP" events to tell you that there is no writer on the pipe anymore, until a new process starts to write to the pipe again. BUT it does not raise these events when you open the pipe alone the first time. Not very logical. I don't know how QT prevented that behaviour. It seems that GTK+ always ask Linux to send these POLLHUP events, even if you specified you are not interested by them. The only reasonable solution is apparently opening the pipe both for reading and writing, so that there is always at least one writer process. In that case, the "POLLHUP" events are not sent. Regards, -- Beno?t Minisini From bsteers4 at gmail.com Wed Jul 14 02:27:17 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 14 Jul 2021 01:27:17 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: <1257ea91-45b9-0923-b7d2-79bc3d890344@gmail.com> References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> <95993035-9169-99bd-5596-d0664b144e77@gmail.com> <1257ea91-45b9-0923-b7d2-79bc3d890344@gmail.com> Message-ID: On Wed, 14 Jul 2021 at 00:17, Beno?t Minisini wrote: > Le 14/07/2021 ? 00:47, Beno?t Minisini a ?crit : > > Le 14/07/2021 ? 00:36, Beno?t Minisini a ?crit : > >> > >> This is not directly the pipe the problem, but the `Shell "echo '' > > >> ..."` command that you issue to prevent possible blocking on pipe open. > >> > >> If I remove that line, the GTK+ event loop now blocks normally, and > >> does not eat CPU anymore. > >> > >> That's strange: if I keep the Shell command, then there is something > >> to read on the pipe, so the "File_Read" event is raised, the data is > >> read, and so there is nothing left inside the pipe, the pipe is not > >> ready to be read anymore, and no event is raised. > >> > >> So why then does it make the GTK+ event loop wake up repeatedly > >> (without telling me that the pipe is ready to read)? > >> > >> It actually woke up because of an internal timeout parameter (which is > >> normally associated with the earlier timer to be raised) very low. If > >> I remove the Shell initial command, that timeout has the expected > >> value (which correspond to the blinking editor cursor). > >> > >> I will try to run a little program with just the pipe... > >> > >> Regards, > >> > > > > Same behaviour: reading the pipe ready to read make the GTK+ event loop > > wake up repeatedly even if there is nothing to read anymore on the pipe. > > > > OK, this is apparently not a bug, but a feature. > > As you open the pipe for read, as soon as you write something on the > other side of the pipe, and then terminates (with "echo" for example), > Linux starts to wake up the process with repeated "POLLHUP" events to > tell you that there is no writer on the pipe anymore, until a new > process starts to write to the pipe again. > > BUT it does not raise these events when you open the pipe alone the > first time. Not very logical. > > I don't know how QT prevented that behaviour. It seems that GTK+ always > ask Linux to send these POLLHUP events, even if you specified you are > not interested by them. > > The only reasonable solution is apparently opening the pipe both for > reading and writing, so that there is always at least one writer > process. In that case, the "POLLHUP" events are not sent. > after getting home i looked for the residual pipe code and realised I had removed it all and you must be using the scripted-newgambas version. I have not worked on that version for some time. after making the html previewer using the gtk webview i then realised that wouldn't work on older gambas versions so the program diverged into 2 branches the oldgambas version i changed to use a gbs script to open a separate qt form that uses a pipe to move/size with the main window (terribly lol) and have continued to develop the oldgambas version and not done much to the other. so, confusingly, the oldgambas version (the default branch) has been further developed (in many areas) than the newgambas version. and i will remove the pipe functions completely from the startup and use dbus (like i have in the oldgambas version) and see if read-write works on pipes i use. Thank you. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Jul 14 02:45:40 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 14 Jul 2021 01:45:40 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Message-ID: On Tue, 13 Jul 2021 at 22:13, Beno?t Minisini wrote: > Le 13/07/2021 ? 15:57, Bruce Steers a ?crit : > > > > Right this bug fixed on LinuxMint but on Debian11 i'm getting it and i > > cannot fix it. > > i used your gdb command and got this text... > > > > I hope it means more to you than it does to me. > > > > bonus at debian:/mnt/SSDiskspace/git/scripted-oldgambas$ GB_GUI=gb.gtk3 > gdb > > gbx3 > > [...] > > Thanks, it is looping forever where it should, or (better) where it > should not: searching for a default control to focus. > > I have no idea why I can't reproduce the problem. Maybe you didn't tell > me exactly what you did. > I have tracked this down to a Balloon() call as my files open is uses Balloon() to alert user if filetype not known. also a Balloon() if user tries to save a file with no changes. I just tried a blank test app with just Balloon("test msg", Me) after button click and it hangs. (Deb11) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From hans at gambas-buch.de Wed Jul 14 09:51:02 2021 From: hans at gambas-buch.de (Hans Lehmann) Date: Wed, 14 Jul 2021 09:51:02 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> Message-ID: <9c43d712-8657-a593-ed3f-e07eeea5cef2@gambas-buch.de> Am 13.07.21 um 17:20 schrieb Christof Thalhofer: > Can you tell the number of 'DbResult.Count'? 1 Lutz Lama ---? 1989-02-25 Obviously dbResult contains only one data set. But why? With kind regards Hans From chrisml at deganius.de Wed Jul 14 10:39:31 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 14 Jul 2021 10:39:31 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: <9c43d712-8657-a593-ed3f-e07eeea5cef2@gambas-buch.de> References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> <9c43d712-8657-a593-ed3f-e07eeea5cef2@gambas-buch.de> Message-ID: Am 14.07.21 um 09:51 schrieb Hans Lehmann: > Am 13.07.21 um 17:20 schrieb Christof Thalhofer: >> Can you tell the number of 'DbResult.Count'? > > 1 > Lutz Lama ---? 1989-02-25 > > > Obviously dbResult contains only one data set. But why? It should depend on your query or your data. Are you really sure your query delivers more than one tuple? Just try queries like that directly on the sqlite database on the commandline: "SELECT vorname, nachname, gebdatum FROM contacts WHERE id < 7" or "SELECT count(id) FROM contacts WHERE id between 4 and 7" Alles Gute Christof Thalhofer -- 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 hans at gambas-buch.de Wed Jul 14 11:43:33 2021 From: hans at gambas-buch.de (Hans Lehmann) Date: Wed, 14 Jul 2021 11:43:33 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> <9c43d712-8657-a593-ed3f-e07eeea5cef2@gambas-buch.de> Message-ID: An HTML attachment was scrubbed... URL: From chrisml at deganius.de Wed Jul 14 11:56:25 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 14 Jul 2021 11:56:25 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> <9c43d712-8657-a593-ed3f-e07eeea5cef2@gambas-buch.de> Message-ID: <66924779-c1d7-a4d5-3aea-9780047cadca@deganius.de> Am 14.07.21 um 11:43 schrieb Hans Lehmann: > Yes, the above DB query returns exactly the 4 expected records. > I suspect the error in Gambas, because I use the ODBC DSN > /dsn_sl3_contacts/ also in LibreOfficeWriter? with success. Ok, then please try the connection with type "sqlite3" first. I have no experience with Gambas ODBC. If you have the possibility to avoid ODBC, you should do it. Alles Gute Christof Thalhofer -- 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 mckaygerhard at gmail.com Wed Jul 14 12:06:20 2021 From: mckaygerhard at gmail.com (PICCORO McKAY Lenz) Date: Wed, 14 Jul 2021 06:06:20 -0400 Subject: [Gambas-user] Error ODBC In-Reply-To: <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> Message-ID: El mar, 13 de jul. de 2021 a la(s) 11:21, Christof Thalhofer ( chrisml at deganius.de) escribi?: > Hi Hans, > > Am 13.07.21 um 14:16 schrieb Hans Lehmann: > > > regardless of which suggestion I implement - the result remains the > > display of the first record. > 1. for the unfortunie of ZXmarce and Benoit is a horrent bug since 3.16.1, not happened in 3.16.0 but 3.16.0 is not displaying propeer encondiung Can you tell the number of 'DbResult.Count'? I always use another way to > iterate through the tuples of a result. To call 'Result.Available' seems > to be the wrong question, because it only seems to say if tuples are > available or not: > 2. Christof, and Denis. move first cannot workj under 3.16.1+ only in 3.16.0 > > "Returns True if the result object contains one or more accessible > database rows." > > This should be always the case, if the Result contains tuples at all, > even if your program iterated through all until the end of the result set. > 3. the call is valid cos the count only work for "something" and hans are reportig that already there's "something" so it not makes sense! > > I usually do it this way (sry i use my own naming not your's): > > If res.Count > 0 Then > 4. Still retuns only one that is a obvious ! so your suggestion doe snot have any sense! > And do you really want to use odbc? odbc is a crutch that we only use > . ODBC isn gambas are available and MUST WORK if not is BROKEN that is the CASE! so understand? > when there is no direct way of accessing the database. But Gambas can > access Sqlite databases directly: > > http://gambaswiki.org/wiki/comp/gb.db/_connection/type > > Alles Gute > > Christof Thalhofer > > -- > [x] nail here for new monitor > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Jul 14 12:07:55 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 14 Jul 2021 11:07:55 +0100 Subject: [Gambas-user] something's broken (do not know what) In-Reply-To: References: <1b5a317f-989d-b3d8-124e-8cc0b74491ac@gmail.com> <9ac0e131-ac39-e956-4195-74b66a23fc7c@gmail.com> Message-ID: On Wed, 14 Jul 2021 at 01:45, Bruce Steers wrote: > > > On Tue, 13 Jul 2021 at 22:13, Beno?t Minisini wrote: > >> Le 13/07/2021 ? 15:57, Bruce Steers a ?crit : >> > >> > Right this bug fixed on LinuxMint but on Debian11 i'm getting it and i >> > cannot fix it. >> > i used your gdb command and got this text... >> > >> > I hope it means more to you than it does to me. >> > >> > bonus at debian:/mnt/SSDiskspace/git/scripted-oldgambas$ GB_GUI=gb.gtk3 >> gdb >> > gbx3 >> > [...] >> >> Thanks, it is looping forever where it should, or (better) where it >> should not: searching for a default control to focus. >> >> I have no idea why I can't reproduce the problem. Maybe you didn't tell >> me exactly what you did. >> > > I have tracked this down to a Balloon() call > as my files open is uses Balloon() to alert user if filetype not known. > also a Balloon() if user tries to save a file with no changes. > > I just tried a blank test app with just Balloon("test msg", Me) after > button click and it hangs. (Deb11) > Brilliant stuff Ben , all fixed now :) Many thanks my good man :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Wed Jul 14 12:23:31 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 14 Jul 2021 12:23:31 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> Message-ID: Am 14.07.21 um 12:06 schrieb PICCORO McKAY Lenz: > 2. Christof, and Denis. move first cannot workj?under 3.16.1+ only in 3.16.0 If 'Move.First' does not work, ODBC is not usable. > so understand? Not really. Please, use a good translator and check what you write. Alles Gute Christof Thalhofer -- 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 hans at gambas-buch.de Wed Jul 14 15:30:37 2021 From: hans at gambas-buch.de (Hans Lehmann) Date: Wed, 14 Jul 2021 15:30:37 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> Message-ID: <0b8b2b31-2b97-529c-058a-e0b8f0ec11f5@gambas-buch.de> An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: connection_12.png Type: image/png Size: 86314 bytes Desc: not available URL: From hans at gambas-buch.de Wed Jul 14 15:40:07 2021 From: hans at gambas-buch.de (Hans Lehmann) Date: Wed, 14 Jul 2021 15:40:07 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> Message-ID: <96277982-0cf7-be5b-4913-cc8e180c225d@gambas-buch.de> Hello. Addendum: The console program isql and also LibreOfficeBase display the data of all DB tables of the ODBC DNS 'dsn_sl3_contacts' - which was always referred to in the last posts on 'Error ODBC' - correctly, only Gambas terminates after the output of the first, relevant record without an error message (!). With kind regards Hans From mckaygerhard at gmail.com Wed Jul 14 15:44:43 2021 From: mckaygerhard at gmail.com (PICCORO McKAY Lenz) Date: Wed, 14 Jul 2021 09:44:43 -0400 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> Message-ID: Hans already understand and is the improtant part here, cos all the work is for proper gambas bunch book.. also of course odbc is not working.. and rs.movenext is not standar and does not are available in sdome odbc providers.. but fully worki8ng ones El mi?, 14 de jul. de 2021 a la(s) 06:24, Christof Thalhofer ( chrisml at deganius.de) escribi?: > Am 14.07.21 um 12:06 schrieb PICCORO McKAY Lenz: > > > 2. Christof, and Denis. move first cannot workj under 3.16.1+ only in > 3.16.0 > > If 'Move.First' does not work, ODBC is not usable. > > > so understand? > > Not really. Please, use a good translator and check what you write. > > Alles Gute > > Christof Thalhofer > > -- > Dies ist keine Signatur > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mckaygerhard at gmail.com Wed Jul 14 15:49:59 2021 From: mckaygerhard at gmail.com (PICCORO McKAY Lenz) Date: Wed, 14 Jul 2021 09:49:59 -0400 Subject: [Gambas-user] Error ODBC In-Reply-To: <96277982-0cf7-be5b-4913-cc8e180c225d@gambas-buch.de> References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> <96277982-0cf7-be5b-4913-cc8e180c225d@gambas-buch.de> Message-ID: Hand do not use the gambas build in db browser.. it does not support the ODBC .. so is a well know bug.. in fact the only full worked is the school grade mysql, sqlite blob has issues and postgresql is 99% working as of my fully professional deploys.. The issues with ODBC now are 3 in total: enconding, rows retrieving and data type representation. i was the person that rep?rts the most uses rare cases of DB work.. cos i am the person that of course work more with others DB and not limited to mysql.. ODBC are perfectly working until gambas 3.8, sqlite was workiing until 3.1, blob has issues in 3.4 and becomes again pretty fully working in 3.9 since 3.11 ODBC are broken and unusable and gambas become not an option in my huge deploys.. make me imposible to migrate people and systems today was fixed at 3.16 some years after bulk of messages about the problem in 3.11, but only limited.. El mi?, 14 de jul. de 2021 a la(s) 09:41, Hans Lehmann (hans at gambas-buch.de) escribi?: > Hello. > > Addendum: > > The console program isql and also LibreOfficeBase display the data of > all DB tables of the ODBC DNS 'dsn_sl3_contacts' - which was always > referred to in the last posts on 'Error ODBC' - correctly, only Gambas > terminates after the output of the first, relevant record without an > error message (!). > > With kind regards > > Hans > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Wed Jul 14 17:52:10 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 14 Jul 2021 17:52:10 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: References: Message-ID: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> Le 13/07/2021 ? 13:34, Hans Lehmann a ?crit?: > Hello, > > I have - following the wiki on the subject of ODBC - defined a DSN > (dsn_sl3_contacts), behind which lies a SQLite3 database. > Checking in a console with the program 'isql' gave the expected results: > > [...] I didn't find a SQLite ODBC database driver on my Ubuntu? Did I miss it? -- Beno?t Minisini From g4mba5 at gmail.com Wed Jul 14 18:05:39 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 14 Jul 2021 18:05:39 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> Message-ID: <283fbb3d-17e4-c118-45c3-eec1efc6d58c@gmail.com> Le 14/07/2021 ? 18:00, Gianluigi Gradaschi a ?crit?: > Il 14/07/21 17:52, Beno?t Minisini ha scritto: >> I didn't find a SQLite ODBC database driver on my Ubuntu? Did I miss it? > > https://ubuntu.pkgs.org/20.04/ubuntu-universe-arm64/libsqliteodbc_0.9996-3_arm64.deb.html > > > Regards > Gianluigi OK, found, thanks. -- Beno?t Minisini From g4mba5 at gmail.com Wed Jul 14 18:14:10 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 14 Jul 2021 18:14:10 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> Message-ID: <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> Le 14/07/2021 ? 17:52, Beno?t Minisini a ?crit?: > Le 13/07/2021 ? 13:34, Hans Lehmann a ?crit?: >> Hello, >> >> I have - following the wiki on the subject of ODBC - defined a DSN >> (dsn_sl3_contacts), behind which lies a SQLite3 database. >> Checking in a console with the program 'isql' gave the expected results: >> > > [...] > > I didn't find a SQLite ODBC database driver on my Ubuntu? Did I miss it? > OK, I confirm the bug. -- Beno?t Minisini From g4mba5 at gmail.com Wed Jul 14 19:03:11 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 14 Jul 2021 19:03:11 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> Message-ID: <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> Le 14/07/2021 ? 18:14, Beno?t Minisini a ?crit?: > Le 14/07/2021 ? 17:52, Beno?t Minisini a ?crit?: >> Le 13/07/2021 ? 13:34, Hans Lehmann a ?crit?: >>> Hello, >>> >>> I have - following the wiki on the subject of ODBC - defined a DSN >>> (dsn_sl3_contacts), behind which lies a SQLite3 database. >>> Checking in a console with the program 'isql' gave the expected results: >>> >> ?> [...] >> >> I didn't find a SQLite ODBC database driver on my Ubuntu? Did I miss it? >> > > OK, I confirm the bug. > I identified two problems: 1) The record count is badly computed because apparently some of the ODBC functions return unexpected incoherent results. The workaround is to switch to no record count mode. 2) 'gb.db.odbc' tries to set the ODBC statements scrollable flag, so that it can freely switch between rows. The ODBC driver returns a success (i.e. it tells "you can do that"), but then either it fails to switch to a row or to return row contents without raising any error at all. I will try to find a workaround too. Maybe it's me or ZxMarce that do not use the API the right way. Probably it's ODBC that is wrong. So I suggest NOT using ODBC at all as much as possible. It's a mess. No driver behaves the same. To make ODBC really transparent in Gambas, one will have to write one code different for each ODBC driver, making all the ODBC thing irrelevant. My two cents. -- Beno?t Minisini From mnaltrogge at it-mna.de Wed Jul 14 19:40:35 2021 From: mnaltrogge at it-mna.de (Michael Altrogge) Date: Wed, 14 Jul 2021 19:40:35 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <0e3aea6fa87e3ea8d154be0807351b2a1215120e.camel@gmail.com> <8b84a702-efc3-5e75-530c-d1f0f45ed170@deganius.de> Message-ID: <802c36b7-a0d6-4dde-f756-d0a700a0ca60@it-mna.de> Am 14.07.21 um 12:06 schrieb PICCORO McKAY Lenz: > > > El mar, 13 de jul. de 2021 a la(s) 11:21, Christof Thalhofer > (chrisml at deganius.de ) escribi?: > > Hi Hans, > > Am 13.07.21 um 14:16 schrieb Hans Lehmann: > > > regardless of which suggestion I implement - the result remains the > > display of the first record. > > > 1. for the unfortunie of ZXmarce and Benoit is a horrent bug since > 3.16.1, > not happened in 3.16.0 but 3.16.0 is not displaying propeer?encondiung > > Can you tell the number of 'DbResult.Count'? I always use another > way to > iterate through the tuples of a result. To call 'Result.Available' > seems > to be the wrong question, because it only seems to say if tuples are > available or not: > > > 2. Christof, and Denis. move first cannot workj?under 3.16.1+ only in > 3.16.0 > > > "Returns True if the result object contains one or more accessible > database rows." > > This should be always the case, if the Result contains tuples at all, > even if your program iterated through all until the end of the > result set. > > > 3.? the call is valid cos? the count only work for "something" and > hans are reportig that already there's "something" so it not makes sense! > > > I usually do it this way (sry i use my own naming not your's): > >? ? ?If res.Count > 0 Then > > > 4. Still retuns only one that is a obvious ! so your suggestion doe > snot have any sense! > > And do you really want to use odbc? odbc is a crutch that we only use > > > . ODBC isn gambas are available and MUST WORK if not is BROKEN that is > the CASE! so understand? > > when there is no direct way of accessing the database. But Gambas can > access Sqlite databases directly: > > http://gambaswiki.org/wiki/comp/gb.db/_connection/type > > > Alles Gute > > Christof Thalhofer > > -- > [x] nail here for new monitor > > ----[ http://gambaswiki.org/wiki/doc/netiquette > ]---- > > > Piccoro ... i haven't read anything from you for quite a while now ... > could have remained so ... > > but if you already want to write explain to me kindly why I should use > a generic and always more bad than good working driver when I have a > perfectly working fast native driver available? > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Wed Jul 14 19:52:05 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 14 Jul 2021 19:52:05 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> Message-ID: Am 14.07.21 um 19:03 schrieb Beno?t Minisini: > It's a mess. ODBC has been a mess for a long time. It should be warned about rather than teaching it. > No driver behaves the same. To make ODBC really transparent in Gambas, > one will have to write one code different for each ODBC driver, making > all the ODBC thing irrelevant. Yes, the same effort invested in specific database drivers would certainly be more effective. After all, we have experts here who work with Oracle and Sybase. If they use Gambas with a proprietary database, they can also go to the trouble of developing the driver for it themselves and make it public available as OSS under the GPL license. I believe that any energy spent on ODBC would be better spent elsewhere. But using ODBC as a driver to talk to Sqlite with Gambas is really completely pointless, since a corresponding driver for Sqlite already exists. Alles Gute Christof Thalhofer -- 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 g4mba5 at gmail.com Wed Jul 14 19:55:23 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 14 Jul 2021 19:55:23 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> Message-ID: <873f3113-b1f4-afb0-f7ee-7e51f1fca791@gmail.com> Le 14/07/2021 ? 19:03, Beno?t Minisini a ?crit?: >> >> OK, I confirm the bug. >> > > I identified two problems: > > 1) The record count is badly computed because apparently some of the > ODBC functions return unexpected incoherent results. > > The workaround is to switch to no record count mode. > > 2) 'gb.db.odbc' tries to set the ODBC statements scrollable flag, so > that it can freely switch between rows. The ODBC driver returns a > success (i.e. it tells "you can do that"), but then either it fails to > switch to a row or to return row contents without raising any error at all. > > I will try to find a workaround too. > OK, the problem was not so bad. The point 2) was actually a problem in the point 1) workaround. So now, things should be fixed in the last commit. Please report if you encounter any other problems with SQLite through ODBC. I can tell you one that is not fixable: you won't see boolean fields with ODBC, only with 'gb.db.sqlite'. Regards, -- Beno?t Minisini From adamnt42 at gmail.com Wed Jul 14 20:13:20 2021 From: adamnt42 at gmail.com (bb) Date: Thu, 15 Jul 2021 03:43:20 +0930 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> Message-ID: <8b9058eb66b20cc9349deeae0ecf802d19c33159.camel@gmail.com> On Wed, 2021-07-14 at 19:52 +0200, Christof Thalhofer wrote: > Am 14.07.21 um 19:03 schrieb Beno?t Minisini: > > > It's a mess. > > ODBC has been a mess for a long time. It should be warned about > rather > than teaching it. > > > No driver behaves the same. To make ODBC really transparent in > > Gambas, > > one will have to write one code different for each ODBC driver, > > making > > all the ODBC thing irrelevant. > > Yes, the same effort invested in specific database drivers would > certainly be more effective. > > After all, we have experts here who work with Oracle and Sybase. If > they > use Gambas with a proprietary database, they can also go to the > trouble > of developing the driver for it themselves and make it public > available > as OSS under the GPL license. > > I believe that any energy spent on ODBC would be better spent > elsewhere. > > But using ODBC as a driver to talk to Sqlite with Gambas is really > completely pointless, since a corresponding driver for Sqlite > already > exists. > > > Alles Gute > > Christof Thalhofer > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I could not possibly agree more! With both posts! One teeny bit of pedantry. UnixODBC is a "framework" that switches between rdbms "drivers". There are lots of actual drivers, sometimes multiple drivers per rdbms (postgresql is a good example). There are also some "frameworks" other than UnixODBC around. So Benoit's comment is true. "one will have to write one code different for each ODBC driver" is tantamount to saying "one needs to be writing a set of switchable interfaces to access a single framework which switches in a particular driver". Which is crazy! And as we know ODBC itself is totally incomplete as an SQL client API. IMO the whole ODBC component should be deprecated, with extreme prejudice. As Christof says, if people want to access an rdbms that is not Postgresql, MariaDB or Sqlite then they can easily find a Linux driver for it and, well not so easily, write the interface themselves. If the rdbms is not CRUD (I forget the name for this) compliant, then stiff Cheddar honeybunch. In other words, as far as I'm concerned this is what we call here a "SEP" (someone else's problem). JM20C bruce From g4mba5 at gmail.com Wed Jul 14 21:49:31 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 14 Jul 2021 21:49:31 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 Message-ID: <39040792-19d4-9b91-3dee-f6a69c01e81f@gmail.com> Hi, Gambas 3.16.2 has been officially released. The website has been updated, and Ubuntu binary packages are available on the Gambas Ubuntu PPA for x86_64 and ARM, from Ubuntu 14.04 to 21.10. Please report any problem, especially with the PPA packages. If you get some trouble with them, try to remove all previously installed Gambas packages before reinstalling. But report anyway! The last fix on ODBC will be backported to a next 3.16.3, unless the next version is the 3.17.0. Regards, -- Beno?t Minisini From chrisml at deganius.de Wed Jul 14 22:03:15 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 14 Jul 2021 22:03:15 +0200 Subject: [Gambas-user] Release of Gambas 3.16.2 In-Reply-To: <39040792-19d4-9b91-3dee-f6a69c01e81f@gmail.com> References: <39040792-19d4-9b91-3dee-f6a69c01e81f@gmail.com> Message-ID: <32fe7b30-26ea-e965-29f6-daee907b8a7f@deganius.de> Am 14.07.21 um 21:49 schrieb Beno?t Minisini: > Hi, > > Gambas 3.16.2 has been officially released. Thank you very much! :-) > The website has been updated, and Ubuntu binary packages are available > on the Gambas Ubuntu PPA for x86_64 and ARM, from Ubuntu 14.04 to 21.10. > > Please report any problem, especially with the PPA packages. > > If you get some trouble with them, try to remove all previously > installed Gambas packages before reinstalling. But report anyway! To find out the packages installed (on a Debian based system with Apt like Ubuntu, Mint and others): > dpkg -l | grep gambas3 | awk '{print $2}' | tr '\n' ' ' To remove all Gambas packages installed: > sudo apt remove $(dpkg -l | grep gambas3 | awk '{print $2}' | tr '\n' ' ') Alles Gute Christof Thalhofer -- 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 chrisml at deganius.de Wed Jul 14 23:16:26 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 14 Jul 2021 23:16:26 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: <8b9058eb66b20cc9349deeae0ecf802d19c33159.camel@gmail.com> References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> <8b9058eb66b20cc9349deeae0ecf802d19c33159.camel@gmail.com> Message-ID: <1773e8fc-bb54-8fce-14ce-5b452b4e20f1@deganius.de> Am 14.07.21 um 20:13 schrieb bb: > I could not possibly agree more! With both posts! :-) > One teeny bit of pedantry. > UnixODBC is a "framework" that switches between rdbms "drivers". There > are lots of actual drivers, sometimes multiple drivers per rdbms > (postgresql is a good example). There are also some "frameworks" other > than UnixODBC around. Yes, you're right. Thank you for the clarification. Over time, I've seen people looking for ways to exchange databases but leave their own software that accesses the data through the database untouched. In my experience, as long as we're talking about a two-tier architecture, it's much better to think about the underlying RDBMS first, then decide, and then stick with the database instead of building your software around the idea that the database should be exchanged any time.* If you are in an early state of the development switching to another db costs much less work at all, than programming around the bugs and caveats and performance issues, a middleware like ODBC brings into the project. Ok, this is my experience, maybe other people have others. I have (felt) very rarely heard of projects where the databases were exchanged, but much more often of projects that had difficulties with the middleware. The middleware was actually there to make the software 'independent' of databases. ODBC is such a thing. ORMs are such things. I have to admit that I like SQL and also an ORM, but only the one I wrote for myself. I wrote it because I didn't understand the other ORMs. ;-) Perhaps my scope is too narrow, but I also think it is consistent with the current scope of Gambas. It may well be that the circumstances are different in a three-tier architecture, but I have too little idea about that. Hans' project is about teaching unexperienced people how they can talk with Gambas to databases, to store data there and to fetch data from there and to display and alter it in Gambas forms. In my opinion ODBC has no place there and would lead people into the wrong direction. > If the rdbms is not CRUD (I forget the name for this) compliant, > then stiff Cheddar honeybunch. ... now my brain spirals ... ;-) Alles Gute Christof Thalhofer * Gambas itself gives us a way to work independently of the underlying RDBMS, look at the infobox here: http://gambaswiki.org/wiki/comp/gb.db -- 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 mckaygerhard at gmail.com Thu Jul 15 02:12:05 2021 From: mckaygerhard at gmail.com (PICCORO McKAY Lenz) Date: Wed, 14 Jul 2021 20:12:05 -0400 Subject: [Gambas-user] Error ODBC In-Reply-To: <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> Message-ID: El mi?, 14 de jul. de 2021 a la(s) 13:04, Beno?t Minisini (g4mba5 at gmail.com) escribi?: > >> I didn't find a SQLite ODBC database driver on my Ubuntu? Did I miss it? > puff winbuntu for old debian users.. is here https://build.opensuse.org/package/show/home:vegnuli:deploy-vnx1/odbc-sqlite and for most newer debian just apt from main repos 1) The record count is badly computed because apparently some of the > ODBC functions return unexpected incoherent results. > lest clarify something.. the ODBC isql said: -> SQLRowCount returns 0 <- this is only if there's no error -> 4 rows fetched <- this is a row count but read the following: there's not api definition on ODBC for row count results, each odbc module has their own feature, by example the mysql school one returns row count when insert DML SQL are performed, but that's is not SQL ANSI defined! > The workaround is to switch to no record count mode. > dont worry-- > > 2) 'gb.db.odbc' tries to set the ODBC statements scrollable flag, so > that it can freely switch between rows. The ODBC driver returns a > success (i.e. it tells "you can do that"), but then either it fails to > switch to a row or to return row contents without raising any error at all. > already explained before but less technically > > I will try to find a workaround too. > > Maybe it's me or ZxMarce that do not use the API the right way. Probably > it's ODBC that is wrong. > NO is just a API fault.. keep the good work! you can doit! > > So I suggest NOT using ODBC at all as much as possible. > IMPOSSIBLE! the reasons are obvious! > > No driver behaves the same. To make ODBC really transparent in Gambas, > one will have to write one code different for each ODBC driver, making > all the ODBC thing irrelevant. > just follow some defaults by example, Gambas failst is teh determination on guess the kind of data, must be reduced.. there's a problem here... also people rely too much on non-standard SQL features. so by example row count as i know there's no definition for! but gambas has a lack of anidation for resultsets and sql execution.. for example i must close the previously opened connection to perform another query.. if the previously do not finish and must free the connection object! in php there's no such limitation with the same active connection! > > My two cents. > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Thu Jul 15 11:04:24 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 15 Jul 2021 11:04:24 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> Message-ID: Am 15.07.21 um 02:12 schrieb PICCORO McKAY Lenz: > but gambas has a lack of anidation for?resultsets?and sql execution.. ??? > for example i must close the previously opened connection to perform > another query.. if the previously?do not finish?and must? free the > connection object! A connection always hangs as long as the current sql order is not finished. This is the same in every language. If you want parallel execution of sql orders you have to keep up multiple connections at the same time. This is called connection pooling. But you can keep the db connection up in Gambas as long as you execute the sql orders in serial order one after the other. In my client programs usually one connection to the database is started at the beginning in a singleton and then used over and over until the program stops at the end. Alles Gute Christof Thalhofer -- 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 chrisml at deganius.de Thu Jul 15 14:51:42 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 15 Jul 2021 14:51:42 +0200 Subject: [Gambas-user] Bugtracker: Unable to log in. Message-ID: <9468c320-a0bf-4f31-c25d-1a7902a31df0@deganius.de> Hi, Bugtracker: I am unable to log in. Alles Gute Christof Thalhofer -- 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 chrisml at deganius.de Thu Jul 15 15:29:23 2021 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 15 Jul 2021 15:29:23 +0200 Subject: [Gambas-user] Bugtracker: Unable to log in. In-Reply-To: <9468c320-a0bf-4f31-c25d-1a7902a31df0@deganius.de> References: <9468c320-a0bf-4f31-c25d-1a7902a31df0@deganius.de> Message-ID: <0f6e41a1-4bb4-8748-b653-a9caca59b5b3@deganius.de> Am 15.07.21 um 14:51 schrieb Christof Thalhofer: > Bugtracker: I am unable to log in. Had to delete the cookie then everything was ok again. Alles Gute Christof Thalhofer -- 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 mckaygerhard at gmail.com Thu Jul 15 17:09:16 2021 From: mckaygerhard at gmail.com (PICCORO McKAY Lenz) Date: Thu, 15 Jul 2021 11:09:16 -0400 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> Message-ID: El jue, 15 de jul. de 2021 a la(s) 05:05, Christof Thalhofer ( chrisml at deganius.de) escribi?: > Am 15.07.21 um 02:12 schrieb PICCORO McKAY Lenz: > same time. This is called connection pooling. > pretty the same and as i know i send a trest case and there-s some issues > > But you can keep the db connection up in Gambas as long as you execute > the sql orders in serial order one after the other. > that-s not the case > > In my client programs usually one connection to the database is started > at the beginning in a singleton and then used over and over until the > program stops at the end. > that-s not the case.. and i tyred of again send again the proff of the issues.. already existing.. > > Alles Gute > > Christof Thalhofer > > -- > Dies ist keine Signatur > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Thu Jul 15 18:17:30 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Thu, 15 Jul 2021 18:17:30 +0200 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> Message-ID: Le 15/07/2021 ? 17:09, PICCORO McKAY Lenz a ?crit?: > > > But you can keep the db connection up in Gambas as long as you execute > the sql orders in serial order one after the other. > > that-s not the case > > > In my client programs usually one connection to the database is started > at the beginning in a singleton and then used over and over until the > program stops at the end. > > that-s not the case..? and i tyred of again send again the proff of the > issues.. already existing.. > > I have just tested to run two successive SELECT requests with the ODBC driver, and apparently it works perfectly. -- Beno?t Minisini From mckaygerhard at gmail.com Thu Jul 15 20:22:49 2021 From: mckaygerhard at gmail.com (PICCORO McKAY Lenz) Date: Thu, 15 Jul 2021 14:22:49 -0400 Subject: [Gambas-user] Error ODBC In-Reply-To: References: <8067313e-0830-fd0a-4fd1-0e7c95f5c056@gmail.com> <38f33758-8962-114d-66d5-23b4826170b4@gmail.com> <09244fd4-d926-d305-c8ec-85babaded075@gmail.com> Message-ID: El jue, 15 de jul. de 2021 a la(s) 12:18, Beno?t Minisini (g4mba5 at gmail.com) escribi?: > > I have just tested to run two successive SELECT requests with the ODBC > driver, and apparently it works perfectly. > good work.. thanks.. please you can paste here in the mail threath the comit that fix .. to property patched the current stable versions? also.. there-s other issues with enconding.. it seems solved in 3.16.1 but i not tested yet cos i am busy in zabbix and adaptation of the apps at job, seems that when i retrieve german or cirilic strings its not printed in console! HAns can confirm that in the picture i send to him > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Jul 16 10:30:58 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 16 Jul 2021 09:30:58 +0100 Subject: [Gambas-user] gtk3 textarea bug () Message-ID: Can anyone test if this bug exists on their systems.. I've attached a simple test app. and if you find the bug please state system type (os / desktop) so we can maybe find a link. it reads a bash script in the project root folder and loads it into a textarea. on all my systems except OpenSuse i cannot scroll to the bottom line. the last line should read... *read -p "Ctrl-C to exit: "* i've found its fine on qt and gtk2 but gtk3 is not scrolling all the way down for me. I reported the bug but Ben says it works perfectly on his system. I can't be the only one. Cheers all. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 x1/H/xuP/x/bEjWxAEABAA== From g4mba5 at gmail.com Fri Jul 16 12:05:31 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Fri, 16 Jul 2021 12:05:31 +0200 Subject: [Gambas-user] gtk3 textarea bug () In-Reply-To: References: Message-ID: Le 16/07/2021 ? 10:30, Bruce Steers a ?crit?: > Can anyone test if this bug exists on their systems.. > I've attached a simple test app. > and if you find the bug please state system type (os / desktop) so we > can maybe find a link. > > it reads a bash script in the project root folder and loads it into a > textarea. > > on all my systems except OpenSuse i cannot scroll to the bottom line. > > the last line should read... > > *read -p "Ctrl-C to exit: "* > > > i've found its fine on qt and gtk2 but gtk3 is not scrolling all the way > down for me. > > I reported the bug but Ben says it works perfectly on his system. > > I can't be the only one. > > > Cheers all. > > BruceS > > I will look at it when I'll be back tuesday. Regards, -- Beno?t Minisini From bsteers4 at gmail.com Fri Jul 16 15:41:55 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 16 Jul 2021 14:41:55 +0100 Subject: [Gambas-user] gtk3 textarea bug () In-Reply-To: References: Message-ID: On Fri, 16 Jul 2021 at 11:06, Beno?t Minisini wrote: > Le 16/07/2021 ? 10:30, Bruce Steers a ?crit : > > Can anyone test if this bug exists on their systems.. > > I've attached a simple test app. > > and if you find the bug please state system type (os / desktop) so we > > can maybe find a link. > > > > it reads a bash script in the project root folder and loads it into a > > textarea. > > > > on all my systems except OpenSuse i cannot scroll to the bottom line. > > > > the last line should read... > > > > *read -p "Ctrl-C to exit: "* > > > > > > i've found its fine on qt and gtk2 but gtk3 is not scrolling all the way > > down for me. > > > > I reported the bug but Ben says it works perfectly on his system. > > > > I can't be the only one. > > > > > > Cheers all. > > > > BruceS > > > > > > I will look at it when I'll be back tuesday. > Thanks Ben. Bon voyage BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Sat Jul 17 00:27:48 2021 From: brian at westwoodsvcs.com (Brian G) Date: Fri, 16 Jul 2021 15:27:48 -0700 (PDT) Subject: [Gambas-user] Connecting to a running app with gambas debugger Message-ID: <424113476.8584.1626474468328.JavaMail.zimbra@westwoodsvcs.com> Does anyone have a procedure for using the gb.debug to connect to and debug a running app? maybe with the ide. i can figure out how to use gbr3 -g ... and send cmds and manage an app from the stdio but I need to connect to and app when it is in the middle of lets say $ echo "asdsdaasdasdssda" | cat | MyGambasApp | less I want to connect to the MyGambas app and debug it. Examples or maybe where to get more information. "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 17 01:14:36 2021 From: adamnt42 at gmail.com (bb) Date: Sat, 17 Jul 2021 08:44:36 +0930 Subject: [Gambas-user] Connecting to a running app with gambas debugger In-Reply-To: <424113476.8584.1626474468328.JavaMail.zimbra@westwoodsvcs.com> References: <424113476.8584.1626474468328.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <09720f60acb489c7e0baa246de6ab5422ecf5839.camel@gmail.com> On Fri, 2021-07-16 at 15:27 -0700, Brian G wrote: > $ echo "asdsdaasdasdssda" | cat | 'gbr3 -g MyGambasApp' | less ? untried b From brian at westwoodsvcs.com Sat Jul 17 08:13:05 2021 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Sat, 17 Jul 2021 09:13:05 +0300 Subject: [Gambas-user] =?utf-8?q?Connecting_to_a_running_app_with_gambas_?= =?utf-8?q?debugger?= In-Reply-To: <09720f60acb489c7e0baa246de6ab5422ecf5839.camel@gmail.com> References: <424113476.8584.1626474468328.JavaMail.zimbra@westwoodsvcs.com> <09720f60acb489c7e0baa246de6ab5422ecf5839.camel@gmail.com> Message-ID: <1626502385.83840786@f21.my.com> Sorry was just an example I wanted to debug an app in the middle that was a gambas app. Where the stein and out were in use -- Thanks Brian G Friday, 16 July 2021, 04:15PM -07:00 from bb adamnt42 at gmail.com : >On Fri, 2021-07-16 at 15:27 -0700, Brian G wrote: > $ echo "asdsdaasdasdssda" | cat | 'gbr3 -g MyGambasApp' | less > >? untried > >b > > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From hartmut.w.wagener at t-online.de Sat Jul 17 09:50:08 2021 From: hartmut.w.wagener at t-online.de (Hartmut Wagener) Date: Sat, 17 Jul 2021 09:50:08 +0200 Subject: [Gambas-user] Problems with the editor after update to 3.16.1 In-Reply-To: References: <3d382d1e-7005-e317-eacb-d7d6a521fd21@t-online.de> <1c5501c0-8534-359c-42e8-af59a3658dc2@t-online.de> Message-ID: After the update to the newest version 3.16.2 the problem with the editor happens again... I can choose what font i want, installed the Gambas-font, but the cursor always runs away from the entry point. I use Arch linux with a mate-desktop. I will have a try with restarting, write here if that changes anything. Nice day Hartmut Am 04.07.21 um 17:36 schrieb Beno?t Minisini: > Le 04/07/2021 ? 17:18, Hartmut Wagener a ?crit?: >> I had changed from "Sans regular" to "Serif Regular", and was able to >> use the editor. >> >> Now i have changed the Fonts back to "Sans regular", and still i am >> able to use the editor... :) >> >> So, it had to be something else with the fonts, i believe it was >> something in an mate-update that did not do everything... >> > > OK, thanks for the answer. I asked that to see if eventually a > specific font was in fault, but as you said, it is not the case. > From hartmut.w.wagener at t-online.de Sat Jul 17 09:59:25 2021 From: hartmut.w.wagener at t-online.de (Hartmut Wagener) Date: Sat, 17 Jul 2021 09:59:25 +0200 Subject: [Gambas-user] Problems with the editor after update to 3.16.1 In-Reply-To: References: <3d382d1e-7005-e317-eacb-d7d6a521fd21@t-online.de> <1c5501c0-8534-359c-42e8-af59a3658dc2@t-online.de> Message-ID: Have restarted and used much other fonts, with different sizes, no change, the cursor runs faster than the entry point. Any suggestions? Its impossible to write code with this, need to write in an external editor and insert it into gambas to be able to write code, Will try a arch linux update now, perhaps that helps... Thanks a lot Am 17.07.21 um 09:50 schrieb Hartmut Wagener: > After the update to the newest version 3.16.2 the problem with the > editor happens again... > > I can choose what font i want, installed the Gambas-font, but the > cursor always runs away from the entry point. > > I use Arch linux with a mate-desktop. > > I will have a try with restarting, write here if that changes anything. > > Nice day > > Hartmut > > > Am 04.07.21 um 17:36 schrieb Beno?t Minisini: >> Le 04/07/2021 ? 17:18, Hartmut Wagener a ?crit?: >>> I had changed from "Sans regular" to "Serif Regular", and was able >>> to use the editor. >>> >>> Now i have changed the Fonts back to "Sans regular", and still i am >>> able to use the editor... :) >>> >>> So, it had to be something else with the fonts, i believe it was >>> something in an mate-update that did not do everything... >>> >> >> OK, thanks for the answer. I asked that to see if eventually a >> specific font was in fault, but as you said, it is not the case. >> > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From brian at westwoodsvcs.com Sat Jul 17 15:50:19 2021 From: brian at westwoodsvcs.com (Brian G) Date: Sat, 17 Jul 2021 06:50:19 -0700 (PDT) Subject: [Gambas-user] Connecting to a running app with gambas debugger In-Reply-To: <1626502385.83840786@f21.my.com> References: <424113476.8584.1626474468328.JavaMail.zimbra@westwoodsvcs.com> <09720f60acb489c7e0baa246de6ab5422ecf5839.camel@gmail.com> <1626502385.83840786@f21.my.com> Message-ID: <835128627.8650.1626529819719.JavaMail.zimbra@westwoodsvcs.com> Sorry was just an example I wanted to debug an app in the middle that was a gambas app. Where the STDIN and STDOUT are already in use. autocorrect..... "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Jul 16, 2021, at 11:13 PM, Brian G wrote: > Sorry was just an example I wanted to debug an app in the middle that was a > gambas app. > Where the stein and out were in use > -- > Thanks > Brian G > Friday, 16 July 2021, 04:15PM -07:00 from bb [ mailto:adamnt42 at gmail.com | > adamnt42 at gmail.com ] : >> On Fri, 2021-07-16 at 15:27 -0700, Brian G wrote: >> > $ echo "asdsdaasdasdssda" | cat | 'gbr3 -g MyGambasApp' | less >> ? untried >> b >> ----[ [ http://gambaswiki.org/wiki/doc/netiquette | >> http://gambaswiki.org/wiki/doc/netiquette ] ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Jul 17 16:13:10 2021 From: adamnt42 at gmail.com (bb) Date: Sat, 17 Jul 2021 23:43:10 +0930 Subject: [Gambas-user] Connecting to a running app with gambas debugger In-Reply-To: <835128627.8650.1626529819719.JavaMail.zimbra@westwoodsvcs.com> References: <424113476.8584.1626474468328.JavaMail.zimbra@westwoodsvcs.com> <09720f60acb489c7e0baa246de6ab5422ecf5839.camel@gmail.com> <1626502385.83840786@f21.my.com> <835128627.8650.1626529819719.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <0bbd59ead5b160b37febc69658d710659af8f763.camel@gmail.com> On Sat, 2021-07-17 at 06:50 -0700, Brian G wrote: > Sorry was just an example I wanted to debug an app in the middle that > was a gambas app. > Where the STDIN and STDOUT are already in use. > > autocorrect..... > > "Failure is the key to success; > each mistake teaches us something" .. Morihei Ueshiba > Brian G > > ----- On Jul 16, 2021, at 11:13 PM, Brian G > wrote: > > Sorry was just an example I wanted to debug an app in the middle > > that was a gambas app. > > Where the stein and out were in use > > > > -- > > Thanks > > Brian G > > ??? If you are using a pipe instead of stdin, then I would think this is impossible. b From hartmut.w.wagener at t-online.de Sat Jul 17 16:26:38 2021 From: hartmut.w.wagener at t-online.de (Hartmut Wagener) Date: Sat, 17 Jul 2021 16:26:38 +0200 Subject: [Gambas-user] Problems with the editor after update to 3.16.1 In-Reply-To: References: <3d382d1e-7005-e317-eacb-d7d6a521fd21@t-online.de> <1c5501c0-8534-359c-42e8-af59a3658dc2@t-online.de> Message-ID: <038ad028-bf13-8162-f29b-1c9fbe21888c@t-online.de> I have found out that this only happens when i use the Mate-Desktop. Am 17.07.21 um 09:59 schrieb Hartmut Wagener: > Have restarted and used much other fonts, with different sizes, no > change, the cursor runs faster than the entry point. > > Any suggestions? Its impossible to write code with this, need to write > in an external editor and insert it into gambas to be able to write code, > > Will try a arch linux update now, perhaps that helps... > > Thanks a lot > > Am 17.07.21 um 09:50 schrieb Hartmut Wagener: >> After the update to the newest version 3.16.2 the problem with the >> editor happens again... >> >> I can choose what font i want, installed the Gambas-font, but the >> cursor always runs away from the entry point. >> >> I use Arch linux with a mate-desktop. >> >> I will have a try with restarting, write here if that changes anything. >> >> Nice day >> >> Hartmut >> >> >> Am 04.07.21 um 17:36 schrieb Beno?t Minisini: >>> Le 04/07/2021 ? 17:18, Hartmut Wagener a ?crit?: >>>> I had changed from "Sans regular" to "Serif Regular", and was able >>>> to use the editor. >>>> >>>> Now i have changed the Fonts back to "Sans regular", and still i am >>>> able to use the editor... :) >>>> >>>> So, it had to be something else with the fonts, i believe it was >>>> something in an mate-update that did not do everything... >>>> >>> >>> OK, thanks for the answer. I asked that to see if eventually a >>> specific font was in fault, but as you said, it is not the case. >>> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From bsteers4 at gmail.com Sun Jul 18 11:15:11 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 18 Jul 2021 10:15:11 +0100 Subject: [Gambas-user] dropped files , QT lacks the path!? Message-ID: I'm playing with an application that works on .desktop files. I've enabled drag-n-drop and with GTK (2 & 3) every file i drop onto the app sets Drag.Data to the FULL path of the dropped file with a file:// suffix. am not getting the same behaviour with QT at all though. some dropped files give just the file name with no path and no file:// suffix? (especially when using panel icons) is there some setting/method I'm missing to get the full path with file drops in QT mode? Thanks in advance. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 18 11:43:00 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 18 Jul 2021 10:43:00 +0100 Subject: [Gambas-user] dropped files , QT lacks the path!? In-Reply-To: References: Message-ID: here's a video clip of the problem.. https://youtu.be/h8CMT3dZ5Ss i have set a function to strip the file:// away and if no file path check /usr/share/applications $HOME/.local/share/appications and $HOME/Desktop as this is where files have been that have had no path. but it does not seem accurate enough for me , i'm guessing the location but my not be the right one. the clip shows me dropping some icons on the app and the debugger showing the raw dropped Drag.Data before and after processing. even with panel icons some show full path some only filename ?? annoyingly :( Will this be a QT bug or a gambas one? Thanks all BruceS On Sun, 18 Jul 2021 at 10:15, Bruce Steers wrote: > I'm playing with an application that works on .desktop files. > I've enabled drag-n-drop and with GTK (2 & 3) every file i drop onto the > app sets Drag.Data to the FULL path of the dropped file with a file:// > suffix. > > am not getting the same behaviour with QT at all though. > some dropped files give just the file name with no path and no file:// > suffix? > (especially when using panel icons) > > is there some setting/method I'm missing to get the full path with file > drops in QT mode? > > Thanks in advance. > BruceS > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hasanmerkit at outlook.com Sun Jul 18 15:38:35 2021 From: hasanmerkit at outlook.com (Hasan Merkit) Date: Sun, 18 Jul 2021 16:38:35 +0300 Subject: [Gambas-user] Please check this: Wrong colors with GTK3 Message-ID: Wrong picture colors with GTK3+ component! More information here, please check this screenshots: https://www.silicone-forum.com/konu/bug-report-gambas3-gtk.9220/ From adamnt42 at gmail.com Sun Jul 18 16:49:27 2021 From: adamnt42 at gmail.com (bb) Date: Mon, 19 Jul 2021 00:19:27 +0930 Subject: [Gambas-user] No-op command Message-ID: I need a Gambas command that does nothing, like a NOP, where I can set a breakpoint for debugging, any good ideas? tia bruce From karl.reinl at fen-net.de Sun Jul 18 17:51:36 2021 From: karl.reinl at fen-net.de (Karl Reinl) Date: Sun, 18 Jul 2021 17:51:36 +0200 Subject: [Gambas-user] No-op command In-Reply-To: References: Message-ID: <385db966c717fabcc50c9a9225ae5d46e047a33b.camel@fen-net.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Am Montag, den 19.07.2021, 00:19 +0930 schrieb bb: > I need a Gambas command that does nothing, like a NOP, where I can > set > a breakpoint for debugging, any good ideas? > > tia > bruce > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Salut, Debug "stop" or Print "stop" - -- Amicalement Charlie -----BEGIN PGP SIGNATURE----- iQGzBAEBCgAdFiEEjowiKCHQ+TXcV68jJzngniJtB0MFAmD0TgkACgkQJzngniJt B0MSjAwAiXiOwNxm43pj/Oownv3wWiyxVMStJaV0Tk3sO5+XG+Qpg9aHvtc7IQtB Mq567y8WlbsrlnxM8XaCcct36Mh2MeOesyUZLZJFg3ktiK+zzELDmh0D4NBI5uM8 zQ4Yna6BK19uGMwkL3Xh/A1CL8MW7uDtYzK5/0jLE2gSV9OYNWL6JOtuMyN+SYXX mFtEfvSnH4r3pp14lauqvFuINTSWqXgqNF1KfwAkBsKFedRM3I/z9JZB8s7wucUb k1e4GqGW24J8u0jm+8sscvZoXbGTAJDSBq9QQpkhwQ3tH2SeNJsxZGVO5IlT2Dhk 0KJaGoEHVb2PSnF93Z4jnZj4wdq6KmZIdv3d4MgLGlGqVIf3nF2j+HI2XPZq0+Uq FrjTPkdPktROHbCxhnz7WhcfzFd6UiMkxkaw8aJj/iBaywOqoSDJXFE9qMTSL0Xr WwlBuxFNfbr9WISn5IMeLzJT4K5nCfugWGR8I9JbNXDUAWiRpQBiCGzNVLKD1eZW wUIOvRgz =4Caa -----END PGP SIGNATURE----- From tobs at taboege.de Sun Jul 18 19:00:03 2021 From: tobs at taboege.de (Tobias Boege) Date: Sun, 18 Jul 2021 19:00:03 +0200 Subject: [Gambas-user] No-op command In-Reply-To: <385db966c717fabcc50c9a9225ae5d46e047a33b.camel@fen-net.de> References: <385db966c717fabcc50c9a9225ae5d46e047a33b.camel@fen-net.de> Message-ID: <20210718170003.GA455088@highrise.localdomain> On Sun, 18 Jul 2021, Karl Reinl wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 > > Am Montag, den 19.07.2021, 00:19 +0930 schrieb bb: > > I need a Gambas command that does nothing, like a NOP, where I can > > set > > a breakpoint for debugging, any good ideas? > > > > tia > > bruce > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > Salut, > > Debug "stop" or Print "stop" > In fact, there is a STOP keyword, which acts like a breakpoint. But this is *always* a breakpoint when encountered in debug mode, not something you can turn on or off dynamically. Otherwise, I'd use a constant statement like Pi It's short, quick, strange and reasonably easy to find for you (but not easy to interpret for your coworkers, I guess). Unlike Debug and Print, it does not pollute the output of your program. Best, Tobias -- "There's an old saying: Don't change anything... ever!" -- Mr. Monk From adamnt42 at gmail.com Sun Jul 18 19:28:05 2021 From: adamnt42 at gmail.com (bb) Date: Mon, 19 Jul 2021 02:58:05 +0930 Subject: [Gambas-user] No-op command In-Reply-To: <20210718170003.GA455088@highrise.localdomain> References: <385db966c717fabcc50c9a9225ae5d46e047a33b.camel@fen-net.de> <20210718170003.GA455088@highrise.localdomain> Message-ID: <2813dce7f2e0560b2625225ebeb37670d077d1d7.camel@gmail.com> On Sun, 2021-07-18 at 19:00 +0200, Tobias Boege via User wrote: > On Sun, 18 Jul 2021, Karl Reinl wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA512 > > > > Am Montag, den 19.07.2021, 00:19 +0930 schrieb bb: > > > I need a Gambas command that does nothing, like a NOP, where I > > > can > > > set > > > a breakpoint for debugging, any good ideas? > > > > > > tia > > > bruce > > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > Salut, > > > > Debug "stop" or Print "stop" > > > > In fact, there is a STOP keyword, which acts like a breakpoint. > But this is *always* a breakpoint when encountered in debug mode, > not something you can turn on or off dynamically. > > Otherwise, I'd use a constant statement like > > Pi > > It's short, quick, strange and reasonably easy to find for you > (but not easy to interpret for your coworkers, I guess). Unlike > Debug and Print, it does not pollute the output of your program. > > Best, > Tobias > Thanks guys, Both good ideas. I must remember them. For the specific case I have, I first tried Karl's idea with 'Debug " has already been executed." and I got 800+ lines in stdout. Which is not a bad thing as I suspected an out of control loop was happening and now I know it is. Just "why" it is happening in an empty "else" block is interesting to say the least, but probably due to some very old code somewhere not near where I am looking. b From jose.rodriguez at cenpalab.cu Sun Jul 18 19:25:48 2021 From: jose.rodriguez at cenpalab.cu (=?ISO-8859-1?Q?Jos=E9_J=2E_Rodr=EDguez?=) Date: Sun, 18 Jul 2021 13:25:48 -0400 Subject: [Gambas-user] No-op command In-Reply-To: <20210718170003.GA455088@highrise.localdomain> References: <385db966c717fabcc50c9a9225ae5d46e047a33b.camel@fen-net.de> <20210718170003.GA455088@highrise.localdomain> Message-ID: <6589764A-EEFA-4988-8321-5E3656BD50DD@cenpalab.cu> On 18 July 2021 13:00:03 GMT-04:00, Tobias Boege via User wrote: >On Sun, 18 Jul 2021, Karl Reinl wrote: >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA512 >> >> Am Montag, den 19.07.2021, 00:19 +0930 schrieb bb: >> > I need a Gambas command that does nothing, like a NOP, where I can >> > set >> > a breakpoint for debugging, any good ideas? >> > >> > tia >> > bruce >> > >> > >> > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> >> Salut, >> >> Debug "stop" or Print "stop" >> > >In fact, there is a STOP keyword, which acts like a breakpoint. >But this is *always* a breakpoint when encountered in debug mode, >not something you can turn on or off dynamically. > I tend to use a global "flag" together with if statements in the code, for debug output where needed. This could work for stop? >Otherwise, I'd use a constant statement like > > Pi > >It's short, quick, strange and reasonably easy to find for you >(but not easy to interpret for your coworkers, I guess). Unlike >Debug and Print, it does not pollute the output of your program. > >Best, >Tobias -- Sent from my Android device with K-9 Mail. Please excuse my brevity. From adamnt42 at gmail.com Sun Jul 18 19:40:35 2021 From: adamnt42 at gmail.com (bb) Date: Mon, 19 Jul 2021 03:10:35 +0930 Subject: [Gambas-user] No-op command In-Reply-To: <2813dce7f2e0560b2625225ebeb37670d077d1d7.camel@gmail.com> References: <385db966c717fabcc50c9a9225ae5d46e047a33b.camel@fen-net.de> <20210718170003.GA455088@highrise.localdomain> <2813dce7f2e0560b2625225ebeb37670d077d1d7.camel@gmail.com> Message-ID: On Mon, 2021-07-19 at 02:58 +0930, bb wrote: > On Sun, 2021-07-18 at 19:00 +0200, Tobias Boege via User wrote: > > On Sun, 18 Jul 2021, Karl Reinl wrote: > > > -----BEGIN PGP SIGNED MESSAGE----- > > > Hash: SHA512 > > > > > > Am Montag, den 19.07.2021, 00:19 +0930 schrieb bb: > > > > I need a Gambas command that does nothing, like a NOP, where I > > > > can > > > > set > > > > a breakpoint for debugging, any good ideas? > > > > > > > > tia > > > > bruce > > > > > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > > > > Salut, > > > > > > Debug "stop" or Print "stop" > > > > > > > In fact, there is a STOP keyword, which acts like a breakpoint. > > But this is *always* a breakpoint when encountered in debug mode, > > not something you can turn on or off dynamically. > > > > Otherwise, I'd use a constant statement like > > > > Pi > > > > It's short, quick, strange and reasonably easy to find for you > > (but not easy to interpret for your coworkers, I guess). Unlike > > Debug and Print, it does not pollute the output of your program. > > > > Best, > > Tobias > > > Thanks guys, > Both good ideas. I must remember them. > > For the specific case I have, I first tried Karl's idea with 'Debug > " has already been executed." and I got 800+ lines in > stdout. Which is not a bad thing as I suspected an out of control > loop > was happening and now I know it is. > Just "why" it is happening in an empty "else" block is interesting to > say the least, but probably due to some very old code somewhere not > near where I am looking. > > b Bingo! Found it. The old "change the value of the loop control variable many dozens of lines away from where I am looking trick". (In my defense I will say that the loop is based on a very complex compound control value.) Thanks again. b From bsteers4 at gmail.com Sun Jul 18 22:55:09 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 18 Jul 2021 21:55:09 +0100 Subject: [Gambas-user] .desktop launcher editor with Actions editor (but 2 issues) Message-ID: Right my latest handy app (love the word bruce, love it!! :D ) it edits .desktop launcher files but unlike the other editors this one also edits Actions (like how gambas can launch with gtk or qt by right clicking a panel icon) it's WIP but working enough now to share. Forum post... https://forum.gambas.one/viewtopic.php?f=13&t=1159 direct download https://forum.gambas.one/download/file.php?id=849 Here's how my gambas launcher looks in the Actions editor.. https://forum.gambas.one/download/file.php?id=848 I have 2 problems though... one is drag and dropping files onto it when it's using QT. (mentioned in another post) dropping some panel icons onto it only gave a file name with no path. GTK does not do that and always gives the full path so the app (lication, sorry Mr b ;) ) is set to use gb.gtk3 (change it to use gb.gui or gb.gui.qt for qt only systems) another issue (not gambas related i know) is that after i've saved back a .desktop file the panel icons do not show the change till net boot up :( i've tried deleting the file and re-saving it, plus other methods but cannot get an instant change :( even xdg-desktop-menu forceupdate didn't work And advice appreciated. have a free desktop launcher editor :) any bugs , fix them yourself ;) lol , no sorry, please let me know :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Jul 18 23:13:44 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 18 Jul 2021 22:13:44 +0100 Subject: [Gambas-user] .desktop launcher editor with Actions editor (but 2 issues) In-Reply-To: References: Message-ID: inline... On Sun, 18 Jul 2021 at 21:55, Bruce Steers wrote: > Right my latest handy app (love the word bruce, love it!! :D ) > > another issue (not gambas related i know) is that after i've saved back a > .desktop file the panel icons do not show the change till net boot up :( > i've tried deleting the file and re-saving it, plus other methods but > cannot get an instant change :( > even xdg-desktop-menu forceupdate didn't work > "Till NEXT boot up" not "net boot up" sorry Also my simple workaround for this is my panel icons are also on my desktop. I edit the launchers on my desktop then remove the old ones from the panel and drag n drop the edited ones in again. All the best BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From jose.rodriguez at cenpalab.cu Mon Jul 19 00:06:03 2021 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Sun, 18 Jul 2021 22:06:03 +0000 Subject: [Gambas-user] EXEC ... WITH Message-ID: This works in cli: pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /home/joe1962/0-develop/MyDev/vcpufreq/trunk/vcpufreq-gui/vcpufreq-gui.gambas However, none of the following attempts have worked in Gambas code: Exec ["pkexec", "env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY " & Application.Path &/ "vcpufreq-gui.gambas"] Wait Exec ["pkexec", Application.Path &/ "vcpufreq-gui.gambas"] With ["DISPLAY=$DISPLAY", "XAUTHORITY=$XAUTHORITY"] Wait This is for some old code I had and am updating to current Gambas. The problem actually came about because the code tested for kdesu, ktsuss, gksu and would relaunch itself as root, then quit. However, on Linux Mint you're supposed to use pkexec now... The error is the typical one when trying to run a gui program in a root console: qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb. Appreciate any ideas. Regards, Joe1962 From bsteers4 at gmail.com Mon Jul 19 00:29:14 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 18 Jul 2021 23:29:14 +0100 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: References: Message-ID: Just an initial thought as it's working in the cli so I assume all configured okay. I sometimes making sure bash is the shell an not the default sh can help fix some glitches. System.Shell = System.Find("bash") Also I wrote a simple gambas called groot that I've found works where pkexec does not. It simply creates a hidden window with a terminalview and launches the application via sudo. It's on the gambas application repository http://gambaswiki.org/wiki/app/groot Might give you some alternative ideas at least? BruceS On Sun, 18 Jul 2021, 23:08 , wrote: > This works in cli: > > pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY > /home/joe1962/0-develop/MyDev/vcpufreq/trunk/vcpufreq-gui/vcpufreq-gui.gambas > > However, none of the following attempts have worked in Gambas code: > > Exec ["pkexec", "env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY " & > Application.Path &/ "vcpufreq-gui.gambas"] Wait > > Exec ["pkexec", Application.Path &/ "vcpufreq-gui.gambas"] With > ["DISPLAY=$DISPLAY", "XAUTHORITY=$XAUTHORITY"] Wait > > This is for some old code I had and am updating to current Gambas. The > problem actually came about because the code tested for kdesu, ktsuss, gksu > and would relaunch itself as root, then quit. However, on Linux Mint you're > supposed to use pkexec now... > > The error is the typical one when trying to run a gui program in a root > console: > > qt.qpa.xcb: could not connect to display > qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even > though it was found. > This application failed to start because no Qt platform plugin could be > initialized. Reinstalling the application may fix this problem. > > Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, > offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, > wayland-xcomposite-glx, xcb. > > > Appreciate any ideas. > > Regards, > Joe1962 > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Mon Jul 19 01:05:20 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 19 Jul 2021 00:05:20 +0100 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: References: Message-ID: Also check out this other application I made... https://gitlab.com/bsteers4/pkAppMan It edits the pkexec policies. I assume you know you need to add gbr3 (and possibly another launcher binary) to pkexec policy list so gambas applications work. I assume because it works in cli Best of luck. BruceS On Sun, 18 Jul 2021, 23:08 , wrote: > This works in cli: > > pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY > /home/joe1962/0-develop/MyDev/vcpufreq/trunk/vcpufreq-gui/vcpufreq-gui.gambas > > However, none of the following attempts have worked in Gambas code: > > Exec ["pkexec", "env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY " & > Application.Path &/ "vcpufreq-gui.gambas"] Wait > > Exec ["pkexec", Application.Path &/ "vcpufreq-gui.gambas"] With > ["DISPLAY=$DISPLAY", "XAUTHORITY=$XAUTHORITY"] Wait > > This is for some old code I had and am updating to current Gambas. The > problem actually came about because the code tested for kdesu, ktsuss, gksu > and would relaunch itself as root, then quit. However, on Linux Mint you're > supposed to use pkexec now... > > The error is the typical one when trying to run a gui program in a root > console: > > qt.qpa.xcb: could not connect to display > qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even > though it was found. > This application failed to start because no Qt platform plugin could be > initialized. Reinstalling the application may fix this problem. > > Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, > offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, > wayland-xcomposite-glx, xcb. > > > Appreciate any ideas. > > Regards, > Joe1962 > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobs at taboege.de Mon Jul 19 01:22:07 2021 From: tobs at taboege.de (Tobias Boege) Date: Mon, 19 Jul 2021 01:22:07 +0200 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: References: Message-ID: <20210718232207.GB455088@highrise.localdomain> On Sun, 18 Jul 2021, jose.rodriguez at cenpalab.cu wrote: > This works in cli: > > pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /home/joe1962/0-develop/MyDev/vcpufreq/trunk/vcpufreq-gui/vcpufreq-gui.gambas > > However, none of the following attempts have worked in Gambas code: > > Exec ["pkexec", "env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY " & Application.Path &/ "vcpufreq-gui.gambas"] Wait > If you use Exec, you have to split arguments properly by space. There is no shell to do it for you. I suppose what you want is Exec ["pkexec", "env", "DISPLAY=" & Env["DISPLAY]", "XAUTHORITY=" & Env["XAUTHORITY"], Application.Path &/ "vcpufreq-gui.gambas"] Wait > Exec ["pkexec", Application.Path &/ "vcpufreq-gui.gambas"] With ["DISPLAY=$DISPLAY", "XAUTHORITY=$XAUTHORITY"] Wait > Gambas does not interpret $DISPLAY and $XAUTHORITY. With this "With" statement, you are putting the literal string values "$DISPLAY" and "$XAUTHORITY" into these environment variables. The "$variable" syntax for environment variable expansion is a shell feature. With Exec, you bypass the shell and renounce its features. What you should do from Gambas is to use Env[] as I did above. But I suppose pkexec clears the environment, which is the reason why it has an "env" subcommand. If that's the case, then setting the environment using "With" will not get you anywhere. You should instead try what I suggest in my first paragraph. Best, Tobias -- "There's an old saying: Don't change anything... ever!" -- Mr. Monk From jose.rodriguez at cenpalab.cu Mon Jul 19 03:03:01 2021 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Mon, 19 Jul 2021 01:03:01 +0000 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: References: Message-ID: <11441392114f870329b272b174cd4877@cenpalab.cu> July 18, 2021 7:05 PM, "Bruce Steers" )> wrote: Also check out this other application I made...https://gitlab.com/bsteers4/pkAppMan (https://gitlab.com/bsteers4/pkAppMan) It edits the pkexec policies. I assume you know you need to add gbr3 (and possibly another launcher binary) to pkexec policy list so gambas applications work. I assume because it works in cli I've read about having to edit the policies, but I didn't need to do that for it to work from the console. Regards, Joe1962 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jose.rodriguez at cenpalab.cu Mon Jul 19 03:03:45 2021 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Mon, 19 Jul 2021 01:03:45 +0000 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: References: Message-ID: <1155b07be0d4731da8c116ac550b3182@cenpalab.cu> July 18, 2021 6:29 PM, "Bruce Steers" )> wrote: Just an initial thought as it's working in the cli so I assume all configured okay. I sometimes making sure bash is the shell an not the default sh can help fix some glitches. System.Shell = System.Find("bash") Also I wrote a simple gambas called groot that I've found works where pkexec does not. It simply creates a hidden window with a terminalview and launches the application via sudo. It's on the gambas application repository http://gambaswiki.org/wiki/app/groot (http://gambaswiki.org/wiki/app/groot) Might give you some alternative ideas at least? I saw your original post about that. I will look into it, thanks. Regards, Joe1962 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jose.rodriguez at cenpalab.cu Mon Jul 19 03:12:56 2021 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Mon, 19 Jul 2021 01:12:56 +0000 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: <20210718232207.GB455088@highrise.localdomain> References: <20210718232207.GB455088@highrise.localdomain> Message-ID: <20ff9e6b6b6024e024230ae8015183ca@cenpalab.cu> July 18, 2021 7:22 PM, "Tobias Boege via User" wrote: > Gambas does not interpret $DISPLAY and $XAUTHORITY. With this > "With" statement, you are putting the literal string values > "$DISPLAY" and "$XAUTHORITY" into these environment variables. > The "$variable" syntax for environment variable expansion is > a shell feature. With Exec, you bypass the shell and renounce > its features. > > What you should do from Gambas is to use Env[] as I did above. > But I suppose pkexec clears the environment, which is the reason > why it has an "env" subcommand. If that's the case, then setting > the environment using "With" will not get you anywhere. You should > instead try what I suggest in my first paragraph. Well, none of these worked: Exec ["pkexec", Application.Path &/ "vcpufreq-gui.gambas"] With ["DISPLAY=" & Env["DISPLAY"], "XAUTHORITY=" & Env["XAUTHORITY"]] Wait 'Exec ["pkexec", "env", "DISPLAY=" & Env["DISPLAY"], "XAUTHORITY=" & Env["XAUTHORITY"], Application.Path &/ "vcpufreq-gui.gambas"] Wait BTW, the wiki says "The first element in the list/array is the name of the command, and the other elements are the commands parameters (if any)", so I wouldn't expect the second variant to work. Maybe I should try Shell? Regards, Joe1962 From bsteers4 at gmail.com Mon Jul 19 04:26:54 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 19 Jul 2021 03:26:54 +0100 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: <11441392114f870329b272b174cd4877@cenpalab.cu> References: <11441392114f870329b272b174cd4877@cenpalab.cu> Message-ID: try adding gbr3 to pkexec policies. that pkAppMan will do it for you (it's one of it's presets) Or if you initially run pkAppMan from a terminal using sudo it will ask to auto-add gbr3 to pkexec rules (if you want it to) it does not allow any application to auto get root access you still have to put in the password but you get the gui requester. There's one way to find out if it fixes anything :) BruceS On Mon, 19 Jul 2021 at 02:05, wrote: > July 18, 2021 7:05 PM, "Bruce Steers" > > wrote: > > Also check out this other application I made... > https://gitlab.com/bsteers4/pkAppMan > It edits the pkexec policies. > I assume you know you need to add gbr3 (and possibly another launcher > binary) to pkexec policy list so gambas applications work. I assume because > it works in cli > > > I've read about having to edit the policies, but I didn't need to do that > for it to work from the console. > > Regards, > Joe1962 > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rwe-sse at osnanet.de Mon Jul 19 08:49:53 2021 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 19 Jul 2021 08:49:53 +0200 Subject: [Gambas-user] Problems with the editor after update to 3.16.1 In-Reply-To: <038ad028-bf13-8162-f29b-1c9fbe21888c@t-online.de> References: <3d382d1e-7005-e317-eacb-d7d6a521fd21@t-online.de> <1c5501c0-8534-359c-42e8-af59a3658dc2@t-online.de> <038ad028-bf13-8162-f29b-1c9fbe21888c@t-online.de> Message-ID: Am 17.07.21 um 16:26 schrieb Hartmut Wagener: > I have found out that this only happens when i use the Mate-Desktop. > I use Mate under Ubuntu Mate. Strange things have happened along the way. I have not used the new Editor yet, but there were other glitches. What I found was that the choice of the right library in Gambas can help. Try using something like gb.qt5 and gb.qt5.ext instead of gb.gui. There are several possible combinations, try them and find out what happens. Regards Rolf > > Am 17.07.21 um 09:59 schrieb Hartmut Wagener: >> Have restarted and used much other fonts, with different sizes, no >> change, the cursor runs faster than the entry point. >> >> Any suggestions? Its impossible to write code with this, need to write >> in an external editor and insert it into gambas to be able to write code, >> >> Will try a arch linux update now, perhaps that helps... >> >> Thanks a lot >> >> Am 17.07.21 um 09:50 schrieb Hartmut Wagener: >>> After the update to the newest version 3.16.2 the problem with the >>> editor happens again... >>> >>> I can choose what font i want, installed the Gambas-font, but the >>> cursor always runs away from the entry point. >>> >>> I use Arch linux with a mate-desktop. >>> >>> I will have a try with restarting, write here if that changes anything. >>> >>> Nice day >>> >>> Hartmut >>> >>> >>> Am 04.07.21 um 17:36 schrieb Beno?t Minisini: >>>> Le 04/07/2021 ? 17:18, Hartmut Wagener a ?crit?: >>>>> I had changed from "Sans regular" to "Serif Regular", and was able >>>>> to use the editor. >>>>> >>>>> Now i have changed the Fonts back to "Sans regular", and still i am >>>>> able to use the editor... :) >>>>> >>>>> So, it had to be something else with the fonts, i believe it was >>>>> something in an mate-update that did not do everything... >>>>> >>>> >>>> OK, thanks for the answer. I asked that to see if eventually a >>>> specific font was in fault, but as you said, it is not the case. >>>> >>> >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > From dosida at gmail.com Mon Jul 19 12:56:37 2021 From: dosida at gmail.com (Dimitris Anogiatis) Date: Mon, 19 Jul 2021 04:56:37 -0600 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: References: <11441392114f870329b272b174cd4877@cenpalab.cu> Message-ID: This actually worked out for me (i'm on Debian 10.10 with MATE Desktop): Exec ["pkexec", "env", "DISPLAY=" & Env["DISPLAY"], "XAUTHORITY=" & Env["XAUTHORITY"], Application.Path &/ "vcpufreq-gui.gambas"] Wait Yes It's an older version of Gambas (3.12) but it showed me that the plugin it used was qt5ct. Checking your initial error message it looks like xcb is complaining. Is xcb installed in your Mint installation? On Sun, Jul 18, 2021 at 8:28 PM Bruce Steers wrote: > try adding gbr3 to pkexec policies. > > that pkAppMan will do it for you (it's one of it's presets) > > Or if you initially run pkAppMan from a terminal using sudo it will ask to > auto-add gbr3 to pkexec rules (if you want it to) > it does not allow any application to auto get root access you still have > to put in the password but you get the gui requester. > > There's one way to find out if it fixes anything :) > > BruceS > > > On Mon, 19 Jul 2021 at 02:05, wrote: > >> July 18, 2021 7:05 PM, "Bruce Steers" > > >> wrote: >> >> Also check out this other application I made... >> https://gitlab.com/bsteers4/pkAppMan >> It edits the pkexec policies. >> I assume you know you need to add gbr3 (and possibly another launcher >> binary) to pkexec policy list so gambas applications work. I assume because >> it works in cli >> >> >> I've read about having to edit the policies, but I didn't need to do that >> for it to work from the console. >> >> Regards, >> Joe1962 >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tercoide at hotmail.com Mon Jul 19 19:09:51 2021 From: tercoide at hotmail.com (martin cristia) Date: Mon, 19 Jul 2021 14:09:51 -0300 Subject: [Gambas-user] glClearColor error In-Reply-To: References: Message-ID: That was the problem. After a sudo apt remove --purge gambas3 followed by a reinstall from PPA there was no more error for both GTK and Qt, which leads me to believe that purging files before updating new Gb versions should be SOP tnx > Le 08/07/2021 ? 21:10, martin cristia a ?crit?: >> Hi, I'm having this error, with a GLArea in a form: >> >> opengl-clearcolor: symbol lookup error: >> /usr/lib/gambas3/gb.gtk3.opengl.so: undefined symbol: glClearColor >> >> project attatched, >> >> > No problem here (Ubuntu 21.04). 'glClearColor' is a standard OpenGL > function, so I guess there is something wrong in your Gambas compilation. > From jose.rodriguez at cenpalab.cu Mon Jul 19 23:27:17 2021 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Mon, 19 Jul 2021 21:27:17 +0000 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: References: <11441392114f870329b272b174cd4877@cenpalab.cu> Message-ID: July 19, 2021 6:56 AM, "Dimitris Anogiatis" )> wrote: This actually worked out for me (i'm on Debian 10.10 with MATE Desktop): Exec ["pkexec", "env", "DISPLAY=" & Env["DISPLAY"], "XAUTHORITY=" & Env["XAUTHORITY"], Application.Path &/ "vcpufreq-gui.gambas"] Wait Yes It's an older version of Gambas (3.12) but it showed me that the plugin it used was qt5ct. Checking your initial error message it looks like xcb is complaining. Is xcb installed in your Mint installation? Hmm, might have to set up a VM to try it on Mate. The xcb stuff is typical when trying to run qt software as root without setting the display env. For example, executing this directly in a console gives the (mostly) same error as when running from gambas code: << EXAMPLE 1: joe1962 at homestation:~/.../vcpufreq-gui$ pkexec /home/joe1962/0-develop/MyDev/vcpufreq/trunk/vcpufreq-gui/vcpufreq-gui.gambas qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb. Aborted (core dumped) :END EXAMPLE 1>> << EXAMPLE 2: root at homestation:/.../vcpufreq-gui# pkexec falkon qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. Fatal: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb. Aborted (core dumped) :END EXAMPLE 2>> but when run with the env stuff, it works. However, that doesn't work for me from Gambas, I figure pkexec isn't getting the env stuff properly. Regards, Joe1962 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jose.rodriguez at cenpalab.cu Mon Jul 19 23:38:24 2021 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Mon, 19 Jul 2021 21:38:24 +0000 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: References: <11441392114f870329b272b174cd4877@cenpalab.cu> Message-ID: July 19, 2021 6:56 AM, "Dimitris Anogiatis" )> wrote: This actually worked out for me (i'm on Debian 10.10 with MATE Desktop): Exec ["pkexec", "env", "DISPLAY=" & Env["DISPLAY"], "XAUTHORITY=" & Env["XAUTHORITY"], Application.Path &/ "vcpufreq-gui.gambas"] Wait Yes It's an older version of Gambas (3.12) but it showed me that the plugin it used was qt5ct. Ooops, my bad, there was a certain degree of PEBKAC involved. I placed that option on the wrong If statement. In my defense, I was seeing cross-eyed by that point, LOL. Now confirmed it works on Mint 20.1 Cinnamon. However, shouldn't this one work too?: Exec ["pkexec", Application.Path &/ "vcpufreq-gui.gambas"] With ["DISPLAY=" & Env["DISPLAY"], "XAUTHORITY=" & Env["XAUTHORITY"]] Wait Regards, Joe1962 -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobs at taboege.de Tue Jul 20 08:32:58 2021 From: tobs at taboege.de (Tobias Boege) Date: Tue, 20 Jul 2021 08:32:58 +0200 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: References: <11441392114f870329b272b174cd4877@cenpalab.cu> Message-ID: <20210720063258.GC455088@highrise.localdomain> On Mon, 19 Jul 2021, jose.rodriguez at cenpalab.cu wrote: > July 19, 2021 6:56 AM, "Dimitris Anogiatis" )> wrote: > This actually worked out for me (i'm on Debian 10.10 with MATE Desktop): > > Exec ["pkexec", "env", "DISPLAY=" & Env["DISPLAY"], "XAUTHORITY=" & Env["XAUTHORITY"], Application.Path &/ "vcpufreq-gui.gambas"] Wait > > Yes It's an older version of Gambas (3.12) but it showed me that the plugin it used was qt5ct. > Ooops, my bad, there was a certain degree of PEBKAC involved. I placed that option on the wrong If statement. In my defense, I was seeing cross-eyed by that point, LOL. Now confirmed it works on Mint 20.1 Cinnamon. > > However, shouldn't this one work too?: > > Exec ["pkexec", Application.Path &/ "vcpufreq-gui.gambas"] With ["DISPLAY=" & Env["DISPLAY"], "XAUTHORITY=" & Env["XAUTHORITY"]] Wait > No, read the manpage of pkexec: The environment that PROGRAM will run it, will be set to a minimal known and safe environment in order to avoid injecting code through LD_LIBRARY_PATH or similar mechanisms. In addition the PKEXEC_UID environment variable is set to the user id of the process invoking pkexec. As a result, pkexec will not by default allow you to run X11 applications as another user since the $DISPLAY and $XAUTHORITY environment variables are not set. These two variables will be retained if the org.freedesktop.policykit.exec.allow_gui annotation on an action is set to a nonempty value; this is discouraged, though, and should only be used for legacy programs. The WITH statement sets the environment variables in the Gambas program before launching pkexec, then pkexec clears these variables immediately afterwards. Best, Tobias -- "There's an old saying: Don't change anything... ever!" -- Mr. Monk From cybercamera at gmail.com Tue Jul 20 13:20:25 2021 From: cybercamera at gmail.com (Cam Era) Date: Tue, 20 Jul 2021 21:20:25 +1000 Subject: [Gambas-user] Bug in QT4 Printer object FirstPage in Gambas 3.16.1 Message-ID: Can anyone else confirm the following bug in the Printer (gb.qt4) object? Steps to reproduce: Public Sub Main() Dim my_printer As Printer my_printer = New Printer As "MyPrinter" my_printer.FirstPage = 1 my_printer.LastPage = 3 End Inspecting the my_printer.FirstPage property gives the wrong value of 0 while my_printer.LastPage gives the correct value of 3 It seems that the .FirstPage isn't being retained. System details follow. ----------------------------- [System] Gambas=3.16.1 OperatingSystem=Linux Kernel=5.4.0-77-generic Architecture=x86_64 Distribution=Ubuntu 20.04.2 LTS Desktop=UBUNTU:GNOME Font=Ubuntu,11 Scale=8 Theme=yaru Language=en_AU.UTF-8 Memory=7874M [Libraries] Cairo=libcairo.so.2.11600.0 Curl=libcurl.so.4.6.0 DBus=libdbus-1.so.3.19.11 GDK2=libgdk-x11-2.0.so.0.2400.32 GDK3=libgdk-3.so.0.2404.16 GStreamer=libgstreamer-1.0.so.0.1602.0 GTK+2=libgtk-x11-2.0.so.0.2400.32 GTK+3=libgtk-3.so.0.2404.16 OpenGL=libGL.so.1.7.0 Poppler=libpoppler.so.73.0.0 Poppler=libpoppler.so.97.0.0 QT5=libQt5Core.so.5.12.8 SDL=libSDL-1.2.so.0.11.4 SQLite=libsqlite3.so.0.8.6 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jose.rodriguez at cenpalab.cu Tue Jul 20 16:26:46 2021 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Tue, 20 Jul 2021 14:26:46 +0000 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: <20210720063258.GC455088@highrise.localdomain> References: <20210720063258.GC455088@highrise.localdomain> <11441392114f870329b272b174cd4877@cenpalab.cu> Message-ID: July 20, 2021 9:07 AM, "Tobias Boege via User" wrote: > On Mon, 19 Jul 2021, jose.rodriguez at cenpalab.cu wrote: >> >> However, shouldn't this one work too?: >> >> Exec ["pkexec", Application.Path &/ "vcpufreq-gui.gambas"] With ["DISPLAY=" & Env["DISPLAY"], >> "XAUTHORITY=" & Env["XAUTHORITY"]] Wait > > No, read the manpage of pkexec: > > The WITH statement sets the environment variables in the Gambas program > before launching pkexec, then pkexec clears these variables immediately > afterwards. > Yes, I understand now, and this works because it sets the env inside pkexec: Exec ["pkexec", "env", "DISPLAY=" & Env["DISPLAY"], "XAUTHORITY=" & Env["XAUTHORITY"], Application.Path &/ "vcpufreq-gui.gambas"] Wait Regards, Joe1962 From g4mba5 at gmail.com Wed Jul 21 16:12:46 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 21 Jul 2021 16:12:46 +0200 Subject: [Gambas-user] Bug in QT4 Printer object FirstPage in Gambas 3.16.1 In-Reply-To: References: Message-ID: <8c678cd2-06c5-2f8a-4871-84e0f11b2dc4@gmail.com> Le 20/07/2021 ? 13:20, Cam Era a ?crit?: > Can anyone else confirm the following bug in the?Printer (gb.qt4) object? > > Steps to reproduce: > > Public Sub Main() > ? Dim my_printer As Printer > ? my_printer = New Printer As "MyPrinter" > ? my_printer.FirstPage = 1 > ? my_printer.LastPage = 3 > > End > > Inspecting the my_printer.FirstPage property gives the wrong value of 0 > while my_printer.LastPage gives the correct value of 3 > > It seems that the .FirstPage isn't being retained. > Please provide a project that reproduces the bug. I think you are wrong, and that the bug is in the GTK+ component, not in the QT one. Regards, -- Beno?t Minisini From g4mba5 at gmail.com Wed Jul 21 16:27:38 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 21 Jul 2021 16:27:38 +0200 Subject: [Gambas-user] Problems with the editor after update to 3.16.1 In-Reply-To: References: <3d382d1e-7005-e317-eacb-d7d6a521fd21@t-online.de> Message-ID: <07deeb55-cc90-6d4a-ef24-3cfe7c708dda@gmail.com> Le 04/07/2021 ? 12:33, Hartmut Wagener a ?crit?: > I solved the editor-thing, changed the font from "Sans Regular" to > "Serif Regular"... > > So i can look for the next problem... :) > Please provide some screenshots. "Sans regular" is not a true font, it's just an alias to another font. Which font "Sans regular" is aliased to on your system? Can you try other fonts? Why do you use a proportional font for your editor? -- Beno?t Minisini From g4mba5 at gmail.com Wed Jul 21 16:29:25 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Wed, 21 Jul 2021 16:29:25 +0200 Subject: [Gambas-user] Problems with the editor after update to 3.16.1 In-Reply-To: <038ad028-bf13-8162-f29b-1c9fbe21888c@t-online.de> References: <3d382d1e-7005-e317-eacb-d7d6a521fd21@t-online.de> <1c5501c0-8534-359c-42e8-af59a3658dc2@t-online.de> <038ad028-bf13-8162-f29b-1c9fbe21888c@t-online.de> Message-ID: <1ce29866-7c81-dc8c-ee2e-49537e51caa8@gmail.com> Le 17/07/2021 ? 16:26, Hartmut Wagener a ?crit?: > I have found out that this only happens when i use the Mate-Desktop. > Apparently there are a lot of problem with Mate desktop. Almost all the bugs currently opened in the bugtracker are from Mate desktop users. -- Beno?t Minisini From jose.rodriguez at cenpalab.cu Thu Jul 22 00:19:41 2021 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Wed, 21 Jul 2021 22:19:41 +0000 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: References: Message-ID: <61266ecac20c287eda4642e871fd26fd@cenpalab.cu> July 18, 2021 6:29 PM, "Bruce Steers" wrote: > Also I wrote a simple gambas called groot that I've found works where pkexec does not. It simply > creates a hidden window with a terminalview and launches the application via sudo. > It's on the gambas application repository http://gambaswiki.org/wiki/app/groot > > Might give you some alternative ideas at least? > Hi, Bruce Steers (yes, I know there are at least 2 Bruces here, LOL): Getting not found when I try to download groot. Screenshot attached. Also, when you click on the link it keeps the trailing " so it fails. Obviously, I manually removed it but it still fails. BTW, that error message begs to be changed to "I am not Groot" :D Regards, Joe1962 -------------- next part -------------- A non-text attachment was scrubbed... Name: I am not groot.png Type: image/png Size: 18767 bytes Desc: not available URL: From bsteers4 at gmail.com Thu Jul 22 01:05:27 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 22 Jul 2021 00:05:27 +0100 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: <61266ecac20c287eda4642e871fd26fd@cenpalab.cu> References: <61266ecac20c287eda4642e871fd26fd@cenpalab.cu> Message-ID: On Wed, 21 Jul 2021 at 23:22, wrote: > July 18, 2021 6:29 PM, "Bruce Steers" wrote: > > > Also I wrote a simple gambas called groot that I've found works where > pkexec does not. It simply > > creates a hidden window with a terminalview and launches the application > via sudo. > > It's on the gambas application repository > http://gambaswiki.org/wiki/app/groot > > > > Might give you some alternative ideas at least? > > > > > Hi, Bruce Steers (yes, I know there are at least 2 Bruces here, LOL): > > Getting not found when I try to download groot. Screenshot attached. Also, > when you click on the link it keeps the trailing " so it fails. Obviously, > I manually removed it but it still fails. > > BTW, that error message begs to be changed to "I am not Groot" :D > > Regards, > Joe1962 > Haha , yes I like to name my gambas apps with something beginning with g and groot was just perfect for this :) Cheers for the info. seemed the file on my server was called GRoot.zip not groot.zip :-\ I've updated the archive and uploaded with the correct name now :) Thanks BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From jose.rodriguez at cenpalab.cu Fri Jul 23 00:11:20 2021 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Thu, 22 Jul 2021 22:11:20 +0000 Subject: [Gambas-user] EXEC ... WITH In-Reply-To: References: <61266ecac20c287eda4642e871fd26fd@cenpalab.cu> Message-ID: <88621ecb9c1d1b36c5adefe37d238aa6@cenpalab.cu> July 21, 2021 7:06 PM, "Bruce Steers" wrote: > On Wed, 21 Jul 2021 at 23:22, wrote: > >> July 18, 2021 6:29 PM, "Bruce Steers" wrote: >> >>> Also I wrote a simple gambas called groot that I've found works where pkexec does not. It simply >>> creates a hidden window with a terminalview and launches the application via sudo. >>> It's on the gambas application repository http://gambaswiki.org/wiki/app/groot >>> >>> Might give you some alternative ideas at least? >>> >> >> Hi, Bruce Steers (yes, I know there are at least 2 Bruces here, LOL): >> >> Getting not found when I try to download groot. Screenshot attached. Also, when you click on the >> link it keeps the trailing " so it fails. Obviously, I manually removed it but it still fails. >> >> BTW, that error message begs to be changed to "I am not Groot" :D >> >> Regards, >> Joe1962 > > Haha , yes I like to name my gambas apps with something beginning with g and groot was just perfect > for this :) > > Cheers for the info. seemed the file on my server was called GRoot.zip not groot.zip :-\ > I've updated the archive and uploaded with the correct name now :) Well, I've been Ctrl + refreshing http://gambaswiki.org/wiki/app/groot since I got your email, but it's still showing the same old link. I also tried http://bws.org.uk/GRoot.zip directly, but it keeps saying "I am not Groot"... Regards, Joe1962 From bagonergi at gmail.com Fri Jul 23 18:13:54 2021 From: bagonergi at gmail.com (Gianluigi) Date: Fri, 23 Jul 2021 18:13:54 +0200 Subject: [Gambas-user] Master: Segmentation error Message-ID: the latest master version does not start: :~$ gambas3 (process:169673): GLib-GObject-CRITICAL **: 18:08:02.385: g_object_get: assertion 'G_IS_OBJECT (object)' failed Errore di segmentazione Regards Gianluigi -------------- next part -------------- An HTML attachment was scrubbed... URL: From cybercamera at gmail.com Sat Jul 24 14:39:47 2021 From: cybercamera at gmail.com (Cam Era) Date: Sat, 24 Jul 2021 22:39:47 +1000 Subject: [Gambas-user] Bug in QT4 Printer object FirstPage in Gambas 3.16.1 In-Reply-To: <8c678cd2-06c5-2f8a-4871-84e0f11b2dc4@gmail.com> References: <8c678cd2-06c5-2f8a-4871-84e0f11b2dc4@gmail.com> Message-ID: Beno?t, thanks for the response. Sample project which shows this issue is attached. As far as I can tell, I'm performing the right actions to set the .FirstPage on the Printer object, but I could be wrong. The .LastPage setting is honoured. All is in QT AFAICT. Cheers On Thu, Jul 22, 2021 at 12:13 AM Beno?t Minisini wrote: > Le 20/07/2021 ? 13:20, Cam Era a ?crit : > > Can anyone else confirm the following bug in the Printer (gb.qt4) object? > > > > Steps to reproduce: > > > > Public Sub Main() > > Dim my_printer As Printer > > my_printer = New Printer As "MyPrinter" > > my_printer.FirstPage = 1 > > my_printer.LastPage = 3 > > > > End > > > > Inspecting the my_printer.FirstPage property gives the wrong value of 0 > > while my_printer.LastPage gives the correct value of 3 > > > > It seems that the .FirstPage isn't being retained. > > > > Please provide a project that reproduces the bug. > > I think you are wrong, and that the bug is in the GTK+ component, not in > the QT one. > > Regards, > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: PrinterPageTest.tar.gz Type: application/gzip Size: 13257 bytes Desc: not available URL: From sharon at 455.co.il Mon Jul 26 01:07:36 2021 From: sharon at 455.co.il (Mayost Sharon) Date: Mon, 26 Jul 2021 02:07:36 +0300 Subject: [Gambas-user] Merge cells or split cells In GridView or TableView Message-ID: <20210725230217.M98498@455.co.il> Hello Is it possible to merge cells or split cells In controls: GridView or TableView Thank you From bsteers4 at gmail.com Mon Jul 26 01:28:29 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 26 Jul 2021 00:28:29 +0100 Subject: [Gambas-user] Merge cells or split cells In GridView or TableView In-Reply-To: <20210725230217.M98498@455.co.il> References: <20210725230217.M98498@455.co.il> Message-ID: On Mon, 26 Jul 2021 at 00:15, Mayost Sharon wrote: > Hello > > Is it possible to merge cells or split cells > In controls: GridView or TableView > > Thank you > no automatic function, you would have to code it For GridView you could change the ColumnSpan and merge manually Same for rows with RowSpan BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Mon Jul 26 02:09:21 2021 From: adamnt42 at gmail.com (bb) Date: Mon, 26 Jul 2021 09:39:21 +0930 Subject: [Gambas-user] Merge cells or split cells In GridView or TableView In-Reply-To: References: <20210725230217.M98498@455.co.il> Message-ID: <0a0d3663a0da6ce419741f5705b8eb7f5b9d3274.camel@gmail.com> On Mon, 2021-07-26 at 00:28 +0100, Bruce Steers wrote: > > > On Mon, 26 Jul 2021 at 00:15, Mayost Sharon wrote: > > Hello > > > > Is it possible to merge cells or split cells > > In controls: GridView or TableView > > > > Thank you > > no automatic function, you would have to code it > > For GridView you could change the ColumnSpan and merge manually > Same for rows with RowSpan > > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- There's a couple or three (or more now that I think on it) Quite Interesting algorithms here. Just looking at the first one 1: Split a cell(y,x) horizontally into m cells : cell(y,x),cell(y,x1),...cell(y,xm) = Split a column into m columns then recombine all other cell(y',x..xm) into cell(y',x) y-1,x-1 | y-1,x | y-1,x+1 --------+-------+-------- y,x-1 | y,x | y,x+1 --------+-------+-------- y+1,x-1 | y+1,x | y+1,x+1 goes to y-1,x-1 | y-1,x | y-1,x+1 --------+-------------------------+-------- y,x-1 | y,x | y,x1 | ... | y,xm | y,x+1 --------+-------------------------+-------- y+1,x-1 | y+1,x | y+1,x+1 Now the cardinality on y could be huge. (which is why I picked this one :-) However, for gridviews (and tableviews too, I suppose) this is only OF INTEREST if the row concerned, y, is visible. In an extreme case, lets say y cardinality in the order of 10^4 where the row of the cell to be split is say 9,990 and the user is viewing rows 0..23 is there any point in splitting/recombining the entire gridview? jm20c (hoping all my ascii art above hangs together) bruce From isafiur at gmail.com Mon Jul 26 05:49:16 2021 From: isafiur at gmail.com (Safiur Rahman) Date: Mon, 26 Jul 2021 09:34:16 +0545 Subject: [Gambas-user] Embedding WebButton_Click() or WebMenu_Click() inside a javascript Message-ID: Hi Beno?t How can I embed WebButton_Click() or WebMenu_Click() inside a javascript. I want to specify a short cut for WebButton Click and WebMenu Click using mousetrap.js https://github.com/ccampbell/mousetrap For example this works: How can I put WebButton_Click() or WebMenu_Click() procedures in place of alert() in gambas gb.web.gui (Attached a sample html) -- Regards Safiur Rahman -------------- next part -------------- An HTML attachment was scrubbed... URL: From georgioskalogiannis at gmail.com Tue Jul 27 18:27:56 2021 From: georgioskalogiannis at gmail.com (Georgios Kalogiannis) Date: Tue, 27 Jul 2021 19:27:56 +0300 Subject: [Gambas-user] datebox behavor problem Message-ID: Hello I updated from gambas version 3.16.1 to 3.16.2 on ubuntu 18.04 LTS. I cannot even display or choose date and time simultaneously when I set DateTime mode for a datebox control. Always displays "00/00/0000" I have tested it on a single form with only a simple datebox control. It works fine when I set DateOnly or TimeOnly mode. Do you have any ideas ? Georgios ??????????? ??? ????. www.avast.com <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Tue Jul 27 19:18:57 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Tue, 27 Jul 2021 19:18:57 +0200 Subject: [Gambas-user] datebox behavor problem In-Reply-To: References: Message-ID: <2cecd375-d950-23fa-218a-ba17d70c728e@gmail.com> Le 27/07/2021 ? 18:27, Georgios Kalogiannis a ?crit?: > Hello > > I updated from gambas version 3.16.1 to 3.16.2 on ubuntu 18.04 LTS. > I cannot even display or choose date and time simultaneously when I set > DateTime mode for a datebox control. Always displays?"00/00/0000" > I have tested?it on a single?form with only a simple datebox control. > It works fine when?I?set DateOnly or TimeOnly mode. > Do you have any ideas ? > > Georgios > I think it has been fixed by commit https://gitlab.com/gambas/gambas/-/commit/fbf3479c32c948ce9ffb1e65b4873a034570c146. You will get the fix in the 3.16.3 release. Regards, -- Beno?t Minisini From cybercamera at gmail.com Wed Jul 28 02:33:54 2021 From: cybercamera at gmail.com (Cam Era) Date: Wed, 28 Jul 2021 10:33:54 +1000 Subject: [Gambas-user] .ErrorText in gb.gui.qt.webkit (Gambas 3.16.2) Message-ID: It seems that the .ErrorText property was present in previous versions of the WebView control, but missing in gb.gui.qt.webkit. Does anyone have a workaround? Cheers. -------------- next part -------------- An HTML attachment was scrubbed... URL: From cybercamera at gmail.com Thu Jul 29 00:51:12 2021 From: cybercamera at gmail.com (Cam Era) Date: Thu, 29 Jul 2021 08:51:12 +1000 Subject: [Gambas-user] Dragging to Webview?; HttpClient.Delete()?; & Embedder missing In-Reply-To: References: Message-ID: Lee, did you find a solution to this problem below? Or any other way to get file-uploads working in Webview? If so, care to share? Cheers On Fri, Jan 31, 2020 at 5:19 AM T Lee Davidson wrote: > 1. I am unable to drag files to an active Webview. For instance, when > viewing a page with a form that has a > element, I should be able to drag and drop a file from the system file > manager onto the file input element. I cannot. > > The mouse drag cursor remains red, never turns green, to indicate that the > file cannot be dropped on the Webview control. I have > Webview.Drop=True if that makes any difference. > > Is there something I need to do to get Webview to accept drops from the > system? Or is this just the nature of the beast? > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Thu Jul 29 02:09:02 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 28 Jul 2021 20:09:02 -0400 Subject: [Gambas-user] Dragging to Webview?; HttpClient.Delete()?; & Embedder missing In-Reply-To: References: Message-ID: <3b2cf58c-9b69-d191-d184-d371c6bd13aa@gmail.com> On 7/28/21 6:51 PM, Cam Era wrote: > Lee, > > did you find a solution to this problem below? Or any other way to get file-uploads working in Webview? If so, care to share? > > Cheers I did not find a solution to the problem below. To be honest, I don't even recall what project I was working on at that time. But, since I got no response, I suspect I simply ended up using my local webserver with PHP. -- Lee > > On Fri, Jan 31, 2020 at 5:19 AM T Lee Davidson > wrote: > > 1. I am unable to drag files to an active Webview. For instance, when viewing a page with a form that has a > element, I should be able to drag and drop a file from the system file manager onto the file input element. I cannot. > > The mouse drag cursor remains red, never turns green, to indicate that the file cannot be dropped on the Webview control. I > have > Webview.Drop=True if that makes any difference. > > Is there something I need to do to get Webview to accept drops from the system? Or is this just the nature of the beast? From bsteers4 at gmail.com Thu Jul 29 09:05:03 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 29 Jul 2021 08:05:03 +0100 Subject: [Gambas-user] Dragging to Webview?; HttpClient.Delete()?; & Embedder missing In-Reply-To: References: Message-ID: I just tried the following code... *Public Sub WebView1_Drop() Print Drag.DataEnd* Drag-drop files from my computer to the application window woks completely as expected. result was... *file:///home/bonus/Desktop/IconActionEd.desktop* Not sure why it doesn't work for you? BruceS On Wed, 28 Jul 2021 at 23:52, Cam Era wrote: > Lee, > > did you find a solution to this problem below? Or any other way to get > file-uploads working in Webview? If so, care to share? > > Cheers > > On Fri, Jan 31, 2020 at 5:19 AM T Lee Davidson > wrote: > >> 1. I am unable to drag files to an active Webview. For instance, when >> viewing a page with a form that has a >> element, I should be able to drag and drop a file from the system file >> manager onto the file input element. I cannot. >> >> The mouse drag cursor remains red, never turns green, to indicate that >> the file cannot be dropped on the Webview control. I have >> Webview.Drop=True if that makes any difference. >> >> Is there something I need to do to get Webview to accept drops from the >> system? Or is this just the nature of the beast? >> >> > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Jul 29 09:24:00 2021 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 29 Jul 2021 08:24:00 +0100 Subject: [Gambas-user] Dragging to Webview?; HttpClient.Delete()?; & Embedder missing In-Reply-To: References: Message-ID: On Thu, 29 Jul 2021 at 08:05, Bruce Steers wrote: > I just tried the following code... > > > > *Public Sub WebView1_Drop() Print Drag.DataEnd* > > > Drag-drop files from my computer to the application window woks completely > as expected. > result was... > *file:///home/bonus/Desktop/IconActionEd.desktop* > > Not sure why it doesn't work for you? > > BruceS > Note: QT adds more to the drag.data separated by CR \r so needs cleaning up.. I used *Print Quote(Drag.Data)* to discover exactly what text QT was giving me and found it gave \r chars. So to clean up the data, remove the 'file://' part and be compatible with gtk and qt webview use something like this... *Public Sub WebView1_Drop() Dim sTrimmed As String = Replace(Drag.Data, "file://", "") *' remove 'file://' * Dim iPos As Integer = InStr(sTrimmed, "\r") *' look for carriage return * If iPos Then sTrimmed = Mid(sTrimmed, 1, iPos - 1) * ' get text left of first \r if one exists (QT) * Print "'"; sTrimmed; "'"End* Hope that helps BruceS > On Wed, 28 Jul 2021 at 23:52, Cam Era wrote: > >> Lee, >> >> did you find a solution to this problem below? Or any other way to get >> file-uploads working in Webview? If so, care to share? >> >> Cheers >> >> On Fri, Jan 31, 2020 at 5:19 AM T Lee Davidson >> wrote: >> >>> 1. I am unable to drag files to an active Webview. For instance, when >>> viewing a page with a form that has a >>> element, I should be able to drag and drop a file from the system file >>> manager onto the file input element. I cannot. >>> >>> The mouse drag cursor remains red, never turns green, to indicate that >>> the file cannot be dropped on the Webview control. I have >>> Webview.Drop=True if that makes any difference. >>> >>> Is there something I need to do to get Webview to accept drops from the >>> system? Or is this just the nature of the beast? >>> >>> >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Thu Jul 29 15:44:43 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Thu, 29 Jul 2021 09:44:43 -0400 Subject: [Gambas-user] Dragging to Webview?; HttpClient.Delete()?; & Embedder missing In-Reply-To: <79608a1c-3feb-423c-86e1-0547045c611f@gmail.com> References: <79608a1c-3feb-423c-86e1-0547045c611f@gmail.com> Message-ID: <800f0bd0-8d33-bbc9-3095-0eb83673b5bd@gmail.com> On 7/29/21 9:42 AM, T Lee Davidson wrote: > I?confirm?that?drag?and?drop?does?indeed?work?with?Gambas?v3.16.2. > > Perhaps?that?issue?has?been?fixed?in?a?year?and?a?half?since,?or,?I?didn't?do?something?right?at?the?time. I should have said, "Drag and drop does work with a Webview." -- Lee From t.lee.davidson at gmail.com Thu Jul 29 15:42:45 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Thu, 29 Jul 2021 09:42:45 -0400 Subject: [Gambas-user] Dragging to Webview?; HttpClient.Delete()?; & Embedder missing In-Reply-To: References: Message-ID: <79608a1c-3feb-423c-86e1-0547045c611f@gmail.com> On 7/29/21 3:05 AM, Bruce Steers wrote: > I just tried the following code... > > *Public Sub WebView1_Drop() > ? ? Print Drag.Data > End* > > > Drag-drop files from my computer to the application window woks completely as expected. > result was... > *file:///home/bonus/Desktop/IconActionEd.desktop* > > Not sure why it doesn't work for you? > > BruceS > > > On Wed, 28 Jul 2021 at 23:52, Cam Era > wrote: > > Lee, > > did you find a solution to this problem below? Or any other way to get file-uploads working in Webview? If so, care to share? > > Cheers > > On Fri, Jan 31, 2020 at 5:19 AM T Lee Davidson > wrote: > > 1. I am unable to drag files to an active Webview. For instance, when viewing a page with a form that has a type="file"> > element, I should be able to drag and drop a file from the system file manager onto the file input element. I cannot. > > The mouse drag cursor remains red, never turns green, to indicate that the file cannot be dropped on the Webview > control. I have > Webview.Drop=True if that makes any difference. > > Is there something I need to do to get Webview to accept drops from the system? Or is this just the nature of the beast? I confirm that drag and drop does indeed work with Gambas v3.16.2. Perhaps that issue has been fixed in a year and a half since, or, I didn't do something right at the time. -- Lee From vuott at tutanota.com Fri Jul 30 00:25:18 2021 From: vuott at tutanota.com (vuott at tutanota.com) Date: Fri, 30 Jul 2021 00:25:18 +0200 (CEST) Subject: [Gambas-user] File_Read() doesn't work Message-ID: Hello, it seems to me that the procedure: ??? file_variable = Open "......." For Read Watch ..... End Public Sub File_Read() ...... ...... no longer works. (maybe from? Commit cba7b188 ? Or 1943dbfc ? ) -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Fri Jul 30 00:38:32 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Fri, 30 Jul 2021 00:38:32 +0200 Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: References: Message-ID: Le 30/07/2021 ? 00:25, vuott--- via User a ?crit?: > Hello, > it seems to me that the procedure: > > ??? file_variable = Open "......." For Read Watch > ..... > End > > Public Sub File_Read() > ...... > ...... > > no longer works. > (maybe from? Commit cba7b188 ? Or 1943dbfc ? ) > Can you send a full project that reproduces the bug? -- Beno?t Minisini From vuott at tutanota.com Fri Jul 30 00:50:53 2021 From: vuott at tutanota.com (vuott at tutanota.com) Date: Fri, 30 Jul 2021 00:50:53 +0200 (CEST) Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: References: Message-ID: Hi, for example with this simple code (by using an external midi-keyboard connected to PC via USB): Private mid As File Public Sub Main() ? mid = Open "/dev/snd/midiC2D0" For Read Watch End Public Sub File_Read() ? Dim datum As Byte ? Read @mid, datum ? Print datum End 30 lug 2021, 00:38 da g4mba5 at gmail.com: > Le 30/07/2021 ? 00:25, vuott--- via User a ?crit?: > >> Hello, >> it seems to me that the procedure: >> >> ??? file_variable = Open "......." For Read Watch >> ..... >> End >> >> Public Sub File_Read() >> ...... >> ...... >> >> no longer works. >> (maybe from? Commit cba7b188 ? Or 1943dbfc ? ) >> > > Can you send a full project that reproduces the bug? > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From vuott at tutanota.com Fri Jul 30 00:52:39 2021 From: vuott at tutanota.com (vuott at tutanota.com) Date: Fri, 30 Jul 2021 00:52:39 +0200 (CEST) Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: References: Message-ID: opsss...Correction to the code: ?? Read #mid, datum 30 lug 2021, 00:50 da user at lists.gambas-basic.org: > Hi, > for example with this simple code (by using an external midi-keyboard connected to PC via USB): > > Private mid As File > > Public Sub Main() > > ? mid = Open "/dev/snd/midiC2D0" For Read Watch > > End > > Public Sub File_Read() > > ? Dim datum As Byte > > ? Read @mid, datum > > ? Print datum > > End > > > > 30 lug 2021, 00:38 da g4mba5 at gmail.com: > >> Le 30/07/2021 ? 00:25, vuott--- via User a ?crit?: >> >>> Hello, >>> it seems to me that the procedure: >>> >>> ??? file_variable = Open "......." For Read Watch >>> ..... >>> End >>> >>> Public Sub File_Read() >>> ...... >>> ...... >>> >>> no longer works. >>> (maybe from? Commit cba7b188 ? Or 1943dbfc ? ) >>> >> >> Can you send a full project that reproduces the bug? >> >> -- >> Beno?t Minisini >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From vuott at tutanota.com Fri Jul 30 01:09:15 2021 From: vuott at tutanota.com (vuott at tutanota.com) Date: Fri, 30 Jul 2021 01:09:15 +0200 (CEST) Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: References: Message-ID: I simply made a correction to the writing-error in my example code, obviously the problem - that I reported - remains. regards 30 lug 2021, 00:52 da user at lists.gambas-basic.org: > opsss...Correction to the code: > > ?? Read #mid, datum > > > > > 30 lug 2021, 00:50 da user at lists.gambas-basic.org: > >> Hi, >> for example with this simple code (by using an external midi-keyboard connected to PC via USB): >> >> Private mid As File >> >> Public Sub Main() >> >> ? mid = Open "/dev/snd/midiC2D0" For Read Watch >> >> End >> >> Public Sub File_Read() >> >> ? Dim datum As Byte >> >> ? Read @mid, datum >> >> ? Print datum >> >> End >> >> >> >> 30 lug 2021, 00:38 da g4mba5 at gmail.com: >> >>> Le 30/07/2021 ? 00:25, vuott--- via User a ?crit?: >>> >>>> Hello, >>>> it seems to me that the procedure: >>>> >>>> ??? file_variable = Open "......." For Read Watch >>>> ..... >>>> End >>>> >>>> Public Sub File_Read() >>>> ...... >>>> ...... >>>> >>>> no longer works. >>>> (maybe from? Commit cba7b188 ? Or 1943dbfc ? ) >>>> >>> >>> Can you send a full project that reproduces the bug? >>> >>> -- >>> Beno?t Minisini >>> >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >>> >> >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Fri Jul 30 03:31:46 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Fri, 30 Jul 2021 03:31:46 +0200 Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: References: Message-ID: Le 30/07/2021 ? 01:09, vuott--- via User a ?crit?: > I simply made a correction to the writing-error in my example code, > obviously the problem - that I reported - remains. > > regards > Is File_Read() called at least once? Do you have the problem with other devices? Please send a project that reproduces the bug! Watching behaviour depends on the GUI tookit used if any. -- Beno?t Minisini From vuott at tutanota.com Fri Jul 30 05:23:12 2021 From: vuott at tutanota.com (vuott at tutanota.com) Date: Fri, 30 Jul 2021 05:23:12 +0200 (CEST) Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: References: Message-ID: Hello, ? >> Is File_Read() called at least once? The File_Read () event is never raised, not even once. ? >> Do you have the problem with other devices? Yes, I have:? for example with the file-device of the mouse (see attached project). Regards 30 lug 2021, 03:31 da g4mba5 at gmail.com: > Le 30/07/2021 ? 01:09, vuott--- via User a ?crit?: > >> I simply made a correction to the writing-error in my example code, obviously the problem - that I reported - remains. >> >> regards >> > > Is File_Read() called at least once? > > Do you have the problem with other devices? > > Please send a project that reproduces the bug! Watching behaviour depends on the GUI tookit used if any. > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: watch-0.0.1.tar.gz Type: application/gzip Size: 12143 bytes Desc: not available URL: From brian at westwoodsvcs.com Fri Jul 30 01:12:08 2021 From: brian at westwoodsvcs.com (Brian G) Date: Thu, 29 Jul 2021 16:12:08 -0700 (PDT) Subject: [Gambas-user] UnitTest Functions Show Up in AutoGenerated help Message-ID: <1630740182.11177.1627600328448.JavaMail.zimbra@westwoodsvcs.com> In a component project that includes embedded help for module/classes and functions. Then the help system also shows all the unit test functions as well. Is there some way to turn this off? Or will it always expose the unit test functions to the user? It is a little confusing to see these functions in the help. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From vuott at tutanota.com Fri Jul 30 16:01:37 2021 From: vuott at tutanota.com (vuott at tutanota.com) Date: Fri, 30 Jul 2021 16:01:37 +0200 (CEST) Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: References: Message-ID: Ok, I try to re-send my project. 30 lug 2021, 05:23 da user at lists.gambas-basic.org: > Hello, > > ? >> Is File_Read() called at least once? > The File_Read () event is never raised, not even once. > > > ? >> Do you have the problem with other devices? > Yes, I have:? > for example with the file-device of the mouse (see attached project). > > Regards > > > > > 30 lug 2021, 03:31 da g4mba5 at gmail.com: > >> Le 30/07/2021 ? 01:09, vuott--- via User a ?crit?: >> >>> I simply made a correction to the writing-error in my example code, obviously the problem - that I reported - remains. >>> >>> regards >>> >> >> Is File_Read() called at least once? >> >> Do you have the problem with other devices? >> >> Please send a project that reproduces the bug! Watching behaviour depends on the GUI tookit used if any. >> >> -- >> Beno?t Minisini >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: watch-0.0.1.tar.gz Type: application/gzip Size: 12151 bytes Desc: not available URL: From vuott at tutanota.com Fri Jul 30 16:13:24 2021 From: vuott at tutanota.com (vuott at tutanota.com) Date: Fri, 30 Jul 2021 16:13:24 +0200 (CEST) Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: References: Message-ID: I hope... 30 lug 2021, 16:01 da user at lists.gambas-basic.org: > Ok, I try to re-send my project. > > > > > 30 lug 2021, 05:23 da user at lists.gambas-basic.org: > >> Hello, >> >> ? >> Is File_Read() called at least once? >> The File_Read () event is never raised, not even once. >> >> >> ? >> Do you have the problem with other devices? >> Yes, I have:? >> for example with the file-device of the mouse (see attached project). >> >> Regards >> >> >> >> >> 30 lug 2021, 03:31 da g4mba5 at gmail.com: >> >>> Le 30/07/2021 ? 01:09, vuott--- via User a ?crit?: >>> >>>> I simply made a correction to the writing-error in my example code, obviously the problem - that I reported - remains. >>>> >>>> regards >>>> >>> >>> Is File_Read() called at least once? >>> >>> Do you have the problem with other devices? >>> >>> Please send a project that reproduces the bug! Watching behaviour depends on the GUI tookit used if any. >>> >>> -- >>> Beno?t Minisini >>> >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >>> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: watch-0.0.1.tar.gz Type: application/gzip Size: 12151 bytes Desc: not available URL: From t.lee.davidson at gmail.com Fri Jul 30 19:08:48 2021 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 30 Jul 2021 13:08:48 -0400 Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: References: Message-ID: On 7/30/21 10:13 AM, vuott--- via User wrote: > I hope... > > > > > > 30 lug 2021, 16:01 da user at lists.gambas-basic.org: > > Ok, I try to re-send my project. > > It appears to work here. -- Lee [System] Gambas=3.16.2 5ed24722 (stable) OperatingSystem=Linux Kernel=5.3.18-lp152.84-default Architecture=x86_64 Distribution=openSUSE Leap 15.2 Desktop=KDE5 Font=Noto Sans,10 Scale=7 Theme=breeze Language=en_US.UTF-8 Memory=16000M [Libraries] Cairo=/usr/lib64/libcairo.so.2.11600.0 Curl=/usr/lib64/libcurl.so.4.6.0 DBus=/usr/lib64/libdbus-1.so.3.19.4 GDK2=/usr/lib64/libgdk-x11-2.0.so.0.2400.32 GDK3=/usr/lib64/libgdk-3.so.0.2404.16 GStreamer=/usr/lib64/libgstreamer-1.0.so.0.1603.0 GTK+2=/usr/lib64/libgtk-x11-2.0.so.0.2400.32 GTK+3=/usr/lib64/libgtk-3.so.0.2404.16 OpenGL=/usr/lib64/libGL.so.1.7.0 Poppler=/usr/lib64/libpoppler.so.89.0.0 QT4=/usr/lib64/libQtCore.so.4.8.7 QT5=/usr/lib64/libQt5Core.so.5.12.7 SDL2=/usr/lib64/libSDL2-2.0.so.0.8.0 SDL=/usr/lib64/libSDL-1.2.so.0.11.4 SQLite3=/usr/lib64/libsqlite3.so.0.8.6 XML2=/usr/lib64/libxml2.so.2.9.7 From vuott at tutanota.com Fri Jul 30 20:11:32 2021 From: vuott at tutanota.com (vuott at tutanota.com) Date: Fri, 30 Jul 2021 20:11:32 +0200 (CEST) Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: References: Message-ID: Hi, this is my system: [System] Gambas=3.16.90 2b66c08 (master) OperatingSystem=Linux Kernel=5.11.0-25-generic Architecture=x86_64 Distribution=Linux Mint 20.2 Uma Desktop=CINNAMON Font=Ubuntu,10 Scale=7 Theme=mint-y Language=it_IT.UTF-8 Memory=5380M [Libraries] Cairo=libcairo.so.2.11600.0 Curl=libcurl.so.4.6.0 DBus=libdbus-1.so.3.19.11 GDK2=libgdk-x11-2.0.so.0.2400.32 GDK3=libgdk-3.so.0.2404.16 GStreamer=libgstreamer-1.0.so.0.1602.0 GTK+2=libgtk-x11-2.0.so.0.2400.32 GTK+3=libgtk-3.so.0.2404.16 OpenGL=libGL.so.1.7.0 Poppler=libpoppler.so.97.0.0 QT5=libQt5Core.so.5.12.8 SDL=libSDL-1.2.so.0.11.4 SQLite=libsqlite3.so.0.8.6 30 lug 2021, 19:08 da t.lee.davidson at gmail.com: > On 7/30/21 10:13 AM, vuott--- via User wrote: > >> I hope... >> >> >> >> >> >> 30 lug 2021, 16:01 da user at lists.gambas-basic.org: >> >> Ok, I try to re-send my project. >> > > It appears to work here. > > > -- > Lee > > [System] > Gambas=3.16.2 5ed24722 (stable) > OperatingSystem=Linux > Kernel=5.3.18-lp152.84-default > Architecture=x86_64 > Distribution=openSUSE Leap 15.2 > Desktop=KDE5 > Font=Noto Sans,10 > Scale=7 > Theme=breeze > Language=en_US.UTF-8 > Memory=16000M > > [Libraries] > Cairo=/usr/lib64/libcairo.so.2.11600.0 > Curl=/usr/lib64/libcurl.so.4.6.0 > DBus=/usr/lib64/libdbus-1.so.3.19.4 > GDK2=/usr/lib64/libgdk-x11-2.0.so.0.2400.32 > GDK3=/usr/lib64/libgdk-3.so.0.2404.16 > GStreamer=/usr/lib64/libgstreamer-1.0.so.0.1603.0 > GTK+2=/usr/lib64/libgtk-x11-2.0.so.0.2400.32 > GTK+3=/usr/lib64/libgtk-3.so.0.2404.16 > OpenGL=/usr/lib64/libGL.so.1.7.0 > Poppler=/usr/lib64/libpoppler.so.89.0.0 > QT4=/usr/lib64/libQtCore.so.4.8.7 > QT5=/usr/lib64/libQt5Core.so.5.12.7 > SDL2=/usr/lib64/libSDL2-2.0.so.0.8.0 > SDL=/usr/lib64/libSDL-1.2.so.0.11.4 > SQLite3=/usr/lib64/libsqlite3.so.0.8.6 > XML2=/usr/lib64/libxml2.so.2.9.7 > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Sat Jul 31 00:49:47 2021 From: brian at westwoodsvcs.com (Brian G) Date: Fri, 30 Jul 2021 15:49:47 -0700 (PDT) Subject: [Gambas-user] Error sending to mailing list, slow Message-ID: <818078814.11630.1627685387616.JavaMail.zimbra@westwoodsvcs.com> I am very often getting this error when I try to send something to the mailing list from the postmaster #################################################################### # THIS IS A WARNING ONLY. YOU DO NOT NEED TO RESEND YOUR MESSAGE. # #################################################################### I'm sorry to have to inform you that your message has not yet been delivered to one or more recipients. It's attached below. < user at lists.gambas-basic.org > delayed: host mailin1.hostsharing.net [ callto:(83.223.95.203 | (83.223.95.203 ] ) said: 450 4.2.0 < user at lists.gambas-basic.org >: Recipient address rejected: Recipient address rejected: Greylisted. Please try again later. (in reply to RCPT command) Is something happening to the mailing list? "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Sat Jul 31 01:08:27 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Sat, 31 Jul 2021 01:08:27 +0200 Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: References: Message-ID: <7382d90a-7191-0384-7ab9-0ee035cf9404@gmail.com> Le 30/07/2021 ? 05:23, vuott--- via User a ?crit?: > Hello, > > ? >> Is File_Read() called at least once? > The File_Read () event is never raised, not even once. > > > ? >> Do you have the problem with other devices? > Yes, I have: for example with the file-device of the mouse (see attached > project). > > Regards > The bug should have been fixed by commit https://gitlab.com/gambas/gambas/-/commit/a7a249543ec1e5d137755dfbb0059087c21b7c96. Regards, -- Beno?t Minisini From cybercamera at gmail.com Sat Jul 31 02:49:20 2021 From: cybercamera at gmail.com (Cam Era) Date: Sat, 31 Jul 2021 10:49:20 +1000 Subject: [Gambas-user] Dragging to Webview?; HttpClient.Delete()?; & Embedder missing In-Reply-To: <800f0bd0-8d33-bbc9-3095-0eb83673b5bd@gmail.com> References: <79608a1c-3feb-423c-86e1-0547045c611f@gmail.com> <800f0bd0-8d33-bbc9-3095-0eb83673b5bd@gmail.com> Message-ID: Guys, thanks muchly for all your input. Most appreciated. On 7/29/21, T Lee Davidson wrote: > On 7/29/21 9:42 AM, T Lee Davidson wrote: >> I?confirm?that?drag?and?drop?does?indeed?work?with?Gambas?v3.16.2. >> >> Perhaps?that?issue?has?been?fixed?in?a?year?and?a?half?since,?or,?I?didn't?do?something?right?at?the?time. > > I should have said, "Drag and drop does work with a Webview." > > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > From brian at westwoodsvcs.com Fri Jul 30 20:46:58 2021 From: brian at westwoodsvcs.com (Brian G) Date: Fri, 30 Jul 2021 11:46:58 -0700 (PDT) Subject: [Gambas-user] A Way to determine if Terminal supports color Message-ID: <1948496410.11546.1627670818043.JavaMail.zimbra@westwoodsvcs.com> Maybe Tobias can help? Is there a way to use the color.available in gb.ncurses without having the screen automatically initialized. Like using setupterm() and then call has_color() To get the color available info from the terminal cap, so it never initializes the actual screen? Or is there another way to get this info? Maybe Tobias can help? I found this sample for c code: #include #include int main(void) { char *term = getenv("TERM"); int erret = 0; if (setupterm(NULL, 1, &erret) == ERR) { char *errmsg = "unknown error"; switch (erret) { case 1: errmsg = "terminal is hardcopy, cannot be used for curses applications"; break; case 0: errmsg = "terminal could not be found, or not enough information for curses applications"; break; case -1: errmsg = "terminfo entry could not be found"; break; } printf("Color support for terminal \"%s\" unknown (error %d: %s).\n", term, erret, errmsg); exit(1); } bool colors = has_colors(); printf("Terminal \"%s\" %s colors.\n", term, colors ? "has" : "does not have"); return 0; } "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobs at taboege.de Sat Jul 31 13:41:20 2021 From: tobs at taboege.de (Tobias Boege) Date: Sat, 31 Jul 2021 13:41:20 +0200 Subject: [Gambas-user] A Way to determine if Terminal supports color In-Reply-To: <1948496410.11546.1627670818043.JavaMail.zimbra@westwoodsvcs.com> References: <1948496410.11546.1627670818043.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <20210731114120.GA3827461@highrise.localdomain> On Fri, 30 Jul 2021, Brian G wrote: > Maybe Tobias can help? > > Is there a way to use the color.available in gb.ncurses without having the screen automatically initialized. > gb.ncurses always calls initscr() as soon as the component is loaded to establish a clean environment for the other classes "once and for all". So there is no way to do that with gb.ncurses. It was conceived as a user interface component (although not a lot came of it), not to inspect low-level terminal capabilities. (I'm not saying that this wouldn't be useful to have, maybe in gb.term?) > Like using setupterm() and then call has_color() > To get the color available info from the terminal cap, so it never initializes the actual screen? > > Or is there another way to get this info? > Honestly, the quickest way is probably via Extern: Extern setupterm(term As String, fd As Integer, err As Pointer) As Integer In "libncursesw" Extern has_colors() As Integer In "libncursesw" But note that when I try, inspired by your snippet, #include #include #include #include int main(void) { int err = 0; printf("%d ", setupterm(NULL, 1, &err)); printf("%d ", err); printf("%d\n", has_colors()); exit(0); } I get the output "0 1 0", meaning my terminal is detected as hardcopy, not capable of curses or color. But when I properly initialize ncurses using initscr(), #include #include #include int main(void) { initscr(); int c = has_colors(); endwin(); printf("%d\n", c); exit(0); } I get the expected output "1". Are you sure your method is supposed to work? Best, Tobias -- "There's an old saying: Don't change anything... ever!" -- Mr. Monk From brian at westwoodsvcs.com Sat Jul 31 14:43:31 2021 From: brian at westwoodsvcs.com (Brian G) Date: Sat, 31 Jul 2021 05:43:31 -0700 (PDT) Subject: [Gambas-user] A Way to determine if Terminal supports color In-Reply-To: <20210731114120.GA3827461@highrise.localdomain> References: <1948496410.11546.1627670818043.JavaMail.zimbra@westwoodsvcs.com> <20210731114120.GA3827461@highrise.localdomain> Message-ID: <1708614625.11738.1627735411235.JavaMail.zimbra@westwoodsvcs.com> "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Jul 31, 2021, at 4:41 AM, Gambas mailing list user at lists.gambas-basic.org wrote: > On Fri, 30 Jul 2021, Brian G wrote: >> Maybe Tobias can help? >> >> Is there a way to use the color.available in gb.ncurses without having the >> screen automatically initialized. >> Thanks for taking the time to look at this question Tobias. I finally found the method below to work correctly. Using the lower level terminfo database calls. Tested this with most terminals on the linux Seems to work reliably ..... so far. Even worked with the gambas console which reports 8 colors! That snippet I originally found did not work correctly, it crossed the lower level calls with curses calls. It sure would be helpful if the terminfo data was available through gb.term. I was looking for a way to determine capabilities without messing with the actual screen. ' Gambas class file termcap Extern setupterm(term As String, filedes As Integer, errret As Pointer) As Integer In "libtinfo" Extern tigetnum(cap As String) As Integer In "libtinfo" Private NoTermInfo As Boolean = False Public errmsg As String = "" Public Sub _new() Dim err As Integer = 0 Dim result As Integer = setupterm(Null, File.out.Handle, VarPtr(err)) If result Then Select Case err Case 1 errmsg = "terminfo: terminal is hardcopy, cannot be used for curses applications" Case 0 errmsg = "terminfo: terminal could not be found, or not enough information for curses applications" Case -1 errmsg = "terminfo: entry could not be found" End Select NoTermInfo = True Endif End '' Returns the number of colors the terminal can support Public Sub has_color() As Integer If NoTermInfo Then Return 0 Return tigetnum("colors") ' returns -number if not found End > > gb.ncurses always calls initscr() as soon as the component is loaded to > establish a clean environment for the other classes "once and for all". > So there is no way to do that with gb.ncurses. It was conceived as a > user interface component (although not a lot came of it), not to inspect > low-level terminal capabilities. (I'm not saying that this wouldn't be > useful to have, maybe in gb.term?) > >> Like using setupterm() and then call has_color() >> To get the color available info from the terminal cap, so it never initializes >> the actual screen? >> >> Or is there another way to get this info? >> > > Honestly, the quickest way is probably via Extern: > > Extern setupterm(term As String, fd As Integer, err As Pointer) As Integer In > "libncursesw" > Extern has_colors() As Integer In "libncursesw" > > But note that when I try, inspired by your snippet, > > #include > #include > #include > #include > > int main(void) { > int err = 0; > printf("%d ", setupterm(NULL, 1, &err)); > printf("%d ", err); > printf("%d\n", has_colors()); > exit(0); > } > > I get the output "0 1 0", meaning my terminal is detected as hardcopy, > not capable of curses or color. > > But when I properly initialize ncurses using initscr(), > > #include > #include > #include > > int main(void) { > initscr(); > int c = has_colors(); > endwin(); > > printf("%d\n", c); > exit(0); > } > > I get the expected output "1". Are you sure your method is supposed to work? > > Best, > Tobias > > -- > "There's an old saying: Don't change anything... ever!" -- Mr. Monk > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From vuott at tutanota.com Sat Jul 31 16:06:03 2021 From: vuott at tutanota.com (vuott at tutanota.com) Date: Sat, 31 Jul 2021 16:06:03 +0200 (CEST) Subject: [Gambas-user] File_Read() doesn't work In-Reply-To: <7382d90a-7191-0384-7ab9-0ee035cf9404@gmail.com> References: <7382d90a-7191-0384-7ab9-0ee035cf9404@gmail.com> Message-ID: Hello Beno?t, yes, now it works. 31 lug 2021, 01:08 da g4mba5 at gmail.com: > Le 30/07/2021 ? 05:23, vuott--- via User a ?crit?: > >> Hello, >> >> ? >> Is File_Read() called at least once? >> The File_Read () event is never raised, not even once. >> >> >> ? >> Do you have the problem with other devices? >> Yes, I have: for example with the file-device of the mouse (see attached project). >> >> Regards >> > > The bug should have been fixed by commit https://gitlab.com/gambas/gambas/-/commit/a7a249543ec1e5d137755dfbb0059087c21b7c96. > > Regards, > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From g4mba5 at gmail.com Sat Jul 31 22:41:10 2021 From: g4mba5 at gmail.com (=?UTF-8?Q?Beno=c3=aet_Minisini?=) Date: Sat, 31 Jul 2021 22:41:10 +0200 Subject: [Gambas-user] UnitTest Functions Show Up in AutoGenerated help In-Reply-To: <1630740182.11177.1627600328448.JavaMail.zimbra@westwoodsvcs.com> References: <1630740182.11177.1627600328448.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <66e65d03-0f17-1a8b-dc2f-790af64f9d4c@gmail.com> Le 30/07/2021 ? 01:12, Brian G a ?crit?: > In a component project that includes embedded help for module/classes > and functions. > Then the help system also shows all the unit test functions as well. > > Is there some way to turn this off? > > Or will it always expose the unit test functions to the user? > It is a little confusing to see these functions in the help. > > > "Failure is the key to success; > ?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > I don't know. Is it be useful to have documentation comments inside the test classes? If it is, then they must appear in the help tree browser. -- Beno?t Minisini From brian at westwoodsvcs.com Sat Jul 31 22:54:42 2021 From: brian at westwoodsvcs.com (Brian G) Date: Sat, 31 Jul 2021 13:54:42 -0700 (PDT) Subject: [Gambas-user] UnitTest Functions Show Up in AutoGenerated help In-Reply-To: <66e65d03-0f17-1a8b-dc2f-790af64f9d4c@gmail.com> References: <1630740182.11177.1627600328448.JavaMail.zimbra@westwoodsvcs.com> <66e65d03-0f17-1a8b-dc2f-790af64f9d4c@gmail.com> Message-ID: <1692385426.11780.1627764882297.JavaMail.zimbra@westwoodsvcs.com> "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Jul 31, 2021, at 1:41 PM, Beno?t Minisini g4mba5 at gmail.com wrote: > Le 30/07/2021 ? 01:12, Brian G a ?crit?: >> In a component project that includes embedded help for module/classes >> and functions. >> Then the help system also shows all the unit test functions as well. >> >> Is there some way to turn this off? >> >> Or will it always expose the unit test functions to the user? >> It is a little confusing to see these functions in the help. >> >> >> "Failure is the key to success; >> ?each mistake teaches us something" ?.. Morihei Ueshiba >> Brian G >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > > I don't know. > > Is it be useful to have documentation comments inside the test classes? > If it is, then they must appear in the help tree browser. > > -- > Beno?t Minisini > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- It is very useful during the development of the component, But completely confusing to someone trying to use the component to develop another app. So when a component is built, we can tell the compiler not to include test modules for production builds? Or not show help/interface for test modules in production?