From ee423e5bf1ccd1b87ffe345e20672640f7f76e00 Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Mon, 18 Feb 2019 18:29:24 +0100 Subject: [PATCH] qt5: remove deprecated APIs Issue #3162 --- repos/gems/src/app/mixer_gui_qt/main.cpp | 48 ++++++++---------- repos/gems/src/app/mixer_gui_qt/main_window.h | 1 - repos/gems/src/test/tiled_wm/panel/main.cpp | 5 +- repos/gems/src/test/tiled_wm/panel/panel.cpp | 8 +-- repos/gems/src/test/tiled_wm/panel/panel.h | 4 +- repos/gems/src/test/tiled_wm/util.h | 49 +++---------------- .../qpa_nitpicker/qnitpickerplatformwindow.h | 16 +++--- repos/libports/lib/mk/qt5_qpa_nitpicker.mk | 4 +- .../src/app/qt5/qt_launchpad/main.cpp | 11 +---- .../src/app/qt5/qt_launchpad/qt_launchpad.cpp | 2 +- .../qnitpickerviewwidget.cpp | 2 +- .../lib/qt5/qpluginwidget/qpluginwidget.cpp | 6 +-- .../src/plugins/platforms/nitpicker/main.cpp | 6 ++- .../platforms/nitpicker/qgenodeclipboard.cpp | 8 +-- .../platforms/nitpicker/qgenodeclipboard.h | 6 +-- .../nitpicker/qnitpickerintegration.cpp | 19 +++---- .../nitpicker/qnitpickerintegration.h | 10 ++-- .../nitpicker/qnitpickerplatformwindow.cpp | 28 +++++------ .../nitpicker/qsignalhandlerthread.cpp | 22 --------- .../nitpicker/qsignalhandlerthread.h | 39 --------------- 20 files changed, 89 insertions(+), 205 deletions(-) delete mode 100644 repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qsignalhandlerthread.cpp delete mode 100644 repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qsignalhandlerthread.h diff --git a/repos/gems/src/app/mixer_gui_qt/main.cpp b/repos/gems/src/app/mixer_gui_qt/main.cpp index 17a462f5f..5f04c0cdc 100644 --- a/repos/gems/src/app/mixer_gui_qt/main.cpp +++ b/repos/gems/src/app/mixer_gui_qt/main.cpp @@ -19,20 +19,22 @@ #include "main_window.h" -enum { THREAD_STACK_SIZE = 2 * 1024 * sizeof(long) }; +enum { SIGNAL_EP_STACK_SIZE = 16*1024 }; -struct Report_thread : Genode::Thread +struct Report_handler { QMember proxy; Genode::Attached_rom_dataspace channels_rom; - Genode::Signal_receiver sig_rec; - Genode::Signal_dispatcher channels_dispatcher; + Genode::Entrypoint sig_ep; + Genode::Signal_handler channels_handler; Genode::Lock _report_lock { Genode::Lock::LOCKED }; + bool window_connected { false }; + void _report(char const *data, size_t size) { Genode::Xml_node node(data, size); @@ -42,34 +44,25 @@ struct Report_thread : Genode::Thread _report_lock.lock(); } - void _handle_channels(unsigned) + void _handle_channels() { + if (!window_connected) + return; + channels_rom.update(); if (channels_rom.valid()) _report(channels_rom.local_addr(), channels_rom.size()); } - Report_thread(Genode::Env &env) + Report_handler(Genode::Env &env) : - Genode::Thread(env, "report_thread", THREAD_STACK_SIZE), channels_rom(env, "channel_list"), - channels_dispatcher(sig_rec, *this, &Report_thread::_handle_channels) + sig_ep(env, SIGNAL_EP_STACK_SIZE, "signal ep", + Genode::Affinity::Location()), + channels_handler(sig_ep, *this, &Report_handler::_handle_channels) { - channels_rom.sigh(channels_dispatcher); - } - - void entry() override - { - using namespace Genode; - while (true) { - Signal sig = sig_rec.wait_for_signal(); - int num = sig.num(); - - Signal_dispatcher_base *dispatcher; - dispatcher = dynamic_cast(sig.context()); - dispatcher->dispatch(num); - } + channels_rom.sigh(channels_handler); } void connect_window(Main_window *win) @@ -77,6 +70,8 @@ struct Report_thread : Genode::Thread QObject::connect(proxy, SIGNAL(report_changed(void *,void const*)), win, SLOT(report_changed(void *, void const*)), Qt::QueuedConnection); + + window_connected = true; } }; @@ -107,10 +102,10 @@ void Libc::Component::construct(Libc::Env &env) int argc = 1; char const *argv[] = { "mixer_gui_qt", 0 }; - Report_thread *report_thread; - try { report_thread = new Report_thread(env); } + Report_handler *report_handler; + try { report_handler = new Report_handler(env); } catch (...) { - Genode::error("Could not create Report_thread"); + Genode::error("Could not create Report_handler"); return -1; } @@ -121,8 +116,7 @@ void Libc::Component::construct(Libc::Env &env) QMember main_window(env); main_window->show(); - report_thread->connect_window(main_window); - report_thread->start(); + report_handler->connect_window(main_window); app.connect(&app, SIGNAL(lastWindowClosed()), SLOT(quit())); diff --git a/repos/gems/src/app/mixer_gui_qt/main_window.h b/repos/gems/src/app/mixer_gui_qt/main_window.h index 2c712bbff..a52a13332 100644 --- a/repos/gems/src/app/mixer_gui_qt/main_window.h +++ b/repos/gems/src/app/mixer_gui_qt/main_window.h @@ -16,7 +16,6 @@ /* Genode includes */ #include -#include #include #include diff --git a/repos/gems/src/test/tiled_wm/panel/main.cpp b/repos/gems/src/test/tiled_wm/panel/main.cpp index 75342881b..36f55ac3c 100644 --- a/repos/gems/src/test/tiled_wm/panel/main.cpp +++ b/repos/gems/src/test/tiled_wm/panel/main.cpp @@ -21,11 +21,12 @@ struct Main { Libc::Env &env; - Genode_signal_dispatcher dispatcher { env }; + Genode::Entrypoint signal_ep { env, 0x4000, "signal ep", + Genode::Affinity::Location() }; QApplication &app { qt5_initialization(env) }; - QMember widget { env, dispatcher.signal_receiver() }; + QMember widget { env, signal_ep }; Main(Libc::Env &env) : env(env) { diff --git a/repos/gems/src/test/tiled_wm/panel/panel.cpp b/repos/gems/src/test/tiled_wm/panel/panel.cpp index c7a2f8a07..21d96bf83 100644 --- a/repos/gems/src/test/tiled_wm/panel/panel.cpp +++ b/repos/gems/src/test/tiled_wm/panel/panel.cpp @@ -86,10 +86,10 @@ void App_bar::_handle_apps() } -App_bar::App_bar(Genode::Env &env, Genode::Signal_receiver &sig_rec) +App_bar::App_bar(Genode::Env &env, Genode::Entrypoint &sig_ep) : _apps(env, "apps"), _content_request(env, "content_request"), - _apps_proxy(sig_rec) + _apps_proxy(sig_ep) { _content_request.enabled(true); @@ -116,10 +116,10 @@ void Panel::_wifi_toggled(bool checked) } -Panel::Panel(Genode::Env &env, Genode::Signal_receiver &sig_rec) +Panel::Panel(Genode::Env &env, Genode::Entrypoint &sig_ep) : _overlay(env, "overlay"), _overlay_request(env, "overlay_request"), - _panel_button("Panel"), _app_bar(env, sig_rec) + _panel_button("Panel"), _app_bar(env, sig_ep) { _layout->addWidget(_panel_button); _layout->addWidget(new Spacer(), 1); diff --git a/repos/gems/src/test/tiled_wm/panel/panel.h b/repos/gems/src/test/tiled_wm/panel/panel.h index afe3eb70a..948a8a7ef 100644 --- a/repos/gems/src/test/tiled_wm/panel/panel.h +++ b/repos/gems/src/test/tiled_wm/panel/panel.h @@ -77,7 +77,7 @@ class App_bar : public Compound_widget public: - App_bar(Genode::Env &, Genode::Signal_receiver &); + App_bar(Genode::Env &, Genode::Entrypoint &); ~App_bar(); }; @@ -102,7 +102,7 @@ class Panel : public Compound_widget public: - Panel(Genode::Env &, Genode::Signal_receiver &); + Panel(Genode::Env &, Genode::Entrypoint &); ~Panel(); }; diff --git a/repos/gems/src/test/tiled_wm/util.h b/repos/gems/src/test/tiled_wm/util.h index 6f0efee47..4c3636eed 100644 --- a/repos/gems/src/test/tiled_wm/util.h +++ b/repos/gems/src/test/tiled_wm/util.h @@ -41,25 +41,25 @@ typedef Genode::String<32> Name; * Genode signal to queued Qt signal proxy */ class Genode_signal_proxy : public QObject, - public Genode::Signal_dispatcher + public Genode::Signal_handler { Q_OBJECT public: - Genode_signal_proxy(Genode::Signal_receiver &sig_rec) + Genode_signal_proxy(Genode::Entrypoint &sig_ep) : - Genode::Signal_dispatcher( - sig_rec, *this, &Genode_signal_proxy::handle_genode_signal) + Genode::Signal_handler( + sig_ep, *this, &Genode_signal_proxy::handle_genode_signal) { connect(this, SIGNAL(internal_signal()), this, SIGNAL(signal()), Qt::QueuedConnection); } - /* called by signal dispatcher / emits internal signal in context of - * signal-dispatcher thread */ - void handle_genode_signal(unsigned = 0) { Q_EMIT internal_signal(); } + /* called by signal handler / emits internal signal in context of + * signal-entrypoint thread */ + void handle_genode_signal() { Q_EMIT internal_signal(); } Q_SIGNALS: @@ -71,41 +71,6 @@ class Genode_signal_proxy : public QObject, }; -/* - * Genode signal dispatcher thread - */ -class Genode_signal_dispatcher : public Genode::Thread -{ - private: - - Genode::Signal_receiver _sig_rec; - - void entry() - { - /* dispatch signals */ - while (true) { - Genode::Signal sig = _sig_rec.wait_for_signal(); - Genode::Signal_dispatcher_base *dispatcher { - dynamic_cast(sig.context()) }; - - if (dispatcher) - dispatcher->dispatch(sig.num()); - } - } - - public: - - Genode_signal_dispatcher(Genode::Env &env) - : - Genode::Thread(env, "signal_dispatcher", 0x4000) - { - start(); - } - - Genode::Signal_receiver &signal_receiver() { return _sig_rec; } -}; - - /* * Qt initialization */ diff --git a/repos/libports/include/qt5/qpa_nitpicker/qnitpickerplatformwindow.h b/repos/libports/include/qt5/qpa_nitpicker/qnitpickerplatformwindow.h index 56fe80dac..8aeb275d8 100644 --- a/repos/libports/include/qt5/qpa_nitpicker/qnitpickerplatformwindow.h +++ b/repos/libports/include/qt5/qpa_nitpicker/qnitpickerplatformwindow.h @@ -48,7 +48,7 @@ class QNitpickerPlatformWindow : public QObject, public QPlatformWindow bool _framebuffer_changed; bool _geometry_changed; Framebuffer::Mode _current_mode; - Genode::Signal_receiver &_signal_receiver; + Genode::Entrypoint &_signal_ep; Nitpicker::Session::View_handle _view_handle; Input::Session_client _input_session; Genode::Attached_dataspace _ev_buf; @@ -66,8 +66,8 @@ class QNitpickerPlatformWindow : public QObject, public QPlatformWindow _mouse_position.y() - geometry().y()); } - Genode::Signal_dispatcher _input_signal_dispatcher; - Genode::Signal_dispatcher _mode_changed_signal_dispatcher; + Genode::Signal_handler _input_signal_handler; + Genode::Signal_handler _mode_changed_signal_handler; QVector _touch_points { 16 }; QTouchDevice *_touch_device; @@ -82,18 +82,18 @@ class QNitpickerPlatformWindow : public QObject, public QPlatformWindow private Q_SLOTS: - void _handle_input(unsigned int); - void _handle_mode_changed(unsigned int); + void _handle_input(); + void _handle_mode_changed(); Q_SIGNALS: - void _input(unsigned int); - void _mode_changed(unsigned int); + void _input(); + void _mode_changed(); public: QNitpickerPlatformWindow(Genode::Env &env, QWindow *window, - Genode::Signal_receiver &signal_receiver, + Genode::Entrypoint &signal_ep, int screen_width, int screen_height); ~QNitpickerPlatformWindow(); diff --git a/repos/libports/lib/mk/qt5_qpa_nitpicker.mk b/repos/libports/lib/mk/qt5_qpa_nitpicker.mk index 6161dc92f..d834de990 100644 --- a/repos/libports/lib/mk/qt5_qpa_nitpicker.mk +++ b/repos/libports/lib/mk/qt5_qpa_nitpicker.mk @@ -16,11 +16,9 @@ SRC_CC += main.cpp \ qnitpickerintegration.cpp \ qnitpickerplatformwindow.cpp \ qnitpickerwindowsurface.cpp \ - qsignalhandlerthread.cpp \ moc_qnitpickerplatformwindow.cpp \ moc_qnitpickerwindowsurface.cpp \ - moc_qnitpickerintegrationplugin.cpp \ - moc_qsignalhandlerthread.cpp + moc_qnitpickerintegrationplugin.cpp ifeq ($(CONTRIB_DIR),) diff --git a/repos/libports/src/app/qt5/qt_launchpad/main.cpp b/repos/libports/src/app/qt5/qt_launchpad/main.cpp index 23b5e415f..0fbfe555a 100644 --- a/repos/libports/src/app/qt5/qt_launchpad/main.cpp +++ b/repos/libports/src/app/qt5/qt_launchpad/main.cpp @@ -40,15 +40,6 @@ struct Qt_launchpad_namespace::Local_env : Genode::Env Pd_session_capability pd_session_cap() override { return genode_env.pd_session_cap(); } Id_space &id_space() override { return genode_env.id_space(); } - /* - * \deprecated - * - * Emulation of deprecated part of the 'Env' interface. To be - * removed once they are removed from 'Genode::Env'. - */ - Pd_session &ram() override { return pd(); } - Pd_session_capability ram_session_cap() override { return pd_session_cap(); } - Session_capability session(Parent::Service_name const &service_name, Parent::Client::Id id, Parent::Session_args const &session_args, @@ -88,7 +79,7 @@ void Libc::Component::construct(Libc::Env &env) QApplication a(argc, (char**)argv); - Qt_launchpad launchpad(local_env, env.ram().avail_ram().value); + Qt_launchpad launchpad(local_env, env.pd().avail_ram().value); Genode::Attached_rom_dataspace config(env, "config"); diff --git a/repos/libports/src/app/qt5/qt_launchpad/qt_launchpad.cpp b/repos/libports/src/app/qt5/qt_launchpad/qt_launchpad.cpp index 08482adbe..e689905e8 100644 --- a/repos/libports/src/app/qt5/qt_launchpad/qt_launchpad.cpp +++ b/repos/libports/src/app/qt5/qt_launchpad/qt_launchpad.cpp @@ -59,7 +59,7 @@ void Qt_launchpad::_avail_quota_update() { static Genode::size_t _avail = 0; - Genode::size_t new_avail = _env.ram().avail_ram().value; + Genode::size_t new_avail = _env.pd().avail_ram().value; if (new_avail != _avail) quota(new_avail); diff --git a/repos/libports/src/lib/qt5/qnitpickerviewwidget/qnitpickerviewwidget.cpp b/repos/libports/src/lib/qt5/qnitpickerviewwidget/qnitpickerviewwidget.cpp index e197d19f1..f11464036 100644 --- a/repos/libports/src/lib/qt5/qnitpickerviewwidget/qnitpickerviewwidget.cpp +++ b/repos/libports/src/lib/qt5/qnitpickerviewwidget/qnitpickerviewwidget.cpp @@ -232,5 +232,5 @@ void QNitpickerViewWidget::focusInEvent(QFocusEvent *) QNitpickerPlatformWindow *platform_window = dynamic_cast(window()->windowHandle()->handle()); - platform_window->nitpicker().focus(*nitpicker); + platform_window->nitpicker().focus(nitpicker->rpc_cap()); } diff --git a/repos/libports/src/lib/qt5/qpluginwidget/qpluginwidget.cpp b/repos/libports/src/lib/qt5/qpluginwidget/qpluginwidget.cpp index 0bec697b5..8120e822c 100644 --- a/repos/libports/src/lib/qt5/qpluginwidget/qpluginwidget.cpp +++ b/repos/libports/src/lib/qt5/qpluginwidget/qpluginwidget.cpp @@ -127,7 +127,7 @@ void PluginStarter::_start_plugin(QString &file_name, QByteArray const &file_buf "ram_quota").ulong_value(0) + file_size; - if (((long)_env->ram().avail_ram().value - (long)ram_quota) < + if (((long)_env->pd().avail_ram().value - (long)ram_quota) < QPluginWidget::PRESERVED_RAM_QUOTA) { Genode::error("Cannot donate ", ram_quota, " bytes of RAM to the plugin (quota exceeded)."); _plugin_loading_state = RAM_QUOTA_EXCEEDED_ERROR; @@ -180,7 +180,7 @@ void PluginStarter::_start_plugin(QString &file_name, QByteArray const &file_buf } else { Genode::size_t ram_quota = Arg_string::find_arg(_args.constData(), "ram_quota").ulong_value(0); - if (((long)_env->ram().avail_ram().value - (long)ram_quota) < + if (((long)_env->pd().avail_ram().value - (long)ram_quota) < QPluginWidget::PRESERVED_RAM_QUOTA) { _plugin_loading_state = RAM_QUOTA_EXCEEDED_ERROR; return; @@ -235,7 +235,7 @@ void PluginStarter::run() QString file_name = _plugin_url.path().remove("/"); try { - Rom_connection rc(_env, file_name.toLatin1().constData()); + Rom_connection rc(*_env, file_name.toLatin1().constData()); Dataspace_capability rom_ds = rc.dataspace(); diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/main.cpp b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/main.cpp index d06d27afe..994d51ce1 100644 --- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/main.cpp +++ b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/main.cpp @@ -40,7 +40,11 @@ QPlatformIntegration *QNitpickerIntegrationPlugin::create(const QString& system, Q_UNUSED(paramList); if (system.toLower() == "nitpicker") { assert(_env != nullptr); - return new QNitpickerIntegration(*_env); + Genode::Entrypoint *signal_ep = + new Genode::Entrypoint(*_env, 2*1024*sizeof(Genode::addr_t), + "QPA signal handler", + Genode::Affinity::Location()); + return new QNitpickerIntegration(*_env, *signal_ep); } return 0; diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qgenodeclipboard.cpp b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qgenodeclipboard.cpp index 31a20bf78..b06a1001c 100644 --- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qgenodeclipboard.cpp +++ b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qgenodeclipboard.cpp @@ -27,8 +27,8 @@ QT_BEGIN_NAMESPACE static constexpr bool verbose = false; -QGenodeClipboard::QGenodeClipboard(Genode::Env &env, Genode::Signal_receiver &sig_rcv) -: _clipboard_signal_dispatcher(sig_rcv, *this, &QGenodeClipboard::_handle_clipboard) +QGenodeClipboard::QGenodeClipboard(Genode::Env &env, Genode::Entrypoint &sig_ep) +: _clipboard_signal_handler(sig_ep, *this, &QGenodeClipboard::_handle_clipboard) { try { @@ -40,7 +40,7 @@ QGenodeClipboard::QGenodeClipboard(Genode::Env &env, Genode::Signal_receiver &si _clipboard_ds = new Genode::Attached_rom_dataspace(env, "clipboard"); - _clipboard_ds->sigh(_clipboard_signal_dispatcher); + _clipboard_ds->sigh(_clipboard_signal_handler); _clipboard_ds->update(); } catch (...) { } @@ -63,7 +63,7 @@ QGenodeClipboard::~QGenodeClipboard() } -void QGenodeClipboard::_handle_clipboard(unsigned int) +void QGenodeClipboard::_handle_clipboard() { emitChanged(QClipboard::Clipboard); } diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qgenodeclipboard.h b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qgenodeclipboard.h index e1f04ef1d..f9b3f15a8 100644 --- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qgenodeclipboard.h +++ b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qgenodeclipboard.h @@ -33,7 +33,7 @@ class QGenodeClipboard : public QPlatformClipboard private: Genode::Attached_rom_dataspace *_clipboard_ds = nullptr; - Genode::Signal_dispatcher _clipboard_signal_dispatcher; + Genode::Signal_handler _clipboard_signal_handler; Genode::Reporter *_clipboard_reporter = nullptr; @@ -41,11 +41,11 @@ class QGenodeClipboard : public QPlatformClipboard QMember _mimedata; - void _handle_clipboard(unsigned int); + void _handle_clipboard(); public: - QGenodeClipboard(Genode::Env &env, Genode::Signal_receiver &sig_rcv); + QGenodeClipboard(Genode::Env &env, Genode::Entrypoint &sig_ep); ~QGenodeClipboard(); QMimeData *mimeData(QClipboard::Mode mode = QClipboard::Clipboard); void setMimeData(QMimeData *data, QClipboard::Mode mode = QClipboard::Clipboard); diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.cpp b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.cpp index 76bd73fd2..43f7358ea 100644 --- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.cpp +++ b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.cpp @@ -28,19 +28,12 @@ QT_BEGIN_NAMESPACE static const bool verbose = false; -Genode::Signal_receiver &QNitpickerIntegration::_signal_receiver() -{ - static Genode::Signal_receiver _inst; - return _inst; -} -QNitpickerIntegration::QNitpickerIntegration(Genode::Env &env) +QNitpickerIntegration::QNitpickerIntegration(Genode::Env &env, + Genode::Entrypoint &signal_ep) : _env(env), - _signal_handler_thread(_signal_receiver()), - _nitpicker_screen(new QNitpickerScreen(env)) -{ - _signal_handler_thread.start(); -} + _signal_ep(signal_ep), + _nitpicker_screen(new QNitpickerScreen(env)) { } bool QNitpickerIntegration::hasCapability(QPlatformIntegration::Capability cap) const @@ -59,7 +52,7 @@ QPlatformWindow *QNitpickerIntegration::createPlatformWindow(QWindow *window) co QRect screen_geometry = _nitpicker_screen->geometry(); return new QNitpickerPlatformWindow(_env, window, - _signal_receiver(), + _signal_ep, screen_geometry.width(), screen_geometry.height()); } @@ -102,7 +95,7 @@ QPlatformFontDatabase *QNitpickerIntegration::fontDatabase() const #ifndef QT_NO_CLIPBOARD QPlatformClipboard *QNitpickerIntegration::clipboard() const { - static QGenodeClipboard cb(_env, _signal_receiver()); + static QGenodeClipboard cb(_env, _signal_ep); return &cb; } #endif diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.h b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.h index 00e878129..ce157a21c 100644 --- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.h +++ b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerintegration.h @@ -22,7 +22,6 @@ #include #include "qnitpickerscreen.h" -#include "qsignalhandlerthread.h" QT_BEGIN_NAMESPACE @@ -30,11 +29,11 @@ class QNitpickerIntegration : public QPlatformIntegration { private: - Genode::Env &_env; + Genode::Env &_env; - QSignalHandlerThread _signal_handler_thread; + Genode::Entrypoint &_signal_ep; - QNitpickerScreen *_nitpicker_screen; + QNitpickerScreen *_nitpicker_screen; /* * A reference to the signal receiver gets passed to newly created @@ -47,7 +46,8 @@ class QNitpickerIntegration : public QPlatformIntegration public: - QNitpickerIntegration(Genode::Env &env); + QNitpickerIntegration(Genode::Env &env, + Genode::Entrypoint &signal_ep); void initialize() Q_DECL_OVERRIDE; bool hasCapability(QPlatformIntegration::Capability cap) const Q_DECL_OVERRIDE; diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerplatformwindow.cpp b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerplatformwindow.cpp index 48bcfe30c..fc35946d7 100644 --- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerplatformwindow.cpp +++ b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerplatformwindow.cpp @@ -185,7 +185,7 @@ static Qt::Key translate_keycode(Input::Keycode key) } -void QNitpickerPlatformWindow::_handle_input(unsigned int) +void QNitpickerPlatformWindow::_handle_input() { QList touch_events; @@ -316,7 +316,7 @@ void QNitpickerPlatformWindow::_handle_input(unsigned int) } -void QNitpickerPlatformWindow::_handle_mode_changed(unsigned int) +void QNitpickerPlatformWindow::_handle_mode_changed() { Framebuffer::Mode mode(_nitpicker_session.mode()); @@ -432,7 +432,7 @@ QString QNitpickerPlatformWindow::_sanitize_label(QString label) QNitpickerPlatformWindow::QNitpickerPlatformWindow(Genode::Env &env, QWindow *window, - Genode::Signal_receiver &signal_receiver, + Genode::Entrypoint &signal_ep, int screen_width, int screen_height) : QPlatformWindow(window), _env(env), @@ -442,17 +442,17 @@ QNitpickerPlatformWindow::QNitpickerPlatformWindow(Genode::Env &env, QWindow *wi _framebuffer(0), _framebuffer_changed(false), _geometry_changed(false), - _signal_receiver(signal_receiver), + _signal_ep(signal_ep), _view_handle(_create_view()), _input_session(env.rm(), _nitpicker_session.input_session()), _ev_buf(env.rm(), _input_session.dataspace()), _resize_handle(!window->flags().testFlag(Qt::Popup)), _decoration(!window->flags().testFlag(Qt::Popup)), _egl_surface(EGL_NO_SURFACE), - _input_signal_dispatcher(_signal_receiver, *this, - &QNitpickerPlatformWindow::_input), - _mode_changed_signal_dispatcher(_signal_receiver, *this, - &QNitpickerPlatformWindow::_mode_changed), + _input_signal_handler(_signal_ep, *this, + &QNitpickerPlatformWindow::_input), + _mode_changed_signal_handler(_signal_ep, *this, + &QNitpickerPlatformWindow::_mode_changed), _touch_device(_init_touch_device()) { if (qnpw_verbose) @@ -461,9 +461,9 @@ QNitpickerPlatformWindow::QNitpickerPlatformWindow(Genode::Env &env, QWindow *wi _nitpicker_session_label_list.append(_nitpicker_session_label); - _input_session.sigh(_input_signal_dispatcher); + _input_session.sigh(_input_signal_handler); - _nitpicker_session.mode_sigh(_mode_changed_signal_dispatcher); + _nitpicker_session.mode_sigh(_mode_changed_signal_handler); _adjust_and_set_geometry(geometry()); @@ -475,12 +475,12 @@ QNitpickerPlatformWindow::QNitpickerPlatformWindow(Genode::Env &env, QWindow *wi _nitpicker_session.execute(); } - connect(this, SIGNAL(_input(unsigned int)), - this, SLOT(_handle_input(unsigned int)), + connect(this, SIGNAL(_input()), + this, SLOT(_handle_input()), Qt::QueuedConnection); - connect(this, SIGNAL(_mode_changed(unsigned int)), - this, SLOT(_handle_mode_changed(unsigned int)), + connect(this, SIGNAL(_mode_changed()), + this, SLOT(_handle_mode_changed()), Qt::QueuedConnection); } diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qsignalhandlerthread.cpp b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qsignalhandlerthread.cpp deleted file mode 100644 index 3e4df8fcd..000000000 --- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qsignalhandlerthread.cpp +++ /dev/null @@ -1,22 +0,0 @@ -/* - * \brief QPA signal handler thread - * \author Christian Prochaska - * \date 2015-09-18 - */ - -/* - * Copyright (C) 2015-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#include "qsignalhandlerthread.h" - -void QSignalHandlerThread::run() -{ - for (;;) { - Genode::Signal s = _signal_receiver.wait_for_signal(); - static_cast(s.context())->dispatch(s.num()); - } -} diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qsignalhandlerthread.h b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qsignalhandlerthread.h deleted file mode 100644 index d44f8070c..000000000 --- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qsignalhandlerthread.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * \brief QPA signal handler thread - * \author Christian Prochaska - * \date 2015-09-18 - */ - -/* - * Copyright (C) 2015-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _QSIGNALHANDLERTHREAD_H_ -#define _QSIGNALHANDLERTHREAD_H_ - -/* Genode includes */ -#include - -/* Qt includes */ -#include - -class QSignalHandlerThread : public QThread -{ - Q_OBJECT - - private: - - Genode::Signal_receiver &_signal_receiver; - - public: - - QSignalHandlerThread(Genode::Signal_receiver &signal_receiver) - : _signal_receiver(signal_receiver) { } - - void run() override; -}; - -#endif /* _QSIGNALHANDLERTHREAD_H_ */