Results 1 to 17 of 17

Thread: announce: qmdilib 0.0.1

  1. #1
    Join Date
    Jan 2006
    Posts
    368
    Thanks
    14
    Thanked 18 Times in 17 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default announce: qmdilib 0.0.1

    Hi all,

    I would like to announce the first official release of qmdilib.

    This is a simple mdi library for Qt 4. The goal of this project,
    is to provide an easy way to modifying menus and toolbars of windows
    on demand. This can be used to present different menus and toolbars to
    widgets inside a QTabWidget, hiding or showing a different set of menus
    on demand or even enabling a small plugin system.

    The library is fully documented, and contains some demostrations. It should compile
    flawlessly (no warnings) with a single "qmake; make" on the root directory of the
    project. It is known to work on Windows and Linux, and there is no reason why it
    should not work on other platforms supported by Qt4. Currently only gcc is tested,
    but other compilers should be able to compile this library.

    The library contains a small documentation, and 2 demos (ignore the 3rd one... )

    The code can be downloaded from:
    http://kde-apps.org/content/show.php?content=40721

    Enjoy!

  2. #2
    Join Date
    Jan 2006
    Location
    travelling
    Posts
    1,116
    Thanks
    8
    Thanked 127 Times in 121 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: announce: qmdilib 0.0.1

    hi elcuco,

    I wondered how much time it would take to announce it.
    I haven't looked at the source yet but from what I already know and I read at KDE-apps.org it's quite good but need improvements, particularly an use of the already existing MDI framework of Qt4 (I'm talking about QWorkspace). BTW feel free to get some inspiration from the last version of Edyuk which, as you already know, use a modified version of qmdilib mixed with QWorkspace...

    I have to mention the only drawback I found : you can't mix translations, qmdilib and plugins... Indeed it looks like translators doesn't have effect on plugins; it must be due to the way the Trolls implemeted translation (too much context informations... )

    Quote Originally Posted by elcuco
    Enjoy!
    I second this!!!
    Current Qt projects : QCodeEdit, RotiDeCode

  3. #3
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,363
    Thanks
    3
    Thanked 5,012 Times in 4,791 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: announce: qmdilib 0.0.1

    Quote Originally Posted by fullmetalcoder
    Indeed it looks like translators doesn't have effect on plugins; it must be due to the way the Trolls implemeted translation (too much context informations... )
    I think that there is no reason for it not to work if your plugins make sure that its translations are installed in the translator object.

  4. #4
    Join Date
    Jan 2006
    Location
    travelling
    Posts
    1,116
    Thanks
    8
    Thanked 127 Times in 121 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: announce: qmdilib 0.0.1

    I think that there is no reason for it not to work if your plugins make sure that its translations are installed in the translator object.
    And that is the problem! I can't do a translation for any language and any possible plugin... The problem is that qmdilib uses string to identify menus and modify them. If I want these menu to be tranlatable I put a tr() around their name, huh? but what happens if a plugin doesn't bring a translation in the same language (and the same translation for the menu or toolbar titlle)? Then two menu get created and that's very wrong!!! I'm thinking about using phrasebooks instead of regular .ts and .qm but I don't know how to load them properly in the translator... Plus I'm too lazy to create them "by hand" with Qt Linguist so I'll need to create another program : ts2qph to take existing data in a .ts file and create the appropriate .qch... Bunch of work, isn't it?
    Current Qt projects : QCodeEdit, RotiDeCode

  5. #5
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,363
    Thanks
    3
    Thanked 5,012 Times in 4,791 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: announce: qmdilib 0.0.1

    Quote Originally Posted by fullmetalcoder
    And that is the problem! I can't do a translation for any language and any possible plugin... The problem is that qmdilib uses string to identify menus and modify them. If I want these menu to be tranlatable I put a tr() around their name, huh? but what happens if a plugin doesn't bring a translation in the same language (and the same translation for the menu or toolbar titlle)? Then two menu get created and that's very wrong!!! I'm thinking about using phrasebooks instead of regular .ts and .qm but I don't know how to load them properly in the translator... Plus I'm too lazy to create them "by hand" with Qt Linguist so I'll need to create another program : ts2qph to take existing data in a .ts file and create the appropriate .qch... Bunch of work, isn't it?
    No, not at all... I don't see a problem here. If you control items by their original (untranslated) names, you won't get duplicates. There is a nice example on doing it at the level of loading language names based on the translation of the word "English" in Gui Programming With Qt3.

  6. #6
    Join Date
    Jan 2006
    Location
    travelling
    Posts
    1,116
    Thanks
    8
    Thanked 127 Times in 121 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: announce: qmdilib 0.0.1

    And where could I find this example, I mean for free? Are you sure it will help in my case since I'm using : Qt4, homemade mdi-library, plugins ??
    Current Qt projects : QCodeEdit, RotiDeCode

  7. #7
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,363
    Thanks
    3
    Thanked 5,012 Times in 4,791 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: announce: qmdilib 0.0.1

    Look at our links section, there is a link to the book there.

  8. #8
    Join Date
    Jan 2006
    Location
    travelling
    Posts
    1,116
    Thanks
    8
    Thanked 127 Times in 121 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: announce: qmdilib 0.0.1

    Quote Originally Posted by wysota
    Look at our links section, there is a link to the book there.
    Sure of that? I didn't find it!
    Current Qt projects : QCodeEdit, RotiDeCode

  9. #9
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,363
    Thanks
    3
    Thanked 5,012 Times in 4,791 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: announce: qmdilib 0.0.1

    Quote Originally Posted by fullmetalcoder
    Sure of that? I didn't find it!
    No, I'm not, Jacek cares about the section, I was sure the link was there. If it's not, use google or even search the forum, the book was surely referenced more than once.

  10. #10
    Join Date
    Jan 2006
    Posts
    368
    Thanks
    14
    Thanked 18 Times in 17 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: announce: qmdilib 0.0.2-pre

    Hi,

    I update the library to V0.0.2. Now most flicker issues have been resolved. I added some demos which explain how to build the code into static and dynamic libraries (at least on Linux).

    The code has not been tested very much, this is why I am calling it "pre".

    http://kde-apps.org/content/show.php?content=40721

  11. #11
    Join Date
    Jan 2006
    Posts
    368
    Thanks
    14
    Thanked 18 Times in 17 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: announce: qmdilib 0.0.1

    The released version is now 0.0.2, on the last post it was a pre release.

    The code should work also on win32 now.

  12. #12
    Join Date
    Jan 2006
    Posts
    368
    Thanks
    14
    Thanked 18 Times in 17 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: announce: qmdilib 0.0.1

    I just released version 0.0.3 now. The changelog is:

    • new feature: QWorkspace children are also checked for qmdiClient interface,
      feature coded by Nox PasNox <pasnox@gmail.com>
    • new feature: merge point for qmdiActionGroup
    • new class: qmdiWorkspace, a qmdiServer based on QWorkspace
    • core refactoring: qmdiClient does not contain QObject *self any more
    • code refactoring: qmdiServer now contains a pointer to the host (was in qmdiTabWidget)
    • code refactoring: demos should be easier to read, and hopefully maintain
    • removed most internal frames from all widgets in demos, the demos will look nicer
    • all the documentation has been spell checked


    You can get the source as usual at:
    http://kde-apps.org/content/show.php?content=40721

  13. #13
    Join Date
    Jan 2006
    Location
    travelling
    Posts
    1,116
    Thanks
    8
    Thanked 127 Times in 121 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: announce: qmdilib 0.0.1

    Do you plan do provide integration, as every lib should IMHO ? I basically mean :
    * An "install" target
    * A feature file (.prf) so that using qmdilib would be as simple as : "CONFIG += qmdilib"
    Current Qt projects : QCodeEdit, RotiDeCode

  14. #14
    Join Date
    Jan 2006
    Posts
    368
    Thanks
    14
    Thanked 18 Times in 17 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: announce: qmdilib 0.0.1

    Version 0.0.4 is released. The Changelog is:

    0.0.4 - 29 Jun 2007 - Diego Iastrubni
    * Documentation re-created using doxygen 1.4.7
    * code refactoring: qmdiClient - qmdiServer is now a public member
    * new feature: qmdiActionGroup - added support for submenus
    * new feature: qmdiActionGroup - added support for adding QActionGroup
    * new feature: qmdiActionGroup - merge points are computed at run time from list of added groups
    * code refactoring: qmdiHost - updateGUI can has been updated, see documentation
    * code refactoring: qmdiServer - a lot of functions moved from qmdiTabWidget
    * code refactoring: qmdiTabWidget contains less implementation details (see qmdiServer)
    * code refactoring: qmdiTabBar has been removed, qmdiTabWidget uses an event filter now
    * new demo: plugin demo is working now, soon to be ported to the main library

    Code can be downloaded from: http://qt-apps.org/content/show.php/...?content=61365

  15. #15
    Join Date
    Jan 2006
    Posts
    368
    Thanks
    14
    Thanked 18 Times in 17 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Smile Re: announce: qmdilib 0.0.1

    I am working on version 0.0.5, and I am releasing a developer snapshot. Meanwhile the code is extended a little and the license is now LGPL 2/3.

    This is the changelog so far
    • code is released now under a dual license: (L)GPL 2 or 3
    • code refactoring: qmdiClient::mdiClientFileName() should be used instead of old "filename"
    • code refactoring: qmdiClient::name has been renamed to qmdiClient::mdiClientName
    • code refactoring: include files for qmdiActionGroup and qmdiActionGroupList changed from
      "actiongroup.h" and "actiongrouplist.h" into "qmdiactiongroup.h" and qmdiactiongrouplist.h"
      Transitional includes have been added, to be removed next version, please update your code
    • new feature: qmdiClients are notified of (un)merged from a host
    • new feature: qmdiTabWidget will hide the tabbar if the number of tabs is less then 2
    • new feature: when qmdiHost adds a qmdiClient if that client is also a widget, add it's menus+toolbars actions to the widget.
    • new feature: you can tell qmdiHost not to update it's GUI by changing qmdiHost::updateMenusAndToolBars


    The plugin demo is more functional in this development snapshot but still not at the level I want it to be, this is one of my focuses for the 0.0.5 version. I hope to get also QScript plugins, and whatever more I find it needed.

    I have not uploaded the file to kde-apps not qt-apps, so you can download the code from the projects GoogleCode page: http://qtedit4.googlecode.com/files/qmdilib-r304.tar.gz

    Edit:
    It would be a good idea to link to a page which describes what this project is... Here is the documentation page of this project (more documentation is available in the downloaded file): http://code.google.com/p/qtedit4/wiki/qmdilib
    Last edited by elcuco; 26th October 2008 at 01:09. Reason: updated contents

  16. #16
    Join Date
    May 2011
    Posts
    6
    Qt products
    Qt4
    Platforms
    Unix/X11

    Default Converting Qt translation files into phrase books

    Quote Originally Posted by fullmetalcoder View Post
    Plus I'm too lazy to create them "by hand" with Qt Linguist so I'll need to create another program : ts2qph to take existing data in a .ts file and create the appropriate .qch... Bunch of work, isn't it?
    Just in case someone's looking for such a tool, it already exists and is included in Qt since Qt 4.5. Its name is lconvert.
    $> lconvert --input-file my.ts --input-format ts --output-file my.qph --output-format qph

    hints to get there: ts2qph qph2ts tstoqph qphtots ts2pbk pbk2ts tstopbk pbktots

    Cheers,
    Last edited by alxobr; 19th June 2011 at 17:29. Reason: make reference easier to find

  17. #17
    Join Date
    Jan 2006
    Posts
    368
    Thanks
    14
    Thanked 18 Times in 17 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Cool qmilib version 0.0.5

    Version 0.0.5 is released: https://github.com/elcuco/qmdilib/releases/tag/v0.0.5

    Note that the code is now in github. The "binary" there contains the code, and a doxygen build of the documentation (besides that - the zip from github should be the same). Yes, more than 12 years developing this library... man, I feel old. BTW: the original releases are here: https://www.linux-apps.com/content/s...?content=40721 or https://www.linux-apps.com/content/s...?content=61365, but I cannot reset the password (kde-apps.org and qt-apps.org merged, who knew..). If anyone can help with that - I will be happy.

    Changelog is

    • code is released now under a dual license: (L)GPL 2 or 3
    • code refactoring: qmdiClient::mdiClientFileName() should be used instead of
      old "filename"
    • code refactoring: qmdiClient::name has been renamed to qmdiClient::mdiClientName
    • code refactoring: include files for qmdiActionGroup and qmdiActionGroupList changed
      from "actiongroup.h" and "actiongrouplist.h" into "qmdiactiongroup.h" and qmdiactiongrouplist.h"
      Transitional includes have been added, to be removed next version, please update your code
    • code refactoring: qmdiActionGroupList::updateMenu() is deprecated, use
      qmdiActionGroupList::updateMenuBar()
    • core refactoring: no need to pass the parnet on the constructor, instead the
      qmdiTabWidget and qmdiWorkspace will check for the mdi host when mdiClients
      are added
    • new feature: qmdiClients are notified of (un)merged from a host
    • new feature: qmdiTabWidget will hide the tabbar if the number of tabs is less
      then 2 widgets
    • new feature: when qmdiHost adds a qmdiClient if that client is also a widget,
      add it's menus+toolbars actions to the widget.
    • new feature: you can tell qmdiHost not to update it's GUI by changing
      qmdiHost::updateMenusAndToolBars
    • new feature: you can convert a qmdiActionGroupList to a single popup menu
    • build system: redesign the build system to ease the usage of the library inside your application
    • build system: building by default shared and static libraries
    Last edited by elcuco; 28th August 2018 at 09:30. Reason: Update BB code

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.