Re: [Qt-jambi-interest] potential build environment issues (was: cant get qtjambi 4.6+ working on linux, UnsatisfiedLinkError)

2010-10-12 Thread Gregor Mückl
Hi!

This is a puzzling issue related to the GCC version used to build the Qt 
libraries. For each version of GCC there is a corresponding version of the C++ 
runtime library that must be present on the target system.

Specifically, on the system that produced the log you provided, libc.so.6 is 
either missing (very unlikely) or too old (mildly surprising) for the binaries 
shipped with Qt Jambi.

That this problem occurred with Qt Jambi 4.6.x and newer is related to the fact 
that the build environment had to be rebuilt from scratch after Qt Jambi was 
discontinued by Trolltech. Everything up to Qt Jambi 4.5.x was built by 
Trolltech on an archaic kubuntu system (I think it was 4.04 or 5.04 or so) for 
compatibility reasons. 

What distribution is used to build the current binary releases? It might be 
wise to choose an older one for that purpose in the future.

Regards,
Gregor

 Original-Nachricht 
 Datum: Tue, 12 Oct 2010 14:17:49 +0200
 Von: Thomas Amland thomas.aml...@gmail.com
 An: qt-jambi-interest@trolltech.com
 Betreff: [Qt-jambi-interest] cant get qtjambi 4.6+ working on linux,  
 UnsatisfiedLinkError

 I got this odd thing going on i cant figure out why is happening. This is
 my
 system:
 Linux user-desktop 2.6.31-22-generic #65-Ubuntu SMP Thu Sep 16 16:21:34
 UTC
 2010 x86_64 GNU/Linux
 java version 1.6.0_20
 Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
 Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
 
 which is clearly 64-bit. But for some reason the qtjambi 64-bit doesnt
 work
 (stacktrace below) and the 32-bit version does! This applies to
 4.7.0beta2,
 4.6.x, but NOT 4.5 and 4.4
 
 
 Just to be sure i tried it on a different machine:
 Linux  2.6.32.21-168.fc12.x86_64 #1 SMP Wed Sep 15 16:12:07 UTC 2010
 x86_64 x86_64 x86_64 GNU/Linux
 java version 1.6.0_20
 Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
 Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
 
 ..and here its opposite. Only 64-bit works, as expected.
 Any ideas whats going on?
 
 
 
 $ ./qtjambi.sh
 Exception in thread main java.lang.ExceptionInInitializerError
 at com.trolltech.qt.gui.QWidget.clinit(QWidget.java:18)
 Caused by: java.lang.RuntimeException: Loading library failed, progress so
 far:
 Unpacking .jar file: 'qtjambi-linux64-gcc-4.6.3.jar'
 Checking Archive 'qtjambi-linux64-gcc-4.6.3.jar'
  - cache key='gcc-20100620-2121'
  - adding 'libstdc++.so.6' to library map
  - library: name='lib/libstdc++.so.6',
  - adding 'libQtCore.so.4' to library map
  - library: name='lib/libQtCore.so.4',
  - adding 'libQtGui.so.4' to library map
  - library: name='lib/libQtGui.so.4',
  - adding 'libQtXml.so.4' to library map
  - library: name='lib/libQtXml.so.4',
  - adding 'libQtSql.so.4' to library map
  - library: name='lib/libQtSql.so.4',
  - adding 'libQtSvg.so.4' to library map
  - library: name='lib/libQtSvg.so.4',
  - adding 'libQtHelp.so.4' to library map
  - library: name='lib/libQtHelp.so.4',
  - adding 'libQtScript.so.4' to library map
  - library: name='lib/libQtScript.so.4',
  - adding 'libQtScriptTools.so.4' to library map
  - library: name='lib/libQtScriptTools.so.4',
  - adding 'libQtMultimedia.so.4' to library map
  - library: name='lib/libQtMultimedia.so.4',
  - adding 'libQtNetwork.so.4' to library map
  - library: name='lib/libQtNetwork.so.4',
  - adding 'libQtOpenGL.so.4' to library map
  - library: name='lib/libQtOpenGL.so.4',
  - adding 'libQtWebKit.so.4' to library map
  - library: name='lib/libQtWebKit.so.4',
  - adding 'libQtXmlPatterns.so.4' to library map
  - library: name='lib/libQtXmlPatterns.so.4',
  - adding 'libphonon.so.4' to library map
  - library: name='lib/libphonon.so.4',
  - adding 'libQtDBus.so.4' to library map
  - library: name='lib/libQtDBus.so.4',
  - library: name='plugins/phonon_backend/libphonon_gstreamer.so', never
 load
  - library: name='plugins/imageformats/libqjpeg.so', never load
  - library: name='plugins/imageformats/libqgif.so', never load
  - library: name='plugins/imageformats/libqmng.so', never load
  - library: name='plugins/imageformats/libqtiff.so', never load
  - library: name='plugins/imageformats/libqsvg.so', never load
  - library: name='plugins/iconengines/libqsvgicon.so', never load
  - library: name='plugins/codecs/libqcncodecs.so', never load
  - library: name='plugins/codecs/libqjpcodecs.so', never load
  - library: name='plugins/codecs/libqkrcodecs.so', never load
  - library: name='plugins/codecs/libqtwcodecs.so', never load
  - library: name='plugins/accessible/libqtaccessiblewidgets.so', never
 load
  - library: name='plugins/sqldrivers/libqsqlite.so', never load
  - adding 'libqtjambi.so' to library map
  - library: name='lib/libqtjambi.so',
  - adding 'libcom_trolltech_qt_core.so' to library map
  - library: name='lib/libcom_trolltech_qt_core.so',
  - adding 'libcom_trolltech_qt_gui.so' to library map
  - library: name='lib/libcom_trolltech_qt_gui.so',
  - adding 'libcom_trolltech_qt_xml.so' 

