Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2015-07

Selectable desktops in Lazarus IDE

16 messages · 7 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Juha Manninen

I am happy to tell that Lazarus trunk now (r49514) supports desktop settings which can be saved and selected by user.
Also a "debug desktop" is supported.
This is brought to you by Ondrej Pokorny and myself. Please test.

Regards,
Juha

Reply by email

luiz americo pereira camara
to Juha Manninen
"Juha Manninen" wrote
I am happy to tell that Lazarus trunk now (r49514) supports desktop settings which can be saved and selected by user.

Can you elaborate a bit about the feature?

Luiz

Show quoted text 12 lines
Also a "debug desktop" is supported. This is brought to you by Ondrej Pokorny and myself. Please test. Regards, Juha -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150709/2fa43e3f/attachment.html>

Reply by email

Juha Manninen
to luiz americo pereira camara
luiz americo pereira camara wrote
Can you elaborate a bit about the feature?

Yes, sorry, I forgot to mention even where the GUI is. It can be opened from Tools -> Desktops ...
The idea is the same as Delphi has had for a long time. Their GUI is at the right side of main menu items, on top of the menubar. The cross-platform main menu in Lazarus would not allow putting it there, and it is not a good place anyway.
Ondrej noted that the Delphi's solution does not let you select desktops without mouse. The new Lazarus solution does because there is a new IDE command which can be mapped to a key combination.

So what belongs to a "desktop"? List of open IDE windows and their positions + sizes, IDE coolbar configuration, component palette configuration, editor toolbar configuration.
This feature also changed the format of environmentoptions.xml file. Settings belonging to a desktop are now under <desktop> tag. Reading the old format is supported obviously.

I think it pretty much solves this issue :
http://bugs.freepascal.org/view.php?id=21076

Regards,
Juha

Reply by email

Michael Van Canneyt
to Juha Manninen
Juha Manninen wrote 23 lines
On Thu, Jul 9, 2015 at 10:48 PM, luiz americo pereira camara wrote: > Can you elaborate a bit about the feature? Yes, sorry, I forgot to mention even where the GUI is. It can be opened from Tools -> Desktops ... The idea is the same as Delphi has had for a long time. Their GUI is at the right side of main menu items, on top of the menubar. The cross-platform main menu in Lazarus would not allow putting it there, and it is not a good place anyway. Ondrej noted that the Delphi's solution does not let you select desktops without mouse. The new Lazarus solution does because there is a new IDE command which can be mapped to a key combination. So what belongs to a "desktop"? List of open IDE windows and their positions + sizes, IDE coolbar configuration, component palette configuration, editor toolbar configuration. This feature also changed the format of environmentoptions.xml file. Settings belonging to a desktop are now under <desktop> tag. Reading the old format is supported obviously. I think it pretty much solves this issue : http://bugs.freepascal.org/view.php?id=21076

Nice job!

I can use this to change between GUI project layouts and web project layouts, where I don't need the object inspector etc.

Michael.

Reply by email

Juha Manninen
to Maxim Ganetsky
Maxim Ganetsky wrote
> I am happy to tell that Lazarus trunk now (r49514) supports desktop > settings which can be saved and selected by user. Looks good.

Thanks!

> Also a "debug desktop" is supported. What is "debug desktop"?

It should come into action automatically when you debug, just like in Delphi. Then you can keep Watches, Breakpoints, Assembly etc. windows open only while debugging. In fact I did not test the debug desktop much yet. It is Ondrej Pokorny's brain-child.

Juha

Reply by email

Graeme Geldenhuys
to Maxim Ganetsky: 09.07.2015 22:22, Juha Manninen ?????: Looks good. What is "debug desktop"? Maxim…
Maxim Ganetsky wrote
What is "debug desktop"?

An IDE layout where you have lots of debug windows open by default. For example: Call Stack, Breakpoints, Watches, CPU window etc.

Some IDE's automatically switch to the "debug desktop" when the application is run via the IDE, then switches back to the "development desktop" once debugging is complete. Very useful.

Regards,
- Graeme -

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/

Reply by email

FreeMan
to Juha Manninen: I am happy to tell that Lazarus trunk now (r49514) supports desktop settings which can be…

fpc r31199 lazarus r49517 osx yosemite qt64
- > I desegined my layout, save it, then for test click to "Close and use selected desktop" button I get "access violation" message.
- > suggestion, can add rename button and rename layout name thank you

