Commit 3f843aca authored by Leena Miettinen's avatar Leena Miettinen Committed by Erik Verbruggen

Doc: move Class View plugin docs to .cpp files.

QDoc does not find docs in the .h files.
Use \brief only for namespaces, classes, enums, and properties.
Use standard wording for \brief and \fn.
Use \a and \c according to guidelines.

Fix grammar and style.

Change-Id: Ib685a03c97ef38661ecc156f61d70085514357fc
Reviewed-by: default avatarErik Verbruggen <erik.verbruggen@digia.com>
parent 5b268822
......@@ -58,11 +58,89 @@ namespace Internal {
static Manager *managerInstance = 0;
/*!
\struct ManagerPrivate
\class ClassView::Internal::Manager
\brief The Manager class implements a class view manager that interacts with
other \QC plugins and acts as a proxy between them and the parser.
The parser is moved to a separate thread and is connected to the manager by
using signals and slots. Manager's signals starting with 'request' are for
the parser.
*/
/*!
\fn explicit ClassView::Internal::Manager(QObject *parent = 0)
Creates a shared instance of a \a parent object.
*/
/*!
\fn void ClassView::Internal::Manager::stateChanged(bool state)
Changes the internal manager state. \a state returns true if manager is
enabled, otherwise false.
\sa setState, state
*/
/*!
\fn void ClassView::Internal::Manager::treeDataUpdate(QSharedPointer<QStandardItem> result)
Emits a signal about a tree data update (to tree view). \a result holds the
item with the current tree.
*/
/*!
\fn void ClassView::Internal::Manager::requestTreeDataUpdate()
Emits a signal that a request for sending the tree view has to be handled by
listeners (the parser).
\sa onRequestTreeDataUpdate
*/
/*!
\fn void ClassView::Internal::Manager::requestDocumentUpdated(CPlusPlus::Document::Ptr doc)
Emits a signal that \a doc was updated and has to be reparsed.
\sa onDocumentUpdated
*/
/*!
\fn void ClassView::Internal::Manager::requestResetCurrentState()
Emits a signal that the parser has to reset its internal state to the
current state from the code manager.
*/
/*!
\fn void ClassView::Internal::Manager::requestClearCache()
Requests the parser to clear a cache.
*/
/*!
\fn void ClassView::Internal::Manager::requestClearCacheAll()
Requests the parser to clear a full cache.
*/
/*!
\fn void ClassView::Internal::Manager::requestSetFlatMode(bool flat)
Requests the manager to set the flat mode without subprojects. Set \a flat
to \c true to enable flat mode and to false to disable it.
*/
/*!
\class ManagerPrivate
\internal
\brief Private class data for \a Manager
\brief The ManagerPrivate class contains private class data for the Manager
class.
\sa Manager
*/
*/
class ManagerPrivate
{
public:
......@@ -118,11 +196,20 @@ Manager *Manager::instance()
return managerInstance;
}
/*!
Checks \a item for lazy data population of a QStandardItemModel.
*/
bool Manager::canFetchMore(QStandardItem *item) const
{
return d->parser.canFetchMore(item);
}
/*!
Checks \a item for lazy data population of a QStandardItemModel.
\a skipRoot item is needed for the manual update, call not from model.
*/
void Manager::fetchMore(QStandardItem *item, bool skipRoot)
{
d->parser.fetchMore(item, skipRoot);
......@@ -193,11 +280,27 @@ void Manager::initialize()
&d->parser, SLOT(removeFiles(QStringList)), Qt::QueuedConnection);
}
/*!
Gets the internal manager state. If it is disabled, does not emit signals
about parsing requests. If enabled, does parsing in the background even if
the navigation pane is not visible. Returns true if the manager is enabled,
false otherwise.
\sa setState, stateChanged
*/
bool Manager::state() const
{
return d->state;
}
/*!
Sets the internal manager \a state to \c true if the manager has to be
enabled, otherwise sets it to \c false.
\sa state, stateChanged
*/
void Manager::setState(bool state)
{
QMutexLocker locker(&d->mutexState);
......@@ -211,11 +314,24 @@ void Manager::setState(bool state)
emit stateChanged(d->state);
}
/*!
Reacts to the widget factory creating a widget.
\sa setState, state
*/
void Manager::onWidgetIsCreated()
{
// do nothing - continue to sleep
}
/*!
Reacts to the \a visibility of one navigation pane widget being changed
(there might be a lot of them).
\sa setState, state
*/
void Manager::onWidgetVisibilityIsChanged(bool visibility)
{
// activate data handling - when 1st time 'Class View' will be open
......@@ -223,6 +339,13 @@ void Manager::onWidgetVisibilityIsChanged(bool visibility)
setState(true);
}
/*!
Reacts to the state changed signal for the current manager \a state.
For example, requests the currect code snapshot if needed.
\sa setState, state, stateChanged
*/
void Manager::onStateChanged(bool state)
{
if (state) {
......@@ -234,6 +357,11 @@ void Manager::onStateChanged(bool state)
}
}
/*!
Reacts to the project list being changed by updating the navigation pane
visibility if necessary.
*/
void Manager::onProjectListChanged()
{
// do nothing if Manager is disabled
......@@ -244,6 +372,13 @@ void Manager::onProjectListChanged()
requestTreeDataUpdate();
}
/*!
Handles parse tasks started by the progress manager. \a type holds the
task index, which should be \c CppTools::Constants::TASK_INDEX.
\sa CppTools::Constants::TASK_INDEX
*/
void Manager::onTaskStarted(const QString &type)
{
if (type != QLatin1String(CppTools::Constants::TASK_INDEX))
......@@ -253,6 +388,13 @@ void Manager::onTaskStarted(const QString &type)
d->disableCodeParser = true;
}
/*!
Handles parse tasks finished by the progress manager.\a type holds the
task index, which should be \c CppTools::Constants::TASK_INDEX.
\sa CppTools::Constants::TASK_INDEX
*/
void Manager::onAllTasksFinished(const QString &type)
{
if (type != QLatin1String(CppTools::Constants::TASK_INDEX))
......@@ -272,6 +414,13 @@ void Manager::onAllTasksFinished(const QString &type)
emit requestResetCurrentState();
}
/*!
Emits the signal \c documentUpdated when the code model manager state is
changed for \a doc.
\sa documentUpdated
*/
void Manager::onDocumentUpdated(CPlusPlus::Document::Ptr doc)
{
// do nothing if Manager is disabled
......@@ -285,6 +434,11 @@ void Manager::onDocumentUpdated(CPlusPlus::Document::Ptr doc)
emit requestDocumentUpdated(doc);
}
/*!
Opens the text editor for the file \a fileName on \a line (1-based) and
\a column (1-based).
*/
void Manager::gotoLocation(const QString &fileName, int line, int column)
{
bool newEditor = false;
......@@ -293,6 +447,12 @@ void Manager::gotoLocation(const QString &fileName, int line, int column)
&newEditor);
}
/*!
Opens the text editor for any of the symbol locations in the \a list.
\sa Manager::gotoLocations
*/
void Manager::gotoLocations(const QList<QVariant> &list)
{
QSet<SymbolLocation> locations = Utils::roleToLocations(list);
......@@ -344,6 +504,13 @@ void Manager::gotoLocations(const QList<QVariant> &list)
gotoLocation(loc.fileName(), loc.line(), loc.column());
}
/*!
Emits the signal \c requestTreeDataUpdate if the latest tree info is
requested and if parsing is enabled.
\sa requestTreeDataUpdate, NavigationWidget::requestDataUpdate
*/
void Manager::onRequestTreeDataUpdate()
{
// do nothing if Manager is disabled
......@@ -353,11 +520,20 @@ void Manager::onRequestTreeDataUpdate()
emit requestTreeDataUpdate();
}
/*!
Switches to flat mode (without subprojects) if \a flat is set to \c true.
*/
void Manager::setFlatMode(bool flat)
{
emit requestSetFlatMode(flat);
}
/*!
Sends a new tree data update to a tree view. \a result holds the item with
the current tree.
*/
void Manager::onTreeDataUpdate(QSharedPointer<QStandardItem> result)
{
// do nothing if Manager is disabled
......
......@@ -41,25 +41,11 @@ namespace Internal {
class ManagerPrivate;
/*!
\class Manager
\brief Class View manager
Class View Manager. Interacts with other Qt Creator plugins - this is a proxy between them and
parser.
\a Parser is moved to a separate thread and is connected to \a Manager by signal/slots.
Manager's signals starting with 'request' are for Parser.
*/
class Manager : public QObject
{
Q_OBJECT
public:
/*!
\brief Creates shared instance
\param parent Parent object
*/
explicit Manager(QObject *parent = 0);
virtual ~Manager();
......@@ -67,169 +53,59 @@ public:
//! Get an instance of Manager
static Manager *instance();
/*!
\brief Lazy data population for a \a QStandardItemModel
\param item Item with has to be checked
*/
bool canFetchMore(QStandardItem *item) const;
/*!
\brief Lazy data population for a \a QStandardItemModel
\param item Item with has to be checked
\param skipRoot Skip root item (is needed for the manual update, call not from model)
*/
void fetchMore(QStandardItem *item, bool skipRoot = false);
signals:
/*!
\brief Internal Manager state is changed.
\param state true if Manager is enabled, false otherwise
\sa setState, state
*/
void stateChanged(bool state);
/*!
\brief Signal about a tree data update (to tree view).
\param result Item with the current tree
*/
void treeDataUpdate(QSharedPointer<QStandardItem> result);
/*!
\brief Signal that a request for sending tree view has to be handled by listeners (parser).
\sa onRequestTreeDataUpdate
*/
void requestTreeDataUpdate();
/*!
\brief Signal that document is updated (and has to be reparsed)
\param doc Updated document
\sa onDocumentUpdated
*/
void requestDocumentUpdated(CPlusPlus::Document::Ptr doc);
/*!
\brief Signal that parser has to reset its internal state to the current (from code manager).
*/
void requestResetCurrentState();
/*!
\brief Request to clear a cache by parser.
*/
void requestClearCache();
/*!
\brief Request to clear a full cache by parser.
*/
void requestClearCacheAll();
/*!
\brief Request to set the flat mode (without subprojects)
\param flat True to enable flat mode, false to disable
*/
void requestSetFlatMode(bool flat);
public slots:
/*!
\brief Open text editor for file \a fileName on line \a lineNumber and column \a column.
\param fileName File which has to be open
\param line Line number, 1-based
\param column Column, 1-based
*/
void gotoLocation(const QString &fileName, int line = 0, int column = 0);
/*!
\brief Open text editor for any of location in the list (correctly)
\param locations Symbol locations
\sa Manager::gotoLocations
*/
void gotoLocations(const QList<QVariant> &locations);
/*!
\brief If somebody wants to receive the latest tree info, if a parsing is enabled then
a signal \a requestTreeDataUpdate will be emitted.
\sa requestTreeDataUpdate, NavigationWidget::requestDataUpdate
*/
void onRequestTreeDataUpdate();
/*!
\brief Switch to flat mode (without subprojects)
\param flat True to enable flat mode, false to disable
*/
void setFlatMode(bool flat);
protected slots:
/*!
\brief Widget factory creates a widget, handle this situation.
\sa setState, state
*/
void onWidgetIsCreated();
/*!
\brief Widget visibility is changed
\param visibility Visibility (for just 1 navi pane widget, there might be a lot of them)
\sa setState, state
*/
void onWidgetVisibilityIsChanged(bool visibility);
/*!
\brief Reacts to the state changed signal, e.g. request currect code snapshot if needed etc.
\param state Current Manager state
\sa setState, state, stateChanged
*/
void onStateChanged(bool state);
/*!
\brief Project list is changed (navigation pane visibility might be needed to update).
*/
void onProjectListChanged();
/*!
\brief This slot should called when the code model manager state is changed for \a doc.
It will emit a signal \a documentUpdated if
\param doc Updated document.
\sa documentUpdated
*/
void onDocumentUpdated(CPlusPlus::Document::Ptr doc);
/*!
\brief Progress manager started a task. Do what is needed if it is a parse task.
\param type Task index, should be CppTools::Constants::TASK_INDEX for us
\sa CppTools::Constants::TASK_INDEX
*/
void onTaskStarted(const QString &type);
/*!
\brief Progress manager finished all task with specified type.
Do what is needed if it is a parse task.
\param type Task index, should be CppTools::Constants::TASK_INDEX for us
\sa CppTools::Constants::TASK_INDEX
*/
void onAllTasksFinished(const QString &type);
/*!
\brief New tree data update (has to be sent to a tree view).
\param result Item with the current tree
*/
void onTreeDataUpdate(QSharedPointer<QStandardItem> result);
protected:
//! Perform an initialization
void initialize();
/*!
\brief Get internal Manager state. If it is disabled, signals about parsing request has not
to be emitted at all, if enabled - do parsing in the background even if navi pane
is not visible.
\return true if Manager is enabled, false otherwise
\sa setState, stateChanged
*/
inline bool state() const;
/*!
\brief Set internal Manager state.
\param state true if Manager has to be enabled, false otherwise
\sa state, stateChanged
*/
void setState(bool state);
private:
......
......@@ -49,8 +49,10 @@ namespace Internal {
///////////////////////////////// NavigationWidgetPrivate //////////////////////////////////
/*!
\struct NavigationWidgetPrivate
\brief Internal data structures / methods for NavigationWidget
\class NavigationWidgetPrivate
The NavigationWidgetPrivate class provides internal data structures and
methods for NavigationWidget.
*/
class NavigationWidgetPrivate
......@@ -70,6 +72,47 @@ public:
///////////////////////////////// NavigationWidget //////////////////////////////////
/*!
\class NavigationWidget
The NavigationWidget class is a widget for the class view tree.
*/
/*!
\fn void NavigationWidget::visibilityChanged(bool visibility)
Emits a signal when the widget visibility is changed. \a visibility returns
true if plugin becames visible, otherwise it returns false.
*/
/*!
\fn void NavigationWidget::requestGotoLocation(const QString &name,
int line,
int column)
Emits a signal that requests to open the file with \a name at \a line
and \a column.
\sa Manager::gotoLocation
*/
/*!
\fn void NavigationWidget::requestGotoLocations(const QList<QVariant> &locations)
Emits a signal to request to go to any of the Symbol \a locations in the
list.
\sa Manager::gotoLocations
*/
/*!
\fn void NavigationWidget::requestTreeDataUpdate()
Emits a signal that the widget wants to receive the latest tree info.
\sa Manager::onRequestTreeDataUpdate
*/
NavigationWidget::NavigationWidget(QWidget *parent) :
QWidget(parent),
......@@ -128,6 +171,14 @@ void NavigationWidget::showEvent(QShowEvent *event)
QWidget::showEvent(event);
}
/*!
Creates QToolbuttons for the Navigation Pane widget.
Returns the list of created QToolButtons.
\sa NavigationWidgetFactory::createWidget
*/
QList<QToolButton *> NavigationWidget::createToolButtons()
{
QList<QToolButton *> list;
......@@ -154,6 +205,10 @@ QList<QToolButton *> NavigationWidget::createToolButtons()
return list;
}
/*!
Returns flat mode state.
*/
bool NavigationWidget::flatMode() const
{
QTC_ASSERT(d->fullProjectsModeButton, return false);
......@@ -162,6 +217,10 @@ bool NavigationWidget::flatMode() const
return !d->fullProjectsModeButton->isChecked();
}
/*!
Sets the flat mode state to \a flatMode.
*/
void NavigationWidget::setFlatMode(bool flatMode)
{
QTC_ASSERT(d->fullProjectsModeButton, return);
......@@ -170,12 +229,21 @@ void NavigationWidget::setFlatMode(bool flatMode)
d->fullProjectsModeButton->setChecked(!flatMode);
}
/*!
Full projects mode button has been toggled. \a state holds the full
projects mode.
*/
void NavigationWidget::onFullProjectsModeToggled(bool state)
{
// button is 'full projects mode' - so it has to be inverted
Manager::instance()->setFlatMode(!state);
}
/*!
Activates the item with the \a index in the tree view.
*/
void NavigationWidget::onItemActivated(const QModelIndex &index)
{
if (!index.isValid())
......@@ -186,6 +254,11 @@ void NavigationWidget::onItemActivated(const QModelIndex &index)
emit requestGotoLocations(list);
}
/*!
Receives new data for the tree. \a result is a pointer to the Class View
model root item. The method does nothing if null is passed.
*/
void NavigationWidget::onDataUpdate(QSharedPointer<QStandardItem> result)
{
if (result.isNull())
......@@ -213,6 +286,11 @@ void NavigationWidget::onDataUpdate(QSharedPointer<QStandardItem> result)
<< "TreeView is updated in" << timer.elapsed() << "msecs";
}
/*!
Fetches data for expanded items to make sure that the content will exist.
\a item and \a target do nothing if null is passed.
*/
void NavigationWidget::fetchExpandedItems(QStandardItem *item, const QStandardItem *target) const
{
if (!item || !target)
......
......@@ -42,11 +42,6 @@ namespace Internal {
class NavigationWidgetPrivate;
/*!
\class NavigationWidget
\brief A widget for the class view tree
*/
class NavigationWidget : public QWidget
{
Q_OBJECT
......@@ -55,79 +50,29 @@ public:
explicit NavigationWidget(QWidget *parent = 0);
~NavigationWidget();
/*!
\brief Create QToolbuttons for Navigation Pane Widget
\return List with created QToolButtons
\sa NavigationWidgetFactory::createWidget
*/
QList<QToolButton *> createToolButtons();
/*!
\brief Get flat mode state
\return Flat mode state