Re: [Qt-jambi-interest] getting a gl3 context

2010-10-08 Thread Gregor Mückl
Hi!

Qt Jambi really requires JOGL as an interface to OpenGL itself, as this is out 
of the scope of Qt. There exists another set of bindings called LWJGL that can 
probably used instead of JOGL, but there is no way to do OpenGL rendering with 
Qt Jambi alone.

I just printed the GL version string returned by a QGLWidget-created OpenGL 
context and it is reported as 4.0.0 NVIDIA 256.40 (on Linux). So at least in 
that combination, no dedicated setup code is required for OpenGL 3.x or higher. 
However, I cannot test on ATI hardware/drivers. 

From experience I know that if such a high version number is reported, the 
functionality is also truly there, so the nVidia driver isn't flat-out lying. 
But you only get backward-compatible contexts that way, not forward-compatible 
ones.

I'm curious whether you can confirm that behavior.

Regards,
Gregor

 Original-Nachricht 
 Datum: Fri, 8 Oct 2010 07:57:20 -0700
 Von: Josh Stratton strattonbra...@gmail.com
 An: Samu Voutilainen s...@smar.fi
 CC: qt-jambi-interest@trolltech.com
 Betreff: Re: [Qt-jambi-interest] getting a gl3 context

 It was my understanding that QtJambi required JOGL to use OpenGL
 rendering.  If this is not the case, I would absolutely be thrilled,
 but I've only seen examples where JOGL is used alongside QtJambi (like
 the link below).
 
 http://hoheinzollern.wordpress.com/2009/03/21/off-screen-rendering-with-qtjambi-jogl/
 
 Without including the JOGL libraries, I was hitting import errors
 saying things like GLProfile weren't found (which is indeed a JOGL
 class).  Also using the code I provided and using a GL2 context,
 QtJambi seems to work fine.  If there are any QtJambi/OpenGL examples
 out there that don't require JOGL, I would be very happy to not have
 to include the JOGL libraries anymore.
 
 Thanks, Josh
 
 On Fri, Oct 8, 2010 at 1:03 AM, Samu Voutilainen s...@smar.fi wrote:
  On torstai 07 lokakuu 2010 20:40:02 Josh Stratton wrote:
  I'm having some difficulty getting a GL3 context now that I've
  switched to QtJambi.  When casting my gl object to GL using getGL3, it
  throws the error javax.media.opengl.GLException: Not a GL3
  implementation.
 
  This is my original code when I was using swing...
  GLProfile profile = GLProfile.get(GLProfile.GL3)
  GLCapabilities glCaps = new GLCapabilities(profile)
  glCaps.setPBuffer(true)
  GLPBuffer pbuffer =
  GLDrawableFactory.getFactory(profile).createGLPbuffer(glCaps,
 
         new DefaultGLCapabilitiesChooser(),
 
         1, 1, null)
  canvas = new GLCanvas(glCaps, new DefaultGLCapabilitiesChooser(),
  PanelGL.pbuffer.getContext(), null)
 
  Switch to QtJambi, I have the following code:
 
 
      GLProfile profile = GLProfile.get(GLProfile::GL3)
      GLCapabilities glCaps = GLCapabilities.new(profile)
      glCaps.setPBuffer(true)
      factory = GLDrawableFactory.getFactory(profile)
      ctx = factory.createExternalGLContext
      gl = ctx.getGL.getGL3
 
  This last line throws an error.  I've seen this page
  (http://www.javagaming.org/index.php?action=printpage;topic=21064.0),
  which solves the issue, but it's passing something to a GLCanvas
  constructor, which is swing.  Is there an equivalent setup in QtJambi
  to get me a GL3 object?
  ___
  Qt-jambi-interest mailing list
  Qt-jambi-interest@trolltech.com
  http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest
 
  Do I misinterpret this, but are you trying to mix up pure Java objects
 with Qt
  Jambi objects?
 
  Qt has its own OpenGL module, QtOpenGL, can’t you use it?
 
  There is a bridge which should allow bridging AWT widgets and Jambi
 widgets,
  butI don’t know if it can cope with Swing types. Most likely no.
  http://qt.gitorious.org/qt-jambi/community-qtjambi-awtbridge
 
  ___
  Qt-jambi-interest mailing list
  Qt-jambi-interest@trolltech.com
  http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest
 
 
 ___
 Qt-jambi-interest mailing list
 Qt-jambi-interest@trolltech.com
 http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest

-- 
GRATIS! Movie-FLAT mit über 300 Videos. 
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome


-- 
GMX DSL Doppel-Flat ab 19,99 euro;/mtl.! Jetzt auch mit 
gratis Notebook-Flat! http://portal.gmx.net/de/go/dsl
___
Qt-jambi-interest mailing list
Qt-jambi-interest@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest


Re: [Qt-jambi-interest] how to add a '+' or 'x' to the Tab bar ?

2010-09-28 Thread Gregor Mückl
 Original-Nachricht 
 Datum: Tue, 28 Sep 2010 03:02:06 -0700 (PDT)
 Von: go canal goca...@yahoo.com
 An: qt-jambi-interest@trolltech.com
 Betreff: [Qt-jambi-interest] how to add a \'+\' or \'x\' to the Tab bar ?

 Hi,
 Would like to know how to add a '+' or 'x' to the tab bar. Ideally I want
 to add 
 image button at the right most position of the tab bar together with a
 title. If 
 I click '+', then a new tab is created; 'x' to close the current tab.
  thanks,
 canal
 
 
 
   

Hi!

Have looked at QTabWidget#setCornerWidget? That seems to do exactly what you 
want. If you don't use a complete QTabWidget, but only a QTabBar, I'd suggest 
you put that tab bar and your widgets inside a common parent layout or widget 
to place them side by side.

Regards,
Gregor
-- 
GMX DSL SOMMER-SPECIAL: Surf  Phone Flat 16.000 für nur 19,99 Euro/mtl.!*
http://portal.gmx.net/de/go/dsl


-- 
Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief!  
Jetzt De-Mail-Adresse reservieren: http://portal.gmx.net/de/go/demail
___
Qt-jambi-interest mailing list
Qt-jambi-interest@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest


[Qt-jambi-interest] Availability of new official builds?

2009-11-09 Thread Gregor Mückl
Hi!

I am asking this because I am unsure about the status in which Qt Jambi support 
is now within Nokia. Are you going to provide any new builds or is 4.5.2_01 the 
last official build that we are going to see from Nokia?

The reason is that I don't have the resources to build Qt Jambi for all 
platforms that Moonlight|3D runs on (or could run on, for that matter). My 
guess is that others on this list have similar problems.

The build systems for all of these platforms will have to be recreated, too. So 
could you give us some information on what you use for that (what operating 
system/distribution/compiler/special modifications)? Especially on Linux it 
seems to me that you can easily create C++ binaries that are not compatible 
across distributions.

Regards,
Gregor

PS: I haven't been able to keep track of all the discussions on this list 
lately. If some of these questions have been answered already, I'm sorry.

-- 
Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3.5 -
sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser
___
Qt-jambi-interest mailing list
Qt-jambi-interest@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest


Re: [Qt-jambi-interest] [RFC - community-port-to-4.6] Add a build dependency on ant-contrib (was Re: Status report on the build system)

2009-10-16 Thread Gregor Mückl
Hi,

I am not a lawyer, but I'll give it a try. The catch is in the definition of 
Source Code in the LGPL.  Quote:

Source code for a work means the preferred form of the work for making 
modifications to it. For a library, complete source code means all the source 
code for all modules it contains, plus any associated interface definition 
files, plus the scripts used to control compilation and installation of the 
library. 

Build scripts are part of the source code by this definition. Including 
ant-contrib.jar would make this file part of the build scripts and therefore 
part of the Qt Jambi source. Weird, but it says so.

A Qt Jambi that is licensed as GPL (again! Nokia relaxed this just a while ago, 
remember?) is a major step backwards for me and my project(s).

Now the much more interesting question is: if ant-contrib is only a build time 
dependency that is not included in the source code of Qt Jambi, is (a) the 
distributed source code in violation of the requirement of being the full 
Source Code according to the LGPL and (b) would this need to change the 
license of Qt Jambi also?

Francis, the FSF gives quite good (and reasonable) advice on the interpretation 
of their licenses in matters like this. Maybe you could ask them for 
clarification? A simple email is enough.

Regards,
Gregor

 Original-Nachricht 
 Datum: Fri, 16 Oct 2009 14:22:30 +0200
 Von: Tom Schindl lis...@bestsolution.at
 An: Eskil Abrahamsen Blomfeldt eblom...@trolltech.com
 CC: qt-jambi-interest@trolltech.com
 Betreff: Re: [Qt-jambi-interest] [RFC - community-port-to-4.6] Add a build 
 dependency on ant-contrib (was Re: Status report on the build  system)

 Hi,
 
 How could a build *dependency* affect the license of the resulting binary?
 
 Tom
 
 Eskil Abrahamsen Blomfeldt schrieb:
  Francis Galiegue skrev:
  As I understand it, the community-port-to-4.6 branch is dedicated to
  the community. I therefore propose that the next-to-come
  qt-jambi-4.6.x depend on ant-contrib for the build process. Should the
  consensus turn out to be in favor of integrating it, I stress out the
  fact that I'll start integrating ant-contrib ONLY when I'm done with
  the build branch.

  
  If you are actually considering physically integrating the 
  ant-contrib.jar-file like before, please bear in mind the consequences 
  for the licensing of Qt Jambi. Ant-contrib is licensed under the Apache 
  license, which I believe is a GPL3-compatible license, but incompatible 
  with LGPL and GPL2. I may be wrong about this, but as far as I could 
  see, this is the case. Any user of Qt Jambi who currently depends on 
  either LGPL or GPL2 will thus not be able to use this branch of Qt 
  Jambi, as the new branch would have to be licensed under GPL version 3.
  
  The bottom line is that commercial users of Qt Jambi will not be able to
  upgrade to the community version and therefore not to Qt 4.6, which I 
  would consider a significant downside.
  
  As long as ant-contrib is available on all supported platforms, I don't 
  mind adding a dependency on it for the community version, but I would 
  vote against adding the actual .jar-file to the repository.
  
  -- Eskil
  
  
  
  
  ___
  Qt-jambi-interest mailing list
  Qt-jambi-interest@trolltech.com
  http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest
 
 ___
 Qt-jambi-interest mailing list
 Qt-jambi-interest@trolltech.com
 http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest

-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01
___
Qt-jambi-interest mailing list
Qt-jambi-interest@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest


Re: [Qt-jambi-interest] Using non-standard classloader

2009-08-26 Thread Gregor Mückl
On Wednesday 26 August 2009, Helge Fredriksen wrote:
 Hello!

 Is it possible to use a proprietary class loader with QtJambi?

 Regards,
 Helge F.
 ___
 Qt-jambi-interest mailing list
 Qt-jambi-interest@trolltech.com
 http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest

Hi!

As far as I understand the issues that I had, it would be possible to use Qt 
Jambi with proprietary classloaders if Qt Jambi could actually resolve all 
classes that are derived from QObject. So the trick is to make Qt jambi use a 
ClassLoader with a classpath that contains all QObject derived classes.

The code to obtain a reference to a ClassLoader inside Qt Jambi is 
quite complex and I am not completely sure if I traced it correctly. But it 
seems to me that  Qt Jambi goes straight to a new instance of 
java.lang.ClassLoader for its queries, which actually acts as a simple 
forwarder to the system-wide classloader that is used at application startup.

Now, if you look at the documentation for ClassLoader#getSystemClassLoader() 
in the JDK reference, you will find that you can make the runtime use a non-
standard classloader if you set the property java.system.class.loader right at 
startup. So this is a mechanism that would allow you slip in your custom 
ClassLoader, but at a cost: virtually every other ClassLoader ends up 
forwarding its requests to this one, if it can't resolve them itself.

I'm not sure if I overlooked something in the Qt Jambi code, though. Still, I 
hope that this helps.

Regards,
Gregor


signature.asc
Description: This is a digitally signed message part.
___
Qt-jambi-interest mailing list
Qt-jambi-interest@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest


Re: [Qt-jambi-interest] Exceptions and crash after update to Qt Jambi 4.5.x

2009-08-24 Thread Gregor Mückl
On Monday 24 August 2009, Eskil Abrahamsen Blomfeldt wrote:
 Gregor Mückl wrote:
  Caused by: java.lang.ClassNotFoundException:
  eu.moonlight3d.ml3d.ui.mainwindow.view.Viewport$ProjectionType
  at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
  at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
  ... 16 more
 
  After that I get a VM crash. I find it strange that the
  NoClassDefFoundError is thrown, although the class is definitely there
  and must have been loaded. It must be noted, however, that the class in
  question is loaded through a classloader that is created at runtime,
  after Qt Jambi has been loaded and initialised through the default system
  classloader.
 
  A further indication that this would be the case is that everything works
  fine when I start the program from Eclipse, where the contents of the
  plugins is (improperly) added to the system classpath at VM startup.
 
  So, could it be that the Jambi internals fail to query the correct class
  definition because they are looking for it in the wrong classloader? If
  so, is there a workaround for this? I need my own classloader to be able
  to load plugins.

 The method in your stack trace is attempting to build a meta object for
 your class so that its functions and properties can be accessed from C++
 applications (e.g. in Qt Jambi Designer.) It will look in the class path
 for any class used in the signature of one of the methods. It should of
 course not crash if the classes cannot be resolved, this is a bug. I
 have made a task to fix this for the next patch release of Qt Jambi.

 Meanwhile, could you try annotating the methods that cause trouble with
 the QtBlockedSlot annotation, like this:


 @QtBlockedSlot
 void fooBar(ClassNotOnClassPath cnocp) {
 }


 I don't know if this is an acceptable work-around to you, but it might
 avoid the function call which causes the exception, so it might be worth
 a try until the bug has been fixed.

 -- Eskil

Hi Eskil!

Thank you for this workaround. However, It only makes the other exceptions 
disappear, but not the one on Viewport$ProjectionType which causes the crash. 
I added the @QtBlockedSlot annotation to all methods in Viewport (the affected 
class) which contains the enum in its signature, but this does not seem to 
have any effect on this particular exception, I'm afraid. 

ProjectionType is actually an enum that only appears in the signature of a 
getter and a setter, following the conventions for Java properties. Could it 
be that (a) the runtime tries to map the getter and setter to a Qt property 
and because the type cannot be discoverd and (b) this is not prevented by the 
annotation because the issue is not about the discovery of slots in the class 
at all?

Seeing how Qt Jambi throws exceptions when there are undiscoverable classes 
and enums used in subclasses of QWidget (which happens a *lot* in my code), I 
would have to add that annotation in hundreds of places in the source code, 
which are tedious to find and debug. So I do not think that this workaround 
would be actually feasible as a short or medium term solution, even if we 
figure out a way to make it work. 

Maybe you should simply add an interface to Qt Jambi which allows registration 
of custom classloaders for use by the runtime for all of its reflection magic. 
This would nicely side-step the issues that we are discussing here. Custom 
classloaders are used quite commonly in complex Java projects (like OSGi based 
software).

Regards,
Gregor


signature.asc
Description: This is a digitally signed message part.
___
Qt-jambi-interest mailing list
Qt-jambi-interest@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest


[Qt-jambi-interest] Exceptions and crash after update to Qt Jambi 4.5.x

2009-08-23 Thread Gregor Mückl
Hi!

I tried to update the version of Qt Jambi that I use to 4.5.x, but it looks 
like some internal changes since 4.4.3_01 give me serious trouble. During 
startup of my application I get a sequence of exceptions and then a hard 
crash, probably as a result of the exceptions. This happens with both 4.5.0_01 
and 4.5.2_01, but with the latter I get more verbose output. The stack traces 
that get logged are the following:

QtJambi: Exception pending in native code
Exception in thread main java.lang.NoClassDefFoundError: 
eu/moonlight3d/ml3d/ui/mainwindow/view/Viewport
at com.trolltech.qt.internal.MetaObjectTools.internalTypeName(Native 
Method)  
at 
com.trolltech.qt.internal.MetaObjectTools.buildMetaData(MetaObjectTools.java:434)
  
at 
com.trolltech.qt.gui.QWidget.__qt_QWidget_QWidget_WindowFlags(Native Method)
   
at com.trolltech.qt.gui.QWidget.init(QWidget.java:77) 
  
at com.trolltech.qt.gui.QWidget.init(QWidget.java:69) 
  
at 
eu.moonlight3d.ml3d.ui.mainwindow.view.ViewWindowSpace.init(Unknown Source)   
   
at eu.moonlight3d.ml3d.ui.mainwindow.MainWindow.init(Unknown Source)  
  
at 
eu.moonlight3d.ml3d.ui.mainwindow.MainWindowFactory.createNew(Unknown Source)   
   
at 
eu.moonlight3d.framework.ui.UIManager.getMainWidget(UIManager.java:344) 
   
at 
eu.moonlight3d.framework.ui.ApplicationWindow.init(ApplicationWindow.java:80) 
   
at eu.moonlight3d.framework.State.createMainWindow(State.java:367)  
  
at eu.moonlight3d.framework.State.runInteractive(State.java:241)
  
at eu.moonlight3d.ml3d.ML3D.main(Unknown Source)
  
Caused by: java.lang.ClassNotFoundException: 
eu.moonlight3d.ml3d.ui.mainwindow.view.Viewport  
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)   
  
