Re: [PATCH]{PUSHED]Trinity Desktop Environment (TDE) desktop integraton for LibreOffice
For the record... after a few iterations this was pushed as http://cgit.freedesktop.org/libreoffice/core/commit/?id=07b3d083b49b4cbb248b5ba0aeba2bbdd3cc487d Norbert On Sat, May 12, 2012 at 6:23 PM, Timothy Pearson kb9...@pearsoncomputing.net wrote: All, I have created a patch that enables Trinity Desktop Environment (TDE, the successor to KDE3.5.10) desktop integration for LibreOffice. The patch is based against a copy of the LibreOffice GIT pulled on 05/11/2012 and has been tested as fully functional on the latest TDE development sources (R14.0.0). This move is required for continued desktop integration support on TDE, as TDE has diverged significantly enough from the old KDE 3.5.10 release API that the KDE3 integration modules no longer function within TDE desktop sessions. Additionally, we would like to ability to repair minor imperfections noted within the integration modules, and potentially expand the integration module(s) where needed. The patch file is available in our GIT tree here: http://git.trinitydesktop.org/cgit/tde/tree/main/thirdparty/libreoffice/git_05_11_2012/patches/libreoffice-trinity.diff This patch incorporates feedback from my earlier patch attempt late last year, and avoids code duplication with the existing KDE 3.5 integration module as much as possible. Please let me know if you would like any additional information! Timothy Pearson Trinity Desktop Project ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Trinity Desktop Environment (TDE) desktop integraton for LibreOffice
All, I have created a patch that enables Trinity Desktop Environment (TDE, the successor to KDE3.5.10) desktop integration for LibreOffice. The patch is based against a copy of the LibreOffice GIT pulled on 05/11/2012 and has been tested as fully functional on the latest TDE development sources (R14.0.0). This move is required for continued desktop integration support on TDE, as TDE has diverged significantly enough from the old KDE 3.5.10 release API that the KDE3 integration modules no longer function within TDE desktop sessions. Additionally, we would like to ability to repair minor imperfections noted within the integration modules, and potentially expand the integration module(s) where needed. The patch file is available in our GIT tree here: http://git.trinitydesktop.org/cgit/tde/tree/main/thirdparty/libreoffice/git_05_11_2012/patches/libreoffice-trinity.diff This patch incorporates feedback from my earlier patch attempt late last year, and avoids code duplication with the existing KDE 3.5 integration module as much as possible. Please let me know if you would like any additional information! Timothy Pearson Trinity Desktop Project ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: [Libreoffice] Trinity Desktop Environment (TDE) desktop integraton for LibreOffice
On Sun, Oct 30, 2011 at 09:54:19PM -0500, Timothy Pearson wrote: The Trinity Desktop Project developers are willing to ensure that the TDE integration modules continues to function with new TDE releases. For that, I suppose the optimal way would be a http://bugs.freedesktop.org/ account to assign bugs to that module to. Maybe we could give it its own submodule in bugzilla so that this assignment is automatic? -- Lionel ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: [Libreoffice] Trinity Desktop Environment (TDE) desktop integraton for LibreOffice
On Monday 31 of October 2011, Timothy Pearson wrote: And I don't remember any reply to my questions, and I don't see anything changing since then, so they still stand: What are the reasons this is done as a huge copypaste s/KDE/TDE/ patch? Primarily so that we can start hacking on the TDE module without breaking the KDE3 module, and also if you look at the patch the Qt classnames have all been altered. The TDE developers are nearing the end of a yearlong project to convert TDE to use those class names, and as soon as the final transition is done the KDE3 module will be completely unbuildable, let alone usable, on TDE. If it's really only class name changes, then it's nothing that a couple of typedef's or #define's wouldn't solve. I have been discussing this with Michael Meeks, and basically if LibreOffice would rather we hack up the KDE3 module to work with TDE that is fine, but we will not be able to guarantee that our changes do not seriously break the module when used under KDE3. I have serious concerns about the maintainability of such code, including readability, I picked a file at random, vcl/unx/kde/salnativewidgets-kde.cxx, compared it with the TDE file from the patch, and if I ignore type name changes, the differences boil down to the attached a.patch, which is 2 changes of less than 20 lines in total, for a file that is 70k big. Second random file picked, just in case, fpicker/source/unx/kde/kdefilepicker.cxx , is pretty much identical (again minus the type name changes). In other words, to me it looks like it would have been much less work to create the TDE version by something like: foo-tde.cxx: #define BUILDING_TDE #define QApplication QTApplication ... #include foo-kde.cxx foo-kde.cxx: ... #ifdef BUILDING_TDE // or possibly even better #if TDE_IS_VERSION( 3,7,0 ) ... #endif ... speed of patch acceptance (due to offsite KDE3 tests most likely being mandatory), and how prone the code will be to accidental breakage. If you start taking care of the KDE3/TDE code, you'll more or less end up being the maintainer of it. People occassionally do a build fix or similar, I rarely do a bugfix when I find the time and/or somebody whines a lot, but that's about it I expect. I would assume that TDE still maintains some kind of backwards compatibility[*], so you should generally know whether your changes are safe or whether it's something new that needs an #ifdef (in which case the TDE_IS_VERSION check is needed anyway). If something slips through, it can get fixed when somebody notices. So I don't know the extent of the changes you plan in the code, but from what I can see there does not seem to be a good reason to have a special copy of the sources for TDE. [*] I still don't see it said anywhere if TDE maintains any API backwards compatibility with KDE3 or not. The configure checks in the patch search for KDE3/Qt3 names, so I would assume the answer is yes. If not, then at least that part of the patch is definitely wrong. -- Lubos Lunak l.lu...@suse.cz --- /home/llunak/build/src/libo/vcl/unx/kde/salnativewidgets-kde.cxx 2011-10-31 13:32:50.598155002 +0100 +++ a.cxx 2011-11-01 17:57:00.640561003 +0100 @@ -392,11 +395,7 @@ WidgetPainter::WidgetPainter( void ) m_pToolBarVert( NULL ), m_pToolButton( NULL ), m_pMenuBar( NULL ), - m_nMenuBarEnabledItem( 0 ), - m_nMenuBarDisabledItem( 0 ), m_pPopupMenu( NULL ), - m_nPopupMenuEnabledItem( 0 ), - m_nPopupMenuDisabledItem( 0 ), m_pProgressBar( NULL ) { } @@ -1923,7 +1922,17 @@ void KDESalFrame::UpdateSettings( AllSet aStyleSettings.SetFaceColor( aBack ); aStyleSettings.SetInactiveTabColor( aBack ); aStyleSettings.SetDialogColor( aBack ); -aStyleSettings.SetCheckedColorSpecialCase( ); +if( aBack == COL_LIGHTGRAY ) +aStyleSettings.SetCheckedColor( Color( 0xCC, 0xCC, 0xCC ) ); +else +{ +Color aColor2 = aStyleSettings.GetLightColor(); +aStyleSettings. +SetCheckedColor( Color( (BYTE)(((USHORT)aBack.GetRed()+(USHORT)aColor2.GetRed())/2), +(BYTE)(((USHORT)aBack.GetGreen()+(USHORT)aColor2.GetGreen())/2), +(BYTE)(((USHORT)aBack.GetBlue()+(USHORT)aColor2.GetBlue())/2) +) ); +} // Selection aStyleSettings.SetHighlightColor( toColor( qColorGroup.highlight() ) ); ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: [Libreoffice] Trinity Desktop Environment (TDE) desktop integraton for LibreOffice
If it's really only class name changes, then it's nothing that a couple of typedef's or #define's wouldn't solve. Agreed. I picked a file at random, vcl/unx/kde/salnativewidgets-kde.cxx, compared it with the TDE file from the patch, and if I ignore type name changes, the differences boil down to the attached a.patch, which is 2 changes of less than 20 lines in total, for a file that is 70k big. Second random file picked, just in case, fpicker/source/unx/kde/kdefilepicker.cxx , is pretty much identical (again minus the type name changes). In other words, to me it looks like it would have been much less work to create the TDE version by something like: foo-tde.cxx: #define BUILDING_TDE #define QApplication QTApplication ... #include foo-kde.cxx foo-kde.cxx: ... #ifdef BUILDING_TDE // or possibly even better #if TDE_IS_VERSION( 3,7,0 ) ... #endif Yes, you are are correct here as well. Now that I have been away from the problem for a little while I am starting to think this approach is best--when it does finally come time for KDE3.5.10 to die the combined integration module can live on, permanently latched into TDE mode. If you start taking care of the KDE3/TDE code, you'll more or less end up being the maintainer of it. People occassionally do a build fix or similar, I rarely do a bugfix when I find the time and/or somebody whines a lot, but that's about it I expect. Yep, quite familiar with this. :-) I would assume that TDE still maintains some kind of backwards compatibility[*], so you should generally know whether your changes are We don't explicitly guarantee it, but the core TDE codebase is large and stable enough that in practice there is a high degree of backwards compatibility. [*] I still don't see it said anywhere if TDE maintains any API backwards compatibility with KDE3 or not. The configure checks in the patch search for KDE3/Qt3 names, so I would assume the answer is yes. If not, then at least that part of the patch is definitely wrong. The include file names themselves have not been changed at this point; this is on a to-do wishlist for the project. Thanks for the input! Tim ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: [Libreoffice] Trinity Desktop Environment (TDE) desktop integraton for LibreOffice
Hi Timothy, On Sun, 2011-10-30 at 21:54 -0500, Timothy Pearson wrote: I have created a patch that enables Trinity Desktop Environment (TDE, the successor to KDE3.5.10) desktop integration for LibreOffice. The patch is based against a copy of the LibreOffice GIT pulled on 10/28/2011 and has been tested as fully functional on the latest TDE release (v3.5.13). Great ! :-) you managed to get past the vcl updates we did recently, which is good. This move is required for continued desktop integration support on TDE So - of course, we're interested in included your code, and supporting TDE. The only real question is: how best to do that in a clean and maintainable way - particularly as we start to change VCL more aggressively. as TDE has diverged significantly enough from the old KDE 3.5.10 release API that the KDE3 integration modules no longer function within TDE desktop sessions. Fine. Additionally, we would like to ability to repair minor imperfections noted within the integration modules, and potentially expand the integration module(s) where needed. Great. The Trinity Desktop Project developers are willing to ensure that the TDE integration modules continues to function with new TDE releases. Even better - it is already quite hard to test VCL changes that impact the backend, so the more we can share there the more easily we can keep your stuff building. The patch file is available in our GIT tree here: http://git.trinitydesktop.org/viewgit/index.php?a=treep=Trinity%20Desktop%20Environmenthb=HEADf=main/thirdparty/libreoffice/git_10_28_2011/patches So - my normal instinct here would be to merge your first patch immediately :-) and do a little dance as well. In this case, I think we need to consider maintainability quite carefully, and perhaps there are a few tricks here that we can do to reduce the amount of work and code duplication necessary to support TDE just as well. Lets discuss that privately with Lubos, but I think we can get this fixed up and merged for the 3.5 release (freeze is Dec 5th) quite easily. Thanks for your work ! Regards, Michael. -- michael.me...@suse.com , Pseudo Engineer, itinerant idiot ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: [Libreoffice] Trinity Desktop Environment (TDE) desktop integraton for LibreOffice
On Monday 31 of October 2011, Michael Meeks wrote: Hi Timothy, On Sun, 2011-10-30 at 21:54 -0500, Timothy Pearson wrote: I have created a patch that enables Trinity Desktop Environment (TDE, the successor to KDE3.5.10) desktop integration for LibreOffice. The patch is based against a copy of the LibreOffice GIT pulled on 10/28/2011 and has been tested as fully functional on the latest TDE release (v3.5.13). Great ! :-) you managed to get past the vcl updates we did recently, which is good. As a sidenote, no idea what you mean here. I don't think anything has significantly changed in the KDE3/4 vcl modules in the last year and they still work. The patch file is available in our GIT tree here: http://git.trinitydesktop.org/viewgit/index.php?a=treep=Trinity%20Deskto p%20Environmenthb=HEADf=main/thirdparty/libreoffice/git_10_28_2011/patch es So - my normal instinct here would be to merge your first patch immediately :-) and do a little dance as well. In this case, I think we need to consider maintainability quite carefully, and perhaps there are a few tricks here that we can do to reduce the amount of work and code duplication necessary to support TDE just as well. Lets discuss that privately with Lubos, but I think we can get this fixed up and merged for the 3.5 release (freeze is Dec 5th) quite easily. The original mail rings a bell ... http://lists.freedesktop.org/archives/libreoffice/2011-September/017515.html . And I don't remember any reply to my questions, and I don't see anything changing since then, so they still stand: What are the reasons this is done as a huge copypaste s/KDE/TDE/ patch? -- Lubos Lunak l.lu...@suse.cz ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: [Libreoffice] Trinity Desktop Environment (TDE) desktop integraton for LibreOffice
The original mail rings a bell ... http://lists.freedesktop.org/archives/libreoffice/2011-September/017515.html . And I don't remember any reply to my questions, and I don't see anything changing since then, so they still stand: What are the reasons this is done as a huge copypaste s/KDE/TDE/ patch? Primarily so that we can start hacking on the TDE module without breaking the KDE3 module, and also if you look at the patch the Qt classnames have all been altered. The TDE developers are nearing the end of a yearlong project to convert TDE to use those class names, and as soon as the final transition is done the KDE3 module will be completely unbuildable, let alone usable, on TDE. I have been discussing this with Michael Meeks, and basically if LibreOffice would rather we hack up the KDE3 module to work with TDE that is fine, but we will not be able to guarantee that our changes do not seriously break the module when used under KDE3. I have serious concerns about the maintainability of such code, including readability, speed of patch acceptance (due to offsite KDE3 tests most likely being mandatory), and how prone the code will be to accidental breakage. Does this help at all? I didn't see your original message so I apologize for the lack of a reply. Tim ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
[Libreoffice] Trinity Desktop Environment (TDE) desktop integraton for LibreOffice
All, I have created a patch that enables Trinity Desktop Environment (TDE, the successor to KDE3.5.10) desktop integration for LibreOffice. The patch is based against a copy of the LibreOffice GIT pulled on 10/28/2011 and has been tested as fully functional on the latest TDE release (v3.5.13). This move is required for continued desktop integration support on TDE, as TDE has diverged significantly enough from the old KDE 3.5.10 release API that the KDE3 integration modules no longer function within TDE desktop sessions. Additionally, we would like to ability to repair minor imperfections noted within the integration modules, and potentially expand the integration module(s) where needed. The Trinity Desktop Project developers are willing to ensure that the TDE integration modules continues to function with new TDE releases. The patch file is available in our GIT tree here: http://git.trinitydesktop.org/viewgit/index.php?a=treep=Trinity%20Desktop%20Environmenthb=HEADf=main/thirdparty/libreoffice/git_10_28_2011/patches Let me know if you would like any additional information! Timothy Pearson Trinity Desktop Project ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice