diff --git a/Modules/Bundles/org.mitk.gui.qt.extapplication/documentation/MitkExtQtHelpCollectionProject.qhcp b/Modules/Bundles/org.mitk.gui.qt.extapplication/documentation/MitkExtQtHelpCollectionProject.qhcp deleted file mode 100644 index aff4b703ff..0000000000 --- a/Modules/Bundles/org.mitk.gui.qt.extapplication/documentation/MitkExtQtHelpCollectionProject.qhcp +++ /dev/null @@ -1,17 +0,0 @@ - - - - MITK Help - qthelp://org.mitk.gui.qt.extapplication/bundle/index.html - false - false - true - qhc_cache - - About MITK Help - - - - - - diff --git a/Modules/Bundles/org.mitk.gui.qt.extapplication/files.cmake b/Modules/Bundles/org.mitk.gui.qt.extapplication/files.cmake index 856fec09f8..51203dd5d9 100644 --- a/Modules/Bundles/org.mitk.gui.qt.extapplication/files.cmake +++ b/Modules/Bundles/org.mitk.gui.qt.extapplication/files.cmake @@ -1,52 +1,40 @@ SET(SRC_CPP_FILES QmitkExtApplication.cpp QmitkExtAppWorkbenchAdvisor.cpp ) SET(INTERNAL_CPP_FILES QmitkExtApplicationPlugin.cpp QmitkExtDefaultPerspective.cpp ) SET(MOC_H_FILES src/QmitkExtApplication.h src/internal/QmitkExtApplicationPlugin.h src/internal/QmitkExtDefaultPerspective.h ) SET(CACHED_RESOURCE_FILES # list of resource files which can be used by the plug-in # system without loading the plug-ins shared library, # for example the icon used in the menu and tabs for the # plug-in views in the workbench plugin.xml resources/icon_research.xpm ) SET(QRC_FILES # uncomment the following line if you want to use Qt resources - resources/QmitkExtApplication.qrc +# resources/QmitkExtApplication.qrc ) SET(CPP_FILES ) foreach(file ${SRC_CPP_FILES}) SET(CPP_FILES ${CPP_FILES} src/${file}) endforeach(file ${SRC_CPP_FILES}) foreach(file ${INTERNAL_CPP_FILES}) SET(CPP_FILES ${CPP_FILES} src/internal/${file}) endforeach(file ${INTERNAL_CPP_FILES}) -#----------- Qt Help Collection Project -------------# - -IF (BLUEBERRY_USE_QT_HELP) - SET(_plugin_qhcp_input "${CMAKE_CURRENT_SOURCE_DIR}/documentation/MitkExtQtHelpCollectionProject.qhcp") - SET(_plugin_qhcp_output "${CMAKE_CURRENT_BINARY_DIR}/MitkExtQtHelpCollection_${MITK_REVISION_ID}.qhc") - ADD_CUSTOM_COMMAND(OUTPUT ${_plugin_qhcp_output} - COMMAND ${QT_COLLECTIONGENERATOR_EXECUTABLE} ${_plugin_qhcp_input} -o ${_plugin_qhcp_output} - DEPENDS ${_plugin_qhcp_input} - ) - - LIST(APPEND CACHED_RESOURCE_FILES ${_plugin_qhcp_output}) -ENDIF() diff --git a/Modules/Bundles/org.mitk.gui.qt.extapplication/resources/QmitkExtApplication.qrc b/Modules/Bundles/org.mitk.gui.qt.extapplication/resources/QmitkExtApplication.qrc deleted file mode 100644 index d01c01c79d..0000000000 --- a/Modules/Bundles/org.mitk.gui.qt.extapplication/resources/QmitkExtApplication.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - icon_research.xpm - - diff --git a/Modules/Bundles/org.mitk.gui.qt.extapplication/src/QmitkExtAppWorkbenchAdvisor.cpp b/Modules/Bundles/org.mitk.gui.qt.extapplication/src/QmitkExtAppWorkbenchAdvisor.cpp index 8a67e0e07a..d077d83d13 100644 --- a/Modules/Bundles/org.mitk.gui.qt.extapplication/src/QmitkExtAppWorkbenchAdvisor.cpp +++ b/Modules/Bundles/org.mitk.gui.qt.extapplication/src/QmitkExtAppWorkbenchAdvisor.cpp @@ -1,57 +1,65 @@ /*========================================================================= Program: Medical Imaging & Interaction Toolkit Language: C++ Date: $Date$ Version: $Revision$ Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #include "QmitkExtAppWorkbenchAdvisor.h" #include "internal/QmitkExtApplicationPlugin.h" #include #include const std::string QmitkExtAppWorkbenchAdvisor::DEFAULT_PERSPECTIVE_ID = "org.mitk.extapp.defaultperspective"; void QmitkExtAppWorkbenchAdvisor::Initialize(berry::IWorkbenchConfigurer::Pointer configurer) { berry::QtWorkbenchAdvisor::Initialize(configurer); configurer->SetSaveAndRestore(true); if (!berry::QtAssistantUtil::GetHelpCollectionFile().isEmpty()) { typedef std::vector BundleContainer; BundleContainer bundles = berry::Platform::GetBundles(); berry::QtAssistantUtil::RegisterQCHFiles(bundles); } } berry::WorkbenchWindowAdvisor* QmitkExtAppWorkbenchAdvisor::CreateWorkbenchWindowAdvisor( berry::IWorkbenchWindowConfigurer::Pointer configurer) { QmitkExtWorkbenchWindowAdvisor* advisor = new QmitkExtWorkbenchWindowAdvisor(this, configurer); + + // Exclude the help perspective from org.blueberry.ui.qt.help from + // the normal perspective list. + // The perspective gets a dedicated menu entry in the help menu + std::vector excludePerspectives; + excludePerspectives.push_back("org.blueberry.perspectives.help"); + advisor->SetPerspectiveExcludeList(excludePerspectives); + advisor->SetWindowIcon(":/QmitkExtApplication/icon_research.xpm"); return advisor; //return new QmitkExtWorkbenchWindowAdvisor(this, configurer); } std::string QmitkExtAppWorkbenchAdvisor::GetInitialWindowPerspectiveId() { return DEFAULT_PERSPECTIVE_ID; } diff --git a/Modules/Bundles/org.mitk.gui.qt.extapplication/src/internal/QmitkExtApplicationPlugin.cpp b/Modules/Bundles/org.mitk.gui.qt.extapplication/src/internal/QmitkExtApplicationPlugin.cpp index 6cab3b5699..2bc3f1f41e 100644 --- a/Modules/Bundles/org.mitk.gui.qt.extapplication/src/internal/QmitkExtApplicationPlugin.cpp +++ b/Modules/Bundles/org.mitk.gui.qt.extapplication/src/internal/QmitkExtApplicationPlugin.cpp @@ -1,116 +1,86 @@ /*========================================================================= Program: BlueBerry Platform Language: C++ Date: $Date$ Version: $Revision$ Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #include "QmitkExtApplicationPlugin.h" #include "QmitkExtDefaultPerspective.h" #include "../QmitkExtApplication.h" #include +#include #include +#include +#include + #include #include #include QmitkExtApplicationPlugin* QmitkExtApplicationPlugin::inst = 0; QmitkExtApplicationPlugin::QmitkExtApplicationPlugin() - : pluginListener(0) { inst = this; } QmitkExtApplicationPlugin::~QmitkExtApplicationPlugin() { - delete pluginListener; } QmitkExtApplicationPlugin* QmitkExtApplicationPlugin::GetDefault() { return inst; } void QmitkExtApplicationPlugin::start(ctkPluginContext* context) { berry::AbstractUICTKPlugin::start(context); this->context = context; BERRY_REGISTER_EXTENSION_CLASS(QmitkExtDefaultPerspective, context); BERRY_REGISTER_EXTENSION_CLASS(QmitkExtApplication, context); - QString collectionFile = GetQtHelpCollectionFile(); - - berry::QtAssistantUtil::SetHelpCollectionFile(collectionFile); - berry::QtAssistantUtil::SetDefaultHelpUrl("qthelp://org.mitk.gui.qt.extapplication/bundle/index.html"); - - delete pluginListener; - pluginListener = new berry::QCHPluginListener(context); - context->connectPluginListener(pluginListener, SLOT(pluginChanged(ctkPluginEvent)), Qt::DirectConnection); - - // register all QCH files from all the currently installed plugins - pluginListener->processPlugins(); -} - -ctkPluginContext* QmitkExtApplicationPlugin::GetPluginContext() const -{ - return context; -} -QString QmitkExtApplicationPlugin::GetQtHelpCollectionFile() const -{ - if (!helpCollectionFile.isEmpty()) + ctkServiceReference cmRef = context->getServiceReference(); + ctkConfigurationAdmin* configAdmin = 0; + if (cmRef) { - return helpCollectionFile; + configAdmin = context->getService(cmRef); } - QString collectionFilename; - QString na("n/a"); - if (na != MITK_REVISION) - collectionFilename = "MitkExtQtHelpCollection_" MITK_REVISION ".qhc"; - else - collectionFilename = "MitkExtQtHelpCollection.qhc"; - - QFileInfo collectionFileInfo = context->getDataFile(collectionFilename); - QFileInfo pluginFileInfo = QFileInfo(QUrl(context->getPlugin()->getLocation()).toLocalFile()); - if (!collectionFileInfo.exists() || - pluginFileInfo.lastModified() > collectionFileInfo.lastModified()) + // Use the CTK Configuration Admin service to configure the BlueBerry help system + if (configAdmin) { - // extract the qhc file from the plug-in - QByteArray content = context->getPlugin()->getResource(collectionFilename); - if (content.isEmpty()) - { - BERRY_WARN << "Could not get plug-in resource: " << collectionFilename.toStdString(); - } - else - { - QFile file(collectionFileInfo.absoluteFilePath()); - file.open(QIODevice::WriteOnly); - file.write(content); - file.close(); - } + ctkConfigurationPtr conf = configAdmin->getConfiguration("org.blueberry.services.help", QString()); + ctkDictionary helpProps; + helpProps.insert("homePage", "qthelp://org.mitk.gui.qt.extapplication/bundle/index.html"); + conf->update(helpProps); + context->ungetService(cmRef); } - - if (QFile::exists(collectionFileInfo.absoluteFilePath())) + else { - helpCollectionFile = collectionFileInfo.absoluteFilePath(); + MITK_WARN << "Configuration Admin service unavailable, cannot set home page url."; } +} - return helpCollectionFile; +ctkPluginContext* QmitkExtApplicationPlugin::GetPluginContext() const +{ + return context; } Q_EXPORT_PLUGIN2(org_mitk_gui_qt_extapplication, QmitkExtApplicationPlugin) diff --git a/Modules/Bundles/org.mitk.gui.qt.extapplication/src/internal/QmitkExtApplicationPlugin.h b/Modules/Bundles/org.mitk.gui.qt.extapplication/src/internal/QmitkExtApplicationPlugin.h index f466829878..657d450496 100644 --- a/Modules/Bundles/org.mitk.gui.qt.extapplication/src/internal/QmitkExtApplicationPlugin.h +++ b/Modules/Bundles/org.mitk.gui.qt.extapplication/src/internal/QmitkExtApplicationPlugin.h @@ -1,56 +1,53 @@ /*========================================================================= Program: BlueBerry Platform Language: C++ Date: $Date$ Version: $Revision$ Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef QMITKEXTAPPLICATIONPLUGIN_H_ #define QMITKEXTAPPLICATIONPLUGIN_H_ #include #include #include class QmitkExtApplicationPlugin : public QObject, public berry::AbstractUICTKPlugin { Q_OBJECT Q_INTERFACES(ctkPluginActivator) public: QmitkExtApplicationPlugin(); ~QmitkExtApplicationPlugin(); static QmitkExtApplicationPlugin* GetDefault(); ctkPluginContext* GetPluginContext() const; void start(ctkPluginContext*); QString GetQtHelpCollectionFile() const; private: static QmitkExtApplicationPlugin* inst; ctkPluginContext* context; - berry::QCHPluginListener* pluginListener; - - mutable QString helpCollectionFile; }; #endif /* QMITKEXTAPPLICATIONPLUGIN_H_ */