The QTJim Project : QTE requirements (This is NOW Obsolete!)

[ Up ]

[ QTJim Home | QTE requirements | Download | Manual ]

[ NOTE! ] : This section is now OBSOLETE! It used to describe how to compile QTE to support QWorkspace and QSplitter features. These features will never be added to Qtopia SDK, so there is no reason for QTJim to violate the rules! In the real PDA using a Splitter with the pen is inconvenient. Also MDI(QWorkspace) is not a suitable UI design for a small screen. Instead of using QWorkSpace the new versions of QTJim use QWidgetStack so that QTJim has kept pretty much the same UI and functionality .

About :

  This section affects users who use separate qte and qpe source distributions and are willing to enable some features of their qte, so they can use the QTJim shared binary. If you use the QTopia SDK which comes with prebuilt qte and qpe versions you are out of luck, unless Trolltech people change their mind and enable some more features in QTopia's qte library
  Here i describe the requirements need to be met in order to be able to build and run QTJim for the QPE environment. The requirements concern features supported in qte (qt-embedded) used by your QPE environment : Note that future releases of QTJim may require more features enabled in qte, like QWizard and QProgressBar, but i guess I will be able to tolerate without them. What i can't tolerate is lack of MDI and QSplitter support.

MDI support :

  QTJim needs to have many windows opened at the same time (once connected to jabber of course): The only way to do this right is to use a MDI application, that will manage all these windows. On the other hand, use of QDialogs, a QTabWidget or a QStackWidget (which are by default enabled in QTopia) is not really an option.

QSplitter support :

  QTJim's chat window uses a QSplitter to divide the window into 2 distinct areas. The upper one is used to display messages you have already sent and messages that a buddy has sent you, while the bottom one is used as an editor for your messages. The better way to seperate these two areas is by using a QSplitter which by default is disabled in QTopia.

HOW to meet the requirements :

Check your qconfig-qpe.h in QTDIR/src/tools/. This is the file used to build qte for qpe.

It will contain a line :
#define QT_NO_WORKSPACE
which means that by default the qte is build without QWorkspace (MDI) support.

and another line :
#define QT_NO_SPLITTER
which means that by default the qte is built without QSplitter support.
  1. Copy qconfig-qpe.h to qconfig-local.h and comment that 2 lines.
  2. Type make clean
  3. Run ./configure and select choice 6 (local configuration)
  4. Run make to build qte with MDI and QSplitter support :
    This will create a new QTE library (QTDIR/lib/libqte.so.2.3.2) with an added size of about 70Kbytes. For my case libqte size increased from 4141144 to 4278435 bytes.
  5. Delete qpe library (/bin/rm QTDIR/lib/libqpe*) and type make in QPEDIR to link with the new qte library :
    (It will not rebuild QPE, just relink it with the new QTE library)

Manolis Perakakis <>
Last modified: Mon Feb 4 07:48:40 GMT-5 2002