Remove repos/qt4, fix #1451

devel
Norman Feske 8 years ago committed by Christian Helmuth
parent 99e7f26b99
commit 45c9739fe7

@ -107,7 +107,7 @@ Applications and library infrastructure
independent trusted component facilitating Genode secure GUI server
(Nitpicker).
:Graphical on-target IPC tracing tool using Qt4:
:Graphical on-target IPC tracing tool using Qt:
Analysing the interaction of components of a multi-server operating system
such as Genode is important to discover bottlenecks of the system and for
@ -130,7 +130,7 @@ Applications and library infrastructure
communication and control flows between those processes, and to visualize the
interaction of threads with the kernel's scheduler.
Since Qt4 is available natively on Genode, the creation of both offline and
Since Qt is available natively on Genode, the creation of both offline and
on-target analysis tools has become feasible. The first step of this project
is creating an interactive on-target tool, that displays the interaction
of communicating threads as captured on the running system. The tool should
@ -140,9 +140,9 @@ Applications and library infrastructure
Application frameworks
######################
:Running the Meego application stack on Genode using Qt4:
:Running the Meego application stack on Genode using Qt:
With Genode 11.02, Qt4 4.7.1 has become available. The most prominent feature
With Genode 11.02, Qt has become available. The most prominent feature
of this version is the new QML language to design GUIs using a declarative
language. This technique is targeted specifically to mobile applications and
other touch-based devices. The goal of this project is to run the Meego
@ -152,18 +152,18 @@ Application frameworks
interface. The immediate goal of the first step is running one Meego example
application natively on Genode.
:Python Qt4 bindings:
:Python Qt bindings:
With the Python interpreter and the port of the Qt4 framework, the principle
With the Python interpreter and the port of the Qt framework, the principle
components for Python-based GUIs on Genode are available. However, the glue
between both components is missing. The incentive of this work is supplementing
our Python port with the modules needed for real applications and porting the
Qt4 bindings to Genode. This would bring Genode one step closer to executing
Qt bindings to Genode. This would bring Genode one step closer to executing
modern Python-based GUI applications (in particular KDE4 applications).
:Evaluation of porting GTK+ to Genode:
With Qt4, we have demonstrated the feasibility to run a highly-complex
With Qt, we have demonstrated the feasibility to run a highly-complex
application framework via Genode on a wide range of microkernels. That leaves
the question of looking into the other major toolkit in town, namely GTK+ as
used by Firefox and the Gnome desktop.
@ -243,7 +243,7 @@ Device drivers
The efforts towards enabling mobile application stacks such as Meego and
Android on Genode must be accompanied by a revision of Genode's 'Input'
session interface to accommodate multi-touch input devices. First, existing
APIs such as multi-touch support in X11, Qt4, and Android should be analysed.
APIs such as multi-touch support in X11, Qt, and Android should be analysed.
Based on these findings, we expect a proposal for changing Genode's input
interface. The interface extension should be validated by a example driver
implementing the interface as well as an example applications.

@ -483,9 +483,6 @@ Libraries:
:'libports/lib/mk/lua':
Runtime for the Lua scripting language.
:'qt4':
Qt4 framework, using nitpicker session and NIC session as back end.
:'libports/lib/mk/qt5_*':
Qt5 framework, using nitpicker session and NIC session as back end.
@ -520,20 +517,17 @@ located in their respective directory.
Example program for using OpenGL via the Gallium3D graphics stack.
:'ports/src/app/arora':
Arora is a Qt4-based web browser using the Webkit engine.
Arora is a Qt-based web browser using the Webkit engine.
:'ports/src/app/gdb_monitor':
Application that allows the debugging of a process via GDB over a remote
connection.
:'qt4/src/app/qt_launchpad':
Graphical application starter implemented using Qt4.
:'qt4/src/app/examples/':
Several example applications that come with Qt4.
:'libports/src/app/qt5/qt_launchpad':
Graphical application starter implemented using Qt.
:'libports/src/app/qt5':
Qt5 examples including qt_launchpad and qt_avplay.
:'libports/src/app/qt5/examples/':
Several example applications that come with Qt.
:'os/src/app/xvfb':
Is a proxy application that enables the integration of a virtual X server

@ -114,13 +114,6 @@ but build upon of each other:
The repository contains a server that uses a rump kernel to provide
various NetBSD file systems to Genode.
:'qt4':
This source-code repository contains the Genode version of Qt4 framework.
Please find more information about using Qt4 with Genode in the repository's
'README' file. Please note that the Qt4 support is deprecated. Use Qt5
as contained in 'libports' instead.
:'ports':
This source-code repository hosts ports of 3rd-party applications to

@ -128,7 +128,7 @@ include $(BASE_DIR)/mk/generic.mk
#
# Use $(OBJECTS) instead of $^ for specifying the list of objects to include
# in the archive because $^ may also contain non-object phony targets, e.g.,
# used by the integration of Qt4's meta-object compiler into the Genode
# used by the integration of Qt's meta-object compiler into the Genode
# build system.
#
$(LIB_A): $(OBJECTS)

@ -1,6 +1,6 @@
This directory is a source-code repository containing Genode-specific
services and applications. In contrast to the components that come with
the 'os' repository, programs contained in 'gems' are able to leverage
the functionalities provided by higher-level repositories such as
'libports', and 'qt4'. To use the 'gems' repository, make sure to
also add those repositories to your build configuraion.
the functionalities provided by higher-level repositories such as 'libports'.
To use the 'gems' repository, make sure to also add those repositories to your
build configuraion.

@ -46,14 +46,14 @@ QT_SOURCES = \
# some source files need to be generated by moc from other source/header files before
# they get #included again by the original source file in the compiling stage
# source files generated from existing header files ('moc_%.cpp: %.h' rule in spec-qt4.mk)
# source files generated from existing header files ('moc_%.cpp: %.h' rule in spec-qt5.mk)
# extracted from 'compiler_moc_header_make_all' target
COMPILER_MOC_HEADER_MAKE_ALL_FILES = \
moc_qscriptengine.cpp \
moc_qscriptextensionplugin.cpp
# source files generated from existing source files ('%.moc: %.cpp' rule in spec-qt4.mk)
# source files generated from existing source files ('%.moc: %.cpp' rule in spec-qt5.mk)
# extracted from 'compiler_moc_source_make_all' rule
COMPILER_MOC_SOURCE_MAKE_ALL_FILES = \

