From b9688b905acbb256fb56b18f8006e5bcbb8117f4 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Fri, 31 Oct 2014 12:01:24 +0900 Subject: Added GUI for allowing the user to manually update the Documentation Plugin lists. Added check + information message to inform the user that he/she should update the Documentation Plugin lists when TDevelop is being run for the first time under a new TDE version. This relates to bug 1859. Signed-off-by: Michele Calgaro --- parts/documentation/docglobalconfigwidget.cpp | 59 +++++++++++++++++++++--- parts/documentation/docglobalconfigwidget.h | 8 ++-- parts/documentation/docglobalconfigwidgetbase.ui | 16 +++++++ parts/documentation/documentation_part.cpp | 42 ++++++++++++----- parts/documentation/documentation_part.h | 2 +- 5 files changed, 104 insertions(+), 23 deletions(-) (limited to 'parts/documentation') diff --git a/parts/documentation/docglobalconfigwidget.cpp b/parts/documentation/docglobalconfigwidget.cpp index b27cb5f9..8dd6c0b8 100644 --- a/parts/documentation/docglobalconfigwidget.cpp +++ b/parts/documentation/docglobalconfigwidget.cpp @@ -37,6 +37,8 @@ #include #include #include +#include +#include #include "kdevdocumentationplugin.h" #include "kdevpartcontroller.h" @@ -168,13 +170,13 @@ TDEListView *DocGlobalConfigWidget::activeView() void DocGlobalConfigWidget::accept() { //write catalog settings - for (TQValueList::const_iterator it = m_part->m_plugins.constBegin(); - it != m_part->m_plugins.constEnd(); ++it) - { - (*it)->saveCatalogConfiguration( m_View ); - //@todo: take restrictions into account - (*it)->reinit(m_widget->contents(), m_widget->index(), TQStringList()); - } + for (TQValueList::const_iterator it = m_part->m_plugins.constBegin(); + it != m_part->m_plugins.constEnd(); ++it) + { + (*it)->saveCatalogConfiguration( m_View ); + //@todo: take restrictions into account + (*it)->reinit(m_widget->contents(), m_widget->index(), TQStringList()); + } TDEConfig *config = m_part->config(); //write full text search settings @@ -259,4 +261,47 @@ void DocGlobalConfigWidget::updateConfigForHTMLParts() } } +void DocGlobalConfigWidget::rescanCollectionButtonClicked() +{ + if (KMessageBox::questionYesNo(this, + i18n("This will restore the default settings " + "for the following documentation plugins: " + "chm, devhelp, doxygen, kdevtoc, qt.\n" + "Any change made to documentation catalogs " + "belonging to those plugins will be lost. " + "Changes made to documentation catalogs " + "belonging to the custom plugin will be preserved.\n" + "Do you wish to continue?"), + i18n("Rescan documentation")) == KMessageBox::Yes) + { + reloadDocumentationPlugins(); + } +} + +void DocGlobalConfigWidget::reloadDocumentationPlugins() +{ + // Clear current list + TQListViewItem *first = m_View->firstChild(); + while (first) + { + m_View->takeItem(first); + delete first; + first = m_View->firstChild(); + } + // Rescan configuration + TQValueList::iterator it; + for (it = m_part->m_plugins.begin(); it != m_part->m_plugins.end(); ++it) + { + DocumentationPlugin *plugin=*it; + plugin->clear(); + plugin->autoSetupPlugin(); + plugin->reinit(m_part->m_widget->contents(), m_part->m_widget->index(), TQStringList()); + } + // Recreate list + for (TQValueList::const_iterator it = m_part->m_plugins.constBegin(); + it != m_part->m_plugins.constEnd(); ++it) + { + (*it)->loadCatalogConfiguration(m_View); + } +} #include "docglobalconfigwidget.moc" diff --git a/parts/documentation/docglobalconfigwidget.h b/parts/documentation/docglobalconfigwidget.h index c2d08a37..8fee856c 100644 --- a/parts/documentation/docglobalconfigwidget.h +++ b/parts/documentation/docglobalconfigwidget.h @@ -43,9 +43,10 @@ public slots: /*$PUBLIC_SLOTS$*/ virtual void collectionsBoxCurrentChanged(int box); - virtual void removeCollectionButtonClicked(); - virtual void editCollectionButtonClicked(); virtual void addCollectionButtonClicked(); + virtual void editCollectionButtonClicked(); + virtual void removeCollectionButtonClicked(); + virtual void rescanCollectionButtonClicked(); virtual void accept(); @@ -53,7 +54,8 @@ protected: /*$PROTECTED_FUNCTIONS$*/ TDEListView *activeView(); void updateConfigForHTMLParts(); - + void reloadDocumentationPlugins(); + protected slots: /*$PROTECTED_SLOTS$*/ diff --git a/parts/documentation/docglobalconfigwidgetbase.ui b/parts/documentation/docglobalconfigwidgetbase.ui index 9c2678be..4de6dc2f 100644 --- a/parts/documentation/docglobalconfigwidgetbase.ui +++ b/parts/documentation/docglobalconfigwidgetbase.ui @@ -90,6 +90,14 @@ &Remove + + + rescanCollectionButton + + + &Rescan + + spacer1 @@ -525,12 +533,19 @@ DocGlobalConfigWidgetBase removeCollectionButtonClicked() + + rescanCollectionButton + clicked() + DocGlobalConfigWidgetBase + rescanCollectionButtonClicked() + docTab addCollectionButton editCollectionButton removeCollectionButton + rescanCollectionButton databaseDirEdit htdigbinEdit htmergebinEdit @@ -546,6 +561,7 @@ addCollectionButtonClicked() editCollectionButtonClicked() removeCollectionButtonClicked() + rescanCollectionButtonClicked() collectionsBoxCurrentChanged( int ) updateConfig() updateIndex() diff --git a/parts/documentation/documentation_part.cpp b/parts/documentation/documentation_part.cpp index b0d59e24..3b9e9b78 100644 --- a/parts/documentation/documentation_part.cpp +++ b/parts/documentation/documentation_part.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -106,6 +107,7 @@ DocumentationPart::DocumentationPart(TQObject *parent, const char *name, const T i18n("Documentation browser")); setupActions(); + checkLastVersion(); TQTimer::singleShot(5, this, TQT_SLOT(init())); @@ -151,18 +153,6 @@ void DocumentationPart::loadDocumentationPlugins() } } -void DocumentationPart::reloadDocumentationPlugins() -{ - TQValueList::iterator it; - for (it = m_plugins.begin(); it != m_plugins.end(); ++it) - { - DocumentationPlugin *plugin=*it; - plugin->clear(); - plugin->autoSetupPlugin(); - plugin->reinit(m_widget->contents(), m_widget->index(), TQStringList()); - } -} - void DocumentationPart::emitIndexSelected(IndexBox *indexBox) { if (!m_hasIndex) @@ -774,4 +764,32 @@ void DocumentationPart::init( ) loadSettings(); } +void DocumentationPart::checkLastVersion() +{ + // Check whether TDevelop is run for the first time under + // a new TDE version. If so displays a message to invite + // the user to update the documentation plugin lists + TDEConfig *config = DocumentationFactory::instance()->config(); + TQString group = config->group(); + config->setGroup("General"); + TQString lastVersion = config->readEntry("Last version"); + if (lastVersion != TDE_VERSION_STRING) + { + config->writeEntry("Last version", TDE_VERSION_STRING); + config->sync(); + KMessageBox::information(m_widget, + i18n("It seems TDevelop is being run for the first time " + "under TDE version " TDE_VERSION_STRING ".\n" + "Some documentation catalogs may have changed " + "since the previous version, so we suggest " + "that you use the Rescan button in " + "Settings --> Configure TDevelop --> Documentation " + "to update the list of the available items.\n" + "This operation has not been automated to allow you " + "to preserve local changes that you may have made before."), + i18n("Rescan documentation")); + } + config->setGroup(group); +} + #include "documentation_part.moc" diff --git a/parts/documentation/documentation_part.h b/parts/documentation/documentation_part.h index ef59c49a..02564a3f 100644 --- a/parts/documentation/documentation_part.h +++ b/parts/documentation/documentation_part.h @@ -84,11 +84,11 @@ signals: protected: void loadDocumentationPlugins(); - void reloadDocumentationPlugins(); TDEConfig *config(); void setupActions(); void loadSettings(); void saveProjectDocumentationInfo(); + void checkLastVersion(); TQCString startAssistant(); void activateAssistantWindow(const TQCString &ref); -- cgit v1.2.3