at java.security.AccessController.doPrivileged(Native Method)   
  
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)   
  
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
  
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
  
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
  
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
  
... 13 more 
  
QtJambi: Exception pending in native code in file 'qtdynamicmetaobject.cpp':116 
  
Exception in thread main java.lang.NoClassDefFoundError: 
eu/moonlight3d/ml3d/ui/mainwindow/view/Viewport
at com.trolltech.qt.internal.MetaObjectTools.internalTypeName(Native 
Method)  
at 
com.trolltech.qt.internal.MetaObjectTools.buildMetaData(MetaObjectTools.java:434)
  
at 
com.trolltech.qt.gui.QWidget.__qt_QWidget_QWidget_WindowFlags(Native Method)
   
at com.trolltech.qt.gui.QWidget.init(QWidget.java:77) 
  
at com.trolltech.qt.gui.QWidget.init(QWidget.java:69) 
  
at 
eu.moonlight3d.ml3d.ui.mainwindow.view.ViewWindowSpace.init(Unknown Source)   
   
at eu.moonlight3d.ml3d.ui.mainwindow.MainWindow.init(Unknown Source)  
  
at 
eu.moonlight3d.ml3d.ui.mainwindow.MainWindowFactory.createNew(Unknown Source)   
   
at 
eu.moonlight3d.framework.ui.UIManager.getMainWidget(UIManager.java:344) 
   
