From 76124fb91de1faff8f9d47a0afc5e0f2f6615120 Mon Sep 17 00:00:00 2001 From: Debian Multimedia Maintainers Date: Sat, 29 Jun 2019 02:02:25 +0100 Subject: [PATCH] optional-qtwebengine-10-b2c5f95b842aa0d602723a95983841615b0e4bc1 commit b2c5f95b842aa0d602723a95983841615b0e4bc1 Author: Nathan Ho Date: Sun Jun 2 01:43:44 2019 -0700 scide: Fix build with SC_USE_WEBENGINE Gbp-Pq: Name optional-qtwebengine-10-b2c5f95b842aa0d602723a95983841615b0e4bc1 --- editors/sc-ide/CMakeLists.txt | 9 ++++----- editors/sc-ide/core/main.cpp | 10 ++++++++++ .../widgets/code_editor/autocompleter.cpp | 2 ++ .../sc-ide/widgets/code_editor/sc_editor.cpp | 4 ++++ editors/sc-ide/widgets/main_window.cpp | 20 +++++++++++++++++++ editors/sc-ide/widgets/main_window.hpp | 4 ++++ 6 files changed, 44 insertions(+), 5 deletions(-) diff --git a/editors/sc-ide/CMakeLists.txt b/editors/sc-ide/CMakeLists.txt index 77d84e7..29b964c 100644 --- a/editors/sc-ide/CMakeLists.txt +++ b/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 ) diff --git a/editors/sc-ide/core/main.cpp b/editors/sc-ide/core/main.cpp index 41852b0..e8833db 100644 --- a/editors/sc-ide/core/main.cpp +++ b/editors/sc-ide/core/main.cpp @@ -135,6 +135,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)) { @@ -150,6 +151,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(); } @@ -310,6 +312,7 @@ bool Main::nativeEventFilter(const QByteArray &, void * message, long *) } bool Main::openDocumentation(const QString& string) { +#ifdef SC_USE_WEBENGINE QString symbol = string.trimmed(); if (symbol.isEmpty()) return false; @@ -318,13 +321,20 @@ bool Main::openDocumentation(const QString& string) { 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) { diff --git a/editors/sc-ide/widgets/code_editor/autocompleter.cpp b/editors/sc-ide/widgets/code_editor/autocompleter.cpp index d2d9ff2..4e9b35b 100644 --- a/editors/sc-ide/widgets/code_editor/autocompleter.cpp +++ b/editors/sc-ide/widgets/code_editor/autocompleter.cpp @@ -1307,9 +1307,11 @@ void AutoCompleter::parseClassNode(DocNode *node, QString *str) } 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 diff --git a/editors/sc-ide/widgets/code_editor/sc_editor.cpp b/editors/sc-ide/widgets/code_editor/sc_editor.cpp index eae7e2e..88afeeb 100644 --- a/editors/sc-ide/widgets/code_editor/sc_editor.cpp +++ b/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(); diff --git a/editors/sc-ide/widgets/main_window.cpp b/editors/sc-ide/widgets/main_window.cpp index 240341d..faf2d8c 100644 --- a/editors/sc-ide/widgets/main_window.cpp +++ b/editors/sc-ide/widgets/main_window.cpp @@ -143,10 +143,12 @@ MainWindow::MainWindow(Main * main) : 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"); @@ -481,10 +483,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. @@ -501,12 +505,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() { @@ -584,7 +590,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")); @@ -661,10 +669,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]); @@ -680,7 +690,9 @@ template void MainWindow::saveWindowState(T* settings) { 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()); @@ -727,7 +739,9 @@ void MainWindow::restoreWindowState( T * settings ) restoreDetachedState(mPostDocklet, detachedData); restoreDetachedState(mDocumentsDocklet, detachedData); +#ifdef SC_USE_WEBENGINE restoreDetachedState(mHelpBrowserDocklet, detachedData); +#endif // SC_USE_WEBENGINE qDebug("restoring state"); @@ -1380,7 +1394,9 @@ void MainWindow::applySettings(Settings::Manager* settings) { applyCursorBlinkingSettings(settings); mPostDocklet->mPostWindow->applySettings(settings); +#ifdef SC_USE_WEBENGINE mHelpBrowserDocklet->browser()->applySettings(settings); +#endif // SC_USE_WEBENGINE mCmdLine->applySettings(settings); } @@ -1556,14 +1572,18 @@ void MainWindow::lookupDocumentationForCursor() { } 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() { diff --git a/editors/sc-ide/widgets/main_window.hpp b/editors/sc-ide/widgets/main_window.hpp index de1dcfb..c95af11 100644 --- a/editors/sc-ide/widgets/main_window.hpp +++ b/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; -- 2.30.2