Juha Manninen wrote 8 lines
I am happy to tell that Lazarus trunk now (r49514) supports desktop settings which can be saved and selected by user. Also a "debug desktop" is supported. This is brought to you by Ondrej Pokorny and myself. Please test. Regards, Juha

Reply by email

FreeMan
to FreeMan

bug issue #27741 still continue. Messages window, project inspector like Object inspector. I mean I change this form's bottom to screen bottom. When re start IDE all of them bottom moved up. I think this is decrease OS toolbar size, but my toolbar(in osx dock) on the side. IDE source windows work normal, All size and position load when last closed position and size.
regards

FreeMan wrote 15 lines
fpc r31199 lazarus r49517 osx yosemite qt64 - > I desegined my layout, save it, then for test click to "Close and use selected desktop" button I get "access violation" message. - > suggestion, can add rename button and rename layout name thank you On 09.07.2015 22:22, Juha Manninen wrote: > I am happy to tell that Lazarus trunk now (r49514) supports desktop > settings which can be saved and selected by user. > Also a "debug desktop" is supported. > This is brought to you by Ondrej Pokorny and myself. > Please test. > > Regards, > Juha

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150710/60017c2b/attachment.html>

Reply by email

Juha Manninen
to FreeMan: fpc r31199 lazarus r49517 osx yosemite qt64 - > I desegined my layout, save it, then for…
FreeMan wrote
fpc r31199 lazarus r49517 osx yosemite qt64 - > I desegined my layout, save it, then for test click to "Close and use selected desktop" button I get "access violation" message.

A backtrace please. The feature is tested on Linux and Windows, no access violations.

- > suggestion, can add rename button and rename layout name

Yes, the GUI can be improved. I think the selection of a desktop and the management of stored desktops should be separated. Selection is the most common operation after all.

Juha

Reply by email

FreeMan
to Juha Manninen
Juha Manninen wrote
A backtrace please. The feature is tested on Linux and Windows, no access violations.

Program received signal SIGSEGV, Segmentation fault. 0x00000001000821da in SETAUTOCREATEFORMS (parentfp=0x7fff5fbfecc0) at main.pp:4782
4782 if OldList.Count = AProject.TmpAutoCreatedForms.Count then (gdb) bt
#0 0x00000001000821da in SETAUTOCREATEFORMS (parentfp=0x7fff5fbfecc0) at main.pp:4782
#1 0x0000000100081e01 in DOPROJECTOPTIONSAFTERWRITE (this=0x107a501c0, SENDER=0x1174c8320, RESTORE=false) at main.pp:4813 #2 0x000000010006bda0 in DOAFTERWRITE (this=0x1174c8320, RESTORE=false) at ideoptionsintf.pas:816
#3 0x000000010066bf08 in _UPDATEEDITOROPTIONS (parentfp=0x7fff5fbfed70, AAFTER=true) at environmentopts.pp:2334
#4 0x000000010066be35 in USEDESKTOP (this=0x110db1db0, ADESKTOP=0x106ef6040) at environmentopts.pp:2344
#5 0x0000000100696114 in SHOWDESKTOPMANAGERDLG () at desktopmanager.pas:69 #6 0x00000001000806c6 in MNUTOOLMANAGEDESKTOPSCLICKED (this=0x107a501c0, SENDER=0x11671d900) at main.pp:4359 #7 0x0000000100448829 in MENUITEMCLICK (this=0x11671d900, SENDER=0x116734ec0) at menuintf.pas:576
#8 0x000000010044c511 in MENUITEMCLICK (this=0x11671d900, SENDER=0x116734ec0) at menuintf.pas:1652
#9 0x000000010023688b in CLICK (this=0x116734ec0) at include/menuitem.inc:84
#10 0x000000010023712a in DOCLICKED (this=0x116734ec0, MSG=0) at include/menuitem.inc:282
#11 0x00000001000123cd in SYSTEM$_$TOBJECT_$__$$_DISPATCH$formal () #12 0x00000001019644a8 in $$fpclocal$_ld22 ()
#13 0x0000000101963a78 in VMT_$MENUS_$$_TMENU ()
#14 0x0000000000000001 in ?? ()
#15 0x0000000000000006 in ?? ()
#16 0x00007fff5fbfef90 in ?? ()
#17 0x0000000116734ec0 in ?? ()
#18 0x0000000107be4480 in ?? ()
#19 0x0000000107900e50 in ?? ()
#20 0x0000000107be4480 in ?? ()
#21 0x000000010799ab40 in ?? ()
#22 0x0000000000000001 in ?? ()
#23 0x0000000100287813 in EVENTFILTER (this=0x115dcda50, SENDER=0x10799ab40, EVENT=0x107be4480) at qt/qtwidgets.pas:15394 #24 0x0000000103bb50d3 in QObject_hook::eventFilter(QObject*, QEvent*) () from /Library/Frameworks/Qt4Pas.framework/Versions/5/Qt4Pas #25 0x0000000106bf6ff7 in
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /Library/Frameworks/QtCore.framework/Versions/4/QtCore #26 0x0000000105cb0ade in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
from /Library/Frameworks/QtGui.framework/Versions/4/QtGui #27 0x0000000105cb4d68 in QApplication::notify(QObject*, QEvent*) () from /Library/Frameworks/QtGui.framework/Versions/4/QtGui #28 0x0000000106bf754c in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
from /Library/Frameworks/QtCore.framework/Versions/4/QtCore #29 0x0000000106bf8b00 in
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /Library/Frameworks/QtCore.framework/Versions/4/QtCore #30 0x0000000105c690c9 in
QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /Library/Frameworks/QtGui.framework/Versions/4/QtGui #31 0x0000000106bf9245 in
QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /Library/Frameworks/QtCore.framework/Versions/4/QtCore #32 0x0000000103b1e2b4 in QCoreApplication_processEvents () from /Library/Frameworks/Qt4Pas.framework/Versions/5/Qt4Pas #33 0x00000001001c5721 in APPWAITMESSAGE (this=0x107a00750) at qt/qtobject.inc:300
#34 0x0000000100057cbe in IDLE (this=0x107a00330, WAIT=true) at include/application.inc:405
---Type <return> to continue, or q <return> to quit---