at 
eu.moonlight3d.framework.ui.ApplicationWindow.init(ApplicationWindow.java:80) 
   
at eu.moonlight3d.framework.State.createMainWindow(State.java:367)  
  
at eu.moonlight3d.framework.State.runInteractive(State.java:241)
  
at eu.moonlight3d.ml3d.ML3D.main(Unknown Source)
  
Caused by: java.lang.ClassNotFoundException: 
eu.moonlight3d.ml3d.ui.mainwindow.view.Viewport  
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)   
  
at java.security.AccessController.doPrivileged(Native Method)   
  
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)   
  
   

Re: [Qt-jambi-interest] The Jambi Problem

2009-03-09 Thread Gregor Mückl
On Monday 09 March 2009, Mathias wrote:
 Who else on this list is building or maintaining an application available
 to the open public (be it open or closed source) that has a dependency on
 Qt Jambi?
 Please come out and let us know!
 We need to compile a list and see where we stand...

 Cheers,
 Mathias

I'm developing Moonlight|3D (see http://www.moonlight3d.eu ), an open source 
3D modelling and animation tool. I have been working on it more or less 
continously since 2003. I practically rewrote the program's UI when the first 
Qt Jambi preview releases appeared. This took me several months.

I don't even want to think about rewriting the program's UI based on yet 
another toolkit (there's a long and painful story hidden there that you most 
likely don't want to hear about - trust me). I'd rather stop working on that 
project for good.

Moonlight|3D uses quite some things from Qt Jambi: QGLWidget, QDockWidget, and 
QGraphicsView come to my mind instantly. There's also a nice set of QWidget-
derived widgets that are implemented in pure Java (for example the toolchest, 
the timeline and the colour dialog).

If the UI were more polished and the program less buggy overall I'd say that 
this is a good candidate for a hypothetical Qt Jambi showcase ;).

