diff -Nru supercollider-3.10.0+repack/debian/changelog supercollider-3.10.0+repack/debian/changelog --- supercollider-3.10.0+repack/debian/changelog 2019-02-03 21:31:06.000000000 +0000 +++ supercollider-3.10.0+repack/debian/changelog 2020-06-08 07:17:12.000000000 +0000 @@ -1,3 +1,18 @@ +supercollider (1:3.10.0+repack-1+rpi2) bullseye-staging; urgency=medium + + * Apply upstream patches for new boost ( Closes: 959439 ). + + -- Peter Michael Green Mon, 08 Jun 2020 07:17:12 +0000 + +supercollider (1:3.10.0+repack-1+rpi1) buster-staging; urgency=medium + + * Apply patches from https://github.com/supercollider/supercollider/pull/4328 + to make QTWebengine optional. + * Make debian/rules disable qtwebengine. + * Remove build-depends on qtwebengine. + + -- Peter Michael Green Sat, 29 Jun 2019 01:02:25 +0000 + supercollider (1:3.10.0+repack-1) unstable; urgency=medium * fixed a little error in d/rules: create a missing directory diff -Nru supercollider-3.10.0+repack/debian/control supercollider-3.10.0+repack/debian/control --- supercollider-3.10.0+repack/debian/control 2019-02-03 21:31:06.000000000 +0000 +++ supercollider-3.10.0+repack/debian/control 2019-06-29 01:02:14.000000000 +0000 @@ -31,7 +31,6 @@ qtdeclarative5-dev, libqt5opengl5-dev, libqt5webkit5-dev, - qtwebengine5-dev, libqt5websockets5-dev, libqt5svg5-dev, qtpositioning5-dev, diff -Nru supercollider-3.10.0+repack/debian/patches/boost1.71-00-formatting supercollider-3.10.0+repack/debian/patches/boost1.71-00-formatting --- supercollider-3.10.0+repack/debian/patches/boost1.71-00-formatting 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/boost1.71-00-formatting 2020-06-08 03:07:17.000000000 +0000 @@ -0,0 +1,93 @@ +Description: Adjust code formatting to allow upstream boost1.71 patches to be applied. +Author: Peter Michael Green + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: , +Bug: +Bug-Debian: https://bugs.debian.org/ +Bug-Ubuntu: https://launchpad.net/bugs/ +Forwarded: +Reviewed-By: +Last-Update: 2020-06-08 + +Index: supercollider-3.10.0+repack/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/CMakeLists.txt ++++ supercollider-3.10.0+repack/CMakeLists.txt +@@ -253,8 +253,8 @@ if (NOT WIN32) + endif() + + if(SYSTEM_BOOST) +- set(Boost_USE_MULTITHREADED ON) +- find_package( Boost 1.50.0 COMPONENTS thread system filesystem program_options regex test_exec_monitor ) ++ set(Boost_USE_MULTITHREADED ON) ++ find_package( Boost 1.50.0 COMPONENTS thread system filesystem program_options regex test_exec_monitor ) + endif() + + if (Boost_FOUND) +Index: supercollider-3.10.0+repack/server/supernova/sc/sc_osc_handler.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/server/supernova/sc/sc_osc_handler.cpp ++++ supercollider-3.10.0+repack/server/supernova/sc/sc_osc_handler.cpp +@@ -932,9 +932,7 @@ void sc_osc_handler::tcp_connection::han + + + +- +-void sc_osc_handler::start_tcp_accept(void) +-{ ++void sc_osc_handler::start_tcp_accept(void) { + tcp_connection::pointer new_connection = tcp_connection::create(tcp_acceptor_.get_io_service()); + + tcp_acceptor_.async_accept(new_connection->socket(), +Index: supercollider-3.10.0+repack/server/supernova/sc/sc_osc_handler.hpp +=================================================================== +--- supercollider-3.10.0+repack.orig/server/supernova/sc/sc_osc_handler.hpp ++++ supercollider-3.10.0+repack/server/supernova/sc/sc_osc_handler.hpp +@@ -278,10 +278,7 @@ public: + public: + typedef std::shared_ptr pointer; + +- static pointer create(boost::asio::io_service& io_service) +- { +- return pointer(new tcp_connection(io_service)); +- } ++ static pointer create(boost::asio::io_service& io_service) { return pointer(new tcp_connection(io_service)); } + + tcp::socket& socket() + { +@@ -296,9 +293,7 @@ public: + } + + private: +- tcp_connection(boost::asio::io_service& io_service) +- : socket_(io_service) +- {} ++ tcp_connection(boost::asio::io_service& io_service): socket_(io_service) {} + + void send(const char *data, size_t length) override final; + +Index: supercollider-3.10.0+repack/server/supernova/sc/sc_synthdef.hpp +=================================================================== +--- supercollider-3.10.0+repack.orig/server/supernova/sc/sc_synthdef.hpp ++++ supercollider-3.10.0+repack/server/supernova/sc/sc_synthdef.hpp +@@ -35,10 +35,12 @@ namespace nova { + + class sc_synthdef + { +- typedef std::vector > float_vector; +- typedef std::vector > char_vector; ++ typedef std::vector> float_vector; ++ typedef std::vector> char_vector; + #if BOOST_VERSION > 107000 +- typedef std::map, boost::alignment::aligned_allocator, 64>> parameter_index_map_t; ++ typedef std::map, ++ boost::alignment::aligned_allocator, 64>> ++ parameter_index_map_t; + #else + typedef std::map> parameter_index_map_t; + #endif diff -Nru supercollider-3.10.0+repack/debian/patches/boost1.71-01-ee2c63c89e6e3f5a14e09a9c7edaaf6774190ce6 supercollider-3.10.0+repack/debian/patches/boost1.71-01-ee2c63c89e6e3f5a14e09a9c7edaaf6774190ce6 --- supercollider-3.10.0+repack/debian/patches/boost1.71-01-ee2c63c89e6e3f5a14e09a9c7edaaf6774190ce6 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/boost1.71-01-ee2c63c89e6e3f5a14e09a9c7edaaf6774190ce6 2020-06-08 03:10:23.000000000 +0000 @@ -0,0 +1,33 @@ +patch defuzzed by Peter Michael Green for Raspbian/Debian packaging. + +commit ee2c63c89e6e3f5a14e09a9c7edaaf6774190ce6 +Author: Brian Heim +Date: Thu Sep 19 20:54:52 2019 -0500 + + Update for boost 1.70 + +Index: supercollider-3.10.0+repack/server/supernova/sc/sc_osc_handler.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/server/supernova/sc/sc_osc_handler.cpp ++++ supercollider-3.10.0+repack/server/supernova/sc/sc_osc_handler.cpp +@@ -933,7 +933,7 @@ void sc_osc_handler::tcp_connection::han + + + void sc_osc_handler::start_tcp_accept(void) { +- tcp_connection::pointer new_connection = tcp_connection::create(tcp_acceptor_.get_io_service()); ++ tcp_connection::pointer new_connection = tcp_connection::create(tcp_acceptor_.get_executor().context()); + + tcp_acceptor_.async_accept(new_connection->socket(), + boost::bind(&sc_osc_handler::handle_tcp_accept, this, new_connection, +Index: supercollider-3.10.0+repack/server/supernova/utilities/utils.hpp +=================================================================== +--- supercollider-3.10.0+repack.orig/server/supernova/utilities/utils.hpp ++++ supercollider-3.10.0+repack/server/supernova/utilities/utils.hpp +@@ -23,6 +23,7 @@ + + #include + ++#include + #include + #include + #include diff -Nru supercollider-3.10.0+repack/debian/patches/boost1.71-02-265a8a6750bb6ea9ad8c19d19916d8ba860c844d supercollider-3.10.0+repack/debian/patches/boost1.71-02-265a8a6750bb6ea9ad8c19d19916d8ba860c844d --- supercollider-3.10.0+repack/debian/patches/boost1.71-02-265a8a6750bb6ea9ad8c19d19916d8ba860c844d 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/boost1.71-02-265a8a6750bb6ea9ad8c19d19916d8ba860c844d 2020-06-08 03:10:39.000000000 +0000 @@ -0,0 +1,26 @@ +patch defuzzed by Peter Michael Green for Raspbian/Debian packaging. + +commit 265a8a6750bb6ea9ad8c19d19916d8ba860c844d +Author: Brian Heim +Date: Sun Oct 6 18:24:55 2019 -0500 + + supernova: fix compile error with 1.71 + +Index: supercollider-3.10.0+repack/server/supernova/sc/sc_synthdef.hpp +=================================================================== +--- supercollider-3.10.0+repack.orig/server/supernova/sc/sc_synthdef.hpp ++++ supercollider-3.10.0+repack/server/supernova/sc/sc_synthdef.hpp +@@ -37,13 +37,7 @@ class sc_synthdef + { + typedef std::vector> float_vector; + typedef std::vector> char_vector; +-#if BOOST_VERSION > 107000 +- typedef std::map, +- boost::alignment::aligned_allocator, 64>> +- parameter_index_map_t; +-#else + typedef std::map> parameter_index_map_t; +-#endif + + public: + struct input_spec diff -Nru supercollider-3.10.0+repack/debian/patches/boost1.71-03-f4e5cc69aaa09f26f3dcd19f0e9db85b525b4b70 supercollider-3.10.0+repack/debian/patches/boost1.71-03-f4e5cc69aaa09f26f3dcd19f0e9db85b525b4b70 --- supercollider-3.10.0+repack/debian/patches/boost1.71-03-f4e5cc69aaa09f26f3dcd19f0e9db85b525b4b70 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/boost1.71-03-f4e5cc69aaa09f26f3dcd19f0e9db85b525b4b70 2020-06-08 03:08:17.000000000 +0000 @@ -0,0 +1,59 @@ +patch defuzzed by Peter Michael Green for Raspbian/Debian packaging. + +commit f4e5cc69aaa09f26f3dcd19f0e9db85b525b4b70 +Author: Brian Heim +Date: Sun Oct 6 18:39:38 2019 -0500 + + supernova: fix compile errors with boost 1.71 + + class hierarchy changed. this change is at least backward compatible with 1.70 + + tested with boost 1.66, 1.71 + +Index: supercollider-3.10.0+repack/server/supernova/sc/sc_osc_handler.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/server/supernova/sc/sc_osc_handler.cpp ++++ supercollider-3.10.0+repack/server/supernova/sc/sc_osc_handler.cpp +@@ -933,7 +933,7 @@ void sc_osc_handler::tcp_connection::han + + + void sc_osc_handler::start_tcp_accept(void) { +- tcp_connection::pointer new_connection = tcp_connection::create(tcp_acceptor_.get_executor().context()); ++ tcp_connection::pointer new_connection = tcp_connection::create(tcp_acceptor_.get_executor()); + + tcp_acceptor_.async_accept(new_connection->socket(), + boost::bind(&sc_osc_handler::handle_tcp_accept, this, new_connection, +Index: supercollider-3.10.0+repack/server/supernova/sc/sc_osc_handler.hpp +=================================================================== +--- supercollider-3.10.0+repack.orig/server/supernova/sc/sc_osc_handler.hpp ++++ supercollider-3.10.0+repack/server/supernova/sc/sc_osc_handler.hpp +@@ -276,9 +276,14 @@ public: + public nova_endpoint + { + public: +- typedef std::shared_ptr pointer; ++ using pointer = std::shared_ptr; ++#if BOOST_VERSION >= 107000 ++ using executor = boost::asio::executor; ++#else ++ using executor = boost::asio::io_context::executor_type; ++#endif + +- static pointer create(boost::asio::io_service& io_service) { return pointer(new tcp_connection(io_service)); } ++ static pointer create(const executor& executor) { return pointer(new tcp_connection(executor)); } + + tcp::socket& socket() + { +@@ -293,7 +298,11 @@ public: + } + + private: +- tcp_connection(boost::asio::io_service& io_service): socket_(io_service) {} ++#if BOOST_VERSION >= 107000 ++ tcp_connection(const executor& executor): socket_(executor) {} ++#else ++ tcp_connection(const executor& executor): socket_(executor.context()) {} ++#endif + + void send(const char *data, size_t length) override final; + diff -Nru supercollider-3.10.0+repack/debian/patches/boost1.71-04-1ede37b287dbe3010f98d0be9d1b38108e1dd530 supercollider-3.10.0+repack/debian/patches/boost1.71-04-1ede37b287dbe3010f98d0be9d1b38108e1dd530 --- supercollider-3.10.0+repack/debian/patches/boost1.71-04-1ede37b287dbe3010f98d0be9d1b38108e1dd530 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/boost1.71-04-1ede37b287dbe3010f98d0be9d1b38108e1dd530 2020-06-08 03:08:19.000000000 +0000 @@ -0,0 +1,22 @@ +Patch defuzzed by Peter Michael Green for Debian/Raspbian supercollider packaging. + +commit 1ede37b287dbe3010f98d0be9d1b38108e1dd530 +Author: Brian Heim +Date: Sun Oct 6 19:24:57 2019 -0500 + + CMake: don't use boost cmake config file + +Index: supercollider-3.10.0+repack/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/CMakeLists.txt ++++ supercollider-3.10.0+repack/CMakeLists.txt +@@ -253,6 +253,9 @@ if (NOT WIN32) + endif() + + if(SYSTEM_BOOST) ++ # https://github.com/supercollider/supercollider/issues/4576#issuecomment-531499017 ++ # Boost >= 1.71 ships with its own Boost config file, we ignore it for now. ++ set(Boost_NO_BOOST_CMAKE ON) + set(Boost_USE_MULTITHREADED ON) + find_package( Boost 1.50.0 COMPONENTS thread system filesystem program_options regex test_exec_monitor ) + endif() diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-00-formatting supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-00-formatting --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-00-formatting 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-00-formatting 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,1809 @@ +This patch contains formatting changes extracted from upstream commit +4518d54d0907ec6fcf2278dc9fe6a89b3b1162bd#diff-ee395cf55d38877e60aa360871be5c97 +it is applied to avoid patch conflicts in the "optional qtwebengine" patches. + +Index: supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.h +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/QcWebView.h ++++ supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.h +@@ -37,168 +37,159 @@ namespace QtCollider { + class WebPage; + class QcCallback; + +-class QcCallbackWeakFunctor +-{ ++class QcCallbackWeakFunctor { + public: +- QcCallbackWeakFunctor(QPointer cb) +- : _cb(cb) +- {} +- +- template +- void operator()(RESULT r) const; ++ QcCallbackWeakFunctor(QPointer cb): _cb(cb) {} ++ ++ template void operator()(RESULT r) const; + + private: +- QPointer _cb; ++ QPointer _cb; + }; + +-class QcCallback : public QObject +-{ +- Q_OBJECT ++class QcCallback : public QObject { ++ Q_OBJECT + + public: +- QcCallback() {} +- +- template +- void call(const CallbackT& result) +- { +- Q_EMIT(onCalled(result)); +- } +- +- QcCallbackWeakFunctor asFunctor() +- { +- return QcCallbackWeakFunctor(QPointer(this)); +- } +- ++ QcCallback() {} ++ ++ template void call(const CallbackT& result) { Q_EMIT(onCalled(result)); } ++ ++ QcCallbackWeakFunctor asFunctor() { return QcCallbackWeakFunctor(QPointer(this)); } ++ + Q_SIGNALS: +- void onCalled(bool); +- void onCalled(const QString&); +- void onCalled(const QVariant&); +- void onCalled(const QUrl&); ++ void onCalled(bool); ++ void onCalled(const QString&); ++ void onCalled(const QVariant&); ++ void onCalled(const QUrl&); + }; +- +-template +-void QcCallbackWeakFunctor::operator()(RESULT r) const +- { +- if (_cb) { +- _cb->call(r); +- } ++ ++template void QcCallbackWeakFunctor::operator()(RESULT r) const { ++ if (_cb) { ++ _cb->call(r); ++ } + } + + +- +-class WebView : public QWebEngineView +-{ +- Q_OBJECT ++class WebView : public QWebEngineView { ++ Q_OBJECT + + public: +- Q_INVOKABLE void setFontFamily( int genericFontFamily, const QString & fontFamily ); +- Q_INVOKABLE void triggerPageAction( int action, bool checked ); +- Q_INVOKABLE QAction* pageAction( QWebEnginePage::WebAction ) const; +- +- // QWebEnginePage forwards +- Q_INVOKABLE void setHtml(const QString& html, const QString& baseUrl); +- Q_INVOKABLE void setContent(const QVector& data, const QString& mimeType, const QString& baseUrl); +- Q_INVOKABLE void toHtml(QcCallback* cb) const; +- Q_INVOKABLE void toPlainText(QcCallback* cb) const; +- Q_INVOKABLE void runJavaScript(const QString& script, QcCallback* cb); +- Q_INVOKABLE void setWebAttribute(int attr, bool on); +- Q_INVOKABLE bool testWebAttribute(int attr); +- Q_INVOKABLE void resetWebAttribute(int attr); +- Q_INVOKABLE void navigate(const QString& url); ++ Q_INVOKABLE void setFontFamily(int genericFontFamily, const QString& fontFamily); ++ Q_INVOKABLE void triggerPageAction(int action, bool checked); ++ Q_INVOKABLE QAction* pageAction(QWebEnginePage::WebAction) const; ++ ++ // QWebEnginePage forwards ++ Q_INVOKABLE void setHtml(const QString& html, const QString& baseUrl); ++ Q_INVOKABLE void setContent(const QVector& data, const QString& mimeType, const QString& baseUrl); ++ Q_INVOKABLE void toHtml(QcCallback* cb) const; ++ Q_INVOKABLE void toPlainText(QcCallback* cb) const; ++ Q_INVOKABLE void runJavaScript(const QString& script, QcCallback* cb); ++ Q_INVOKABLE void setWebAttribute(int attr, bool on); ++ Q_INVOKABLE bool testWebAttribute(int attr); ++ Q_INVOKABLE void resetWebAttribute(int attr); ++ Q_INVOKABLE void navigate(const QString& url); + + public Q_SLOTS: +- void findText( const QString &searchText, bool reversed, QcCallback* cb); ++ void findText(const QString& searchText, bool reversed, QcCallback* cb); + + Q_SIGNALS: +- void linkActivated( const QString &, int, bool ); +- void jsConsoleMsg( const QString &, int, const QString & ); +- void reloadTriggered( const QString & ); +- void interpret( const QString & code ); +- +- // QWebEnginePage forwards +- void linkHovered(const QString &url); +- void geometryChangeRequested(const QRect& geom); +- void windowCloseRequested(); +- void navigationRequested(const QUrl &, int, bool); +- +- void renderProcessTerminated(int terminationStatus, int exitCode); +- +- void scrollPositionChanged(const QPointF &position); +- void contentsSizeChanged(const QSizeF &size); +- void audioMutedChanged(bool muted); +- void recentlyAudibleChanged(bool recentlyAudible); +- ++ void linkActivated(const QString&, int, bool); ++ void jsConsoleMsg(const QString&, int, const QString&); ++ void reloadTriggered(const QString&); ++ void interpret(const QString& code); ++ ++ // QWebEnginePage forwards ++ void linkHovered(const QString& url); ++ void geometryChangeRequested(const QRect& geom); ++ void windowCloseRequested(); ++ void navigationRequested(const QUrl&, int, bool); ++ ++ void renderProcessTerminated(int terminationStatus, int exitCode); ++ ++ void scrollPositionChanged(const QPointF& position); ++ void contentsSizeChanged(const QSizeF& size); ++ void audioMutedChanged(bool muted); ++ void recentlyAudibleChanged(bool recentlyAudible); ++ + public: ++ WebView(QWidget* parent = 0); + +- WebView( QWidget *parent = 0 ); ++ Q_PROPERTY(qreal zoom READ zoomFactor WRITE setZoomFactor); ++ Q_PROPERTY(bool hasSelection READ hasSelection); ++ Q_PROPERTY(QString selectedText READ selectedText); ++ Q_PROPERTY(QString title READ title); + +- Q_PROPERTY( qreal zoom READ zoomFactor WRITE setZoomFactor ); +- Q_PROPERTY( bool hasSelection READ hasSelection ); +- Q_PROPERTY( QString selectedText READ selectedText ); +- Q_PROPERTY( QString title READ title ); +- +- Q_PROPERTY( bool overrideNavigation READ overrideNavigation WRITE setOverrideNavigation ); ++ Q_PROPERTY(bool overrideNavigation READ overrideNavigation WRITE setOverrideNavigation); + bool overrideNavigation() const; + void setOverrideNavigation(bool b); +- +- Q_PROPERTY( QString url READ url WRITE setUrl ); +- QString url() const; +- void setUrl( const QString & ); + +- Q_PROPERTY( bool delegateReload READ delegateReload WRITE setDelegateReload ); ++ Q_PROPERTY(QString url READ url WRITE setUrl); ++ QString url() const; ++ void setUrl(const QString&); ++ ++ Q_PROPERTY(bool delegateReload READ delegateReload WRITE setDelegateReload); + bool delegateReload() const; +- void setDelegateReload( bool ); ++ void setDelegateReload(bool); + +- Q_PROPERTY( bool enterInterpretsSelection READ interpretSelection WRITE setInterpretSelection ); +- bool interpretSelection() const { return _interpretSelection; } +- void setInterpretSelection( bool b ) { _interpretSelection = b; } ++ Q_PROPERTY(bool enterInterpretsSelection READ interpretSelection WRITE setInterpretSelection); ++ bool interpretSelection() const { return _interpretSelection; } ++ void setInterpretSelection(bool b) { _interpretSelection = b; } + +- Q_PROPERTY( bool editable READ editable WRITE setEditable ); ++ Q_PROPERTY(bool editable READ editable WRITE setEditable); + bool editable() const { return _editable; } +- void setEditable( bool b ) { _editable = b; updateEditable(true); } ++ void setEditable(bool b) { ++ _editable = b; ++ updateEditable(true); ++ } ++ ++ // QWebEnginePage properties ++ Q_PROPERTY(QString requestedUrl READ requestedUrl) ++ QString requestedUrl() const { return page() ? page()->requestedUrl().toString() : QString(); } ++ ++ Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor) ++ QColor backgroundColor() const { return page() ? page()->backgroundColor() : QColor(); } ++ void setBackgroundColor(QColor c) { ++ if (page()) ++ page()->setBackgroundColor(c); ++ } ++ ++ Q_PROPERTY(QSizeF contentsSize READ contentsSize) ++ QSizeF contentsSize() const { return page() ? page()->contentsSize() : QSizeF(0, 0); } ++ ++ Q_PROPERTY(QPointF scrollPosition READ scrollPosition) ++ QPointF scrollPosition() const { return page() ? page()->scrollPosition() : QPointF(0, 0); } ++ ++ Q_PROPERTY(bool audioMuted READ isAudioMuted WRITE setAudioMuted) ++ bool isAudioMuted() const { return page() ? page()->isAudioMuted() : false; } ++ void setAudioMuted(bool m) { ++ if (page()) ++ page()->setAudioMuted(m); ++ } + +- // QWebEnginePage properties +- Q_PROPERTY(QString requestedUrl READ requestedUrl) +- QString requestedUrl() const { return page() ? page()->requestedUrl().toString() : QString(); } +- +- Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor) +- QColor backgroundColor() const { return page() ? page()->backgroundColor() : QColor(); } +- void setBackgroundColor(QColor c) { if (page()) page()->setBackgroundColor(c); } +- +- Q_PROPERTY(QSizeF contentsSize READ contentsSize) +- QSizeF contentsSize() const { return page() ? page()->contentsSize() : QSizeF(0, 0); } +- +- Q_PROPERTY(QPointF scrollPosition READ scrollPosition) +- QPointF scrollPosition() const { return page() ? page()->scrollPosition() : QPointF(0, 0); } +- +- Q_PROPERTY(bool audioMuted READ isAudioMuted WRITE setAudioMuted) +- bool isAudioMuted() const { return page() ? page()->isAudioMuted() : false; } +- void setAudioMuted(bool m) { if (page()) page()->setAudioMuted(m); } +- +- Q_PROPERTY(bool recentlyAudible READ recentlyAudible) +- bool recentlyAudible() const { return page() ? page()->recentlyAudible() : false; } ++ Q_PROPERTY(bool recentlyAudible READ recentlyAudible) ++ bool recentlyAudible() const { return page() ? page()->recentlyAudible() : false; } + +- inline static QUrl urlFromString( const QString & str ) +- { return QUrl::fromUserInput(str); } ++ inline static QUrl urlFromString(const QString& str) { return QUrl::fromUserInput(str); } + + protected: +- virtual void keyPressEvent( QKeyEvent * ); +- virtual void contextMenuEvent ( QContextMenuEvent * ); ++ virtual void keyPressEvent(QKeyEvent*); ++ virtual void contextMenuEvent(QContextMenuEvent*); + + public Q_SLOTS: +- void onPageReload(); +- void onRenderProcessTerminated(QWebEnginePage::RenderProcessTerminationStatus, int); +- void onLinkClicked(const QUrl &, QWebEnginePage::NavigationType, bool); +- void updateEditable(bool); ++ void onPageReload(); ++ void onRenderProcessTerminated(QWebEnginePage::RenderProcessTerminationStatus, int); ++ void onLinkClicked(const QUrl&, QWebEnginePage::NavigationType, bool); ++ void updateEditable(bool); + + private: +- void connectPage(QtCollider::WebPage* page); +- +- bool _interpretSelection; +- bool _editable; ++ void connectPage(QtCollider::WebPage* page); ++ ++ bool _interpretSelection; ++ bool _editable; + }; + + } // namespace QtCollider + + using namespace QtCollider; +-Q_DECLARE_METATYPE( QcCallback* ); ++Q_DECLARE_METATYPE(QcCallback*); +Index: supercollider-3.10.0+repack/QtCollider/factories.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/factories.cpp ++++ supercollider-3.10.0+repack/QtCollider/factories.cpp +@@ -1,83 +1,79 @@ + /************************************************************************ +-* +-* Copyright 2012 Jakob Leben (jakob.leben@gmail.com) +-* +-* This file is part of SuperCollider Qt GUI. +-* +-* This program is free software: you can redistribute it and/or modify +-* it under the terms of the GNU General Public License as published by +-* the Free Software Foundation, either version 2 of the License, or +-* (at your option) any later version. +-* +-* This program is distributed in the hope that it will be useful, +-* but WITHOUT ANY WARRANTY; without even the implied warranty of +-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-* GNU General Public License for more details. +-* +-* You should have received a copy of the GNU General Public License +-* along with this program. If not, see . +-* +-************************************************************************/ ++ * ++ * Copyright 2012 Jakob Leben (jakob.leben@gmail.com) ++ * ++ * This file is part of SuperCollider Qt GUI. ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ * ++ ************************************************************************/ + + #include "QcObjectFactory.h" + #include "QcWidgetFactory.h" + + #include + +-QC_DECLARE_QWIDGET_FACTORY( QLabel ); ++QC_DECLARE_QWIDGET_FACTORY(QLabel); + +-static void doLoadFactories () +-{ +- QC_ADD_FACTORY( QcDefaultWidget ); +- QC_ADD_FACTORY( QcHLayoutWidget ); +- QC_ADD_FACTORY( QcVLayoutWidget ); +- QC_ADD_FACTORY( QLabel ); +- QC_ADD_FACTORY( QcTextField ); +- QC_ADD_FACTORY( QcCheckBox ); +- QC_ADD_FACTORY( QcListWidget ); +- QC_ADD_FACTORY( QcPopUpMenu ); +- QC_ADD_FACTORY( QcButton ); +- QC_ADD_FACTORY( QcCustomPainted ); +- QC_ADD_FACTORY( QcFileDialog ); +- QC_ADD_FACTORY( QcGraph ); +- QC_ADD_FACTORY( QcKnob ); +- QC_ADD_FACTORY( QcLevelIndicator ); +- QC_ADD_FACTORY( QcMultiSlider ); +- QC_ADD_FACTORY( QcNumberBox ); +- QC_ADD_FACTORY( QcPenPrinter ); +- QC_ADD_FACTORY( QcRangeSlider ); +- QC_ADD_FACTORY( QcScope ); +- QC_ADD_FACTORY( QcScopeShm ); +- QC_ADD_FACTORY( QcScrollWidget ); +- QC_ADD_FACTORY( QcScrollArea ); +- QC_ADD_FACTORY( QcSlider ); +- QC_ADD_FACTORY( QcSlider2D ); +- QC_ADD_FACTORY( QcWaveform ); +- QC_ADD_FACTORY( QcTextEdit ); +- QC_ADD_FACTORY( QcTreeWidget ); +- QC_ADD_FACTORY( QcMenu ); +- QC_ADD_FACTORY( QcToolBar ); +- QC_ADD_FACTORY( QcAction ); +- QC_ADD_FACTORY( QcWidgetAction ); +- QC_ADD_FACTORY( QcCallback ); +- QC_ADD_FACTORY( WebView ); +- QC_ADD_FACTORY( QcWindow ); +- QC_ADD_FACTORY( QcScrollWindow ); +- QC_ADD_FACTORY( QcHBoxLayout ); +- QC_ADD_FACTORY( QcVBoxLayout ); +- QC_ADD_FACTORY( QcGridLayout ); +- QC_ADD_FACTORY( QcStackLayout ); +- QC_ADD_FACTORY( QtDownload ); ++static void doLoadFactories() { ++ QC_ADD_FACTORY(QcDefaultWidget); ++ QC_ADD_FACTORY(QcHLayoutWidget); ++ QC_ADD_FACTORY(QcVLayoutWidget); ++ QC_ADD_FACTORY(QLabel); ++ QC_ADD_FACTORY(QcTextField); ++ QC_ADD_FACTORY(QcCheckBox); ++ QC_ADD_FACTORY(QcListWidget); ++ QC_ADD_FACTORY(QcPopUpMenu); ++ QC_ADD_FACTORY(QcButton); ++ QC_ADD_FACTORY(QcCustomPainted); ++ QC_ADD_FACTORY(QcFileDialog); ++ QC_ADD_FACTORY(QcGraph); ++ QC_ADD_FACTORY(QcKnob); ++ QC_ADD_FACTORY(QcLevelIndicator); ++ QC_ADD_FACTORY(QcMultiSlider); ++ QC_ADD_FACTORY(QcNumberBox); ++ QC_ADD_FACTORY(QcPenPrinter); ++ QC_ADD_FACTORY(QcRangeSlider); ++ QC_ADD_FACTORY(QcScope); ++ QC_ADD_FACTORY(QcScopeShm); ++ QC_ADD_FACTORY(QcScrollWidget); ++ QC_ADD_FACTORY(QcScrollArea); ++ QC_ADD_FACTORY(QcSlider); ++ QC_ADD_FACTORY(QcSlider2D); ++ QC_ADD_FACTORY(QcWaveform); ++ QC_ADD_FACTORY(QcTextEdit); ++ QC_ADD_FACTORY(QcTreeWidget); ++ QC_ADD_FACTORY(QcMenu); ++ QC_ADD_FACTORY(QcToolBar); ++ QC_ADD_FACTORY(QcAction); ++ QC_ADD_FACTORY(QcWidgetAction); ++ QC_ADD_FACTORY(QcCallback); ++ QC_ADD_FACTORY(WebView); ++ QC_ADD_FACTORY(QcWindow); ++ QC_ADD_FACTORY(QcScrollWindow); ++ QC_ADD_FACTORY(QcHBoxLayout); ++ QC_ADD_FACTORY(QcVBoxLayout); ++ QC_ADD_FACTORY(QcGridLayout); ++ QC_ADD_FACTORY(QcStackLayout); ++ QC_ADD_FACTORY(QtDownload); + #ifdef __APPLE__ +- QC_ADD_FACTORY( QcQuartzComposerView ); ++ QC_ADD_FACTORY(QcQuartzComposerView); + #endif + } + + namespace QtCollider { + +-void loadFactories() +-{ +- doLoadFactories(); +-} ++void loadFactories() { doLoadFactories(); } + + } // namespace QtCollider +Index: supercollider-3.10.0+repack/QtCollider/interface.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/interface.cpp ++++ supercollider-3.10.0+repack/QtCollider/interface.cpp +@@ -47,49 +47,49 @@ static QPalette gSystemPalette; + QPalette QtCollider::systemPalette() { return gSystemPalette; } + + void QtCollider::init() { +- if( !QApplication::instance() ) { +- qcDebugMsg( 1, "Initializing QtCollider" ); ++ if (!QApplication::instance()) { ++ qcDebugMsg(1, "Initializing QtCollider"); + +- initResources(); ++ initResources(); + +- QtCollider::loadFactories(); ++ QtCollider::loadFactories(); + +- QtCollider::MetaType::initAll(); ++ QtCollider::MetaType::initAll(); + +- QLocale::setDefault( QLocale::c() ); ++ QLocale::setDefault(QLocale::c()); + + #ifdef Q_WS_X11 +- XInitThreads(); ++ XInitThreads(); + #endif + + #ifdef Q_OS_MAC +- // TODO: this should not be necessary +- QApplication::setAttribute( Qt::AA_PluginApplication, true ); ++ // TODO: this should not be necessary ++ QApplication::setAttribute(Qt::AA_PluginApplication, true); + #endif + +- static int qcArgc = 1; +- static char qcArg0[] = "SuperCollider"; +- static char *qcArgv[1] = {qcArg0}; ++ static int qcArgc = 1; ++ static char qcArg0[] = "SuperCollider"; ++ static char* qcArgv[1] = { qcArg0 }; + +- QcApplication *qcApp = new QcApplication( qcArgc, qcArgv ); ++ QcApplication* qcApp = new QcApplication(qcArgc, qcArgv); + +- qcApp->setQuitOnLastWindowClosed( false ); ++ qcApp->setQuitOnLastWindowClosed(false); + +- //qcApp->setStyle( new QtCollider::Style::StyleImpl( new QPlastiqueStyle ) ); ++ // qcApp->setStyle( new QtCollider::Style::StyleImpl( new QPlastiqueStyle ) ); + +- gSystemPalette = qcApp->palette(); ++ gSystemPalette = qcApp->palette(); + +- // Enable javascript localStorage for WebViews +- QWebEngineSettings::globalSettings()->setAttribute( QWebEngineSettings::LocalStorageEnabled, true ); ++ // Enable javascript localStorage for WebViews ++ QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); + +- // NOTE: Qt may tamper with the C language locale, affecting POSIX number-string conversions. +- // Revert the locale to default: +- setlocale( LC_NUMERIC, "C" ); +- } ++ // NOTE: Qt may tamper with the C language locale, affecting POSIX number-string conversions. ++ // Revert the locale to default: ++ setlocale(LC_NUMERIC, "C"); ++ } + } + +-int QtCollider::exec( int argc, char** argv ) { +- QtCollider::init(); +- Q_ASSERT( qApp ); +- return qApp->exec(); ++int QtCollider::exec(int argc, char** argv) { ++ QtCollider::init(); ++ Q_ASSERT(qApp); ++ return qApp->exec(); + } +Index: supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/style/ProxyStyle.cpp ++++ supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +@@ -8,65 +8,61 @@ + #include + + #ifdef Q_OS_MAC +- #include "../hacks/hacks_mac.hpp" ++# include "../hacks/hacks_mac.hpp" + #endif + + using namespace QtCollider; + + static bool AlwaysShowScrollbars() { + #if defined(Q_OS_MAC) +- return QtCollider::Mac::AlwaysShowScrollbars(); ++ return QtCollider::Mac::AlwaysShowScrollbars(); + + #elif defined(Q_OS_X11) +- return true; ++ return true; + + #elif defined(Q_OS_WIN) +- return true; ++ return true; + + #else +- return true; ++ return true; + #endif + }; + +-void ProxyStyle::drawComplexControl ( ComplexControl ctrl, const QStyleOptionComplex *opt, +- QPainter *p, const QWidget * w) const +-{ +- // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). +- if( ctrl == QStyle::CC_ScrollBar +- && qobject_cast(w) != 0 +- && opt->type == QStyleOption::SO_Slider ) +- { +- // WebKit tries to hide scrollbars, but mistakenly hides QWebView - NULL-ify styleObject to prevent. +- const QStyleOptionSlider *optSlider = static_cast(opt); +- QStyleOptionSlider opt2( *optSlider ); +- opt2.styleObject = NULL; +- +- QProxyStyle::drawComplexControl( ctrl, &opt2, p, w ); +- return; +- } +- +- if (ctrl == QStyle::CC_ScrollBar && AlwaysShowScrollbars()) { +- const QStyleOptionSlider *optSlider = static_cast(opt); +- QStyleOptionSlider opt2( *optSlider ); +- opt2.state = State_On; +- QProxyStyle::drawComplexControl( ctrl, static_cast(&opt2), p, w ); +- return; +- } ++void ProxyStyle::drawComplexControl(ComplexControl ctrl, const QStyleOptionComplex* opt, QPainter* p, ++ const QWidget* w) const { ++ // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). ++ if (ctrl == QStyle::CC_ScrollBar && qobject_cast(w) != 0 ++ && opt->type == QStyleOption::SO_Slider) { ++ // WebKit tries to hide scrollbars, but mistakenly hides QWebView - NULL-ify styleObject to prevent. ++ const QStyleOptionSlider* optSlider = static_cast(opt); ++ QStyleOptionSlider opt2(*optSlider); ++ opt2.styleObject = NULL; ++ ++ QProxyStyle::drawComplexControl(ctrl, &opt2, p, w); ++ return; ++ } ++ ++ if (ctrl == QStyle::CC_ScrollBar && AlwaysShowScrollbars()) { ++ const QStyleOptionSlider* optSlider = static_cast(opt); ++ QStyleOptionSlider opt2(*optSlider); ++ opt2.state = State_On; ++ QProxyStyle::drawComplexControl(ctrl, static_cast(&opt2), p, w); ++ return; ++ } + +- QProxyStyle::drawComplexControl( ctrl, opt, p, w ); ++ QProxyStyle::drawComplexControl(ctrl, opt, p, w); + } + +-int ProxyStyle::styleHint ( StyleHint hint, const QStyleOption * option, +- const QWidget * widget, QStyleHintReturn * returnData ) const +-{ +- switch( hint ) { ++int ProxyStyle::styleHint(StyleHint hint, const QStyleOption* option, const QWidget* widget, ++ QStyleHintReturn* returnData) const { ++ switch (hint) { + case QStyle::SH_Slider_AbsoluteSetButtons: +- return Qt::LeftButton; ++ return Qt::LeftButton; + case QStyle::SH_Slider_PageSetButtons: +- return Qt::NoButton; ++ return Qt::NoButton; + case QStyle::SH_ScrollBar_Transient: +- return 1; ++ return 1; + default: +- return QProxyStyle::styleHint( hint, option, widget, returnData ); +- } ++ return QProxyStyle::styleHint(hint, option, widget, returnData); ++ } + } +Index: supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/web_page.cpp ++++ supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +@@ -26,39 +26,37 @@ + + namespace QtCollider { + +-void WebPage::triggerAction ( WebAction action, bool checked ) +-{ +- switch ( action ) { ++void WebPage::triggerAction(WebAction action, bool checked) { ++ switch (action) { + case QWebEnginePage::Reload: +- if( _delegateReload ) return; +- break; ++ if (_delegateReload) ++ return; ++ break; + case QWebEnginePage::Copy: +- // ignore text formatting, copy only plain text: +- QApplication::clipboard()->setText( selectedText() ); +- return; ++ // ignore text formatting, copy only plain text: ++ QApplication::clipboard()->setText(selectedText()); ++ return; + default: +- break; +- } ++ break; ++ } + +- QWebEnginePage::triggerAction( action, checked ); ++ QWebEnginePage::triggerAction(action, checked); + } + + +-void WebPage::javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) +-{ +- Q_EMIT( jsConsoleMsg(message, lineNumber, sourceID) ); ++void WebPage::javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, ++ const QString& sourceID) { ++ Q_EMIT(jsConsoleMsg(message, lineNumber, sourceID)); + } + +-bool WebPage::acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame) +-{ +- if (type == QWebEnginePage::NavigationTypeLinkClicked) { +- Q_EMIT(navigationRequested(url, type, isMainFrame)); +- if (_delegateNavigation) { +- return false; ++bool WebPage::acceptNavigationRequest(const QUrl& url, QWebEnginePage::NavigationType type, bool isMainFrame) { ++ if (type == QWebEnginePage::NavigationTypeLinkClicked) { ++ Q_EMIT(navigationRequested(url, type, isMainFrame)); ++ if (_delegateNavigation) { ++ return false; ++ } + } +- } +- return QWebEnginePage::acceptNavigationRequest(url, type, isMainFrame); ++ return QWebEnginePage::acceptNavigationRequest(url, type, isMainFrame); + } + + } // namespace QtCollider +- +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/help_browser.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp +@@ -42,42 +42,38 @@ + #include + + #ifdef Q_OS_MAC +-# include // QStyleFactory::create, see below ++# include // QStyleFactory::create, see below + #endif + + namespace ScIDE { + +-HelpWebPage::HelpWebPage(HelpBrowser* browser) +- : WebPage(browser), mBrowser(browser) +-{ ++HelpWebPage::HelpWebPage(HelpBrowser* browser): WebPage(browser), mBrowser(browser) { + setDelegateNavigation(true); +- connect( this, SIGNAL(navigationRequested(const QUrl &, QWebEnginePage::NavigationType, bool)), +- browser, SLOT(onLinkClicked(const QUrl &, QWebEnginePage::NavigationType, bool)) ); ++ connect(this, SIGNAL(navigationRequested(const QUrl&, QWebEnginePage::NavigationType, bool)), browser, ++ SLOT(onLinkClicked(const QUrl&, QWebEnginePage::NavigationType, bool))); + } + +-HelpBrowser::HelpBrowser( QWidget * parent ): +- QWidget(parent) +-{ ++HelpBrowser::HelpBrowser(QWidget* parent): QWidget(parent) { + QRect availableScreenRect = qApp->desktop()->availableGeometry(this); +- mSizeHint = QSize( availableScreenRect.width() * 0.4, availableScreenRect.height() * 0.7 ); ++ mSizeHint = QSize(availableScreenRect.width() * 0.4, availableScreenRect.height() * 0.7); + +- HelpWebPage *webPage = new HelpWebPage(this); ++ HelpWebPage* webPage = new HelpWebPage(this); + webPage->setDelegateReload(true); + + mWebView = new QWebEngineView; + // setPage does not take ownership of webPage; it must be deleted manually later (see below) +- mWebView->setPage( webPage ); +- mWebView->settings()->setAttribute( QWebEngineSettings::LocalStorageEnabled, true ); +- mWebView->setContextMenuPolicy( Qt::CustomContextMenu ); ++ mWebView->setPage(webPage); ++ mWebView->settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); ++ mWebView->setContextMenuPolicy(Qt::CustomContextMenu); + + // Set the style's standard palette to avoid system's palette incoherencies + // get in the way of rendering web pages +- mWebView->setPalette( style()->standardPalette() ); ++ mWebView->setPalette(style()->standardPalette()); + + #ifdef Q_OS_MAC + // On macOS, checkboxes unwantedly appear in the top left-hand corner. + // See QTBUG-43366, 43070, and 42948. The workaround is to set style to fusion. +- mWebView->setStyle( QStyleFactory::create("Fusion") ); ++ mWebView->setStyle(QStyleFactory::create("Fusion")); + #endif + + mWebView->installEventFilter(this); +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/core/main.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +@@ -145,24 +145,22 @@ int main( int argc, char *argv[] ) + // setup comm channel + WebSocketClientWrapper clientWrapper(&server); + QWebChannel channel; +- QObject::connect(&clientWrapper, &WebSocketClientWrapper::clientConnected, +- &channel, &QWebChannel::connectTo); ++ QObject::connect(&clientWrapper, &WebSocketClientWrapper::clientConnected, &channel, &QWebChannel::connectTo); + + // publish IDE interface +- IDEWebChannelWrapper ideWrapper{win->helpBrowserDocklet()->browser()}; ++ IDEWebChannelWrapper ideWrapper { win->helpBrowserDocklet()->browser() }; + channel.registerObject("IDE", &ideWrapper); + + return app.exec(); + } + + +-bool SingleInstanceGuard::tryConnect(QStringList const & arguments) +-{ ++bool SingleInstanceGuard::tryConnect(QStringList const& arguments) { + const int maxNumberOfInstances = 128; + if (!arguments.empty()) { + for (int socketID = 0; socketID != maxNumberOfInstances; ++socketID) { + QString serverName = QStringLiteral("SuperColliderIDE_Singleton_%1").arg(socketID); +- QSharedPointer socket (new QLocalSocket(this)); ++ QSharedPointer socket(new QLocalSocket(this)); + socket->connectToServer(serverName); + + QStringList canonicalArguments; +@@ -311,28 +309,25 @@ bool Main::nativeEventFilter(const QByte + return result; + } + +-bool Main::openDocumentation(const QString & string) +-{ ++bool Main::openDocumentation(const QString& string) { + QString symbol = string.trimmed(); + if (symbol.isEmpty()) + return false; + +- HelpBrowserDocklet *helpDock = MainWindow::instance()->helpBrowserDocklet(); ++ HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); + return true; + } + +-bool Main::openDocumentationForMethod(const QString & className, const QString & methodName) +-{ +- HelpBrowserDocklet *helpDock = MainWindow::instance()->helpBrowserDocklet(); ++bool Main::openDocumentationForMethod(const QString& className, const QString& methodName) { ++ HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpForMethod(className, methodName); + helpDock->focus(); + return true; + } + +-void Main::openDefinition(const QString &string, QWidget * parent) +-{ ++void Main::openDefinition(const QString& string, QWidget* parent) { + QString definitionString = string.trimmed(); + + LookupDialog dialog(parent); +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/autocompleter.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +@@ -1306,9 +1306,8 @@ void AutoCompleter::parseClassNode(DocNo + parseClassNode(node->children[i], str); + } + +-void AutoCompleter::gotoHelp(QString symbol) +-{ +- HelpBrowserDocklet *helpDock = MainWindow::instance()->helpBrowserDocklet(); ++void AutoCompleter::gotoHelp(QString symbol) { ++ HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); + } +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +@@ -146,73 +146,58 @@ MainWindow::MainWindow(Main * main) : + mHelpBrowserDocklet = new HelpBrowserDocklet(this); + mHelpBrowserDocklet->setObjectName("help-dock"); + addDockWidget(Qt::RightDockWidgetArea, mHelpBrowserDocklet->dockWidget()); +- //mHelpBrowserDockable->hide(); ++ // mHelpBrowserDockable->hide(); + + mPostDocklet = new PostDocklet(this); + mPostDocklet->setObjectName("post-dock"); + addDockWidget(Qt::RightDockWidgetArea, mPostDocklet->dockWidget()); + + // Layout +- QVBoxLayout *center_box = new QVBoxLayout; +- center_box->setContentsMargins(0,0,0,0); ++ QVBoxLayout* center_box = new QVBoxLayout; ++ center_box->setContentsMargins(0, 0, 0, 0); + center_box->setSpacing(0); + center_box->addWidget(mEditors); + center_box->addWidget(mToolBox); + +- QWidget *central = new QWidget; ++ QWidget* central = new QWidget; + central->setLayout(center_box); + setCentralWidget(central); + + // Session management +- connect(main->sessionManager(), SIGNAL(saveSessionRequest(Session*)), +- this, SLOT(saveSession(Session*))); +- connect(main->sessionManager(), SIGNAL(switchSessionRequest(Session*)), +- this, SLOT(switchSession(Session*))); +- connect(main->sessionManager(), SIGNAL(currentSessionNameChanged()), +- this, SLOT(updateWindowTitle())); ++ connect(main->sessionManager(), SIGNAL(saveSessionRequest(Session*)), this, SLOT(saveSession(Session*))); ++ connect(main->sessionManager(), SIGNAL(switchSessionRequest(Session*)), this, SLOT(switchSession(Session*))); ++ connect(main->sessionManager(), SIGNAL(currentSessionNameChanged()), this, SLOT(updateWindowTitle())); + // A system for easy evaluation of pre-defined code: +- connect(&mCodeEvalMapper, SIGNAL(mapped(QString)), +- this, SIGNAL(evaluateCode(QString))); +- connect(this, SIGNAL(evaluateCode(QString,bool)), +- main->scProcess(), SLOT(evaluateCode(QString,bool))); ++ connect(&mCodeEvalMapper, SIGNAL(mapped(QString)), this, SIGNAL(evaluateCode(QString))); ++ connect(this, SIGNAL(evaluateCode(QString, bool)), main->scProcess(), SLOT(evaluateCode(QString, bool))); + // Interpreter: post output +- connect(main->scProcess(), SIGNAL( scPost(QString) ), +- mPostDocklet->mPostWindow, SLOT( post(QString) ) ); ++ connect(main->scProcess(), SIGNAL(scPost(QString)), mPostDocklet->mPostWindow, SLOT(post(QString))); + // Interpreter: monitor running state +- connect(main->scProcess(), SIGNAL( stateChanged(QProcess::ProcessState) ), +- this, SLOT( onInterpreterStateChanged(QProcess::ProcessState) ) ); ++ connect(main->scProcess(), SIGNAL(stateChanged(QProcess::ProcessState)), this, ++ SLOT(onInterpreterStateChanged(QProcess::ProcessState))); + // Interpreter: forward status messages +- connect(main->scProcess(), SIGNAL(statusMessage(const QString&)), +- this, SLOT(showStatusMessage(const QString&))); ++ connect(main->scProcess(), SIGNAL(statusMessage(const QString&)), this, SLOT(showStatusMessage(const QString&))); + + // Document list interaction +- connect(mDocumentsDocklet->list(), SIGNAL(clicked(Document*)), +- mEditors, SLOT(setCurrent(Document*))); +- connect(mEditors, SIGNAL(currentDocumentChanged(Document*)), +- mDocumentsDocklet->list(), SLOT(setCurrent(Document*)), +- Qt::QueuedConnection); +- connect(mDocumentsDocklet->list(), SIGNAL(updateTabsOrder(QList)), +- mEditors, SLOT(updateTabsOrder(QList))); +- connect(mEditors, SIGNAL(updateDockletOrder(int, int)), +- mDocumentsDocklet->list(), SLOT(updateDockletOrder(int, int)), ++ connect(mDocumentsDocklet->list(), SIGNAL(clicked(Document*)), mEditors, SLOT(setCurrent(Document*))); ++ connect(mEditors, SIGNAL(currentDocumentChanged(Document*)), mDocumentsDocklet->list(), SLOT(setCurrent(Document*)), + Qt::QueuedConnection); ++ connect(mDocumentsDocklet->list(), SIGNAL(updateTabsOrder(QList)), mEditors, ++ SLOT(updateTabsOrder(QList))); ++ connect(mEditors, SIGNAL(updateDockletOrder(int, int)), mDocumentsDocklet->list(), ++ SLOT(updateDockletOrder(int, int)), Qt::QueuedConnection); + + // Update actions on document change +- connect(mEditors, SIGNAL(currentDocumentChanged(Document*)), +- this, SLOT(onCurrentDocumentChanged(Document*))); ++ connect(mEditors, SIGNAL(currentDocumentChanged(Document*)), this, SLOT(onCurrentDocumentChanged(Document*))); + // Document management +- DocumentManager *docMng = main->documentManager(); +- connect(docMng, SIGNAL(changedExternally(Document*)), +- this, SLOT(onDocumentChangedExternally(Document*))); +- connect(docMng, SIGNAL(recentsChanged()), +- this, SLOT(updateRecentDocsMenu())); +- connect(docMng, SIGNAL(saved(Document*)), this, SLOT(updateWindowTitle()) ); +- connect(docMng, SIGNAL(titleChanged(Document*)), this, SLOT(updateWindowTitle()) ); +- +- connect(main, SIGNAL(applySettingsRequest(Settings::Manager*)), +- this, SLOT(applySettings(Settings::Manager*))); +- connect(main, SIGNAL(storeSettingsRequest(Settings::Manager*)), +- this, SLOT(storeSettings(Settings::Manager*))); ++ DocumentManager* docMng = main->documentManager(); ++ connect(docMng, SIGNAL(changedExternally(Document*)), this, SLOT(onDocumentChangedExternally(Document*))); ++ connect(docMng, SIGNAL(recentsChanged()), this, SLOT(updateRecentDocsMenu())); ++ connect(docMng, SIGNAL(saved(Document*)), this, SLOT(updateWindowTitle())); ++ connect(docMng, SIGNAL(titleChanged(Document*)), this, SLOT(updateWindowTitle())); ++ ++ connect(main, SIGNAL(applySettingsRequest(Settings::Manager*)), this, SLOT(applySettings(Settings::Manager*))); ++ connect(main, SIGNAL(storeSettingsRequest(Settings::Manager*)), this, SLOT(storeSettings(Settings::Manager*))); + + // ToolBox + connect(mToolBox->closeButton(), SIGNAL(clicked()), this, SLOT(hideToolBox())); +@@ -448,72 +433,64 @@ void MainWindow::createActions() + #endif + action->setStatusTip(tr("Show configuration dialog")); + connect(action, SIGNAL(triggered()), this, SLOT(showSettings())); +- settings->addAction( action, "ide-settings-dialog", ideCategory); ++ settings->addAction(action, "ide-settings-dialog", ideCategory); + + // Help + mActions[Help] = action = new QAction(tr("Show &Help Browser"), this); + action->setStatusTip(tr("Show and focus the Help Browser")); + connect(action, SIGNAL(triggered()), this, SLOT(openHelp())); +- settings->addAction( action, "help-browser", helpCategory); ++ settings->addAction(action, "help-browser", helpCategory); + +- mActions[HelpAboutIDE] = action = +- new QAction(QIcon::fromTheme("system-help"), tr("How to Use SuperCollider IDE"), this); ++ mActions[HelpAboutIDE] = action = ++ new QAction(QIcon::fromTheme("system-help"), tr("How to Use SuperCollider IDE"), this); + action->setStatusTip(tr("Open the SuperCollider IDE guide")); + connect(action, SIGNAL(triggered()), this, SLOT(openHelpAboutIDE())); + +- mActions[ReportABug] = action = +- new QAction(QIcon::fromTheme("system-help"), tr("Report a bug..."), this); ++ mActions[ReportABug] = action = new QAction(QIcon::fromTheme("system-help"), tr("Report a bug..."), this); + action->setStatusTip(tr("Report a bug")); + connect(action, SIGNAL(triggered()), this, SLOT(doBugReport())); +- +- mActions[LookupDocumentationForCursor] = action = +- new QAction(tr("Look Up Documentation for Cursor"), this); ++ ++ mActions[LookupDocumentationForCursor] = action = new QAction(tr("Look Up Documentation for Cursor"), this); + action->setShortcut(tr("Ctrl+D", "Look Up Documentation for Cursor")); + action->setStatusTip(tr("Look up documentation for text under cursor")); + connect(action, SIGNAL(triggered()), this, SLOT(lookupDocumentationForCursor())); +- settings->addAction( action, "help-lookup-for-cursor", helpCategory); ++ settings->addAction(action, "help-lookup-for-cursor", helpCategory); + +- mActions[LookupDocumentation] = action = +- new QAction(tr("Look Up Documentation..."), this); ++ mActions[LookupDocumentation] = action = new QAction(tr("Look Up Documentation..."), this); + action->setShortcut(tr("Ctrl+Shift+D", "Look Up Documentation")); + action->setStatusTip(tr("Enter text to look up in documentation")); + connect(action, SIGNAL(triggered()), this, SLOT(lookupDocumentation())); +- settings->addAction( action, "help-lookup", helpCategory); ++ settings->addAction(action, "help-lookup", helpCategory); + +- mActions[ShowAbout] = action = new QAction( +- QIcon::fromTheme("help-about"), tr("&About SuperCollider"), this); ++ mActions[ShowAbout] = action = new QAction(QIcon::fromTheme("help-about"), tr("&About SuperCollider"), this); + connect(action, SIGNAL(triggered()), this, SLOT(showAbout())); +- settings->addAction( action, "ide-about", ideCategory); ++ settings->addAction(action, "ide-about", ideCategory); + +- mActions[ShowAboutQT] = action = new QAction( +- QIcon::fromTheme("show-about-qt"), tr("About &Qt"), this); ++ mActions[ShowAboutQT] = action = new QAction(QIcon::fromTheme("show-about-qt"), tr("About &Qt"), this); + connect(action, SIGNAL(triggered()), this, SLOT(showAboutQT())); +- settings->addAction( action, "ide-about-qt", ideCategory); ++ settings->addAction(action, "ide-about-qt", ideCategory); + + // Add external actions to settings: + action = mPostDocklet->toggleViewAction(); +- action->setIcon( QIcon::fromTheme("utilities-terminal")); ++ action->setIcon(QIcon::fromTheme("utilities-terminal")); + action->setStatusTip(tr("Show/hide Post docklet")); +- settings->addAction( mPostDocklet->toggleViewAction(), +- "ide-docklet-post", ideCategory ); ++ settings->addAction(mPostDocklet->toggleViewAction(), "ide-docklet-post", ideCategory); + + action = mDocumentsDocklet->toggleViewAction(); +- action->setIcon( QIcon::fromTheme("text-x-generic") ); ++ action->setIcon(QIcon::fromTheme("text-x-generic")); + action->setStatusTip(tr("Show/hide Documents docklet")); +- settings->addAction( mDocumentsDocklet->toggleViewAction(), +- "ide-docklet-documents", ideCategory ); ++ settings->addAction(mDocumentsDocklet->toggleViewAction(), "ide-docklet-documents", ideCategory); + + action = mHelpBrowserDocklet->toggleViewAction(); +- action->setIcon( QIcon::fromTheme("system-help") ); ++ action->setIcon(QIcon::fromTheme("system-help")); + action->setStatusTip(tr("Show/hide Help browser docklet")); +- settings->addAction( mHelpBrowserDocklet->toggleViewAction(), +- "ide-docklet-help", ideCategory ); ++ settings->addAction(mHelpBrowserDocklet->toggleViewAction(), "ide-docklet-help", ideCategory); + + // In Mac OS, all menu item shortcuts need a modifier, so add the action with + // the "Escape" default shortcut to the main window widget. + // FIXME: This is not perfect, as any other action customized to "Escape" will + // still not work. +- addAction( mActions[CloseToolBox] ); ++ addAction(mActions[CloseToolBox]); + + // Add actions to docklets, so shortcuts work when docklets detached: + +@@ -530,14 +507,12 @@ void MainWindow::createActions() + mHelpBrowserDocklet->widget()->addAction(mActions[LookupImplementationForCursor]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferences]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferencesForCursor]); +- + } + +-void MainWindow::createMenus() +-{ +- QMenuBar *menuBar; +- QMenu *menu; +- QMenu *submenu; ++void MainWindow::createMenus() { ++ QMenuBar* menuBar; ++ QMenu* menu; ++ QMenu* submenu; + + // On Mac, create a parent-less menu bar to be shared by all windows: + #ifdef Q_OS_MAC +@@ -547,170 +522,165 @@ void MainWindow::createMenus() + #endif + + menu = new QMenu(tr("&File"), this); +- menu->addAction( mActions[DocNew] ); +- menu->addAction( mActions[DocOpen] ); ++ menu->addAction(mActions[DocNew]); ++ menu->addAction(mActions[DocOpen]); + mRecentDocsMenu = menu->addMenu(tr("Open Recent", "Open a recent document")); +- connect(mRecentDocsMenu, SIGNAL(triggered(QAction*)), +- this, SLOT(onOpenRecentDocument(QAction*))); +- menu->addAction( mActions[DocOpenStartup] ); +- menu->addAction( mActions[DocOpenSupportDir] ); +- menu->addAction( mActions[DocSave] ); +- menu->addAction( mActions[DocSaveAs] ); +- menu->addAction( mActions[DocSaveAsExtension] ); +- menu->addAction( mActions[DocSaveAll] ); ++ connect(mRecentDocsMenu, SIGNAL(triggered(QAction*)), this, SLOT(onOpenRecentDocument(QAction*))); ++ menu->addAction(mActions[DocOpenStartup]); ++ menu->addAction(mActions[DocOpenSupportDir]); ++ menu->addAction(mActions[DocSave]); ++ menu->addAction(mActions[DocSaveAs]); ++ menu->addAction(mActions[DocSaveAsExtension]); ++ menu->addAction(mActions[DocSaveAll]); + menu->addSeparator(); +- menu->addAction( mActions[DocReload] ); ++ menu->addAction(mActions[DocReload]); + menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::DocClose) ); +- menu->addAction( mActions[DocCloseAll] ); ++ menu->addAction(mEditors->action(MultiEditor::DocClose)); ++ menu->addAction(mActions[DocCloseAll]); + menu->addSeparator(); +- menu->addAction( mActions[Quit] ); ++ menu->addAction(mActions[Quit]); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("&Session"), this); +- menu->addAction( mActions[NewSession] ); +- menu->addAction( mActions[SaveSessionAs] ); ++ menu->addAction(mActions[NewSession]); ++ menu->addAction(mActions[SaveSessionAs]); + submenu = menu->addMenu(tr("&Open Session")); +- connect(submenu, SIGNAL(triggered(QAction*)), +- this, SLOT(onOpenSessionAction(QAction*))); ++ connect(submenu, SIGNAL(triggered(QAction*)), this, SLOT(onOpenSessionAction(QAction*))); + mSessionsMenu = submenu; + updateSessionsMenu(); + menu->addSeparator(); +- menu->addAction( mActions[ManageSessions] ); +- menu->addAction( mActions[OpenSessionSwitchDialog] ); ++ menu->addAction(mActions[ManageSessions]); ++ menu->addAction(mActions[OpenSessionSwitchDialog]); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("&Edit"), this); +- menu->addAction( mEditors->action(MultiEditor::Undo) ); +- menu->addAction( mEditors->action(MultiEditor::Redo) ); ++ menu->addAction(mEditors->action(MultiEditor::Undo)); ++ menu->addAction(mEditors->action(MultiEditor::Redo)); + menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::Cut) ); +- menu->addAction( mEditors->action(MultiEditor::Copy) ); +- menu->addAction( mEditors->action(MultiEditor::Paste) ); +- menu->addSeparator(); +- menu->addAction( mActions[Find] ); +- menu->addAction( mFindReplaceTool->action(TextFindReplacePanel::FindNext) ); +- menu->addAction( mFindReplaceTool->action(TextFindReplacePanel::FindPrevious) ); +- menu->addAction( mActions[Replace] ); +- menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::IndentWithSpaces) ); +- menu->addAction( mEditors->action(MultiEditor::IndentLineOrRegion) ); +- menu->addAction( mEditors->action(MultiEditor::ToggleComment) ); +- menu->addAction( mEditors->action(MultiEditor::ToggleOverwriteMode) ); +- menu->addAction( mEditors->action(MultiEditor::SelectRegion) ); +- menu->addAction( mEditors->action(MultiEditor::SelectEnclosingBlock) ); ++ menu->addAction(mEditors->action(MultiEditor::Cut)); ++ menu->addAction(mEditors->action(MultiEditor::Copy)); ++ menu->addAction(mEditors->action(MultiEditor::Paste)); ++ menu->addSeparator(); ++ menu->addAction(mActions[Find]); ++ menu->addAction(mFindReplaceTool->action(TextFindReplacePanel::FindNext)); ++ menu->addAction(mFindReplaceTool->action(TextFindReplacePanel::FindPrevious)); ++ menu->addAction(mActions[Replace]); ++ menu->addSeparator(); ++ menu->addAction(mEditors->action(MultiEditor::IndentWithSpaces)); ++ menu->addAction(mEditors->action(MultiEditor::IndentLineOrRegion)); ++ menu->addAction(mEditors->action(MultiEditor::ToggleComment)); ++ menu->addAction(mEditors->action(MultiEditor::ToggleOverwriteMode)); ++ menu->addAction(mEditors->action(MultiEditor::SelectRegion)); ++ menu->addAction(mEditors->action(MultiEditor::SelectEnclosingBlock)); + + menu->addSeparator(); +- menu->addAction( mActions[ShowSettings] ); ++ menu->addAction(mActions[ShowSettings]); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("&View"), this); + submenu = new QMenu(tr("&Docklets"), this); +- submenu->addAction( mPostDocklet->toggleViewAction() ); +- submenu->addAction( mDocumentsDocklet->toggleViewAction() ); +- submenu->addAction( mHelpBrowserDocklet->toggleViewAction() ); ++ submenu->addAction(mPostDocklet->toggleViewAction()); ++ submenu->addAction(mDocumentsDocklet->toggleViewAction()); ++ submenu->addAction(mHelpBrowserDocklet->toggleViewAction()); + menu->addMenu(submenu); + menu->addSeparator(); + submenu = menu->addMenu(tr("&Tool Panels")); +- submenu->addAction( mActions[Find] ); +- submenu->addAction( mActions[Replace] ); +- submenu->addAction( mActions[ShowCmdLine] ); +- submenu->addAction( mActions[CmdLineForCursor] ); +- submenu->addAction( mActions[ShowGoToLineTool] ); ++ submenu->addAction(mActions[Find]); ++ submenu->addAction(mActions[Replace]); ++ submenu->addAction(mActions[ShowCmdLine]); ++ submenu->addAction(mActions[CmdLineForCursor]); ++ submenu->addAction(mActions[ShowGoToLineTool]); + submenu->addSeparator(); +- submenu->addAction( mActions[CloseToolBox] ); ++ submenu->addAction(mActions[CloseToolBox]); + menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::EnlargeFont) ); +- menu->addAction( mEditors->action(MultiEditor::ShrinkFont) ); +- menu->addAction( mEditors->action(MultiEditor::ResetFontSize) ); ++ menu->addAction(mEditors->action(MultiEditor::EnlargeFont)); ++ menu->addAction(mEditors->action(MultiEditor::ShrinkFont)); ++ menu->addAction(mEditors->action(MultiEditor::ResetFontSize)); + menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::ShowWhitespace) ); +- menu->addAction( mEditors->action(MultiEditor::ShowLinenumber) ); ++ menu->addAction(mEditors->action(MultiEditor::ShowWhitespace)); ++ menu->addAction(mEditors->action(MultiEditor::ShowLinenumber)); + menu->addSeparator(); + menu->addAction(mEditors->action(MultiEditor::ShowAutocompleteHelp)); + menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::NextDocument) ); +- menu->addAction( mEditors->action(MultiEditor::PreviousDocument) ); +- menu->addAction( mEditors->action(MultiEditor::SwitchDocument) ); +- menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::SplitHorizontally) ); +- menu->addAction( mEditors->action(MultiEditor::SplitVertically) ); +- menu->addAction( mEditors->action(MultiEditor::RemoveCurrentSplit) ); +- menu->addAction( mEditors->action(MultiEditor::RemoveAllSplits) ); ++ menu->addAction(mEditors->action(MultiEditor::NextDocument)); ++ menu->addAction(mEditors->action(MultiEditor::PreviousDocument)); ++ menu->addAction(mEditors->action(MultiEditor::SwitchDocument)); ++ menu->addSeparator(); ++ menu->addAction(mEditors->action(MultiEditor::SplitHorizontally)); ++ menu->addAction(mEditors->action(MultiEditor::SplitVertically)); ++ menu->addAction(mEditors->action(MultiEditor::RemoveCurrentSplit)); ++ menu->addAction(mEditors->action(MultiEditor::RemoveAllSplits)); + menu->addSeparator(); +- menu->addAction( mActions[FocusPostWindow] ); ++ menu->addAction(mActions[FocusPostWindow]); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("&Language"), this); +- menu->addAction( mMain->scProcess()->action(ScProcess::ToggleRunning) ); +- menu->addAction( mMain->scProcess()->action(ScProcess::Restart) ); +- menu->addAction( mMain->scProcess()->action(ScProcess::RecompileClassLibrary) ); +- menu->addSeparator(); +- menu->addAction( mMain->scProcess()->action(ScProcess::ShowQuarks) ); +- menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::EvaluateCurrentDocument) ); +- menu->addAction( mEditors->action(MultiEditor::EvaluateRegion) ); +- menu->addAction( mEditors->action(MultiEditor::EvaluateLine) ); +- menu->addAction( mMain->scProcess()->action(ScIDE::ScProcess::StopMain) ); +- menu->addSeparator(); +- menu->addAction( mActions[LookupImplementationForCursor] ); +- menu->addAction( mActions[LookupImplementation] ); +- menu->addAction( mActions[LookupReferencesForCursor] ); +- menu->addAction( mActions[LookupReferences] ); ++ menu->addAction(mMain->scProcess()->action(ScProcess::ToggleRunning)); ++ menu->addAction(mMain->scProcess()->action(ScProcess::Restart)); ++ menu->addAction(mMain->scProcess()->action(ScProcess::RecompileClassLibrary)); ++ menu->addSeparator(); ++ menu->addAction(mMain->scProcess()->action(ScProcess::ShowQuarks)); ++ menu->addSeparator(); ++ menu->addAction(mEditors->action(MultiEditor::EvaluateCurrentDocument)); ++ menu->addAction(mEditors->action(MultiEditor::EvaluateRegion)); ++ menu->addAction(mEditors->action(MultiEditor::EvaluateLine)); ++ menu->addAction(mMain->scProcess()->action(ScIDE::ScProcess::StopMain)); ++ menu->addSeparator(); ++ menu->addAction(mActions[LookupImplementationForCursor]); ++ menu->addAction(mActions[LookupImplementation]); ++ menu->addAction(mActions[LookupReferencesForCursor]); ++ menu->addAction(mActions[LookupReferences]); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("Se&rver"), this); +- menu->addAction( mMain->scServer()->action(ScServer::ToggleRunning) ); +- menu->addAction( mMain->scServer()->action(ScServer::Reboot) ); +- menu->addAction( mMain->scServer()->action(ScServer::KillAll) ); +- menu->addSeparator(); +- menu->addAction( mMain->scServer()->action(ScServer::ShowMeters) ); +- menu->addAction( mMain->scServer()->action(ScServer::ShowScope) ); +- menu->addAction( mMain->scServer()->action(ScServer::ShowFreqScope) ); +- menu->addAction( mMain->scServer()->action(ScServer::DumpNodeTree) ); +- menu->addAction( mMain->scServer()->action(ScServer::DumpNodeTreeWithControls) ); +- menu->addAction( mMain->scServer()->action(ScServer::PlotTree) ); +- menu->addAction( mMain->scServer()->action(ScServer::DumpOSC) ); +- menu->addAction( mMain->scServer()->action(ScServer::Record) ); +- menu->addAction( mMain->scServer()->action(ScServer::PauseRecord) ); +- menu->addAction( mMain->scServer()->action(ScServer::VolumeUp) ); +- menu->addAction( mMain->scServer()->action(ScServer::VolumeDown) ); +- menu->addAction( mMain->scServer()->action(ScServer::VolumeRestore) ); +- menu->addAction( mMain->scServer()->action(ScServer::Mute) ); ++ menu->addAction(mMain->scServer()->action(ScServer::ToggleRunning)); ++ menu->addAction(mMain->scServer()->action(ScServer::Reboot)); ++ menu->addAction(mMain->scServer()->action(ScServer::KillAll)); ++ menu->addSeparator(); ++ menu->addAction(mMain->scServer()->action(ScServer::ShowMeters)); ++ menu->addAction(mMain->scServer()->action(ScServer::ShowScope)); ++ menu->addAction(mMain->scServer()->action(ScServer::ShowFreqScope)); ++ menu->addAction(mMain->scServer()->action(ScServer::DumpNodeTree)); ++ menu->addAction(mMain->scServer()->action(ScServer::DumpNodeTreeWithControls)); ++ menu->addAction(mMain->scServer()->action(ScServer::PlotTree)); ++ menu->addAction(mMain->scServer()->action(ScServer::DumpOSC)); ++ menu->addAction(mMain->scServer()->action(ScServer::Record)); ++ menu->addAction(mMain->scServer()->action(ScServer::PauseRecord)); ++ menu->addAction(mMain->scServer()->action(ScServer::VolumeUp)); ++ menu->addAction(mMain->scServer()->action(ScServer::VolumeDown)); ++ menu->addAction(mMain->scServer()->action(ScServer::VolumeRestore)); ++ menu->addAction(mMain->scServer()->action(ScServer::Mute)); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("&Help"), this); +- menu->addAction( mActions[HelpAboutIDE] ); +- menu->addAction( mActions[ReportABug] ); ++ menu->addAction(mActions[HelpAboutIDE]); ++ menu->addAction(mActions[ReportABug]); + menu->addSeparator(); +- menu->addAction( mActions[Help] ); +- menu->addAction( mActions[LookupDocumentationForCursor] ); +- menu->addAction( mActions[LookupDocumentation] ); ++ menu->addAction(mActions[Help]); ++ menu->addAction(mActions[LookupDocumentationForCursor]); ++ menu->addAction(mActions[LookupDocumentation]); + menu->addSeparator(); +- menu->addAction( mActions[ShowAbout] ); +- menu->addAction( mActions[ShowAboutQT] ); ++ menu->addAction(mActions[ShowAbout]); ++ menu->addAction(mActions[ShowAboutQT]); + + menuBar->addMenu(menu); + } + +-static void saveDetachedState( Docklet *docklet, QVariantMap & data ) +-{ +- data.insert( docklet->objectName(), docklet->saveDetachedState().toBase64() ); ++static void saveDetachedState(Docklet* docklet, QVariantMap& data) { ++ data.insert(docklet->objectName(), docklet->saveDetachedState().toBase64()); + } + +-template +-void MainWindow::saveWindowState(T * settings) +-{ ++template void MainWindow::saveWindowState(T* settings) { + QVariantMap detachedData; +- saveDetachedState( mPostDocklet, detachedData ); +- saveDetachedState( mDocumentsDocklet, detachedData ); +- saveDetachedState( mHelpBrowserDocklet, detachedData ); ++ saveDetachedState(mPostDocklet, detachedData); ++ saveDetachedState(mDocumentsDocklet, detachedData); ++ saveDetachedState(mHelpBrowserDocklet, detachedData); + + settings->beginGroup("mainWindow"); + settings->setValue("geometry", this->saveGeometry().toBase64()); +@@ -744,21 +714,20 @@ void MainWindow::restoreWindowState( T * + QVariant varDetached = settings->value("detached"); + settings->endGroup(); + +- QByteArray geom = QByteArray::fromBase64( varGeom.value() ); +- QByteArray state = QByteArray::fromBase64( varState.value() ); ++ QByteArray geom = QByteArray::fromBase64(varGeom.value()); ++ QByteArray state = QByteArray::fromBase64(varState.value()); + QVariantMap detachedData = varDetached.value(); + + if (!geom.isEmpty()) { + // Workaround for Qt bug 4397: + setWindowState(Qt::WindowNoState); + restoreGeometry(geom); +- } +- else +- setWindowState( windowState() & ~Qt::WindowFullScreen | Qt::WindowMaximized ); ++ } else ++ setWindowState(windowState() & ~Qt::WindowFullScreen | Qt::WindowMaximized); + +- restoreDetachedState( mPostDocklet, detachedData ); +- restoreDetachedState( mDocumentsDocklet, detachedData ); +- restoreDetachedState( mHelpBrowserDocklet, detachedData ); ++ restoreDetachedState(mPostDocklet, detachedData); ++ restoreDetachedState(mDocumentsDocklet, detachedData); ++ restoreDetachedState(mHelpBrowserDocklet, detachedData); + + qDebug("restoring state"); + +@@ -1387,72 +1356,51 @@ void MainWindow::updateClockWidget(bool + } + } + +-void MainWindow::openSession(const QString &sessionName) +-{ +- mMain->sessionManager()->openSession( sessionName ); +-} ++void MainWindow::openSession(const QString& sessionName) { mMain->sessionManager()->openSession(sessionName); } + +-void MainWindow::lookupImplementationForCursor() +-{ ++void MainWindow::lookupImplementationForCursor() { + static const QByteArray signature = QMetaObject::normalizedSignature("openDefinition()"); + + invokeMethodOnFirstResponder(signature); + } + +-void MainWindow::lookupImplementation() +-{ +- Main::openDefinition(QString(), QApplication::activeWindow()); +-} ++void MainWindow::lookupImplementation() { Main::openDefinition(QString(), QApplication::activeWindow()); } + +-void MainWindow::lookupReferencesForCursor() +-{ ++void MainWindow::lookupReferencesForCursor() { + static const QByteArray signature = QMetaObject::normalizedSignature("findReferences()"); + + invokeMethodOnFirstResponder(signature); + } + +-void MainWindow::lookupReferences() +-{ +- Main::findReferences(QString(), QApplication::activeWindow()); +-} ++void MainWindow::lookupReferences() { Main::findReferences(QString(), QApplication::activeWindow()); } + +-void MainWindow::showStatusMessage( QString const & string ) +-{ +- mStatusBar->showMessage(string, 3000); +-} ++void MainWindow::showStatusMessage(QString const& string) { mStatusBar->showMessage(string, 3000); } + +-void MainWindow::applySettings( Settings::Manager * settings ) +-{ +- applyCursorBlinkingSettings( settings ); ++void MainWindow::applySettings(Settings::Manager* settings) { ++ applyCursorBlinkingSettings(settings); + + mPostDocklet->mPostWindow->applySettings(settings); + mHelpBrowserDocklet->browser()->applySettings(settings); + mCmdLine->applySettings(settings); + } + +-void MainWindow::applyCursorBlinkingSettings( Settings::Manager * settings ) +-{ ++void MainWindow::applyCursorBlinkingSettings(Settings::Manager* settings) { + const bool disableBlinkingCursor = settings->value("IDE/editor/disableBlinkingCursor").toBool(); + const int defaultCursorFlashTime = settings->defaultCursorFlashTime(); +- QApplication::setCursorFlashTime( disableBlinkingCursor ? 0 : defaultCursorFlashTime ); ++ QApplication::setCursorFlashTime(disableBlinkingCursor ? 0 : defaultCursorFlashTime); + } + +-void MainWindow::storeSettings( Settings::Manager * settings ) +-{ +- mPostDocklet->mPostWindow->storeSettings(settings); +-} ++void MainWindow::storeSettings(Settings::Manager* settings) { mPostDocklet->mPostWindow->storeSettings(settings); } + +-void MainWindow::updateSessionsMenu() +-{ ++void MainWindow::updateSessionsMenu() { + mSessionsMenu->clear(); + QStringList sessions = mMain->sessionManager()->availableSessions(); +- foreach (const QString & session, sessions) +- mSessionsMenu->addAction( session ); ++ foreach (const QString& session, sessions) ++ mSessionsMenu->addAction(session); + } + +-void MainWindow::showSwitchSessionDialog() +-{ +- SessionSwitchDialog * dialog = new SessionSwitchDialog(this); ++void MainWindow::showSwitchSessionDialog() { ++ SessionSwitchDialog* dialog = new SessionSwitchDialog(this); + int result = dialog->exec(); + + if (result == QDialog::Accepted) +@@ -1589,50 +1537,43 @@ void MainWindow::lookupDocumentation() + delete dialog; + } + +-void MainWindow::lookupDocumentationForCursor() +-{ ++void MainWindow::lookupDocumentationForCursor() { + static const QByteArray signature = QMetaObject::normalizedSignature("openDocumentation()"); + + bool documentationOpened = false; +- QWidget * widget = QApplication::focusWidget(); ++ QWidget* widget = QApplication::focusWidget(); + int methodIdx = -1; + +- widget = findFirstResponder( widget, signature.constData(), methodIdx ); ++ widget = findFirstResponder(widget, signature.constData(), methodIdx); + + if (widget && methodIdx != -1) { +- widget->metaObject()->method(methodIdx).invoke( +- widget, Qt::DirectConnection, +- Q_RETURN_ARG(bool, documentationOpened) ); ++ widget->metaObject()->method(methodIdx).invoke(widget, Qt::DirectConnection, ++ Q_RETURN_ARG(bool, documentationOpened)); + }; + + if (!documentationOpened) + openHelp(); + } + +-void MainWindow::openHelp() +-{ ++void MainWindow::openHelp() { + if (mHelpBrowserDocklet->browser()->url().isEmpty()) + mHelpBrowserDocklet->browser()->goHome(); + mHelpBrowserDocklet->focus(); + } + +-void MainWindow::openHelpAboutIDE() +-{ ++void MainWindow::openHelpAboutIDE() { + mHelpBrowserDocklet->browser()->gotoHelpFor("Guides/SCIde"); + mHelpBrowserDocklet->focus(); + } +- +-void MainWindow::doBugReport() +-{ +- Settings::Manager *settings = mMain->settings(); ++ ++void MainWindow::doBugReport() { ++ Settings::Manager* settings = mMain->settings(); + bool useGitHubBugReport = false; +- ++ + if (settings->contains("IDE/useGitHubBugReport")) { +- + useGitHubBugReport = settings->value("IDE/useGitHubBugReport").toBool(); +- ++ + } else { +- + QMessageBox* dialog = new QMessageBox(); + dialog->setText("Do you want to submit bugs using GitHub?"); + dialog->setInformativeText("This requires a GitHub account."); +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.hpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +@@ -120,15 +120,15 @@ public: + void focusCodeEditor(); + bool promptSaveDocs(); + +- HelpBrowserDocklet * helpBrowserDocklet() { return mHelpBrowserDocklet; } +- PostDocklet * postDocklet() { return mPostDocklet; } ++ HelpBrowserDocklet* helpBrowserDocklet() { return mHelpBrowserDocklet; } ++ PostDocklet* postDocklet() { return mPostDocklet; } + +- static MainWindow *instance() { return mInstance; } +- Settings::Manager *setting(); ++ static MainWindow* instance() { return mInstance; } ++ Settings::Manager* setting(); + +- static bool close( Document * ); +- static bool save( Document *, bool forceChoose = false, bool saveInExtensionFolder = false ); +- static bool reload( Document * ); ++ static bool close(Document*); ++ static bool save(Document*, bool forceChoose = false, bool saveInExtensionFolder = false); ++ static bool reload(Document*); + + void restoreDocuments(); + +@@ -187,74 +187,73 @@ private Q_SLOTS: + void doBugReport(); + void lookupDocumentationForCursor(); + void lookupDocumentation(); +- void applySettings( Settings::Manager * ); +- void storeSettings( Settings::Manager * ); ++ void applySettings(Settings::Manager*); ++ void storeSettings(Settings::Manager*); + void showSwitchSessionDialog(); + void showAbout(); + void showAboutQT(); + void cmdLineForCursor(); + + protected: +- virtual void closeEvent(QCloseEvent *event); +- virtual void dragEnterEvent( QDragEnterEvent * ); +- virtual void dropEvent( QDropEvent * ); +- virtual bool eventFilter( QObject *, QEvent * ); ++ virtual void closeEvent(QCloseEvent* event); ++ virtual void dragEnterEvent(QDragEnterEvent*); ++ virtual void dropEvent(QDropEvent*); ++ virtual bool eventFilter(QObject*, QEvent*); + + private: + void createActions(); + void createMenus(); +- template void saveWindowState(T * settings); +- template void restoreWindowState(T * settings); ++ template void saveWindowState(T* settings); ++ template void restoreWindowState(T* settings); + void updateSessionsMenu(); +- void updateClockWidget( bool isFullScreen ); +- void openSession( QString const & sessionName ); +- bool checkFileExtension( const QString & fpath ); +- void toggleInterpreterActions( bool enabled); +- void applyCursorBlinkingSettings( Settings::Manager * ); ++ void updateClockWidget(bool isFullScreen); ++ void openSession(QString const& sessionName); ++ bool checkFileExtension(const QString& fpath); ++ void toggleInterpreterActions(bool enabled); ++ void applyCursorBlinkingSettings(Settings::Manager*); + QString documentOpenPath() const; +- QString documentSavePath( Document * ) const; ++ QString documentSavePath(Document*) const; + +- Main *mMain; ++ Main* mMain; + +- QAction * mActions[ActionCount]; +- QMenu * mRecentDocsMenu; +- QMenu * mSessionsMenu; ++ QAction* mActions[ActionCount]; ++ QMenu* mRecentDocsMenu; ++ QMenu* mSessionsMenu; + +- MultiEditor *mEditors; ++ MultiEditor* mEditors; + + // Tools +- ToolBox *mToolBox; +- CmdLine *mCmdLine; +- GoToLineTool *mGoToLineTool; +- TextFindReplacePanel *mFindReplaceTool; ++ ToolBox* mToolBox; ++ CmdLine* mCmdLine; ++ GoToLineTool* mGoToLineTool; ++ TextFindReplacePanel* mFindReplaceTool; + + // Status bar +- QStatusBar *mStatusBar; +- StatusBox *mLangStatus; +- StatusBox *mServerStatus; +- ClockStatusBox *mClockLabel; ++ QStatusBar* mStatusBar; ++ StatusBox* mLangStatus; ++ StatusBox* mServerStatus; ++ ClockStatusBox* mClockLabel; + + // Docks +- PostDocklet * mPostDocklet; +- DocumentsDocklet *mDocumentsDocklet; +- HelpBrowserDocklet *mHelpBrowserDocklet; ++ PostDocklet* mPostDocklet; ++ DocumentsDocklet* mDocumentsDocklet; ++ HelpBrowserDocklet* mHelpBrowserDocklet; + + QSignalMapper mCodeEvalMapper; +- DocumentsDialog * mDocDialog; ++ DocumentsDialog* mDocDialog; + + QString mLastDocumentSavePath; + +- static MainWindow *mInstance; ++ static MainWindow* mInstance; + }; + +-class ClockStatusBox : public StatusLabel +-{ ++class ClockStatusBox : public StatusLabel { + public: +- ClockStatusBox (QWidget * parent = 0); ++ ClockStatusBox(QWidget* parent = 0); + ~ClockStatusBox(); + + private: +- void timerEvent(QTimerEvent *); ++ void timerEvent(QTimerEvent*); + void updateTime(); + int mTimerId; + }; +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/style/style.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +@@ -55,75 +55,61 @@ void Style::polish ( QWidget * widget ) + if (qobject_cast(widget)) { + return; + } +- if ( (qobject_cast(widget)) +- || (qobject_cast(widget)) ) +- { ++ if ((qobject_cast(widget)) || (qobject_cast(widget))) { + widget->setAttribute(Qt::WA_Hover, true); +- } +- else ++ } else + QProxyStyle::polish(widget); +- + } + +-void Style::unpolish ( QWidget * widget ) +-{ +- QProxyStyle::unpolish(widget); +-} ++void Style::unpolish(QWidget* widget) { QProxyStyle::unpolish(widget); } + +-void Style::drawComplexControl +-( ComplexControl control, const QStyleOptionComplex * option, +- QPainter * painter, const QWidget * widget ) const +-{ ++void Style::drawComplexControl(ComplexControl control, const QStyleOptionComplex* option, QPainter* painter, ++ const QWidget* widget) const { + if (shouldNotHandle(widget)) { + QProxyStyle::drawComplexControl(control, option, painter, widget); + return; + } + +- switch(control) { ++ switch (control) { + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). +- case QStyle::CC_ScrollBar: +- { +- if (qobject_cast(widget) != 0 && option->type == QStyleOption::SO_Slider) +- { ++ case QStyle::CC_ScrollBar: { ++ if (qobject_cast(widget) != 0 && option->type == QStyleOption::SO_Slider) { + // WebKit tries to hide scrollbars, but mistakenly hides QWebView - NULL-ify styleObject to prevent. +- const QStyleOptionSlider *optSlider = static_cast(option); +- QStyleOptionSlider opt2( *optSlider ); ++ const QStyleOptionSlider* optSlider = static_cast(option); ++ QStyleOptionSlider opt2(*optSlider); + opt2.styleObject = NULL; + +- QProxyStyle::drawComplexControl( control, &opt2, painter, widget ); ++ QProxyStyle::drawComplexControl(control, &opt2, painter, widget); + return; + } + } +- case QStyle::CC_ToolButton: +- { ++ case QStyle::CC_ToolButton: { + // TODO: We only draw either text, or icon, or arrow + +- const QToolButton *toolBtn = qobject_cast(widget); ++ const QToolButton* toolBtn = qobject_cast(widget); + if (!toolBtn) + break; + + Q_ASSERT(toolBtn); + +- const QStyleOptionToolButton *toolOption = +- static_cast(option); ++ const QStyleOptionToolButton* toolOption = static_cast(option); + + painter->save(); + + QRect r = option->rect; + + if (option->state & QStyle::State_On) { +- painter->setBrush( option->palette.color(QPalette::Dark) ); +- painter->setPen( option->palette.color(QPalette::Shadow) ); +- painter->drawRect( r.adjusted(0,0,-1,-1) ); +- } +- else { ++ painter->setBrush(option->palette.color(QPalette::Dark)); ++ painter->setPen(option->palette.color(QPalette::Shadow)); ++ painter->drawRect(r.adjusted(0, 0, -1, -1)); ++ } else { + bool highlight = option->state & QStyle::State_MouseOver; + + if (highlight) { + QColor fill = option->palette.color(QPalette::Button); + painter->setBrush(fill); + painter->setPen(Qt::NoPen); +- painter->drawRect(r.adjusted(0,0,0,-1)); ++ painter->drawRect(r.adjusted(0, 0, 0, -1)); + } + + if (qobject_cast(toolBtn->parent())) { +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/lookup_dialog.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/lookup_dialog.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/lookup_dialog.cpp +@@ -35,9 +35,7 @@ + + namespace ScIDE { + +-GenericLookupDialog::GenericLookupDialog( QWidget * parent ): +- QDialog(parent) +-{ ++GenericLookupDialog::GenericLookupDialog(QWidget* parent): QDialog(parent) { + addAction(MainWindow::instance()->action(MainWindow::LookupDocumentationForCursor)); + + mQueryEdit = new QLineEdit(this); +Index: supercollider-3.10.0+repack/QtCollider/factories.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/factories.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/interface.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/interface.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.h.orig +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.h.rej +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/lookup_dialog.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/lookup_dialog.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp.rej +=================================================================== diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-01-cc8201ac297ee8de90949eb0209228b0394678a0 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-01-cc8201ac297ee8de90949eb0209228b0394678a0 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-01-cc8201ac297ee8de90949eb0209228b0394678a0 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-01-cc8201ac297ee8de90949eb0209228b0394678a0 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,216 @@ +commit cc8201ac297ee8de90949eb0209228b0394678a0 +Author: Nathan Ho +Date: Sun Jun 2 01:42:20 2019 -0700 + + sclang: Refactor QcCallback declaration out of QcWebView + + This commit relocates QcCallback out of the QcWebView header. QcCallback is not specific to WebView. + + Also removes a dangerous "using" in header file. + +diff --git a/QtCollider/CMakeLists.txt b/QtCollider/CMakeLists.txt +index 4702367a2..0fcd01726 100644 +--- a/QtCollider/CMakeLists.txt ++++ b/QtCollider/CMakeLists.txt +@@ -41,6 +41,7 @@ set( QT_COLLIDER_HDRS + ${QT_COLLIDER_DIR}/QObjectProxy.h + ${QT_COLLIDER_DIR}/QWidgetProxy.h + ${QT_COLLIDER_DIR}/QtDownload.h ++ ${QT_COLLIDER_DIR}/QcCallback.hpp + ${QT_COLLIDER_DIR}/widgets/BasicWidgets.h + ${QT_COLLIDER_DIR}/widgets/QcButton.h + ${QT_COLLIDER_DIR}/widgets/QcCheckBox.h +@@ -85,6 +86,7 @@ set( QT_COLLIDER_SRCS + ${QT_COLLIDER_DIR}/QWidgetProxy.cpp + ${QT_COLLIDER_DIR}/QcObjectFactory.cpp + ${QT_COLLIDER_DIR}/QtDownload.cpp ++ ${QT_COLLIDER_DIR}/QcCallback.cpp + ${QT_COLLIDER_DIR}/hacks/hacks_x11.cpp + ${QT_COLLIDER_DIR}/primitives/primitives.cpp + ${QT_COLLIDER_DIR}/primitives/prim_QObject.cpp +diff --git a/QtCollider/QcCallback.cpp b/QtCollider/QcCallback.cpp +new file mode 100644 +index 000000000..2094a9514 +--- /dev/null ++++ b/QtCollider/QcCallback.cpp +@@ -0,0 +1,24 @@ ++/* ++ SuperCollider Language ++ Copyright (c) 2018 SuperCollider Team ++ https://supercollider.github.io/ ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++*/ ++ ++#include "QcCallback.hpp" ++#include "QcObjectFactory.h" ++ ++QC_DECLARE_QOBJECT_FACTORY(QcCallback); +diff --git a/QtCollider/QcCallback.hpp b/QtCollider/QcCallback.hpp +new file mode 100644 +index 000000000..31289f213 +--- /dev/null ++++ b/QtCollider/QcCallback.hpp +@@ -0,0 +1,64 @@ ++/* ++ SuperCollider Language ++ Copyright (c) 2018 SuperCollider Team ++ https://supercollider.github.io/ ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++*/ ++ ++#pragma once ++ ++#include ++ ++namespace QtCollider { ++ ++class QcCallback; ++ ++class QcCallbackWeakFunctor { ++public: ++ QcCallbackWeakFunctor(QPointer cb): _cb(cb) {} ++ ++ template void operator()(RESULT r) const; ++ ++private: ++ QPointer _cb; ++}; ++ ++class QcCallback : public QObject { ++ Q_OBJECT ++ ++public: ++ QcCallback() {} ++ ++ template void call(const CallbackT& result) { Q_EMIT(onCalled(result)); } ++ ++ QcCallbackWeakFunctor asFunctor() { return QcCallbackWeakFunctor(QPointer(this)); } ++ ++Q_SIGNALS: ++ void onCalled(bool); ++ void onCalled(const QString&); ++ void onCalled(const QVariant&); ++ void onCalled(const QUrl&); ++}; ++ ++template void QcCallbackWeakFunctor::operator()(RESULT r) const { ++ if (_cb) { ++ _cb->call(r); ++ } ++} ++ ++} // namespace QtCollider ++ ++Q_DECLARE_METATYPE(QtCollider::QcCallback*); +diff --git a/QtCollider/metatype.cpp b/QtCollider/metatype.cpp +index 496494191..d867b5de0 100644 +--- a/QtCollider/metatype.cpp ++++ b/QtCollider/metatype.cpp +@@ -24,7 +24,7 @@ + #include "Common.h" // Make sure PyrObject* is declared to QMetaType + #include + +-#include "widgets/QcWebView.h" ++#include "QcCallback.hpp" + + namespace QtCollider { + +diff --git a/QtCollider/widgets/QcWebView.cpp b/QtCollider/widgets/QcWebView.cpp +index 120941129..6d4dfd1ae 100644 +--- a/QtCollider/widgets/QcWebView.cpp ++++ b/QtCollider/widgets/QcWebView.cpp +@@ -34,7 +34,6 @@ + #include + + QC_DECLARE_QWIDGET_FACTORY(WebView); +-QC_DECLARE_QOBJECT_FACTORY(QcCallback); + + namespace QtCollider { + +diff --git a/QtCollider/widgets/QcWebView.h b/QtCollider/widgets/QcWebView.h +index ef1aefad8..6ec2be836 100644 +--- a/QtCollider/widgets/QcWebView.h ++++ b/QtCollider/widgets/QcWebView.h +@@ -21,6 +21,7 @@ + + #pragma once + ++#include "../QcCallback.hpp" + #include + #include + #include +@@ -35,41 +36,6 @@ Q_DECLARE_METATYPE(QUrl) + namespace QtCollider { + + class WebPage; +-class QcCallback; +- +-class QcCallbackWeakFunctor { +-public: +- QcCallbackWeakFunctor(QPointer cb): _cb(cb) {} +- +- template void operator()(RESULT r) const; +- +-private: +- QPointer _cb; +-}; +- +-class QcCallback : public QObject { +- Q_OBJECT +- +-public: +- QcCallback() {} +- +- template void call(const CallbackT& result) { Q_EMIT(onCalled(result)); } +- +- QcCallbackWeakFunctor asFunctor() { return QcCallbackWeakFunctor(QPointer(this)); } +- +-Q_SIGNALS: +- void onCalled(bool); +- void onCalled(const QString&); +- void onCalled(const QVariant&); +- void onCalled(const QUrl&); +-}; +- +-template void QcCallbackWeakFunctor::operator()(RESULT r) const { +- if (_cb) { +- _cb->call(r); +- } +-} +- + + class WebView : public QWebEngineView { + Q_OBJECT +@@ -190,6 +156,3 @@ private: + }; + + } // namespace QtCollider +- +-using namespace QtCollider; +-Q_DECLARE_METATYPE(QcCallback*); diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-02-87fedd160798e793fe155c693309479b493279b3 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-02-87fedd160798e793fe155c693309479b493279b3 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-02-87fedd160798e793fe155c693309479b493279b3 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-02-87fedd160798e793fe155c693309479b493279b3 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,108 @@ +commit 87fedd160798e793fe155c693309479b493279b3 +Author: Nathan Ho +Date: Sun Jun 2 01:43:21 2019 -0700 + + sclang: Refactor QtCollider CMakeLists + +diff --git a/QtCollider/CMakeLists.txt b/QtCollider/CMakeLists.txt +index 0fcd01726..31447a42e 100644 +--- a/QtCollider/CMakeLists.txt ++++ b/QtCollider/CMakeLists.txt +@@ -1,37 +1,51 @@ + set(REQUIRED_QT_VERSION 5.7) ++set(QT_WEBENGINE TRUE) + +-find_package( +- Qt5 ${REQUIRED_QT_VERSION} +- COMPONENTS ++set( QT_USE_QTWEBENGINE TRUE ) # TODO: figure out what to do with this ++ ++############################################################################### ++# Components and libraries ++ ++set( ++ QT_COMPONENTS + Core + Widgets + Network +- WebEngine +- WebEngineCore +- WebEngineWidgets + PrintSupport + OpenGL + Quick + Qml + Sql + Svg +- REQUIRED + ) + + set (QT_COLLIDER_LIBS +- Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::WebEngineCore Qt5::WebEngineWidgets Qt5::PrintSupport ++ Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::PrintSupport + Qt5::Quick Qt5::Qml Qt5::Sql Qt5::OpenGL Qt5::Svg + ${MATH_LIBRARY}) + ++if(QT_WEBENGINE) ++ list(APPEND QT_COMPONENTS WebEngine WebEngineCore WebEngineWidgets) ++ list(APPEND QT_COLLIDER_LIBS Qt5::WebEngineCore Qt5::WebEngineWidgets) ++endif() ++ ++find_package(Qt5 ${REQUIRED_QT_VERSION} COMPONENTS ${QT_COMPONENTS} REQUIRED) ++ + if (APPLE) + find_package(Qt5MacExtras) + mark_as_advanced(Qt5MacExtras_DIR) + list(APPEND QT_COLLIDER_LIBS Qt5::MacExtras) + endif() + ++############################################################################### ++# Debug flags ++ + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DQC_DEBUG") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DQC_DEBUG") + ++############################################################################### ++# Source file manifest ++ + set(QT_COLLIDER_DIR ${CMAKE_SOURCE_DIR}/QtCollider) + + include_directories( ${QT_COLLIDER_DIR} ) +@@ -66,8 +80,6 @@ set( QT_COLLIDER_HDRS + ${QT_COLLIDER_DIR}/widgets/soundfileview/view.hpp + ${QT_COLLIDER_DIR}/widgets/QcFileDialog.h + ${QT_COLLIDER_DIR}/widgets/QcPenPrinter.h +- ${QT_COLLIDER_DIR}/widgets/QcWebView.h +- ${QT_COLLIDER_DIR}/widgets/web_page.hpp + ${QT_COLLIDER_DIR}/widgets/QcWindow.h + ${QT_COLLIDER_DIR}/layouts/layouts.hpp + ${QT_COLLIDER_DIR}/layouts/stack_layout.hpp +@@ -123,8 +135,6 @@ set( QT_COLLIDER_SRCS + ${QT_COLLIDER_DIR}/widgets/soundfileview/cachestream.cpp + ${QT_COLLIDER_DIR}/widgets/QcFileDialog.cpp + ${QT_COLLIDER_DIR}/widgets/QcPenPrinter.cpp +- ${QT_COLLIDER_DIR}/widgets/QcWebView.cpp +- ${QT_COLLIDER_DIR}/widgets/web_page.cpp + ${QT_COLLIDER_DIR}/layouts/layouts.cpp + ${QT_COLLIDER_DIR}/layouts/stack_layout.cpp + ${QT_COLLIDER_DIR}/style/ProxyStyle.cpp +@@ -136,8 +146,18 @@ if(QT_COLLIDER_LANG_CLIENT) + list(APPEND QT_COLLIDER_SRCS ${QT_COLLIDER_DIR}/LanguageClient.cpp) + endif() + ++if(QT_WEBENGINE) ++ list(APPEND QT_COLLIDER_HDRS ++ ${QT_COLLIDER_DIR}/widgets/QcWebView.h ++ ${QT_COLLIDER_DIR}/widgets/web_page.hpp ++ ) ++ list(APPEND QT_COLLIDER_SRCS ++ ${QT_COLLIDER_DIR}/widgets/QcWebView.cpp ++ ${QT_COLLIDER_DIR}/widgets/web_page.cpp ++ ) ++endif() + +-set( QT_USE_QTWEBENGINE TRUE ) ++############################################################################### + + qt5_wrap_cpp( QT_COLLIDER_MOC_SRCS ${QT_COLLIDER_HDRS} ) + qt5_add_resources( QT_COLLIDER_RCC ${QT_COLLIDER_DIR}/resources.qrc ) diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-03-e312031105bd66e0f67cba3a199445cdd9b87939 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-03-e312031105bd66e0f67cba3a199445cdd9b87939 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-03-e312031105bd66e0f67cba3a199445cdd9b87939 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-03-e312031105bd66e0f67cba3a199445cdd9b87939 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,123 @@ +commit e312031105bd66e0f67cba3a199445cdd9b87939 +Author: Nathan Ho +Date: Sun Jun 2 01:43:33 2019 -0700 + + sclang: Fix build with QT_WEBENGINE off + +Index: supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/CMakeLists.txt ++++ supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +@@ -1,5 +1,5 @@ + set(REQUIRED_QT_VERSION 5.7) +-set(QT_WEBENGINE TRUE) ++set(QT_WEBENGINE FALSE) + + set( QT_USE_QTWEBENGINE TRUE ) # TODO: figure out what to do with this + +Index: supercollider-3.10.0+repack/QtCollider/factories.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/factories.cpp ++++ supercollider-3.10.0+repack/QtCollider/factories.cpp +@@ -59,7 +59,6 @@ static void doLoadFactories() { + QC_ADD_FACTORY(QcAction); + QC_ADD_FACTORY(QcWidgetAction); + QC_ADD_FACTORY(QcCallback); +- QC_ADD_FACTORY(WebView); + QC_ADD_FACTORY(QcWindow); + QC_ADD_FACTORY(QcScrollWindow); + QC_ADD_FACTORY(QcHBoxLayout); +@@ -67,6 +66,9 @@ static void doLoadFactories() { + QC_ADD_FACTORY(QcGridLayout); + QC_ADD_FACTORY(QcStackLayout); + QC_ADD_FACTORY(QtDownload); ++#ifdef QT_WEBENGINE ++ QC_ADD_FACTORY(WebView); ++#endif + #ifdef __APPLE__ + QC_ADD_FACTORY(QcQuartzComposerView); + #endif +Index: supercollider-3.10.0+repack/QtCollider/interface.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/interface.cpp ++++ supercollider-3.10.0+repack/QtCollider/interface.cpp +@@ -29,7 +29,10 @@ + #include + #include + #include +-#include ++ ++#ifdef QT_WEBENGINE ++# include ++#endif + + #ifdef Q_WS_X11 + # include +@@ -79,8 +82,10 @@ void QtCollider::init() { + + gSystemPalette = qcApp->palette(); + ++#ifdef QT_WEBENGINE + // Enable javascript localStorage for WebViews + QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); ++#endif + + // NOTE: Qt may tamper with the C language locale, affecting POSIX number-string conversions. + // Revert the locale to default: +Index: supercollider-3.10.0+repack/QtCollider/primitives/prim_misc.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/primitives/prim_misc.cpp ++++ supercollider-3.10.0+repack/QtCollider/primitives/prim_misc.cpp +@@ -25,8 +25,8 @@ + #include "../type_codec.hpp" + #include "../QcApplication.h" + #include "../QObjectProxy.h" +-#include "../widgets/QcWebView.h" + #include "../style/style.hpp" ++#include "../QcCallback.hpp" + #include "QtCollider.h" + + #ifdef Q_OS_MAC +@@ -41,7 +41,6 @@ + #include + #include + #include +-#include + #include + + namespace QtCollider { +Index: supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/style/ProxyStyle.cpp ++++ supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +@@ -3,10 +3,13 @@ + #include "../QcApplication.h" + + #include +-#include + #include + #include + ++#ifdef QT_WEBENGINE ++# include ++#endif ++ + #ifdef Q_OS_MAC + # include "../hacks/hacks_mac.hpp" + #endif +@@ -30,6 +33,7 @@ static bool AlwaysShowScrollbars() { + + void ProxyStyle::drawComplexControl(ComplexControl ctrl, const QStyleOptionComplex* opt, QPainter* p, + const QWidget* w) const { ++#ifdef QT_WEBENGINE + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). + if (ctrl == QStyle::CC_ScrollBar && qobject_cast(w) != 0 + && opt->type == QStyleOption::SO_Slider) { +@@ -41,6 +45,7 @@ void ProxyStyle::drawComplexControl(Comp + QProxyStyle::drawComplexControl(ctrl, &opt2, p, w); + return; + } ++#endif // QT_WEBENGINE + + if (ctrl == QStyle::CC_ScrollBar && AlwaysShowScrollbars()) { + const QStyleOptionSlider* optSlider = static_cast(opt); diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-04-2005e6f18906b092686f8ed0f48b54c67acf01fd supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-04-2005e6f18906b092686f8ed0f48b54c67acf01fd --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-04-2005e6f18906b092686f8ed0f48b54c67acf01fd 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-04-2005e6f18906b092686f8ed0f48b54c67acf01fd 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,34 @@ +commit 2005e6f18906b092686f8ed0f48b54c67acf01fd +Author: Nathan Ho +Date: Sun Jun 2 01:43:36 2019 -0700 + + sclang: Connect CMake to QT_WEBENGINE macro + +diff --git a/QtCollider/CMakeLists.txt b/QtCollider/CMakeLists.txt +index 1e4f78eab..398fad80a 100644 +--- a/QtCollider/CMakeLists.txt ++++ b/QtCollider/CMakeLists.txt +@@ -1,7 +1,5 @@ + set(REQUIRED_QT_VERSION 5.7) +-set(QT_WEBENGINE FALSE) +- +-set( QT_USE_QTWEBENGINE TRUE ) # TODO: figure out what to do with this ++option(QT_WEBENGINE "Build with Qt WebEngine." ON) + + ############################################################################### + # Components and libraries +diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt +index c68b32fdc..313a74277 100644 +--- a/lang/CMakeLists.txt ++++ b/lang/CMakeLists.txt +@@ -182,6 +182,10 @@ if(SC_QT OR SC_IDE) + message(STATUS "Found Qt: " ${QtCore_location} ) + get_filename_component(QT_BIN_PATH ${QtCore_location} DIRECTORY CACHE) + ++ if(QT_WEBENGINE) ++ message(STATUS "Building with QtWebEngine") ++ target_compile_definitions(libsclang PUBLIC QT_WEBENGINE) ++ endif() + target_link_libraries(libsclang ${QT_COLLIDER_LIBS}) + endif() + diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-05-98482ee0ebae1021655d9a6beb8c6b8a5f62605a supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-05-98482ee0ebae1021655d9a6beb8c6b8a5f62605a --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-05-98482ee0ebae1021655d9a6beb8c6b8a5f62605a 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-05-98482ee0ebae1021655d9a6beb8c6b8a5f62605a 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,34 @@ +commit 98482ee0ebae1021655d9a6beb8c6b8a5f62605a +Author: Nathan Ho +Date: Sun Jun 2 01:43:38 2019 -0700 + + help: Expand docs for WebView/HelpBrowser + +diff --git a/HelpSource/Classes/HelpBrowser.schelp b/HelpSource/Classes/HelpBrowser.schelp +index 768a8158c..c507afea0 100644 +--- a/HelpSource/Classes/HelpBrowser.schelp ++++ b/HelpSource/Classes/HelpBrowser.schelp +@@ -7,6 +7,10 @@ description:: + + HelpBrowser is the GUI help browser that lets you browse the documentation of SuperCollider. It is coupled with SCDoc to allow on-the-fly rendering of HTML help files. + ++Note that this is not the same as the help browser built into the IDE. ++ ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DQT_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++ + classmethods:: + private:: getOldWrapUrl, initClass + +diff --git a/HelpSource/Classes/WebView.schelp b/HelpSource/Classes/WebView.schelp +index 747155532..d22bafb04 100644 +--- a/HelpSource/Classes/WebView.schelp ++++ b/HelpSource/Classes/WebView.schelp +@@ -6,6 +6,8 @@ DESCRIPTION:: + + WebView displays web pages and provides all the standard browsing functionality. + ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DQT_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++ + CLASSMETHODS:: + + PRIVATE:: key diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-06-fa2783c88d8dbbe124396d5e57523e5abcd689e2 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-06-fa2783c88d8dbbe124396d5e57523e5abcd689e2 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-06-fa2783c88d8dbbe124396d5e57523e5abcd689e2 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-06-fa2783c88d8dbbe124396d5e57523e5abcd689e2 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,143 @@ +commit fa2783c88d8dbbe124396d5e57523e5abcd689e2 +Author: Nathan Ho +Date: Sun Jun 2 01:43:39 2019 -0700 + + sclang: Rename QT_WEBENGINE to SC_USE_WEBENGINE + +diff --git a/HelpSource/Classes/HelpBrowser.schelp b/HelpSource/Classes/HelpBrowser.schelp +index c507afea0..20e94abbb 100644 +--- a/HelpSource/Classes/HelpBrowser.schelp ++++ b/HelpSource/Classes/HelpBrowser.schelp +@@ -9,7 +9,7 @@ HelpBrowser is the GUI help browser that lets you browse the documentation of Su + + Note that this is not the same as the help browser built into the IDE. + +-Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DQT_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. + + classmethods:: + private:: getOldWrapUrl, initClass +diff --git a/HelpSource/Classes/WebView.schelp b/HelpSource/Classes/WebView.schelp +index d22bafb04..74cf94344 100644 +--- a/HelpSource/Classes/WebView.schelp ++++ b/HelpSource/Classes/WebView.schelp +@@ -6,7 +6,7 @@ DESCRIPTION:: + + WebView displays web pages and provides all the standard browsing functionality. + +-Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DQT_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. + + CLASSMETHODS:: + +diff --git a/QtCollider/CMakeLists.txt b/QtCollider/CMakeLists.txt +index 398fad80a..e4ca98780 100644 +--- a/QtCollider/CMakeLists.txt ++++ b/QtCollider/CMakeLists.txt +@@ -1,5 +1,5 @@ + set(REQUIRED_QT_VERSION 5.7) +-option(QT_WEBENGINE "Build with Qt WebEngine." ON) ++option(SC_USE_WEBENGINE "Build with Qt WebEngine." ON) + + ############################################################################### + # Components and libraries +@@ -22,7 +22,7 @@ set (QT_COLLIDER_LIBS + Qt5::Quick Qt5::Qml Qt5::Sql Qt5::OpenGL Qt5::Svg + ${MATH_LIBRARY}) + +-if(QT_WEBENGINE) ++if(SC_USE_WEBENGINE) + list(APPEND QT_COMPONENTS WebEngine WebEngineCore WebEngineWidgets) + list(APPEND QT_COLLIDER_LIBS Qt5::WebEngineCore Qt5::WebEngineWidgets) + endif() +@@ -144,7 +144,7 @@ if(QT_COLLIDER_LANG_CLIENT) + list(APPEND QT_COLLIDER_SRCS ${QT_COLLIDER_DIR}/LanguageClient.cpp) + endif() + +-if(QT_WEBENGINE) ++if(SC_USE_WEBENGINE) + list(APPEND QT_COLLIDER_HDRS + ${QT_COLLIDER_DIR}/widgets/QcWebView.h + ${QT_COLLIDER_DIR}/widgets/web_page.hpp +diff --git a/QtCollider/factories.cpp b/QtCollider/factories.cpp +index a5a667ac3..c3d04b6f3 100644 +--- a/QtCollider/factories.cpp ++++ b/QtCollider/factories.cpp +@@ -66,7 +66,7 @@ static void doLoadFactories() { + QC_ADD_FACTORY(QcGridLayout); + QC_ADD_FACTORY(QcStackLayout); + QC_ADD_FACTORY(QtDownload); +-#ifdef QT_WEBENGINE ++#ifdef SC_USE_WEBENGINE + QC_ADD_FACTORY(WebView); + #endif + #ifdef __APPLE__ +diff --git a/QtCollider/interface.cpp b/QtCollider/interface.cpp +index cdc788649..09951ef27 100644 +--- a/QtCollider/interface.cpp ++++ b/QtCollider/interface.cpp +@@ -30,7 +30,7 @@ + #include + #include + +-#ifdef QT_WEBENGINE ++#ifdef SC_USE_WEBENGINE + # include + #endif + +@@ -82,7 +82,7 @@ void QtCollider::init() { + + gSystemPalette = qcApp->palette(); + +-#ifdef QT_WEBENGINE ++#ifdef SC_USE_WEBENGINE + // Enable javascript localStorage for WebViews + QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); + #endif +diff --git a/QtCollider/style/ProxyStyle.cpp b/QtCollider/style/ProxyStyle.cpp +index a1d68830f..38a0b77a7 100644 +--- a/QtCollider/style/ProxyStyle.cpp ++++ b/QtCollider/style/ProxyStyle.cpp +@@ -6,7 +6,7 @@ + #include + #include + +-#ifdef QT_WEBENGINE ++#ifdef SC_USE_WEBENGINE + # include + #endif + +@@ -33,7 +33,7 @@ static bool AlwaysShowScrollbars() { + + void ProxyStyle::drawComplexControl(ComplexControl ctrl, const QStyleOptionComplex* opt, QPainter* p, + const QWidget* w) const { +-#ifdef QT_WEBENGINE ++#ifdef SC_USE_WEBENGINE + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). + if (ctrl == QStyle::CC_ScrollBar && qobject_cast(w) != 0 + && opt->type == QStyleOption::SO_Slider) { +@@ -45,7 +45,7 @@ void ProxyStyle::drawComplexControl(ComplexControl ctrl, const QStyleOptionCompl + QProxyStyle::drawComplexControl(ctrl, &opt2, p, w); + return; + } +-#endif // QT_WEBENGINE ++#endif // SC_USE_WEBENGINE + + if (ctrl == QStyle::CC_ScrollBar && AlwaysShowScrollbars()) { + const QStyleOptionSlider* optSlider = static_cast(opt); +diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt +index 313a74277..05cd992bc 100644 +--- a/lang/CMakeLists.txt ++++ b/lang/CMakeLists.txt +@@ -182,9 +182,9 @@ if(SC_QT OR SC_IDE) + message(STATUS "Found Qt: " ${QtCore_location} ) + get_filename_component(QT_BIN_PATH ${QtCore_location} DIRECTORY CACHE) + +- if(QT_WEBENGINE) ++ if(SC_USE_WEBENGINE) + message(STATUS "Building with QtWebEngine") +- target_compile_definitions(libsclang PUBLIC QT_WEBENGINE) ++ target_compile_definitions(libsclang PUBLIC SC_USE_WEBENGINE) + endif() + target_link_libraries(libsclang ${QT_COLLIDER_LIBS}) + endif() diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-07-2cded7579d097de45a9a1e4c6ca8a87f3fd03e63 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-07-2cded7579d097de45a9a1e4c6ca8a87f3fd03e63 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-07-2cded7579d097de45a9a1e4c6ca8a87f3fd03e63 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-07-2cded7579d097de45a9a1e4c6ca8a87f3fd03e63 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,36 @@ +commit 2cded7579d097de45a9a1e4c6ca8a87f3fd03e63 +Author: Nathan Ho +Date: Sun Jun 2 01:43:41 2019 -0700 + + sclang: Make sure WebView headers appear in QT_COLLIDER_SRCS unconditionally + +diff --git a/QtCollider/CMakeLists.txt b/QtCollider/CMakeLists.txt +index e4ca98780..f409979fe 100644 +--- a/QtCollider/CMakeLists.txt ++++ b/QtCollider/CMakeLists.txt +@@ -144,11 +144,13 @@ if(QT_COLLIDER_LANG_CLIENT) + list(APPEND QT_COLLIDER_SRCS ${QT_COLLIDER_DIR}/LanguageClient.cpp) + endif() + ++set(QT_COLLIDER_WEBENGINE_HDRS ++ ${QT_COLLIDER_DIR}/widgets/QcWebView.h ++ ${QT_COLLIDER_DIR}/widgets/web_page.hpp ++) ++ + if(SC_USE_WEBENGINE) +- list(APPEND QT_COLLIDER_HDRS +- ${QT_COLLIDER_DIR}/widgets/QcWebView.h +- ${QT_COLLIDER_DIR}/widgets/web_page.hpp +- ) ++ list(APPEND QT_COLLIDER_HDRS ${QT_COLLIDER_WEBENGINE_HDRS}) + list(APPEND QT_COLLIDER_SRCS + ${QT_COLLIDER_DIR}/widgets/QcWebView.cpp + ${QT_COLLIDER_DIR}/widgets/web_page.cpp +@@ -179,6 +181,7 @@ list( APPEND QT_COLLIDER_SRCS + ${QT_COLLIDER_OBJCPP_SRCS} + ${QT_COLLIDER_MOC_SRCS} + ${QT_COLLIDER_RCC} ++ ${QT_COLLIDER_WEBENGINE_HDRS} + ) + + add_definitions(-DSC_QT -DQT_COLLIDER_EXPORTING -DQT_NO_KEYWORDS) diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-08-48ae2945e02218c0793977f4e90cefc4cd2ac75a supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-08-48ae2945e02218c0793977f4e90cefc4cd2ac75a --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-08-48ae2945e02218c0793977f4e90cefc4cd2ac75a 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-08-48ae2945e02218c0793977f4e90cefc4cd2ac75a 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,136 @@ +commit 48ae2945e02218c0793977f4e90cefc4cd2ac75a +Author: Nathan Ho +Date: Sun Jun 2 01:43:42 2019 -0700 + + cmake: include all C++ files in target even if no objects + +Index: supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/CMakeLists.txt ++++ supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +@@ -125,6 +125,7 @@ set( QT_COLLIDER_SRCS + ${QT_COLLIDER_DIR}/widgets/QcScope.cpp + ${QT_COLLIDER_DIR}/widgets/QcScopeShm.cpp + ${QT_COLLIDER_DIR}/widgets/QcLevelIndicator.cpp ++ ${QT_COLLIDER_DIR}/widgets/QcWebView.cpp + ${QT_COLLIDER_DIR}/widgets/QcWindow.cpp + ${QT_COLLIDER_DIR}/widgets/QcGraph.cpp + ${QT_COLLIDER_DIR}/widgets/QcCanvas.cpp +@@ -133,6 +134,7 @@ set( QT_COLLIDER_SRCS + ${QT_COLLIDER_DIR}/widgets/soundfileview/cachestream.cpp + ${QT_COLLIDER_DIR}/widgets/QcFileDialog.cpp + ${QT_COLLIDER_DIR}/widgets/QcPenPrinter.cpp ++ ${QT_COLLIDER_DIR}/widgets/web_page.cpp + ${QT_COLLIDER_DIR}/layouts/layouts.cpp + ${QT_COLLIDER_DIR}/layouts/stack_layout.cpp + ${QT_COLLIDER_DIR}/style/ProxyStyle.cpp +@@ -151,10 +153,6 @@ set(QT_COLLIDER_WEBENGINE_HDRS + + if(SC_USE_WEBENGINE) + list(APPEND QT_COLLIDER_HDRS ${QT_COLLIDER_WEBENGINE_HDRS}) +- list(APPEND QT_COLLIDER_SRCS +- ${QT_COLLIDER_DIR}/widgets/QcWebView.cpp +- ${QT_COLLIDER_DIR}/widgets/web_page.cpp +- ) + endif() + + ############################################################################### +Index: supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/QcWebView.cpp ++++ supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.cpp +@@ -19,19 +19,21 @@ + * + ************************************************************************/ + +-#include "QcWebView.h" +-#include "../widgets/web_page.hpp" +-#include "../QcWidgetFactory.h" +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#ifdef SC_USE_WEBENGINE ++ ++# include "QcWebView.h" ++# include "../widgets/web_page.hpp" ++# include "../QcWidgetFactory.h" ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include + + QC_DECLARE_QWIDGET_FACTORY(WebView); + +@@ -321,3 +323,5 @@ void WebView::onLinkClicked(const QUrl & + } + + } // namespace QtCollider ++ ++#endif // SC_USE_WEBENGINE +Index: supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/web_page.cpp ++++ supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +@@ -19,10 +19,12 @@ + * + ************************************************************************/ + +-#include "web_page.hpp" ++#ifdef SC_USE_WEBENGINE + +-#include +-#include ++# include "web_page.hpp" ++ ++# include ++# include + + namespace QtCollider { + +@@ -60,3 +62,5 @@ bool WebPage::acceptNavigationRequest(co + } + + } // namespace QtCollider ++ ++#endif // SC_USE_WEBENGINE +Index: supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/CMakeLists.txt ++++ supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +@@ -337,6 +337,10 @@ if(LTO) + APPEND PROPERTY LINK_FLAGS "-flto -flto-report -fwhole-program") + endif() + ++if(SC_USE_WEBENGINE) ++ message(STATUS "IDE: Building with QtWebEngine") ++ target_compile_definitions(SuperCollider PUBLIC SC_USE_WEBENGINE) ++endif() + + # Installation + +Index: supercollider-3.10.0+repack/lang/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/lang/CMakeLists.txt ++++ supercollider-3.10.0+repack/lang/CMakeLists.txt +@@ -183,7 +183,7 @@ if(SC_QT OR SC_IDE) + get_filename_component(QT_BIN_PATH ${QtCore_location} DIRECTORY CACHE) + + if(SC_USE_WEBENGINE) +- message(STATUS "Building with QtWebEngine") ++ message(STATUS "sclang: Building with QtWebEngine") + target_compile_definitions(libsclang PUBLIC SC_USE_WEBENGINE) + endif() + target_link_libraries(libsclang ${QT_COLLIDER_LIBS}) diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-09-a34b19c2ca1fa5641a25b5b962a19e0fa5223452 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-09-a34b19c2ca1fa5641a25b5b962a19e0fa5223452 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-09-a34b19c2ca1fa5641a25b5b962a19e0fa5223452 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-09-a34b19c2ca1fa5641a25b5b962a19e0fa5223452 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,151 @@ +commit a34b19c2ca1fa5641a25b5b962a19e0fa5223452 +Author: Nathan Ho +Date: Sun Jun 2 01:43:43 2019 -0700 + + scide: Don't compile help browser code if SC_USE_WEBENGINE is off + +diff --git a/editors/sc-ide/CMakeLists.txt b/editors/sc-ide/CMakeLists.txt +index 25c39a9f2..77d84e79e 100644 +--- a/editors/sc-ide/CMakeLists.txt ++++ b/editors/sc-ide/CMakeLists.txt +@@ -66,8 +66,6 @@ if(APPLE) + set(AdditionalBundleSources ${ClassLibrary} ${HelpSource} ${BundleResources} ${Examples} ${Sounds} ${Icons}) + endif() + +- +- + set ( ide_moc_hdr + core/main.hpp + core/sig_mux.hpp +@@ -115,8 +113,6 @@ set ( ide_moc_hdr + widgets/util/WebSocketTransport.hpp + widgets/util/WebSocketClientWrapper.hpp + widgets/util/IDEWebChannelWrapper.hpp +- +- ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.hpp + ) + + file (GLOB_RECURSE all_hdr *hpp) +@@ -148,7 +144,6 @@ set ( ide_src + widgets/multi_editor.cpp + widgets/post_window.cpp + widgets/session_switch_dialog.cpp +- widgets/help_browser.cpp + widgets/audio_status_box.cpp + widgets/lang_status_box.cpp + widgets/code_editor/editor.cpp +@@ -172,8 +167,6 @@ set ( ide_src + widgets/util/WebSocketTransport.cpp + widgets/style/style.cpp + +- ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.cpp +- + ${CMAKE_SOURCE_DIR}/common/SC_TextUtils.cpp + ${CMAKE_SOURCE_DIR}/common/SC_Filesystem_macos.cpp + ${CMAKE_SOURCE_DIR}/common/SC_Filesystem_win.cpp +@@ -188,6 +181,20 @@ set ( ide_src + ${CMAKE_SOURCE_DIR}/SCDoc/lex.scdoc.cpp + ) + ++set(ide_webengine_moc_hdrs ++ widgets/help_browser.hpp ++ ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.hpp ++) ++set(ide_webengine_src ++ widgets/help_browser.cpp ++ ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.cpp ++) ++ ++if(SC_USE_WEBENGINE) ++ list(APPEND ide_moc_hdr ${ide_webengine_moc_hdrs}) ++ list(APPEND ide_src ${ide_webengine_src}) ++endif() ++ + set( ide_forms + forms/settings_dialog.ui + forms/settings_general.ui +diff --git a/editors/sc-ide/widgets/help_browser.cpp b/editors/sc-ide/widgets/help_browser.cpp +index 089c0deed..5a9dd44f0 100644 +--- a/editors/sc-ide/widgets/help_browser.cpp ++++ b/editors/sc-ide/widgets/help_browser.cpp +@@ -18,32 +18,34 @@ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +-#define QT_NO_DEBUG_OUTPUT +- +-#include "help_browser.hpp" +-#include "main_window.hpp" +-#include "../core/sc_process.hpp" +-#include "../core/main.hpp" +-#include "../core/util/overriding_action.hpp" +-#include "QtCollider/widgets/web_page.hpp" +-#include "QtCollider/hacks/hacks_qt.hpp" +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#ifdef Q_OS_MAC +-# include // QStyleFactory::create, see below +-#endif ++#ifdef SC_USE_WEBENGINE ++ ++# define QT_NO_DEBUG_OUTPUT ++ ++# include "help_browser.hpp" ++# include "main_window.hpp" ++# include "../core/sc_process.hpp" ++# include "../core/main.hpp" ++# include "../core/util/overriding_action.hpp" ++# include "QtCollider/widgets/web_page.hpp" ++# include "QtCollider/hacks/hacks_qt.hpp" ++ ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++ ++# ifdef Q_OS_MAC ++# include // QStyleFactory::create, see below ++# endif + + namespace ScIDE { + +@@ -70,11 +72,11 @@ HelpBrowser::HelpBrowser(QWidget* parent): QWidget(parent) { + // get in the way of rendering web pages + mWebView->setPalette(style()->standardPalette()); + +-#ifdef Q_OS_MAC ++# ifdef Q_OS_MAC + // On macOS, checkboxes unwantedly appear in the top left-hand corner. + // See QTBUG-43366, 43070, and 42948. The workaround is to set style to fusion. + mWebView->setStyle(QStyleFactory::create("Fusion")); +-#endif ++# endif + + mWebView->installEventFilter(this); + +@@ -475,3 +477,5 @@ HelpBrowserDocklet::HelpBrowserDocklet(QWidget* parent): Docklet(tr("Help browse + } + + } // namespace ScIDE ++ ++#endif // SC_USE_WEBENGINE diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-10-b2c5f95b842aa0d602723a95983841615b0e4bc1 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-10-b2c5f95b842aa0d602723a95983841615b0e4bc1 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-10-b2c5f95b842aa0d602723a95983841615b0e4bc1 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-10-b2c5f95b842aa0d602723a95983841615b0e4bc1 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,289 @@ +commit b2c5f95b842aa0d602723a95983841615b0e4bc1 +Author: Nathan Ho +Date: Sun Jun 2 01:43:44 2019 -0700 + + scide: Fix build with SC_USE_WEBENGINE + +Index: supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/CMakeLists.txt ++++ supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +@@ -88,7 +88,6 @@ set ( ide_moc_hdr + widgets/session_switch_dialog.hpp + widgets/sessions_dialog.hpp + widgets/tool_box.hpp +- widgets/help_browser.hpp + widgets/audio_status_box.hpp + widgets/lang_status_box.hpp + widgets/code_editor/editor.hpp +@@ -110,9 +109,6 @@ set ( ide_moc_hdr + widgets/util/color_widget.hpp + widgets/util/docklet.hpp + widgets/util/volume_widget.hpp +- widgets/util/WebSocketTransport.hpp +- widgets/util/WebSocketClientWrapper.hpp +- widgets/util/IDEWebChannelWrapper.hpp + ) + + file (GLOB_RECURSE all_hdr *hpp) +@@ -164,7 +160,6 @@ set ( ide_src + widgets/util/docklet.cpp + widgets/util/volume_widget.cpp + widgets/util/status_box.cpp +- widgets/util/WebSocketTransport.cpp + widgets/style/style.cpp + + ${CMAKE_SOURCE_DIR}/common/SC_TextUtils.cpp +@@ -183,10 +178,14 @@ set ( ide_src + + set(ide_webengine_moc_hdrs + widgets/help_browser.hpp ++ widgets/util/WebSocketTransport.hpp ++ widgets/util/WebSocketClientWrapper.hpp ++ widgets/util/IDEWebChannelWrapper.hpp + ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.hpp + ) + set(ide_webengine_src + widgets/help_browser.cpp ++ widgets/util/WebSocketTransport.cpp + ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.cpp + ) + +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/core/main.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +@@ -131,6 +131,7 @@ int main(int argc, char* argv[]) { + if (startInterpreter) + main->scProcess()->startLanguage(); + ++#ifdef SC_USE_WEBENGINE + // setup HelpBrowser server + QWebSocketServer server("SCIDE HelpBrowser Server", QWebSocketServer::NonSecureMode); + if (!server.listen(QHostAddress::LocalHost, 12344)) { +@@ -146,6 +147,7 @@ int main(int argc, char* argv[]) { + // publish IDE interface + IDEWebChannelWrapper ideWrapper { win->helpBrowserDocklet()->browser() }; + channel.registerObject("IDE", &ideWrapper); ++#endif // SC_USE_WEBENGINE + + return app.exec(); + } +@@ -294,6 +296,7 @@ bool Main::nativeEventFilter(const QByte + } + + bool Main::openDocumentation(const QString& string) { ++#ifdef SC_USE_WEBENGINE + QString symbol = string.trimmed(); + if (symbol.isEmpty()) + return false; +@@ -302,13 +305,20 @@ bool Main::openDocumentation(const QStri + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); + return true; ++#else // SC_USE_WEBENGINE ++ return false; ++#endif // SC_USE_WEBENGINE + } + + bool Main::openDocumentationForMethod(const QString& className, const QString& methodName) { ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpForMethod(className, methodName); + helpDock->focus(); + return true; ++#else // SC_USE_WEBENGINE ++ return false; ++#endif // SC_USE_WEBENGINE + } + + void Main::openDefinition(const QString& string, QWidget* parent) { +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/autocompleter.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +@@ -1213,9 +1213,11 @@ void AutoCompleter::parseClassNode(DocNo + } + + void AutoCompleter::gotoHelp(QString symbol) { ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); ++#endif // SC_USE_WEBENGINE + } + + } // namespace ScIDE +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/sc_editor.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +@@ -1317,11 +1317,13 @@ void ScCodeEditor::evaluateLine() + { + QString text; + ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* help = MainWindow::instance()->helpBrowserDocklet(); + if (help && help->browser()->helpBrowserHasFocus()) { + help->browser()->evaluateSelection(false); + return; // early return + } ++#endif // SC_USE_WEBENGINE + + // Try current selection + QTextCursor cursor = textCursor(); +@@ -1356,11 +1358,13 @@ void ScCodeEditor::evaluateRegion() + { + QString text; + ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* help = MainWindow::instance()->helpBrowserDocklet(); + if (help && help->browser()->helpBrowserHasFocus()) { + help->browser()->evaluateSelection(true); + return; // early return + } ++#endif // SC_USE_WEBENGINE + + // Try current selection + QTextCursor cursor = textCursor(); +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +@@ -134,10 +134,12 @@ MainWindow::MainWindow(Main* main): mMai + addDockWidget(Qt::LeftDockWidgetArea, mDocumentsDocklet->dockWidget()); + mDocumentsDocklet->hide(); + ++#ifdef SC_USE_WEBENGINE + mHelpBrowserDocklet = new HelpBrowserDocklet(this); + mHelpBrowserDocklet->setObjectName("help-dock"); + addDockWidget(Qt::RightDockWidgetArea, mHelpBrowserDocklet->dockWidget()); + // mHelpBrowserDockable->hide(); ++#endif // SC_USE_WEBENGINE + + mPostDocklet = new PostDocklet(this); + mPostDocklet->setObjectName("post-dock"); +@@ -455,10 +457,12 @@ void MainWindow::createActions() { + action->setStatusTip(tr("Show/hide Documents docklet")); + settings->addAction(mDocumentsDocklet->toggleViewAction(), "ide-docklet-documents", ideCategory); + ++#ifdef SC_USE_WEBENGINE + action = mHelpBrowserDocklet->toggleViewAction(); + action->setIcon(QIcon::fromTheme("system-help")); + action->setStatusTip(tr("Show/hide Help browser docklet")); + settings->addAction(mHelpBrowserDocklet->toggleViewAction(), "ide-docklet-help", ideCategory); ++#endif // SC_USE_WEBENGINE + + // In Mac OS, all menu item shortcuts need a modifier, so add the action with + // the "Escape" default shortcut to the main window widget. +@@ -475,12 +479,14 @@ void MainWindow::createActions() { + mPostDocklet->widget()->addAction(mActions[LookupReferences]); + mPostDocklet->widget()->addAction(mActions[LookupReferencesForCursor]); + ++#ifdef SC_USE_WEBENGINE + mHelpBrowserDocklet->widget()->addAction(mActions[LookupDocumentation]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupDocumentationForCursor]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupImplementation]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupImplementationForCursor]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferences]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferencesForCursor]); ++#endif // SC_USE_WEBENGINE + } + + void MainWindow::createMenus() { +@@ -558,7 +564,9 @@ void MainWindow::createMenus() { + submenu = new QMenu(tr("&Docklets"), this); + submenu->addAction(mPostDocklet->toggleViewAction()); + submenu->addAction(mDocumentsDocklet->toggleViewAction()); ++#ifdef SC_USE_WEBENGINE + submenu->addAction(mHelpBrowserDocklet->toggleViewAction()); ++#endif // SC_USE_WEBENGINE + menu->addMenu(submenu); + menu->addSeparator(); + submenu = menu->addMenu(tr("&Tool Panels")); +@@ -635,10 +643,12 @@ void MainWindow::createMenus() { + menu = new QMenu(tr("&Help"), this); + menu->addAction(mActions[HelpAboutIDE]); + menu->addAction(mActions[ReportABug]); ++#ifdef SC_USE_WEBENGINE + menu->addSeparator(); + menu->addAction(mActions[Help]); + menu->addAction(mActions[LookupDocumentationForCursor]); + menu->addAction(mActions[LookupDocumentation]); ++#endif // SC_USE_WEBENGINE + menu->addSeparator(); + menu->addAction(mActions[ShowAbout]); + menu->addAction(mActions[ShowAboutQT]); +@@ -654,7 +664,9 @@ template void MainWindow::save + QVariantMap detachedData; + saveDetachedState(mPostDocklet, detachedData); + saveDetachedState(mDocumentsDocklet, detachedData); ++#ifdef SC_USE_WEBENGINE + saveDetachedState(mHelpBrowserDocklet, detachedData); ++#endif // SC_USE_WEBENGINE + + settings->beginGroup("mainWindow"); + settings->setValue("geometry", this->saveGeometry().toBase64()); +@@ -697,7 +709,9 @@ template void MainWindow::rest + + restoreDetachedState(mPostDocklet, detachedData); + restoreDetachedState(mDocumentsDocklet, detachedData); ++#ifdef SC_USE_WEBENGINE + restoreDetachedState(mHelpBrowserDocklet, detachedData); ++#endif // SC_USE_WEBENGINE + + qDebug("restoring state"); + +@@ -1287,7 +1301,9 @@ void MainWindow::applySettings(Settings: + applyCursorBlinkingSettings(settings); + + mPostDocklet->mPostWindow->applySettings(settings); ++#ifdef SC_USE_WEBENGINE + mHelpBrowserDocklet->browser()->applySettings(settings); ++#endif // SC_USE_WEBENGINE + mCmdLine->applySettings(settings); + } + +@@ -1446,14 +1462,18 @@ void MainWindow::lookupDocumentationForC + } + + void MainWindow::openHelp() { ++#ifdef SC_USE_WEBENGINE + if (mHelpBrowserDocklet->browser()->url().isEmpty()) + mHelpBrowserDocklet->browser()->goHome(); + mHelpBrowserDocklet->focus(); ++#endif // SC_USE_WEBENGINE + } + + void MainWindow::openHelpAboutIDE() { ++#ifdef SC_USE_WEBENGINE + mHelpBrowserDocklet->browser()->gotoHelpFor("Guides/SCIde"); + mHelpBrowserDocklet->focus(); ++#endif // SC_USE_WEBENGINE + } + + void MainWindow::doBugReport() { +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.hpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +@@ -120,7 +120,9 @@ public: + void focusCodeEditor(); + bool promptSaveDocs(); + ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* helpBrowserDocklet() { return mHelpBrowserDocklet; } ++#endif + PostDocklet* postDocklet() { return mPostDocklet; } + + static MainWindow* instance() { return mInstance; } +@@ -237,7 +239,9 @@ private: + // Docks + PostDocklet* mPostDocklet; + DocumentsDocklet* mDocumentsDocklet; ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* mHelpBrowserDocklet; ++#endif + + QSignalMapper mCodeEvalMapper; + DocumentsDialog* mDocDialog; diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-11-6c83b58ee7a5c621bb71c481fadccf103f63b9c0 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-11-6c83b58ee7a5c621bb71c481fadccf103f63b9c0 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-11-6c83b58ee7a5c621bb71c481fadccf103f63b9c0 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-11-6c83b58ee7a5c621bb71c481fadccf103f63b9c0 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,239 @@ +commit 6c83b58ee7a5c621bb71c481fadccf103f63b9c0 +Author: Nathan Ho +Date: Sun Jun 2 01:43:47 2019 -0700 + + scide: Remove some Qt components if SC_USE_WEBENGINE is off + +Index: supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/CMakeLists.txt ++++ supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +@@ -2,9 +2,7 @@ + SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + +-find_package( +- Qt5 ${REQUIRED_QT_VERSION} +- COMPONENTS ++set(QT_IDE_COMPONENTS + Concurrent + Core + LinguistTools +@@ -13,12 +11,7 @@ find_package( + Qml + Quick + Sql +- WebChannel +- WebEngine +- WebEngineWidgets +- WebSockets + Widgets +- REQUIRED + ) + + set(QT_IDE_LIBRARIES +@@ -29,9 +22,27 @@ set(QT_IDE_LIBRARIES + Qt5::Qml + Qt5::Quick + Qt5::Sql +- Qt5::WebChannel +- Qt5::WebEngineWidgets +- Qt5::WebSockets ++) ++ ++if(SC_USE_WEBENGINE) ++ list(APPEND QT_IDE_COMPONENTS ++ WebChannel ++ WebEngine ++ WebEngineWidgets ++ WebSockets ++ ) ++ list(APPEND QT_IDE_LIBRARIES ++ Qt5::WebChannel ++ Qt5::WebEngineWidgets ++ Qt5::WebSockets ++ ) ++endif() ++ ++find_package( ++ Qt5 ${REQUIRED_QT_VERSION} ++ COMPONENTS ++ ${QT_IDE_COMPONENTS} ++ REQUIRED + ) + + if(${CMAKE_COMPILER_IS_GNUCXX}) +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/core/main.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +@@ -23,13 +23,9 @@ + #include "session_manager.hpp" + #include "util/standard_dirs.hpp" + #include "../widgets/main_window.hpp" +-#include "../widgets/help_browser.hpp" + #include "../widgets/lookup_dialog.hpp" + #include "../widgets/code_editor/highlighter.hpp" + #include "../widgets/style/style.hpp" +-#include "../widgets/util/WebSocketClientWrapper.hpp" +-#include "../widgets/util/WebSocketTransport.hpp" +-#include "../widgets/util/IDEWebChannelWrapper.hpp" + #include "../../../QtCollider/hacks/hacks_mac.hpp" + #include "../primitives/localsocket_utils.hpp" + +@@ -45,9 +41,15 @@ + #include + #include + #include +-#include + #include + ++#ifdef SC_USE_WEBENGINE ++# include ++# include "../widgets/util/WebSocketClientWrapper.hpp" ++# include "../widgets/util/WebSocketTransport.hpp" ++# include "../widgets/util/IDEWebChannelWrapper.hpp" ++#endif // SC_USE_WEBENGINE ++ + using namespace ScIDE; + + int main( int argc, char *argv[] ) +Index: supercollider-3.10.0+repack/editors/sc-ide/core/sc_process.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/core/sc_process.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/core/sc_process.cpp +@@ -35,8 +35,6 @@ + #include "util/standard_dirs.hpp" + #include "../primitives/localsocket_utils.hpp" + +-#include "../widgets/help_browser.hpp" +- + #include + #include + +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/autocompleter.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +@@ -28,7 +28,10 @@ + #include "../../core/main.hpp" + #include "../../core/util/standard_dirs.hpp" + #include "../main_window.hpp" +-#include "../help_browser.hpp" ++ ++#ifdef SC_USE_WEBENGINE ++# include "../help_browser.hpp" ++#endif // SC_USE_WEBENGINE + + #include + #include +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/sc_editor.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +@@ -22,20 +22,22 @@ + #include "autocompleter.hpp" + #include "line_indicator.hpp" + #include "main_window.hpp" +-#include "help_browser.hpp" + #include "../util/gui_utilities.hpp" + #include "../../core/main.hpp" + #include "../../core/doc_manager.hpp" + #include "../../core/settings/manager.hpp" + #include "../../core/settings/theme.hpp" + ++#ifdef SC_USE_WEBENGINE ++# include "help_browser.hpp" ++#endif // SC_USE_WEBENGINE ++ + #include "QtCollider/hacks/hacks_qt.hpp" + + #include + #include + #include + #include +-#include + + namespace ScIDE { + +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +@@ -30,7 +30,6 @@ + #include "multi_editor.hpp" + #include "popup_text_input.hpp" + #include "post_window.hpp" +-#include "help_browser.hpp" + #include "session_switch_dialog.hpp" + #include "sessions_dialog.hpp" + #include "tool_box.hpp" +@@ -44,6 +43,10 @@ + #include "code_editor/sc_editor.hpp" + #include "settings/dialog.hpp" + ++#ifdef SC_USE_WEBENGINE ++# include "help_browser.hpp" ++#endif // SC_USE_WEBENGINE ++ + #include "QtCollider/hacks/hacks_qt.hpp" + + #include "SC_Version.hpp" +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/style/style.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +@@ -32,7 +32,10 @@ + #include + #include + #include +-#include ++ ++#ifdef SC_USE_WEBENGINE ++# include ++#endif // SC_USE_WEBENGINE + + namespace ScIDE { + +@@ -71,6 +74,7 @@ void Style::drawComplexControl(ComplexCo + } + + switch (control) { ++#ifdef SC_USE_WEBENGINE + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). + case QStyle::CC_ScrollBar: { + if (qobject_cast(widget) != 0 && option->type == QStyleOption::SO_Slider) { +@@ -83,6 +87,7 @@ void Style::drawComplexControl(ComplexCo + return; + } + } ++#endif // SC_USE_WEBENGINE + case QStyle::CC_ToolButton: { + // TODO: We only draw either text, or icon, or arrow + +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/util/WebSocketTransport.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/util/WebSocketTransport.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/util/WebSocketTransport.cpp +@@ -48,10 +48,12 @@ + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +-#include "WebSocketTransport.hpp" ++#ifdef SC_USE_WEBENGINE + +-#include +-#include ++# include "WebSocketTransport.hpp" ++ ++# include ++# include + + namespace ScIDE { + +@@ -85,3 +87,5 @@ void WebSocketTransport::textMessageRece + } + + } // namespace ScIDE ++ ++#endif // SC_USE_WEBENGINE diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-12-7c3305d45cba46096c01ea9f7e8232436c1d3271 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-12-7c3305d45cba46096c01ea9f7e8232436c1d3271 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-12-7c3305d45cba46096c01ea9f7e8232436c1d3271 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-12-7c3305d45cba46096c01ea9f7e8232436c1d3271 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,608 @@ +commit 7c3305d45cba46096c01ea9f7e8232436c1d3271 +Author: Nathan Ho +Date: Sat Jun 8 15:19:17 2019 -0700 + + Change SC_USE_WEBENGINE to SC_USE_QTWEBENGINE + +Index: supercollider-3.10.0+repack/HelpSource/Classes/HelpBrowser.schelp +=================================================================== +--- supercollider-3.10.0+repack.orig/HelpSource/Classes/HelpBrowser.schelp ++++ supercollider-3.10.0+repack/HelpSource/Classes/HelpBrowser.schelp +@@ -9,7 +9,7 @@ HelpBrowser is the GUI help browser that + + Note that this is not the same as the help browser built into the IDE. + +-Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_QTWEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. + + classmethods:: + private:: getOldWrapUrl, initClass +Index: supercollider-3.10.0+repack/HelpSource/Classes/WebView.schelp +=================================================================== +--- supercollider-3.10.0+repack.orig/HelpSource/Classes/WebView.schelp ++++ supercollider-3.10.0+repack/HelpSource/Classes/WebView.schelp +@@ -6,7 +6,7 @@ DESCRIPTION:: + + WebView displays web pages and provides all the standard browsing functionality. + +-Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_QTWEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. + + CLASSMETHODS:: + +Index: supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/CMakeLists.txt ++++ supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +@@ -1,5 +1,5 @@ + set(REQUIRED_QT_VERSION 5.7) +-option(SC_USE_WEBENGINE "Build with Qt WebEngine." ON) ++option(SC_USE_QTWEBENGINE "Build with Qt WebEngine." ON) + + ############################################################################### + # Components and libraries +@@ -22,7 +22,7 @@ set (QT_COLLIDER_LIBS + Qt5::Quick Qt5::Qml Qt5::Sql Qt5::OpenGL Qt5::Svg + ${MATH_LIBRARY}) + +-if(SC_USE_WEBENGINE) ++if(SC_USE_QTWEBENGINE) + list(APPEND QT_COMPONENTS WebEngine WebEngineCore WebEngineWidgets) + list(APPEND QT_COLLIDER_LIBS Qt5::WebEngineCore Qt5::WebEngineWidgets) + endif() +@@ -151,7 +151,7 @@ set(QT_COLLIDER_WEBENGINE_HDRS + ${QT_COLLIDER_DIR}/widgets/web_page.hpp + ) + +-if(SC_USE_WEBENGINE) ++if(SC_USE_QTWEBENGINE) + list(APPEND QT_COLLIDER_HDRS ${QT_COLLIDER_WEBENGINE_HDRS}) + endif() + +Index: supercollider-3.10.0+repack/QtCollider/factories.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/factories.cpp ++++ supercollider-3.10.0+repack/QtCollider/factories.cpp +@@ -66,7 +66,7 @@ static void doLoadFactories() { + QC_ADD_FACTORY(QcGridLayout); + QC_ADD_FACTORY(QcStackLayout); + QC_ADD_FACTORY(QtDownload); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + QC_ADD_FACTORY(WebView); + #endif + #ifdef __APPLE__ +Index: supercollider-3.10.0+repack/QtCollider/interface.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/interface.cpp ++++ supercollider-3.10.0+repack/QtCollider/interface.cpp +@@ -30,7 +30,7 @@ + #include + #include + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include + #endif + +@@ -82,7 +82,7 @@ void QtCollider::init() { + + gSystemPalette = qcApp->palette(); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + // Enable javascript localStorage for WebViews + QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); + #endif +Index: supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/style/ProxyStyle.cpp ++++ supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +@@ -6,7 +6,7 @@ + #include + #include + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include + #endif + +@@ -33,7 +33,7 @@ static bool AlwaysShowScrollbars() { + + void ProxyStyle::drawComplexControl(ComplexControl ctrl, const QStyleOptionComplex* opt, QPainter* p, + const QWidget* w) const { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). + if (ctrl == QStyle::CC_ScrollBar && qobject_cast(w) != 0 + && opt->type == QStyleOption::SO_Slider) { +@@ -45,7 +45,7 @@ void ProxyStyle::drawComplexControl(Comp + QProxyStyle::drawComplexControl(ctrl, &opt2, p, w); + return; + } +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + if (ctrl == QStyle::CC_ScrollBar && AlwaysShowScrollbars()) { + const QStyleOptionSlider* optSlider = static_cast(opt); +Index: supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/QcWebView.cpp ++++ supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.cpp +@@ -19,7 +19,7 @@ + * + ************************************************************************/ + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + + # include "QcWebView.h" + # include "../widgets/web_page.hpp" +@@ -324,4 +324,4 @@ void WebView::onLinkClicked(const QUrl & + + } // namespace QtCollider + +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE +Index: supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/web_page.cpp ++++ supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +@@ -19,7 +19,7 @@ + * + ************************************************************************/ + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + + # include "web_page.hpp" + +@@ -63,4 +63,4 @@ bool WebPage::acceptNavigationRequest(co + + } // namespace QtCollider + +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE +Index: supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/CMakeLists.txt ++++ supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +@@ -24,7 +24,7 @@ set(QT_IDE_LIBRARIES + Qt5::Sql + ) + +-if(SC_USE_WEBENGINE) ++if(SC_USE_QTWEBENGINE) + list(APPEND QT_IDE_COMPONENTS + WebChannel + WebEngine +@@ -200,7 +200,7 @@ set(ide_webengine_src + ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.cpp + ) + +-if(SC_USE_WEBENGINE) ++if(SC_USE_QTWEBENGINE) + list(APPEND ide_moc_hdr ${ide_webengine_moc_hdrs}) + list(APPEND ide_src ${ide_webengine_src}) + endif() +@@ -354,9 +354,9 @@ if(LTO) + APPEND PROPERTY LINK_FLAGS "-flto -flto-report -fwhole-program") + endif() + +-if(SC_USE_WEBENGINE) ++if(SC_USE_QTWEBENGINE) + message(STATUS "IDE: Building with QtWebEngine") +- target_compile_definitions(SuperCollider PUBLIC SC_USE_WEBENGINE) ++ target_compile_definitions(SuperCollider PUBLIC SC_USE_QTWEBENGINE) + endif() + + # Installation +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/core/main.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +@@ -43,12 +43,12 @@ + #include + #include + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include + # include "../widgets/util/WebSocketClientWrapper.hpp" + # include "../widgets/util/WebSocketTransport.hpp" + # include "../widgets/util/IDEWebChannelWrapper.hpp" +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + using namespace ScIDE; + +@@ -137,7 +137,7 @@ int main( int argc, char *argv[] ) + if (startInterpreter) + main->scProcess()->startLanguage(); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + // setup HelpBrowser server + QWebSocketServer server("SCIDE HelpBrowser Server", QWebSocketServer::NonSecureMode); + if (!server.listen(QHostAddress::LocalHost, 12344)) { +@@ -153,7 +153,7 @@ int main( int argc, char *argv[] ) + // publish IDE interface + IDEWebChannelWrapper ideWrapper { win->helpBrowserDocklet()->browser() }; + channel.registerObject("IDE", &ideWrapper); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + return app.exec(); + } +@@ -314,7 +314,7 @@ bool Main::nativeEventFilter(const QByte + } + + bool Main::openDocumentation(const QString& string) { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + QString symbol = string.trimmed(); + if (symbol.isEmpty()) + return false; +@@ -323,20 +323,20 @@ bool Main::openDocumentation(const QStri + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); + return true; +-#else // SC_USE_WEBENGINE ++#else // SC_USE_QTWEBENGINE + return false; +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + bool Main::openDocumentationForMethod(const QString& className, const QString& methodName) { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpForMethod(className, methodName); + helpDock->focus(); + return true; +-#else // SC_USE_WEBENGINE ++#else // SC_USE_QTWEBENGINE + return false; +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + void Main::openDefinition(const QString& string, QWidget* parent) { +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/autocompleter.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +@@ -29,9 +29,9 @@ + #include "../../core/util/standard_dirs.hpp" + #include "../main_window.hpp" + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include "../help_browser.hpp" +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + #include + #include +@@ -1310,11 +1310,11 @@ void AutoCompleter::parseClassNode(DocNo + } + + void AutoCompleter::gotoHelp(QString symbol) { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + } // namespace ScIDE +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/sc_editor.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +@@ -28,9 +28,9 @@ + #include "../../core/settings/manager.hpp" + #include "../../core/settings/theme.hpp" + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include "help_browser.hpp" +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + #include "QtCollider/hacks/hacks_qt.hpp" + +@@ -1319,13 +1319,13 @@ void ScCodeEditor::evaluateLine() + { + QString text; + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* help = MainWindow::instance()->helpBrowserDocklet(); + if (help && help->browser()->helpBrowserHasFocus()) { + help->browser()->evaluateSelection(false); + return; // early return + } +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + // Try current selection + QTextCursor cursor = textCursor(); +@@ -1360,13 +1360,13 @@ void ScCodeEditor::evaluateRegion() + { + QString text; + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* help = MainWindow::instance()->helpBrowserDocklet(); + if (help && help->browser()->helpBrowserHasFocus()) { + help->browser()->evaluateSelection(true); + return; // early return + } +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + // Try current selection + QTextCursor cursor = textCursor(); +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/help_browser.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp +@@ -18,7 +18,7 @@ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + + # define QT_NO_DEBUG_OUTPUT + +@@ -527,4 +527,4 @@ HelpBrowserDocklet::HelpBrowserDocklet( + + } // namespace ScIDE + +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +@@ -43,9 +43,9 @@ + #include "code_editor/sc_editor.hpp" + #include "settings/dialog.hpp" + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include "help_browser.hpp" +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + #include "QtCollider/hacks/hacks_qt.hpp" + +@@ -146,12 +146,12 @@ MainWindow::MainWindow(Main * main) : + addDockWidget(Qt::LeftDockWidgetArea, mDocumentsDocklet->dockWidget()); + mDocumentsDocklet->hide(); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + mHelpBrowserDocklet = new HelpBrowserDocklet(this); + mHelpBrowserDocklet->setObjectName("help-dock"); + addDockWidget(Qt::RightDockWidgetArea, mHelpBrowserDocklet->dockWidget()); + // mHelpBrowserDockable->hide(); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + mPostDocklet = new PostDocklet(this); + mPostDocklet->setObjectName("post-dock"); +@@ -486,12 +486,12 @@ void MainWindow::createActions() + action->setStatusTip(tr("Show/hide Documents docklet")); + settings->addAction(mDocumentsDocklet->toggleViewAction(), "ide-docklet-documents", ideCategory); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + action = mHelpBrowserDocklet->toggleViewAction(); + action->setIcon(QIcon::fromTheme("system-help")); + action->setStatusTip(tr("Show/hide Help browser docklet")); + settings->addAction(mHelpBrowserDocklet->toggleViewAction(), "ide-docklet-help", ideCategory); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + // In Mac OS, all menu item shortcuts need a modifier, so add the action with + // the "Escape" default shortcut to the main window widget. +@@ -508,14 +508,14 @@ void MainWindow::createActions() + mPostDocklet->widget()->addAction(mActions[LookupReferences]); + mPostDocklet->widget()->addAction(mActions[LookupReferencesForCursor]); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + mHelpBrowserDocklet->widget()->addAction(mActions[LookupDocumentation]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupDocumentationForCursor]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupImplementation]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupImplementationForCursor]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferences]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferencesForCursor]); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + void MainWindow::createMenus() { +@@ -593,9 +593,9 @@ void MainWindow::createMenus() { + submenu = new QMenu(tr("&Docklets"), this); + submenu->addAction(mPostDocklet->toggleViewAction()); + submenu->addAction(mDocumentsDocklet->toggleViewAction()); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + submenu->addAction(mHelpBrowserDocklet->toggleViewAction()); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + menu->addMenu(submenu); + menu->addSeparator(); + submenu = menu->addMenu(tr("&Tool Panels")); +@@ -672,12 +672,12 @@ void MainWindow::createMenus() { + menu = new QMenu(tr("&Help"), this); + menu->addAction(mActions[HelpAboutIDE]); + menu->addAction(mActions[ReportABug]); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + menu->addSeparator(); + menu->addAction(mActions[Help]); + menu->addAction(mActions[LookupDocumentationForCursor]); + menu->addAction(mActions[LookupDocumentation]); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + menu->addSeparator(); + menu->addAction(mActions[ShowAbout]); + menu->addAction(mActions[ShowAboutQT]); +@@ -693,9 +693,9 @@ template void MainWindow::save + QVariantMap detachedData; + saveDetachedState(mPostDocklet, detachedData); + saveDetachedState(mDocumentsDocklet, detachedData); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + saveDetachedState(mHelpBrowserDocklet, detachedData); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + settings->beginGroup("mainWindow"); + settings->setValue("geometry", this->saveGeometry().toBase64()); +@@ -742,9 +742,9 @@ void MainWindow::restoreWindowState( T * + + restoreDetachedState(mPostDocklet, detachedData); + restoreDetachedState(mDocumentsDocklet, detachedData); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + restoreDetachedState(mHelpBrowserDocklet, detachedData); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + qDebug("restoring state"); + +@@ -1397,9 +1397,9 @@ void MainWindow::applySettings(Settings: + applyCursorBlinkingSettings(settings); + + mPostDocklet->mPostWindow->applySettings(settings); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + mHelpBrowserDocklet->browser()->applySettings(settings); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + mCmdLine->applySettings(settings); + } + +@@ -1575,18 +1575,18 @@ void MainWindow::lookupDocumentationForC + } + + void MainWindow::openHelp() { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + if (mHelpBrowserDocklet->browser()->url().isEmpty()) + mHelpBrowserDocklet->browser()->goHome(); + mHelpBrowserDocklet->focus(); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + void MainWindow::openHelpAboutIDE() { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + mHelpBrowserDocklet->browser()->gotoHelpFor("Guides/SCIde"); + mHelpBrowserDocklet->focus(); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + void MainWindow::doBugReport() { +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.hpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +@@ -120,7 +120,7 @@ public: + void focusCodeEditor(); + bool promptSaveDocs(); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* helpBrowserDocklet() { return mHelpBrowserDocklet; } + #endif + PostDocklet* postDocklet() { return mPostDocklet; } +@@ -239,7 +239,7 @@ private: + // Docks + PostDocklet* mPostDocklet; + DocumentsDocklet* mDocumentsDocklet; +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* mHelpBrowserDocklet; + #endif + +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/style/style.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +@@ -33,9 +33,9 @@ + #include + #include + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + namespace ScIDE { + +@@ -74,7 +74,7 @@ void Style::drawComplexControl(ComplexCo + } + + switch (control) { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). + case QStyle::CC_ScrollBar: { + if (qobject_cast(widget) != 0 && option->type == QStyleOption::SO_Slider) { +@@ -87,7 +87,7 @@ void Style::drawComplexControl(ComplexCo + return; + } + } +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + case QStyle::CC_ToolButton: { + // TODO: We only draw either text, or icon, or arrow + +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/util/WebSocketTransport.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/util/WebSocketTransport.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/util/WebSocketTransport.cpp +@@ -48,7 +48,7 @@ + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + + # include "WebSocketTransport.hpp" + +@@ -88,4 +88,4 @@ void WebSocketTransport::textMessageRece + + } // namespace ScIDE + +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE +Index: supercollider-3.10.0+repack/lang/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/lang/CMakeLists.txt ++++ supercollider-3.10.0+repack/lang/CMakeLists.txt +@@ -182,9 +182,9 @@ if(SC_QT OR SC_IDE) + message(STATUS "Found Qt: " ${QtCore_location} ) + get_filename_component(QT_BIN_PATH ${QtCore_location} DIRECTORY CACHE) + +- if(SC_USE_WEBENGINE) ++ if(SC_USE_QTWEBENGINE) + message(STATUS "sclang: Building with QtWebEngine") +- target_compile_definitions(libsclang PUBLIC SC_USE_WEBENGINE) ++ target_compile_definitions(libsclang PUBLIC SC_USE_QTWEBENGINE) + endif() + target_link_libraries(libsclang ${QT_COLLIDER_LIBS}) + endif() diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-13-766c44173c83ec5b4eb4a4cc202e78bf35917724 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-13-766c44173c83ec5b4eb4a4cc202e78bf35917724 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-13-766c44173c83ec5b4eb4a4cc202e78bf35917724 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-13-766c44173c83ec5b4eb4a4cc202e78bf35917724 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,23 @@ +commit 766c44173c83ec5b4eb4a4cc202e78bf35917724 +Author: Nathan Ho +Date: Sat Jun 8 15:55:47 2019 -0700 + + scide: Remove IDE help menu item when SC_USE_QTWEBENGINE is off + +diff --git a/editors/sc-ide/widgets/main_window.cpp b/editors/sc-ide/widgets/main_window.cpp +index 864c33c9a..cfe436212 100644 +--- a/editors/sc-ide/widgets/main_window.cpp ++++ b/editors/sc-ide/widgets/main_window.cpp +@@ -422,10 +422,12 @@ void MainWindow::createActions() { + connect(action, SIGNAL(triggered()), this, SLOT(openHelp())); + settings->addAction(action, "help-browser", helpCategory); + ++#ifdef SC_USE_QTWEBENGINE + mActions[HelpAboutIDE] = action = + new QAction(QIcon::fromTheme("system-help"), tr("How to Use SuperCollider IDE"), this); + action->setStatusTip(tr("Open the SuperCollider IDE guide")); + connect(action, SIGNAL(triggered()), this, SLOT(openHelpAboutIDE())); ++#endif // SC_USE_QTWEBENGINE + + mActions[ReportABug] = action = new QAction(QIcon::fromTheme("system-help"), tr("Report a bug..."), this); + action->setStatusTip(tr("Report a bug")); diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-14-5006d4f9ed636ad0798af9dac01a91bdff877d45 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-14-5006d4f9ed636ad0798af9dac01a91bdff877d45 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-14-5006d4f9ed636ad0798af9dac01a91bdff877d45 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-14-5006d4f9ed636ad0798af9dac01a91bdff877d45 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,100 @@ +commit 5006d4f9ed636ad0798af9dac01a91bdff877d45 +Author: Nathan Ho +Date: Thu Jul 4 19:56:05 2019 -0700 + + scide: Fix crashes for certain menu items and actions with QtWebEngine off + +diff --git a/editors/sc-ide/widgets/lookup_dialog.cpp b/editors/sc-ide/widgets/lookup_dialog.cpp +index 6be1ba639..a56d2d120 100644 +--- a/editors/sc-ide/widgets/lookup_dialog.cpp ++++ b/editors/sc-ide/widgets/lookup_dialog.cpp +@@ -36,7 +36,9 @@ + namespace ScIDE { + + GenericLookupDialog::GenericLookupDialog(QWidget* parent): QDialog(parent) { ++#ifdef SC_USE_QTWEBENGINE + addAction(MainWindow::instance()->action(MainWindow::LookupDocumentationForCursor)); ++#endif // SC_USE_WEBENGINE + + mQueryEdit = new QLineEdit(this); + +diff --git a/editors/sc-ide/widgets/main_window.cpp b/editors/sc-ide/widgets/main_window.cpp +index cfe436212..a6d0f73da 100644 +--- a/editors/sc-ide/widgets/main_window.cpp ++++ b/editors/sc-ide/widgets/main_window.cpp +@@ -417,21 +417,20 @@ void MainWindow::createActions() { + settings->addAction(action, "ide-settings-dialog", ideCategory); + + // Help ++ mActions[ReportABug] = action = new QAction(QIcon::fromTheme("system-help"), tr("Report a bug..."), this); ++ action->setStatusTip(tr("Report a bug")); ++ connect(action, SIGNAL(triggered()), this, SLOT(doBugReport())); ++ ++#ifdef SC_USE_QTWEBENGINE + mActions[Help] = action = new QAction(tr("Show &Help Browser"), this); + action->setStatusTip(tr("Show and focus the Help Browser")); + connect(action, SIGNAL(triggered()), this, SLOT(openHelp())); + settings->addAction(action, "help-browser", helpCategory); + +-#ifdef SC_USE_QTWEBENGINE + mActions[HelpAboutIDE] = action = + new QAction(QIcon::fromTheme("system-help"), tr("How to Use SuperCollider IDE"), this); + action->setStatusTip(tr("Open the SuperCollider IDE guide")); + connect(action, SIGNAL(triggered()), this, SLOT(openHelpAboutIDE())); +-#endif // SC_USE_QTWEBENGINE +- +- mActions[ReportABug] = action = new QAction(QIcon::fromTheme("system-help"), tr("Report a bug..."), this); +- action->setStatusTip(tr("Report a bug")); +- connect(action, SIGNAL(triggered()), this, SLOT(doBugReport())); + + mActions[LookupDocumentationForCursor] = action = new QAction(tr("Look Up Documentation for Cursor"), this); + action->setShortcut(tr("Ctrl+D", "Look Up Documentation for Cursor")); +@@ -444,6 +443,7 @@ void MainWindow::createActions() { + action->setStatusTip(tr("Enter text to look up in documentation")); + connect(action, SIGNAL(triggered()), this, SLOT(lookupDocumentation())); + settings->addAction(action, "help-lookup", helpCategory); ++#endif // SC_USE_QTWEBENGINE + + mActions[ShowAbout] = action = new QAction(QIcon::fromTheme("help-about"), tr("&About SuperCollider"), this); + connect(action, SIGNAL(triggered()), this, SLOT(showAbout())); +@@ -479,8 +479,10 @@ void MainWindow::createActions() { + + // Add actions to docklets, so shortcuts work when docklets detached: + ++#ifdef SC_USE_QTWEBENGINE + mPostDocklet->widget()->addAction(mActions[LookupDocumentation]); + mPostDocklet->widget()->addAction(mActions[LookupDocumentationForCursor]); ++#endif // SC_USE_QTWEBENGINE + mPostDocklet->widget()->addAction(mActions[LookupImplementation]); + mPostDocklet->widget()->addAction(mActions[LookupImplementationForCursor]); + mPostDocklet->widget()->addAction(mActions[LookupReferences]); +@@ -648,7 +650,9 @@ void MainWindow::createMenus() { + menuBar->addMenu(menu); + + menu = new QMenu(tr("&Help"), this); ++#ifdef SC_USE_QTWEBENGINE + menu->addAction(mActions[HelpAboutIDE]); ++#endif + menu->addAction(mActions[ReportABug]); + #ifdef SC_USE_QTWEBENGINE + menu->addSeparator(); +diff --git a/editors/sc-ide/widgets/main_window.hpp b/editors/sc-ide/widgets/main_window.hpp +index 21faea32c..aaea60956 100644 +--- a/editors/sc-ide/widgets/main_window.hpp ++++ b/editors/sc-ide/widgets/main_window.hpp +@@ -101,8 +101,15 @@ public: + Help, + HelpAboutIDE, + ReportABug, ++ ++#ifdef SC_USE_QTWEBENGINE ++ // These QtWebEngine-only actions are branched at the preprocessor ++ // level so that accidental invocations of these actions in other code ++ // are caught at compile time. + LookupDocumentationForCursor, + LookupDocumentation, ++#endif // SC_USE_QTWEBENGINE ++ + ShowAbout, + ShowAboutQT, + diff -Nru supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-15-c1031b935fc3854758317d2ffda268170170c0e1 supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-15-c1031b935fc3854758317d2ffda268170170c0e1 --- supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-15-c1031b935fc3854758317d2ffda268170170c0e1 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/optional-qtwebengine-15-c1031b935fc3854758317d2ffda268170170c0e1 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,22 @@ +commit c1031b935fc3854758317d2ffda268170170c0e1 +Author: Nathan Ho +Date: Fri Jul 5 13:43:32 2019 -0700 + + help: Explain difference between the two help browsers + +diff --git a/HelpSource/Classes/HelpBrowser.schelp b/HelpSource/Classes/HelpBrowser.schelp +index 799d20a14..8bb195b39 100644 +--- a/HelpSource/Classes/HelpBrowser.schelp ++++ b/HelpSource/Classes/HelpBrowser.schelp +@@ -5,9 +5,9 @@ summary:: Browse the SuperCollider help documentation + + description:: + +-HelpBrowser is the GUI help browser that lets you browse the documentation of SuperCollider. It is coupled with SCDoc to allow on-the-fly rendering of HTML help files. ++HelpBrowser is a GUI help browser that lets you browse the documentation of SuperCollider. It is coupled with SCDoc to allow on-the-fly rendering of HTML help files. + +-Note that this is not the same as the help browser built into the IDE. ++There are two different help browsers in SuperCollider: the help browser built into SCIDE, and this HelpBrowser class implemented with sclang's GUI features. Both are implemented with the same underlying Qt WebEngine browser. + + Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_QTWEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. + diff -Nru supercollider-3.10.0+repack/debian/patches/series supercollider-3.10.0+repack/debian/patches/series --- supercollider-3.10.0+repack/debian/patches/series 2018-12-26 11:50:55.000000000 +0000 +++ supercollider-3.10.0+repack/debian/patches/series 2020-06-08 03:09:06.000000000 +0000 @@ -1,3 +1,24 @@ Remove-autodetection-of-raspberry-cpus.patch disable-ccache.patch fix-numeric-type.patch +optional-qtwebengine-00-formatting +optional-qtwebengine-01-cc8201ac297ee8de90949eb0209228b0394678a0 +optional-qtwebengine-02-87fedd160798e793fe155c693309479b493279b3 +optional-qtwebengine-03-e312031105bd66e0f67cba3a199445cdd9b87939 +optional-qtwebengine-04-2005e6f18906b092686f8ed0f48b54c67acf01fd +optional-qtwebengine-05-98482ee0ebae1021655d9a6beb8c6b8a5f62605a +optional-qtwebengine-06-fa2783c88d8dbbe124396d5e57523e5abcd689e2 +optional-qtwebengine-07-2cded7579d097de45a9a1e4c6ca8a87f3fd03e63 +optional-qtwebengine-08-48ae2945e02218c0793977f4e90cefc4cd2ac75a +optional-qtwebengine-09-a34b19c2ca1fa5641a25b5b962a19e0fa5223452 +optional-qtwebengine-10-b2c5f95b842aa0d602723a95983841615b0e4bc1 +optional-qtwebengine-11-6c83b58ee7a5c621bb71c481fadccf103f63b9c0 +optional-qtwebengine-12-7c3305d45cba46096c01ea9f7e8232436c1d3271 +optional-qtwebengine-13-766c44173c83ec5b4eb4a4cc202e78bf35917724 +optional-qtwebengine-14-5006d4f9ed636ad0798af9dac01a91bdff877d45 +optional-qtwebengine-15-c1031b935fc3854758317d2ffda268170170c0e1 +boost1.71-00-formatting +boost1.71-01-ee2c63c89e6e3f5a14e09a9c7edaaf6774190ce6 +boost1.71-02-265a8a6750bb6ea9ad8c19d19916d8ba860c844d +boost1.71-03-f4e5cc69aaa09f26f3dcd19f0e9db85b525b4b70 +boost1.71-04-1ede37b287dbe3010f98d0be9d1b38108e1dd530 diff -Nru supercollider-3.10.0+repack/debian/rules supercollider-3.10.0+repack/debian/rules --- supercollider-3.10.0+repack/debian/rules 2018-12-26 17:34:34.000000000 +0000 +++ supercollider-3.10.0+repack/debian/rules 2019-06-29 01:02:25.000000000 +0000 @@ -33,6 +33,7 @@ -DENABLE_TESTSUITE=off \ -DLIBSCSYNTH=on \ -DSYSTEM_YAMLCPP=off \ + -DSC_USE_QTWEBENGINE=off \ -DSUPERNOVA="$(DEB_BUILD_SUPERNOVA)" diff -Nru supercollider-3.10.0+repack/debian/source/include-binaries supercollider-3.10.0+repack/debian/source/include-binaries --- supercollider-3.10.0+repack/debian/source/include-binaries 1970-01-01 00:00:00.000000000 +0000 +++ supercollider-3.10.0+repack/debian/source/include-binaries 2019-06-29 01:02:25.000000000 +0000 @@ -0,0 +1,5 @@ +obj-arm-linux-gnueabihf/CMakeFiles/3.13.4/CMakeDetermineCompilerABI_C.bin +obj-arm-linux-gnueabihf/CMakeFiles/3.13.4/CMakeDetermineCompilerABI_CXX.bin +obj-arm-linux-gnueabihf/CMakeFiles/3.13.4/CompilerIdC/a.out +obj-arm-linux-gnueabihf/CMakeFiles/3.13.4/CompilerIdCXX/a.out +obj-arm-linux-gnueabihf/CMakeFiles/feature_tests.bin