Reply by email

Maxim Ganetsky
to Juha Manninen: Thanks! It should come into action automatically when you debug, just like in Delphi.…

10.07.2015 11:09, Juha Manninen ?????:

Show quoted text 16 lines
On Fri, Jul 10, 2015 at 2:28 AM, Maxim Ganetsky wrote: >> I am happy to tell that Lazarus trunk now (r49514) supports desktop >> settings which can be saved and selected by user. > > Looks good. Thanks! >> Also a "debug desktop" is supported. > > What is "debug desktop"? It should come into action automatically when you debug, just like in Delphi. Then you can keep Watches, Breakpoints, Assembly etc. windows open only while debugging. In fact I did not test the debug desktop much yet. It is Ondrej Pokorny's brain-child.

Great, then Russian translation is correct. :)

Thanks for the explanation.

Best regards, Maxim Ganetsky mailto:

Reply by email

Maxim Ganetsky
to Graeme Geldenhuys: An IDE layout where you have lots of debug windows open by default. For example: Call…

10.07.2015 11:11, Graeme Geldenhuys ?????:

Show quoted text 9 lines
On 2015-07-10 00:28, Maxim Ganetsky wrote: > What is "debug desktop"? An IDE layout where you have lots of debug windows open by default. For example: Call Stack, Breakpoints, Watches, CPU window etc. Some IDE's automatically switch to the "debug desktop" when the application is run via the IDE, then switches back to the "development desktop" once debugging is complete. Very useful.

Thanks for the explanation.

Best regards, Maxim Ganetsky mailto:

Reply by email

Ondrej Pokorny
to FreeMan: fpc r31199 lazarus r49517 osx yosemite qt64 - > I desegined my layout, save it, then for…
FreeMan wrote 22 lines
fpc r31199 lazarus r49517 osx yosemite qt64 - > I desegined my layout, save it, then for test click to "Close and use selected desktop" button I get "access violation" message. - > suggestion, can add rename button and rename layout name thank you On 09.07.2015 22:22, Juha Manninen wrote: > I am happy to tell that Lazarus trunk now (r49514) supports desktop > settings which can be saved and selected by user. > Also a "debug desktop" is supported. > This is brought to you by Ondrej Pokorny and myself. > Please test. > > Regards, > Juha -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

I fixed this issue and Juha already applied the patch in rev 49525. Please retest.

Ondrej

Reply by email