Regards,
Gregor



signature.asc
Description: This is a digitally signed message part.
___
Qt-jambi-interest mailing list
Qt-jambi-interest@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest


Re: [Qt-jambi-interest] The Jambi Problem

2009-03-08 Thread Gregor Mückl
On Monday 09 March 2009, Mathias wrote:
 Gentlemen,

 having followed the recent discussions on the prospects of Qt Jambi in this
 list pretty closely I cannot help but share my point of view on this.

 IMHO Trolltech Qt Jambi has had and does have one serious problem.
 However, this problem is not of a technical kind. Technically Jambi is an
 extremely valueable addition to the Java world, it's simply the best
 desktop UI framework available for Java. Swing is a nice try but has never
 really been used by it's creators/maintainers for anything but small demo
 apps, and it shows. SWT can match Qt for performance but falls behind in
 every other dimension (elegance, extensiveness, extensibility...).
 Trolltech has been developing Qt for many years, lots of software has been
 written on top of it, it has matured and is well maintained.
 Using the existing Qt C++ codebase to fill the Java desktop UI framework
 void was an excellent idea and I think (even though there might still be
 some bugs here and there) Gunnar, Eskil and the others have done a really
 good job making it work.


Qt Jambi is excellent. The Qt Software people also. These words say it all.

 The reason that Qt Jambi is facing problems is not a technical one.
 IMHO Trolltech has done a truly terrible job with Jambi MARKETING.
 Being a software development company it seems Trolltech has not put enough
 focus on selecting the right people for its marketing/PR functions.
 Let me give you three points to support my case:

[...]
 2. Creating visibility, fostering adoption, seeding a community
 Three crucial marketing tasks. Three complete fails.
 Jambi has been released more than 1.5 years ago and I bet more than 98% of
 Java developers have never heard of it. If you look at java forums, blogs
 and the ever recurring SWT vs. Swing discussions you will not see people
 pointing to Qt for rescue. Not because they think Qt is not up for the
 task. Simply because they don't know about it. What has Trolltech done to
 create visibility for Jambi? Apart from good old advertising (both on- and
 off the web) I could think of visiting and speaking at big java events,
 organize contests, give out prizes for the best Jambi app, recruiting and
 supporting lamp post projects, embracing the java centric academia, ...
 whatever. Jambi doesn't even have its own proper website. It has a
 reference documentation pages. If it does have a reference projects list
 somewhere I haven't found it.
 There is no community. As some of you have pointed out, traffic on this
 list is extremely low for a project with the punch potential of Qt for
 Java. This is not the fault of Gunnar or Eskil who I think do an excellent
 job on their end. It's a MARKETING job to reach out to the target group,
 get them excited and bring them on.


Well, I strongly disagree here. Qt Jambi is definitely known to the majority 
of Java developers whom I talked to in the last year. And these people told me 
they were interested in taking a closer look, but never found the time. 
Therefore, my impression is that the markert for Java GUI toolkits is 
saturated with solutions that are good enough for most applications. 
Especially SWT is of that kind. And with Eclipse RCP and the huge variety of 
products already built on top of this platform a lot of professional work is 
done with the Eclipse RCP (and therefore SWT) as a target. Qt Jambi simply 
arrived late. This was an uphill battle from the start.

 3. Communication.
 The prime example for the serious lack of professionalism in Trolltech
 marketing/PR is the press release issued on Feb. 19th (and now featured
 prominently on second place in the google results for a search for Qt
 Jambi). The content consists of three main points:
 - Trolltech will reduce resources dedicated to Jambi.
 - Jambi will be put under LGPL.
 - Trolltech will host and help maintain a community-driven Qt Jambi
 implementation
 To me this sound like two good news and one bad one. The second point is
 excellent news!
 Now, if you had to choose a title for that press release, what would it be?
 I would think something like Qt Jambi opened up to community or Qt Jambi
 community to receive more focus or anything else highlighting the positive
 points.
 Instead Trolltech decided to go for Qt Software to discontinue Qt Jambi
 after 4.5 release.
 To me this reads like bad news. Really bad news. A tomb stone. Over and
 out. That's it. Done.
 Whoever in their right mind and interest in seeing Jambi prosper would
 issue a press release with that title?
 This is a stab in the back of all the Trolltech developers who have spent
 many months building the great Qt Java bridge available today. And it's the
 most effective countermeasure to any effort put into the third content
 point. It will take an enormous amount of work reverting the damage done by
 that PR title.