@ -1,4 +1,4 @@
# identify the qt4 repository by searching for a file that is unique for qt4
# identify the qt repository by searching for a file that is unique for qt
QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)

@ -1,4 +1,4 @@
# identify the qt4 repository by searching for a file that is unique for qt4
# identify the qt repository by searching for a file that is unique for qt
QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)

@ -1,4 +1,4 @@
# identify the qt4 repository by searching for a file that is unique for qt4
# identify the qt repository by searching for a file that is unique for qt
QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)

@ -14,7 +14,7 @@
#ifndef _AVPLAY_POLICY_H_
#define _AVPLAY_POLICY_H_
/* Qt4 includes */
/* Qt includes */
#include <QDebug>
#include <QObject>
#include <QDomDocument>

@ -20,7 +20,7 @@
#include <framebuffer_session/client.h>
#include <nitpicker_session/connection.h>
/* Qt4 includes */
/* Qt includes */
#include <qnitpickerviewwidget/qnitpickerviewwidget.h>

@ -1,4 +1,4 @@
# identify the qt4 repository by searching for a file that is unique for qt4
# identify the qt repository by searching for a file that is unique for qt
QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)

@ -1,4 +1,4 @@
# identify the qt4 repository by searching for a file that is unique for qt4
# identify the qt repository by searching for a file that is unique for qt
QT5_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
QT5_REP_DIR := $(realpath $(dir $(QT5_REP_DIR))../..)

@ -61,7 +61,7 @@ LIBS += qt5_xml
endif
# QtUiTools
# Qt4 documentation says: CONFIG += uitools
# Qt documentation says: CONFIG += uitools
ifeq ($(findstring uitools, $(CONFIG)), uitools)
LIBS += qt5_ui_tools
endif

@ -10,6 +10,4 @@ Dependencies from other repositories
Application provided by the 'ports' repository typically expect a rich
runtime environment, including shared libraries provided by the 'libports'
repository. Hence, 'ports' depends on 'libports'. Furthermore, applications
may require additional repositories. For example, the Arora web browser depends
on the 'qt4' repository.
repository. Hence, 'ports' depends on 'libports'.

