Merge remote-tracking branch 'origin/4.1'

Change-Id: Ia442f30f387fe9292217582260bbe79e54608810
This commit is contained in:
Orgad Shaneh
2016-08-05 11:59:28 +03:00
committed by Ulf Hermann
125 changed files with 1416 additions and 1407 deletions

View File

@@ -26,83 +26,52 @@
#pragma once
#include <coreplugin/inavigationwidgetfactory.h>
#include <utils/treemodel.h>
#include <QString>
#include <QStackedWidget>
#include <QWidget>
QT_BEGIN_NAMESPACE
class QStandardItemModel;
class QStandardItem;
class QModelIndex;
class QLabel;
QT_END_NAMESPACE
namespace Core { class IEditor; }
namespace TextEditor {
class BaseTextEditor;
class TextEditorLinkLabel;
}
namespace Utils {
class AnnotatedItemDelegate;
class FileName;
}
#include <QSet>
namespace CppEditor {
namespace Internal {
class CppEditor;
class CppEditorWidget;
class CppInclude;
class CppIncludeHierarchyModel;
class CppIncludeHierarchyTreeView;
class CppIncludeHierarchyItem;
class CppIncludeHierarchyWidget : public QWidget
class CppIncludeHierarchyModel : public Utils::TreeModel<CppIncludeHierarchyItem>
{
Q_OBJECT
public:
CppIncludeHierarchyWidget();
virtual ~CppIncludeHierarchyWidget();
typedef Utils::TreeModel<CppIncludeHierarchyItem> base_type;
void perform();
public:
CppIncludeHierarchyModel();
Qt::DropActions supportedDragActions() const override;
QStringList mimeTypes() const override;
QMimeData *mimeData(const QModelIndexList &indexes) const override;
void buildHierarchy(const QString &filePath);
QString editorFilePath() const { return m_editorFilePath; }
void setSearching(bool on);
QString toString() const;
#if WITH_TESTS
using base_type::canFetchMore;
using base_type::fetchMore;
#endif
private:
void onItemActivated(const QModelIndex &index);
void editorsClosed(QList<Core::IEditor *> editors);
void showNoIncludeHierarchyLabel();
void showIncludeHierarchy();
CppEditorWidget *m_cppEditor;
CppIncludeHierarchyTreeView *m_treeView;
CppIncludeHierarchyModel *m_model;
Utils::AnnotatedItemDelegate *m_delegate;
TextEditor::TextEditorLinkLabel *m_inspectedFile;
QLabel *m_includeHierarchyInfoLabel;
TextEditor::BaseTextEditor *m_editor;
};
// @todo: Pretty much the same design as the OutlineWidgetStack. Maybe we can generalize the
// outline factory so that it works for different widgets that support the same editor.
class CppIncludeHierarchyStackedWidget : public QStackedWidget
{
Q_OBJECT
public:
CppIncludeHierarchyStackedWidget(QWidget *parent = 0);
virtual ~CppIncludeHierarchyStackedWidget();
private:
CppIncludeHierarchyWidget *m_typeHiearchyWidgetInstance;
friend class CppIncludeHierarchyItem;
QString m_editorFilePath;
QSet<QString> m_seen;
bool m_searching = false;
};
class CppIncludeHierarchyFactory : public Core::INavigationWidgetFactory
{
Q_OBJECT
public:
CppIncludeHierarchyFactory();
Core::NavigationView createWidget();
Core::NavigationView createWidget() override;
};
} // namespace Internal