The title is directed at the people who have the money, not devs. And it gives 
them the right message: Qt Jambi as a 

Re: [Qt-jambi-interest] Should I start a new project with Qt Jambi?

2009-03-07 Thread Gregor Mückl
Hi!

On Friday 06 March 2009, Arthur Pemberton wrote:
 Previous to the discontinuation announcement, i was just starting to
 work with Java, and so I have become interested in using Qt from Java
 as I like the toolkit. But given the following, should I really start
 a new project with Qt Jambi?

Let me rephrase this question: Who on this list would be willing to step 
forward and help maintain Qt Jambi?

Well, I don't think that I would be able to find enough time to help out.

I have invested considerable effort in porting Moonlight|3D over to Qt Jambi 
and still think that this UI toolkit is a perfect match. It would be a crying 
shame to see it rot. Just my 2 cents.

Regards,
Gregor




signature.asc
Description: This is a digitally signed message part.
___
Qt-jambi-interest mailing list
Qt-jambi-interest@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest


Re: [Qt-jambi-interest] Should I start a new project with Qt Jambi?

2009-03-07 Thread Gregor Mückl
On Saturday 07 March 2009, Derek Fountain wrote:
  Let me rephrase this question: Who on this list would be willing to step
  forward and help maintain Qt Jambi?

 You might need to start with who on this list is *capable* of helping
 to maintain Qt Jambi?

 Judging by the activity on this list, there's hardly anyone involved
 with Qt Jambi - a few dozen names maybe? Of those, almost all are users.