@ -86,49 +86,30 @@ append boot_modules {
nitpicker_plugin.tar
}
if {[have_spec qt4_deprecated]} {
#
# Qt4-specific boot modules
#
append boot_modules {
qt_core.lib.so
qt_gui.lib.so
qt_jscore.lib.so
qt_network.lib.so
qt_script.lib.so
qt_ui_tools.lib.so
qt_webcore.lib.so
qt_webkit.lib.so
qt_xml.lib.so
qnitpickerviewwidget.lib.so
qpluginwidget.lib.so
}
} else {
#
# Qt5-specific boot modules
#
append boot_modules {
gallium.lib.so
icu.lib.so
pthread.lib.so
qt5_core.lib.so
qt5_gui.lib.so
qt5_jscore.lib.so
qt5_network.lib.so
qt5_qnitpickerviewwidget.lib.so
qt5_qpluginwidget.lib.so
qt5_ui_tools.lib.so
qt5_webcore.lib.so
qt5_webkit.lib.so
qt5_xml.lib.so
qt5_printsupport.lib.so
qt5_scriptclassic.lib.so
qt5_sql.lib.so
qt5_webkitwidgets.lib.so
qt5_widgets.lib.so
qt5_wtf.lib.so
qt5_fs_arora.tar
}
#
# Qt5-specific boot modules
#
append boot_modules {
gallium.lib.so
icu.lib.so
pthread.lib.so
qt5_core.lib.so
qt5_gui.lib.so
qt5_jscore.lib.so
qt5_network.lib.so
qt5_qnitpickerviewwidget.lib.so
qt5_qpluginwidget.lib.so
qt5_ui_tools.lib.so
qt5_webcore.lib.so
qt5_webkit.lib.so
qt5_xml.lib.so
qt5_printsupport.lib.so
qt5_scriptclassic.lib.so
qt5_sql.lib.so
qt5_webkitwidgets.lib.so
qt5_widgets.lib.so
qt5_wtf.lib.so
qt5_fs_arora.tar
}
build_boot_image $boot_modules

@ -63,7 +63,7 @@ div.annotation p { font-style:italic; }
Arora has become one of our most advanced workloads, stressing the base
system, the dynamic linker, the TCP/IP stack, and device drivers.
We chose Arora among the available web browsers because we already
had Qt4 running on Genode. Porting Arora seemed an evolutionary step, which
had Qt running on Genode. Porting Arora seemed an evolutionary step, which
actually turned out to be the case.
</p>
<p>

@ -1,15 +1,5 @@
ARORA = arora-0.11.0
ifeq ($(filter-out $(SPECS),qt4_deprecated),)
# identify the Qt repository by searching for a file that is unique for Qt4
QT_REP_DIR := $(call select_from_repositories,lib/import/import-qt4.inc)
ifneq ($(QT_REP_DIR),)
QT_TMPL_DIR = $(QT_REP_DIR)/src/app/tmpl
LIBS += qpluginwidget qnitpickerviewwidget
else
REQUIRES += qt4
endif
else
# identify the Qt repository by searching for a file that is unique for Qt5
QT_REP_DIR := $(call select_from_repositories,lib/import/import-qt5.inc)
ifneq ($(QT_REP_DIR),)
@ -18,7 +8,6 @@ LIBS += qt5_printsupport qt5_qpluginwidget qt5_qnitpickerviewwidget
else
REQUIRES += qt5
endif
endif
QT_REP_DIR := $(realpath $(dir $(QT_REP_DIR))../..)

@ -1,78 +0,0 @@
#
# \brief Download and prepare Qt4 source code
# \author Christian Prochaska
# \author Norman Feske
# \date 2009-05-11
#
VERBOSE ?= @
ECHO = @echo
DOWNLOAD_DIR = download
CONTRIB_DIR = contrib
PATCHES_DIR = src/lib/qt4/patches
REP_DIR := $(realpath .)
include $(REP_DIR)/lib/mk/qt_version.inc
QT4_URL = http://download.qt-project.org/archive/qt/4.8/4.8.4
QT4_TGZ = $(QT4).tar.gz
QTSCRIPTCLASSIC_URL = ftp://ftp.informatik.hu-berlin.de/pub/Mirrors/ftp.troll.no/QT/qt/solutions/lgpl/
QTSCRIPTCLASSIC = qtscriptclassic-1.0_1-opensource
QTSCRIPTCLASSIC_TGZ = $(QTSCRIPTCLASSIC).tar.gz
PATCHES = $(shell cat $(PATCHES_DIR)/series)
#
# Utility to check if a tool is installed
#
check_tool = $(if $(shell which $(1)),,$(error Need to have '$(1)' installed.))
$(call check_tool,wget)
$(call check_tool,patch)
help:
$(ECHO)
$(ECHO) "Prepare the Qt4 repository"
$(ECHO)
$(ECHO) "--- available commands ---"
$(ECHO) "prepare - download and extract the Qt4 source code archive and build the host tools"
$(ECHO) "clean - clean everything except downloaded archives"
$(ECHO) "cleanall - clean everything including downloaded archives"
$(ECHO)
prepare: $(CONTRIB_DIR)/$(QT4) $(CONTRIB_DIR)/$(QTSCRIPTCLASSIC) tools
$(CONTRIB_DIR)/$(QT4): $(CONTRIB_DIR) $(DOWNLOAD_DIR)/$(QT4_TGZ)
$(VERBOSE)tar xzf $(DOWNLOAD_DIR)/$(QT4_TGZ) -C $(CONTRIB_DIR)
$(VERBOSE)touch $(CONTRIB_DIR)/$(QT4)
$(VERBOSE)for p in $(PATCHES); do \
patch -d $(CONTRIB_DIR)/$(QT4) -p1 -i ../../$(PATCHES_DIR)/$$p; done
$(CONTRIB_DIR)/$(QTSCRIPTCLASSIC): $(CONTRIB_DIR) $(DOWNLOAD_DIR)/$(QTSCRIPTCLASSIC_TGZ)
$(VERBOSE)tar xzf $(DOWNLOAD_DIR)/$(QTSCRIPTCLASSIC_TGZ) -C $(CONTRIB_DIR)
$(VERBOSE)touch $(CONTRIB_DIR)/$(QTSCRIPTCLASSIC)
$(CONTRIB_DIR):
$(VERBOSE)mkdir -p $(CONTRIB_DIR)
$(DOWNLOAD_DIR)/$(QT4_TGZ): $(DOWNLOAD_DIR)
$(VERBOSE)wget -c -P $(DOWNLOAD_DIR) $(QT4_URL)/$(QT4_TGZ) && touch $@
$(DOWNLOAD_DIR)/$(QTSCRIPTCLASSIC_TGZ): $(DOWNLOAD_DIR)
$(VERBOSE)wget -c -P $(DOWNLOAD_DIR) $(QTSCRIPTCLASSIC_URL)/$(QTSCRIPTCLASSIC_TGZ) && touch $@
$(DOWNLOAD_DIR):
$(VERBOSE)mkdir -p $(DOWNLOAD_DIR)
tools:
$(VERBOSE)make -C tool
clean:
$(VERBOSE)make -C tool clean
$(VERBOSE)rm -rf $(CONTRIB_DIR)
cleanall: clean
$(VERBOSE)make -C tool distclean
$(VERBOSE)rm -rf $(DOWNLOAD_DIR)

@ -1,27 +0,0 @@
This repository contains the Qt4 toolkit für Genode
Qt4 is a tool kit for developing platform-independent applications. It
comprises a complete platform-abstraction layer and a rich GUI tool kit.
With this repository, native Qt4 applications can be compiled and
natively executed for the Genode OS Framework. This way, Qt4 becomes
available on all base platforms supported by Genode.
Usage
-----
For using Qt4 for your Genode applications, you first need to download and
prepare the original Qt4 source codes and build a few Qt4 tools such as
the meta-object compiler (moc) and the resource compiler. The top-level
makefile found in this directory automates this task. Just issue:
! make prepare
To include the 'qt4' repository into the Genode build process,
add the 'qt4/' directory to the 'REPOSITORIES' declaration of the
'etc/build.conf' file within your build directory.
Since the Genode release 9.11, Qt4 depends on the 'libports' repository,
specifically on the 'freetype2' and 'jpeg' libraries. Please make sure
that you called the top-level Makefile of the 'libports' repository
for those preparing those libraries and that your 'REPOSITORIES' declaration
contains the 'libports' repository.

@ -1,116 +0,0 @@
/*
* \brief Thread with configurable stack size
* \author Christian Prochaska
* \date 2008-06-11
*/
/*
* Copyright (C) 2008-2013 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU General Public License version 2.
*/
#ifndef _INCLUDE__BASE__THREAD_QT_H_
#define _INCLUDE__BASE__THREAD_QT_H_
#include <base/env.h>
#include <base/printf.h>
#include <base/thread.h>
enum { DEFAULT_STACK_SIZE = 4096*100 };
namespace Genode {
struct Thread_entry
{
virtual void entry() = 0;
};
class Thread_qt : public Thread_entry
{
private:
class Genode_thread : Thread_base
{
private:
Thread_entry *_thread_entry;
/**
* Thread_base interface
*/
void entry() { _thread_entry->entry(); }
public:
Genode_thread(const char *name,
size_t stack_size,
Thread_entry *thread_entry)
:
Thread_base(0, name, stack_size),
_thread_entry(thread_entry)
{
/* start Genode thread */
start();
}
};
protected:
const char *_name;
unsigned int _stack_size;
Genode_thread *_thread;
public:
/**
* Constructor
*
* \param name Thread name (for debugging)
*/
explicit Thread_qt(const char *name = "Qt <noname>")
:
_name(name),
_stack_size(DEFAULT_STACK_SIZE),
_thread(0) { }
~Thread_qt()
{
if (_thread)
destroy(env()->heap(), _thread);
}
/**
* Set the thread's stack size - don't call when the thread is running!
*/
bool set_stack_size(unsigned int stack_size)
{
/* error, if thread is already running */
if (_thread)
return false;
_stack_size = stack_size;
return true;
}
/**
* Start execution of the thread
*/
void start()
{
/* prevent double calls of 'start' */
if (_thread) return;
_thread = new (env()->heap()) Genode_thread(_name, _stack_size, this);
}
static Thread_base *myself()
{
return Thread_base::myself();
}
};
}
#endif /* _INCLUDE__BASE__THREAD_QT_H_ */

@ -1,53 +0,0 @@
/*
* \brief A Qt Widget that shows a nitpicker view
* \author Christian Prochaska
* \date 2010-08-26
*/
/*
* Copyright (C) 2010-2013 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU General Public License version 2.
*/
#ifndef QNITPICKERVIEWWIDGET_H
#define QNITPICKERVIEWWIDGET_H
#include <QtGui>
#include <qwindowsystem_qws.h>
#include <nitpicker_view/capability.h>
#include <nitpicker_view/client.h>
class QNitpickerViewWidget : public QWidget
{
Q_OBJECT
private:
QHash<QScrollBar*, bool> _scrollbars;
private slots:
void windowEvent(QWSWindow *window,
QWSServer::WindowEvent eventType);
void valueChanged();
void destroyed(QObject *obj = 0);
protected:
Nitpicker::View_client *vc;
int orig_w;
int orig_h;
int orig_buf_x;
int orig_buf_y;
virtual void showEvent(QShowEvent *event);
virtual void hideEvent(QHideEvent *event);
virtual void paintEvent(QPaintEvent *event);
public:
QNitpickerViewWidget(QWidget *parent =0);
~QNitpickerViewWidget();
void setNitpickerView(Nitpicker::View_capability view, int buf_x, int buf_y, int w, int h);
};
#endif // QNITPICKERVIEWWIDGET_H

@ -1,107 +0,0 @@
/*
* \brief A Qt Widget that can load a plugin application and show its Nitpicker view
* \author Christian Prochaska
* \date 2010-08-26
*/
/*
* Copyright (C) 2010-2013 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU General Public License version 2.
*/
#ifndef QPLUGINWIDGET_H
#define QPLUGINWIDGET_H
#include <QtGui>
#include <QtNetwork>
#include <loader_session/connection.h>
#include <qnitpickerviewwidget/qnitpickerviewwidget.h>
enum Plugin_loading_state
{
LOADING,
LOADED,
NETWORK_ERROR,
INFLATE_ERROR,
QUOTA_EXCEEDED_ERROR,
ROM_CONNECTION_FAILED_EXCEPTION,
TIMEOUT_EXCEPTION
};
class QPluginWidget;
/* separate class, because meta object features are not supported in nested classes */
class PluginStarter : public QThread
{
Q_OBJECT
private:
QUrl _plugin_url;
QByteArray _args;
int _max_width;
int _max_height;
Loader::Connection *_pc;
enum Plugin_loading_state _plugin_loading_state;
QString _plugin_loading_error_string;
QNetworkAccessManager *_qnam;
QNetworkReply *_reply;
void _start_plugin(QString &file_name, QByteArray const &file_buf);
protected slots:
void networkReplyFinished();
public:
PluginStarter(QUrl plugin_url, QString &args,
int max_width, int max_height);
void run();
enum Plugin_loading_state plugin_loading_state() { return _plugin_loading_state; }
QString &plugin_loading_error_string() { return _plugin_loading_error_string; }
Nitpicker::View_capability plugin_view(int *w, int *h, int *buf_x, int *buf_y);
signals:
void finished();
};
class QPluginWidget : public QNitpickerViewWidget
{
Q_OBJECT
private:
enum Plugin_loading_state _plugin_loading_state;
QString _plugin_loading_error_string;
PluginStarter *_plugin_starter;
int _max_width;
int _max_height;
static QPluginWidget *_last;
public:
enum { RAM_QUOTA = 5*1024*1024 };
void cleanup();
protected:
virtual void paintEvent(QPaintEvent *event);
protected slots:
void pluginStartFinished();
public:
QPluginWidget(QWidget *parent, QUrl plugin_url, QString &args, int max_width = -1, int max_height = -1);
~QPluginWidget();
};
#endif // QPLUGINWIDGET_H

@ -1,208 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the QtCore module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial Usage
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QEVENTDISPATCHER_GENODE_P_H
#define QEVENTDISPATCHER_GENODE_P_H
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists purely as an
// implementation detail. This header file may change from version to
// version without notice, or even be removed.
//
// We mean it.
//
#include "QtCore/qabstracteventdispatcher.h"
#include "QtCore/qlist.h"
#include "private/qabstracteventdispatcher_p.h"
#include "private/qcore_unix_p.h"
#include "private/qpodlist_p.h"
#include "QtCore/qvarlengtharray.h"
#if defined(Q_OS_VXWORKS)
# include <sys/times.h>
#else
# include <sys/time.h>
# if !defined(Q_OS_HPUX) || defined(__ia64)
# include <sys/select.h>
# endif
#endif
QT_BEGIN_NAMESPACE
// internal timer info
struct QTimerInfo {
int id; // - timer identifier
timeval interval; // - timer interval
timeval timeout; // - when to sent event
QObject *obj; // - object to receive event
bool inTimerEvent;
};
class QTimerInfoList : public QList<QTimerInfo*>
{
#if ((_POSIX_MONOTONIC_CLOCK-0 <= 0) && !defined(Q_OS_MAC)) || defined(QT_BOOTSTRAPPED)
timeval previousTime;
clock_t previousTicks;
int ticksPerSecond;
int msPerTick;
bool timeChanged(timeval *delta);
#endif
// state variables used by activateTimers()
QTimerInfo *firstTimerInfo, *currentTimerInfo;
public:
QTimerInfoList();
timeval currentTime;
timeval updateCurrentTime();
// must call updateCurrentTime() first!
void repairTimersIfNeeded();
bool timerWait(timeval &);
void timerInsert(QTimerInfo *);
void timerRepair(const timeval &);
void registerTimer(int timerId, int interval, QObject *object);
bool unregisterTimer(int timerId);
bool unregisterTimers(QObject *object);
QList<QPair<int, int> > registeredTimers(QObject *object) const;
int activateTimers();
};
struct QSockNot
{
QSocketNotifier *obj;
int fd;
fd_set *queue;
};
class QSockNotType
{
public:
QSockNotType();
~QSockNotType();
typedef QPodList<QSockNot*, 32> List;
List list;
fd_set select_fds;
fd_set enabled_fds;
fd_set pending_fds;
};
class QEventDispatcherGenodePrivate;
class Q_CORE_EXPORT QEventDispatcherGenode : public QAbstractEventDispatcher
{
Q_OBJECT
Q_DECLARE_PRIVATE(QEventDispatcherGenode)
public:
explicit QEventDispatcherGenode(QObject *parent = 0);
~QEventDispatcherGenode();
bool processEvents(QEventLoop::ProcessEventsFlags flags);
bool hasPendingEvents();
void registerSocketNotifier(QSocketNotifier *notifier);
void unregisterSocketNotifier(QSocketNotifier *notifier);
void registerTimer(int timerId, int interval, QObject *object);
bool unregisterTimer(int timerId);
bool unregisterTimers(QObject *object);
QList<TimerInfo> registeredTimers(QObject *object) const;
void wakeUp();
void interrupt();
void flush();
protected:
QEventDispatcherGenode(QEventDispatcherGenodePrivate &dd, QObject *parent = 0);
void setSocketNotifierPending(QSocketNotifier *notifier);
int activateTimers();
int activateSocketNotifiers();
virtual int select(int nfds,
fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
timeval *timeout);
};
class Q_CORE_EXPORT QEventDispatcherGenodePrivate : public QAbstractEventDispatcherPrivate
{
Q_DECLARE_PUBLIC(QEventDispatcherGenode)
public:
QEventDispatcherGenodePrivate();
~QEventDispatcherGenodePrivate();
int doSelect(QEventLoop::ProcessEventsFlags flags, timeval *timeout);
bool mainThread;
int thread_pipe[2];
// highest fd for all socket notifiers
int sn_highest;
// 3 socket notifier types - read, write and exception
QSockNotType sn_vec[3];
QTimerInfoList timerList;
// pending socket notifiers list
QSockNotType::List sn_pending_list;
QAtomicInt wakeUps;
bool interrupt;
};
QT_END_NAMESPACE
#endif // QEVENTDISPATCHER_GENODE_P_H

@ -1,588 +0,0 @@
/* Data structures */
//#ifndef QT_NO_QUUID_STRING
//# define QT_NO_QUUID_STRING
//#endif
#ifndef QT_NO_STL
# define QT_NO_STL
#endif
//#ifndef QT_NO_TEXTDATE
//# define QT_NO_TEXTDATE
//#endif
//#ifndef QT_NO_DATESTRING
//# define QT_NO_DATESTRING
//#endif
/* Dialogs */
//#ifndef QT_NO_COLORDIALOG
//# define QT_NO_COLORDIALOG
//#endif
//#ifndef QT_NO_ERRORMESSAGE
//# define QT_NO_ERRORMESSAGE
//#endif
//#ifndef QT_NO_FILEDIALOG
//# define QT_NO_FILEDIALOG
//#endif
//#ifndef QT_NO_FONTDIALOG
//# define QT_NO_FONTDIALOG
//#endif
//#ifndef QT_NO_INPUTDIALOG
//# define QT_NO_INPUTDIALOG
//#endif
//#ifndef QT_NO_MESSAGEBOX
//# define QT_NO_MESSAGEBOX
//#endif
#ifndef QT_NO_PRINTDIALOG
# define QT_NO_PRINTDIALOG
#endif
#ifndef QT_NO_PRINTPREVIEWDIALOG
# define QT_NO_PRINTPREVIEWDIALOG
#endif
//#ifndef QT_NO_PROGRESSDIALOG
//# define QT_NO_PROGRESSDIALOG
//#endif
//#ifndef QT_NO_TABDIALOG
//# define QT_NO_TABDIALOG
//#endif
//#ifndef QT_NO_WIZARD
//# define QT_NO_WIZARD
//#endif
/* File I/O */
//#ifndef QT_NO_DOM
//# define QT_NO_DOM
//#endif
//#ifndef QT_NO_FSFILEENGINE
//# define QT_NO_FSFILEENGINE
//#endif
//#ifndef QT_NO_FILESYSTEMWATCHER
//# define QT_NO_FILESYSTEMWATCHER
//#endif
//#ifndef QT_NO_FILESYSTEMMODEL
//# define QT_NO_FILESYSTEMMODEL
//#endif
//#ifndef QT_NO_PROCESS
//# define QT_NO_PROCESS
//#endif
//#ifndef QT_NO_TEMPORARYFILE
//# define QT_NO_TEMPORARYFILE
//#endif
//#ifndef QT_NO_TEXTSTREAM
//# define QT_NO_TEXTSTREAM
//#endif
//#ifndef QT_NO_SETTINGS
//# define QT_NO_SETTINGS
//#endif
//#ifndef QT_NO_LIBRARY
//# define QT_NO_LIBRARY
//#endif
/* Fonts */
#ifndef QT_FONTS_ARE_RESOURCES
# define QT_FONTS_ARE_RESOURCES
#endif
//#ifndef QT_NO_FREETYPE
//# define QT_NO_FREETYPE
//#endif
//#ifndef QT_NO_QWS_QPF
//# define QT_NO_QWS_QPF
//#endif
#ifndef QT_NO_QWS_QPF2
# define QT_NO_QWS_QPF2
#endif
/* Images */
//#ifndef QT_NO_ICON
//# define QT_NO_ICON
//#endif
//#ifndef QT_NO_IMAGEFORMATPLUGIN
//# define QT_NO_IMAGEFORMATPLUGIN
//#endif
//#ifndef QT_NO_IMAGEFORMAT_BMP
//# define QT_NO_IMAGEFORMAT_BMP
//#endif
//#ifndef QT_NO_IMAGEFORMAT_JPEG
//# define QT_NO_IMAGEFORMAT_JPEG
//#endif
//#ifndef QT_NO_IMAGEFORMAT_PNG
//# define QT_NO_IMAGEFORMAT_PNG
//#endif
//#ifndef QT_NO_IMAGEFORMAT_PPM
//# define QT_NO_IMAGEFORMAT_PPM
//#endif
//#ifndef QT_NO_IMAGEFORMAT_XBM
//# define QT_NO_IMAGEFORMAT_XBM
//#endif
//#ifndef QT_NO_IMAGEFORMAT_XPM
//# define QT_NO_IMAGEFORMAT_XPM
//#endif
//#ifndef QT_NO_IMAGE_HEURISTIC_MASK
//# define QT_NO_IMAGE_HEURISTIC_MASK
//#endif
//#ifndef QT_NO_IMAGE_TEXT
//# define QT_NO_IMAGE_TEXT
//#endif
//#ifndef QT_NO_MOVIE
//# define QT_NO_MOVIE
//#endif
/* Internationalization */
//#ifndef QT_NO_BIG_CODECS
//# define QT_NO_BIG_CODECS
//#endif
//#ifndef QT_NO_QWS_INPUTMETHODS
//# define QT_NO_QWS_INPUTMETHODS
//#endif
//#ifndef QT_NO_TEXTCODEC
//# define QT_NO_TEXTCODEC
//#endif
//#ifndef QT_NO_CODECS
//# define QT_NO_CODECS
//#endif
//#ifndef QT_NO_TEXTCODECPLUGIN
//# define QT_NO_TEXTCODECPLUGIN
//#endif
//#ifndef QT_NO_TRANSLATION
//# define QT_NO_TRANSLATION
//#endif
//#ifndef QT_NO_TRANSLATION_UTF8
//# define QT_NO_TRANSLATION_UTF8
//#endif
/* ItemViews */
//#ifndef QT_NO_ITEMVIEWS
//# define QT_NO_ITEMVIEWS
//#endif
//#ifndef QT_NO_DATAWIDGETMAPPER
//# define QT_NO_DATAWIDGETMAPPER
//#endif
//#ifndef QT_NO_DIRMODEL
//# define QT_NO_DIRMODEL
//#endif
//#ifndef QT_NO_LISTVIEW
//# define QT_NO_LISTVIEW
//#endif
//#ifndef QT_NO_COLUMNVIEW
//# define QT_NO_COLUMNVIEW
//#endif
//#ifndef QT_NO_PROXYMODEL
//# define QT_NO_PROXYMODEL
//#endif
//#ifndef QT_NO_SORTFILTERPROXYMODEL
//# define QT_NO_SORTFILTERPROXYMODEL
//#endif
//#ifndef QT_NO_STANDARDITEMMODEL
//# define QT_NO_STANDARDITEMMODEL
//#endif
//#ifndef QT_NO_STRINGLISTMODEL
//# define QT_NO_STRINGLISTMODEL
//#endif
//#ifndef QT_NO_TABLEVIEW
//# define QT_NO_TABLEVIEW
//#endif
//#ifndef QT_NO_TREEVIEW
//# define QT_NO_TREEVIEW
//#endif
/* Kernel */
//#ifndef QT_NO_ACTION
//# define QT_NO_ACTION
//#endif
//#ifndef QT_NO_CLIPBOARD
//# define QT_NO_CLIPBOARD
//#endif
//#ifndef QT_NO_CSSPARSER
//# define QT_NO_CSSPARSER
//#endif
//#ifndef QT_NO_CURSOR
//# define QT_NO_CURSOR
//#endif
//#ifndef QT_NO_DRAGANDDROP
//# define QT_NO_DRAGANDDROP
//#endif
//#ifndef QT_NO_EFFECTS
//# define QT_NO_EFFECTS
//#endif
//#ifndef QT_NO_PROPERTIES
//# define QT_NO_PROPERTIES
//#endif
//#ifndef QT_NO_SESSIONMANAGER
//# define QT_NO_SESSIONMANAGER
//#endif
#ifndef QT_NO_SHAREDMEMORY
# define QT_NO_SHAREDMEMORY
#endif
//#ifndef QT_NO_SHORTCUT
//# define QT_NO_SHORTCUT
//#endif
#ifndef QT_NO_SOUND
# define QT_NO_SOUND
#endif
#ifndef QT_NO_SYSTEMLOCALE
# define QT_NO_SYSTEMLOCALE
#endif
#ifndef QT_NO_SYSTEMSEMAPHORE
# define QT_NO_SYSTEMSEMAPHORE
#endif
//#ifndef QT_NO_TABLETEVENT
//# define QT_NO_TABLETEVENT
//#endif
//#ifndef QT_NO_TEXTHTMLPARSER
//# define QT_NO_TEXTHTMLPARSER
//#endif
//#ifndef QT_NO_THREAD
//# define QT_NO_THREAD
//#endif
#ifndef QT_NO_CONCURRENT
# define QT_NO_CONCURRENT
#endif
//#ifndef QT_NO_WHEELEVENT
//# define QT_NO_WHEELEVENT
//#endif
//#ifndef QT_NO_XMLSTREAM
//# define QT_NO_XMLSTREAM
//#endif
//#ifndef QT_NO_XMLSTREAMREADER
//# define QT_NO_XMLSTREAMREADER
//#endif
//#ifndef QT_NO_XMLSTREAMWRITER
//# define QT_NO_XMLSTREAMWRITER
//#endif
/* Networking */
#ifndef QT_NO_COP
# define QT_NO_COP
#endif
//#ifndef QT_NO_HOSTINFO
//# define QT_NO_HOSTINFO
//#endif
//#ifndef QT_NO_HTTP
//# define QT_NO_HTTP
//#endif
//#ifndef QT_NO_NETWORKPROXY
//# define QT_NO_NETWORKPROXY
//#endif
//#ifndef QT_NO_SOCKS5
//# define QT_NO_SOCKS5
//#endif
#ifndef QT_NO_UDPSOCKET
# define QT_NO_UDPSOCKET
#endif
#ifndef QT_NO_URLINFO
# define QT_NO_URLINFO
#endif
#ifndef QT_NO_FTP
# define QT_NO_FTP
#endif
/* found in source files */
//#ifndef QT_NO_LOCALSOCKET
//# define QT_NO_LOCALSOCKET
//#endif
//#ifndef QT_NO_LOCALSERVER
//# define QT_NO_LOCALSERVER
//#endif
#ifndef QT_NO_NETWORKINTERFACE
# define QT_NO_NETWORKINTERFACE
#endif
/* Painting */
//#ifndef QT_NO_COLORNAMES
//# define QT_NO_COLORNAMES
//#endif
//#ifndef QT_NO_DIRECTPAINTER
//# define QT_NO_DIRECTPAINTER
//#endif
//#ifndef QT_NO_PAINTONSCREEN
//# define QT_NO_PAINTONSCREEN
//#endif
//#ifndef QT_NO_PAINT_DEBUG
//# define QT_NO_PAINT_DEBUG
//#endif
//#ifndef QT_NO_PICTURE
//# define QT_NO_PICTURE
//#endif
#ifndef QT_NO_PRINTER
# define QT_NO_PRINTER
#endif
#ifndef QT_NO_CUPS
# define QT_NO_CUPS
#endif
/* Qt for Embedded Linux */
//#ifndef QT_NO_QWSEMBEDWIDGET
//# define QT_NO_QWSEMBEDWIDGET
//#endif
//#ifndef QT_NO_QWS_ALPHA_CURSOR
//# define QT_NO_QWS_ALPHA_CURSOR
//#endif
/* there's already the Nitpicker cursor */
#ifndef QT_NO_QWS_CURSOR
# define QT_NO_QWS_CURSOR
#endif
//#ifndef QT_NO_QWS_DECORATION_DEFAULT
//# define QT_NO_QWS_DECORATION_DEFAULT
//#endif
//#ifndef QT_NO_QWS_DECORATION_STYLED
//# define QT_NO_QWS_DECORATION_STYLED
//#endif
//#ifndef QT_NO_QWS_DECORATION_WINDOWS
//# define QT_NO_QWS_DECORATION_WINDOWS
//#endif
//#ifndef QT_NO_QWS_MANAGER
//# define QT_NO_QWS_MANAGER
//#endif
//#ifndef QT_NO_QWS_KEYBOARD
//# define QT_NO_QWS_KEYBOARD
//#endif
//#ifndef QT_NO_QWS_MOUSE
//# define QT_NO_QWS_MOUSE
//#endif
//#ifndef QT_NO_QWS_MOUSE_AUTO
//# define QT_NO_QWS_MOUSE_AUTO
//#endif
//#ifndef QT_NO_QWS_MOUSE_MANUAL
//# define QT_NO_QWS_MOUSE_MANUAL
//#endif
#ifndef QT_NO_QWS_MULTIPROCESS
# define QT_NO_QWS_MULTIPROCESS
#endif
#ifndef QT_NO_QWS_SOUNDSERVER
# define QT_NO_QWS_SOUNDSERVER
#endif
#ifndef QT_NO_SXE
# define QT_NO_SXE
#endif
//#ifndef QT_NO_QWS_PROPERTIES
//# define QT_NO_QWS_PROPERTIES
//#endif
//#ifndef QT_NO_QWS_PROXYSCREEN
//# define QT_NO_QWS_PROXYSCREEN
//#endif
//#ifndef QT_NO_QWS_DYNAMICSCREENTRANSFORMATION
//# define QT_NO_QWS_DYNAMICSCREENTRANSFORMATION
//#endif
/* SVG */
//#ifndef QT_NO_SVG
//# define QT_NO_SVG
//#endif
//#ifndef QT_NO_GRAPHICSSVGITEM
//# define QT_NO_GRAPHICSSVGITEM
//#endif
//#ifndef QT_NO_SVGGENERATOR
//# define QT_NO_SVGGENERATOR
//#endif
//#ifndef QT_NO_SVGRENDERER
//# define QT_NO_SVGRENDERER
//#endif
//#ifndef QT_NO_SVGWIDGET
//# define QT_NO_SVGWIDGET
//#endif
/* Styles */
//#ifndef QT_NO_STYLE_MOTIF
//# define QT_NO_STYLE_MOTIF
//#endif
//#ifndef QT_NO_STYLE_CDE
//# define QT_NO_STYLE_CDE
//#endif
//#ifndef QT_NO_STYLE_CLEANLOOKS
//# define QT_NO_STYLE_CLEANLOOKS
//#endif
//#ifndef QT_NO_STYLE_PLASTIQUE
//# define QT_NO_STYLE_PLASTIQUE
//#endif
//#ifndef QT_NO_STYLE_STYLESHEET
//# define QT_NO_STYLE_STYLESHEET
//#endif
//#ifndef QT_NO_STYLE_WINDOWSCE
//# define QT_NO_STYLE_WINDOWSCE
//#endif
//#ifndef QT_NO_STYLE_WINDOWSMOBILE
//# define QT_NO_STYLE_WINDOWSMOBILE
//#endif
//#ifndef QT_NO_STYLE_WINDOWSVISTA
//# define QT_NO_STYLE_WINDOWSVISTA
//#endif
//#ifndef QT_NO_STYLE_WINDOWSXP
//# define QT_NO_STYLE_WINDOWSXP
//#endif
/* Utilities */
//#ifndef QT_NO_ACCESSIBILITY
//# define QT_NO_ACCESSIBILITY
//#endif
//#ifndef QT_NO_COMPLETER
//# define QT_NO_COMPLETER
//#endif
//#ifndef QT_NO_DESKTOPSERVICES
//# define QT_NO_DESKTOPSERVICES
//#endif
//#ifndef QT_NO_SCRIPT
//# define QT_NO_SCRIPT
//#endif
//#ifndef QT_NO_SYSTEMTRAYICON
//# define QT_NO_SYSTEMTRAYICON
//#endif
//#ifndef QT_NO_UNDOCOMMAND
//# define QT_NO_UNDOCOMMAND
//#endif
//#ifndef QT_NO_UNDOGROUP
//# define QT_NO_UNDOGROUP
//#endif
//#ifndef QT_NO_UNDOSTACK
//# define QT_NO_UNDOSTACK
//#endif
//#ifndef QT_NO_UNDOVIEW
//# define QT_NO_UNDOVIEW
//#endif
/* Widgets */
//#ifndef QT_NO_GROUPBOX
//# define QT_NO_GROUPBOX
//#endif
//#ifndef QT_NO_BUTTONGROUP
//# define QT_NO_BUTTONGROUP
//#endif
//#ifndef QT_NO_LCDNUMBER
//# define QT_NO_LCDNUMBER
//#endif
//#ifndef QT_NO_LINEEDIT
//# define QT_NO_LINEEDIT
//#endif
//#ifndef QT_NO_COMBOBOX
//# define QT_NO_COMBOBOX
//#endif
//#ifndef QT_NO_FONTCOMBOBOX
//# define QT_NO_FONTCOMBOBOX
//#endif
//#ifndef QT_NO_SPINBOX
//# define QT_NO_SPINBOX
//#endif
//#ifndef QT_NO_CALENDARWIDGET
//# define QT_NO_CALENDARWIDGET
//#endif
//#ifndef QT_NO_DATETIMEEDIT
//# define QT_NO_DATETIMEEDIT
//#endif
//#ifndef QT_NO_LISTWIDGET
//# define QT_NO_LISTWIDGET
//#endif
//#ifndef QT_NO_MENU
//# define QT_NO_MENU
//#endif
//#ifndef QT_NO_CONTEXTMENU
//# define QT_NO_CONTEXTMENU
//#endif
//#ifndef QT_NO_MAINWINDOW
//# define QT_NO_MAINWINDOW
//#endif
//#ifndef QT_NO_DOCKWIDGET
//# define QT_NO_DOCKWIDGET
//#endif
//#ifndef QT_NO_TOOLBAR
//# define QT_NO_TOOLBAR
//#endif
//#ifndef QT_NO_MENUBAR
//# define QT_NO_MENUBAR
//#endif
//#ifndef QT_NO_WORKSPACE
//# define QT_NO_WORKSPACE
//#endif
//#ifndef QT_NO_PROGRESSBAR
//# define QT_NO_PROGRESSBAR
//#endif
//#ifndef QT_NO_RESIZEHANDLER
//# define QT_NO_RESIZEHANDLER
//#endif
//#ifndef QT_NO_RUBBERBAND
//# define QT_NO_RUBBERBAND
//#endif
//#ifndef QT_NO_SPLITTER
//# define QT_NO_SPLITTER
//#endif
//#ifndef QT_NO_SIGNALMAPPER
//# define QT_NO_SIGNALMAPPER
//#endif
//#ifndef QT_NO_SIZEGRIP
//# define QT_NO_SIZEGRIP
//#endif
//#ifndef QT_NO_SLIDER
//# define QT_NO_SLIDER
//#endif
//#ifndef QT_NO_DIAL
//# define QT_NO_DIAL
//#endif
//#ifndef QT_NO_SCROLLBAR
//# define QT_NO_SCROLLBAR
//#endif
//#ifndef QT_NO_SCROLLAREA
//# define QT_NO_SCROLLAREA
//#endif
//#ifndef QT_NO_GRAPHICSVIEW
//# define QT_NO_GRAPHICSVIEW
//#endif
//#ifndef QT_NO_PRINTPREVIEWWIDGET
//# define QT_NO_PRINTPREVIEWWIDGET
//#endif
//#ifndef QT_NO_MDIAREA
//# define QT_NO_MDIAREA
//#endif
//#ifndef QT_NO_TEXTEDIT
//# define QT_NO_TEXTEDIT
//#endif
//#ifndef QT_NO_SYNTAXHIGHLIGHTER
//# define QT_NO_SYNTAXHIGHLIGHTER
//#endif
//#ifndef QT_NO_TEXTBROWSER
//# define QT_NO_TEXTBROWSER
//#endif
//#ifndef QT_NO_SPINWIDGET
//# define QT_NO_SPINWIDGET
//#endif
//#ifndef QT_NO_SPLASHSCREEN
//# define QT_NO_SPLASHSCREEN
//#endif
//#ifndef QT_NO_STACKEDWIDGET
//# define QT_NO_STACKEDWIDGET
//#endif
//#ifndef QT_NO_TABWIDGET
//# define QT_NO_TABWIDGET
//#endif
//#ifndef QT_NO_STATUSBAR
//# define QT_NO_STATUSBAR
//#endif
//#ifndef QT_NO_STATUSTIP
//# define QT_NO_STATUSTIP
//#endif
//#ifndef QT_NO_TABLEWIDGET
//# define QT_NO_TABLEWIDGET
//#endif
//#ifndef QT_NO_TOOLBUTTON
//# define QT_NO_TOOLBUTTON
//#endif
//#ifndef QT_NO_TABBAR
//# define QT_NO_TABBAR
//#endif
//#ifndef QT_NO_TOOLBOX
//# define QT_NO_TOOLBOX
//#endif
//#ifndef QT_NO_WHATSTHIS
//# define QT_NO_WHATSTHIS
//#endif
//#ifndef QT_NO_TOOLTIP
//# define QT_NO_TOOLTIP
//#endif
//#ifndef QT_NO_TREEWIDGET
//# define QT_NO_TREEWIDGET
//#endif
//#ifndef QT_NO_VALIDATOR
//# define QT_NO_VALIDATOR
//#endif
/* Windows */
//#ifndef QT_NO_WIN_ACTIVEQT
//# define QT_NO_WIN_ACTIVEQT
//#endif

@ -1,369 +0,0 @@
#ifndef QT_BOOTSTRAPPED
#include "qconfig-genode.h"
#endif
/* Qt Edition */