Recent

Author Topic: New VirtualTreeView for Lazarus  (Read 1091 times)

El Salvador

  • Full Member
  • ***
  • Posts: 112
New VirtualTreeView for Lazarus
« on: January 20, 2023, 11:48:53 pm »
Good morning everyone,

I have been working on the VirtualTreeview component for a few weeks now. Since it has not been maintained for several years (apart from the Lazarus team with some fixes and new code, see multiresolution of imagelists), I decided to try to update this component with code from the delphi version.

First, I started from the excellent work of Luiz Américo Pereira Câmara (https://github.com/blikblum/VirtualTreeView-Lazarus). I split the virtualtrees.pas unit into several files, similar to the original repo (https://github.com/JAM-Software/Virtual-TreeView) and merge the changes between the two versions.

Right now, most of the "new" code has been ported to the Lazarus port and I am slowly trying to test and fix bugs.

For now it remains just an experiment, although I would like to get to a stable and usable version. I'll leave you the link to the repo if you want to give me a hand or even take a look: https://github.com/salvadorbs/VirtualTreeView-Lazarus

Thank you all!

El Salvador

  • Full Member
  • ***
  • Posts: 112
Re: New VirtualTreeView for Lazarus
« Reply #1 on: January 26, 2023, 11:22:37 pm »
Is anyone interested in trying this version on GNU/Linux operating systems too, in order to find bugs to fix? Thanks!

af0815

  • Hero Member
  • *****
  • Posts: 1171
Re: New VirtualTreeView for Lazarus
« Reply #2 on: January 27, 2023, 08:36:09 am »
Are you in sync with master or V7_stable from JAM-Software ?
regards
Andreas

El Salvador

  • Full Member
  • ***
  • Posts: 112
Re: New VirtualTreeView for Lazarus
« Reply #3 on: January 27, 2023, 09:44:47 am »
Sync with master branch.

af0815

  • Hero Member
  • *****
  • Posts: 1171
Re: New VirtualTreeView for Lazarus
« Reply #4 on: January 27, 2023, 11:24:20 am »
First i found (win10/64 with win32 fpc & Lazarus), in the package there is a missing file (..\..\ideicons.lrs). It is only a remark, the package can be compiled.

I think it will be a good idea to write unittests for the new VTV Version. ANd this tests can be run on the other versions too. So it is possible to see if some problem happen.


regards
Andreas

GetMem

  • Hero Member
  • *****
  • Posts: 4031
Re: New VirtualTreeView for Lazarus
« Reply #5 on: January 27, 2023, 12:01:38 pm »
@ El Salvador
I'm also interested in this. Is there a list with the changes between our internal version and your fork? I'm mostly interested in new features.
Can you add High DPI support to your fork? It's really critical for Lazarus.
I'm also worried about the fact, that are to many version of VTV for Lazarus out there. It would be nice to merge all version together, if this even possible. Does Luiz still maintain his version?

wp

  • Hero Member
  • *****
  • Posts: 10676
Re: New VirtualTreeView for Lazarus
« Reply #6 on: January 27, 2023, 12:14:38 pm »
And to avoid the same work over and over again, I would suggest that you should try to get your and Luiz's changes into the official JAM-Software repository. If they would accept this it would be possible to get a Lazarus-compatible version already from the official repository.

El Salvador

  • Full Member
  • ***
  • Posts: 112
Re: New VirtualTreeView for Lazarus
« Reply #7 on: January 27, 2023, 12:27:13 pm »
Quote
First i found (win10/64 with win32 fpc & Lazarus), in the package there is a missing file (..\..\ideicons.lrs). It is only a remark, the package can be compiled.
Damn, I will add it. Thanks!

Quote
I'm also interested in this. Is there a list with the changes between our internal version and your fork?
No. The list would be almost endless (see {%H-}). You can see history of my work on https://github.com/JAM-Software/Virtual-TreeView/compare/master...salvadorbs:VirtualTreeView-Lazarus:master

Quote
Can you add High DPI support to your fork? It's really critical for Lazarus.
I started from the Luiz fork (see commit https://github.com/JAM-Software/Virtual-TreeView/commit/1c03fd4911d7a3aa180fb7fb0283be7b9cf9d41c#diff-20883d6eb30e7ad8cbc081ba333b7dbfb1b7539b2513e6adbece6fbc3ddd2725 with splitted and renamed source files) and then merged with the official one (perhaps there is still a little something missing, but I think a good 90% has been done). If HighDPI is present in Luiz's version, then mine will be as well (plus a few other upstream improvements).

Quote
Does Luiz still maintain his version?
Luiz has been accepting patches all the time lately, but I've never seen any maintenance work from him. I decided to directly fork the JamSoftware repo to have more freedom of working on github (initially the repo had been forked by Luiz's) and not to "contaminate" a good stable repo for FPC+Lazarus.

Quote
And to avoid the same work over and over again, I would suggest that you should try to get your and Luiz's changes into the official JAM-Software repository. If they would accept this it would be possible to get a Lazarus-compatible version already from the official repository.
I don't know if the current maintainer of VTV is willing to accept code for Lazarus into the original repo. Bearing in mind that certain modifications would create further code maintainability problems. And see https://github.com/JAM-Software/Virtual-TreeView/issues/641#issuecomment-462112820

Please note that my goal is also to get as close as possible to the Delphi version, while maintaining compatibility with FPC+Lazarus and cross platform/widgetset, as in Luiz's version. Just to be able to facilitate the synchronization of the Lazarus fork with the official one in the future.
« Last Edit: January 27, 2023, 06:35:58 pm by El Salvador »

GetMem

  • Hero Member
  • *****
  • Posts: 4031
Re: New VirtualTreeView for Lazarus
« Reply #8 on: January 27, 2023, 06:29:40 pm »
@ El Salvador
Thanks for the information.

eldonfsr

  • Sr. Member
  • ****
  • Posts: 360
Re: New VirtualTreeView for Lazarus
« Reply #9 on: January 28, 2023, 05:05:03 pm »
Yes i would like test and help if i can , thanks..

 

TinyPortal © 2005-2018