I do not know how many are subscribed to this list and I'll never find out. 
But is the number of subscribers a good measure for the number of users out 
there? I only subscribe to mailing lists such as this one when I use something 
extensively and I discover a problem that I need help with. I find Qt Jambi 
easy to use and the number of questions I had to ask has been relatively 
small. So maybe our view is just distored because Jambi is such an excellent 
product ;-).

 I suppose the starting point might be for the Trolls to write some
 in-depth white papers about how it all works so some other people can
 pick it up and work with it. Is that happening? Even if it does, it
 won't help with Qt 4.6 very much. Who is going to know the in depth
 details of the 4.6 implementation updates, to the point they can say
 ...this affects Qt Jambi in this way, so we'll need to reimplement this
 part of Qt Jambi using this technique...? Only the Trolls. Retaining
 and updating that level of knowledge is a full time job.

[...]

 Wishing and hoping that my arguments are shot down in flames and I'm
 comprehensively proved wrong...

I'll give it a try. Let me start by giving a few numbers. I just looked at the 
qtjambi 4.4.3_01 source archive and see that it contains roughly the 
following:

* about 6800 lines of Java code in org.trolltech.qt
* about 8500 lines of C++ code in the qtjambi* directories
* about 3 lines of C++ code in the generator directory
* about 13000 lines of genererator XML files

The first two sets of directories contain the Jambi runtime core and other 
stuff that does not fit the standard pattern that the generator can deal with. 
The generator is the core of the whole thing.

So, this tells me two things: 

1. Qt Jambi is essentially about getting the Qt object model mapped to Java. 
This means mostly pointers, garbage collection and the signal/slot mechanism. 
And this has already been dealt with - by providing a single way of doing it 
for almost the whole of the Qt library.

2. The amount of exceptions from that pattern that require some coding tricks 
is quite small. This means that the amount of pitfalls that are left with the 
way the mapping works currently is also quite small.

Bottom line: the key to maintaining Qt  Jambi is to understand the generator. 
Granted, having to map objects between models that behave quite differently 
can be mind-boggling at times. But there is a working solution right here that 
shows how it can be done.

My guess is that it could be done by a team of roughly 3 to 5 people in their 
spare time while maintaining the current quality. Unfortunately, I don't think 
that I could be among them.

Regards,
Gregor


signature.asc
Description: This is a digitally signed message part.
___
Qt-jambi-interest mailing list
Qt-jambi-interest@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest


[Qt-jambi-interest] Making sections of text in a QTextEdit uneditable

2008-11-11 Thread Gregor Mückl
Hi!

As far as crazy ideas go, this one is probably shooting for the top 10: I want 
to show the user a text edit control with a fragment of source code. Parts of 
that fragment are shown only as a convenience to provide context information 
and should not be altered by the user. So this means that there are about 1 or 
2 lines at the start and at the end of the fragment which should not be 
editable by the user (while the middle section is fully editable).

I have thought about separate text labels above and below the editable 
fragment, but I consider this to be a less elegant solution than having it all 
in one widget, in which the content would scroll consistently if the fragment 
gets longer.

Is something like this possible at all (without totally reimplementing 
QTextEdtir, of course)? What trickery would be required to make this work?

Regards,
Gregor



signature.asc
Description: This is a digitally signed message part.
___
Qt-jambi-interest mailing list
Qt-jambi-interest@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest