diff options
author | Denis Mingulov <denis.mingulov@gmail.com> | 2010-07-16 11:18:30 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@nokia.com> | 2010-07-16 11:24:02 +0200 |
commit | 5af6f15f7c6897b65e494838866e01f984093cb7 (patch) | |
tree | ebe94fee6c0126196b2021c89d0554a74b53a2cd /src/plugins | |
parent | ae8192ad5a88384962f105bd5e18a50784d3edf0 (diff) | |
download | qt-creator-5af6f15f7c6897b65e494838866e01f984093cb7.tar.gz |
Utils::NavigationTreeView is created - as a base class for any Navigation Widget (Side Bar) tree view
Merge-request: 2167
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/classview/classviewnavigationwidget.cpp | 1 | ||||
-rw-r--r-- | src/plugins/classview/classviewnavigationwidget.ui | 18 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppoutline.cpp | 7 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppoutline.h | 3 | ||||
-rw-r--r-- | src/plugins/projectexplorer/projecttreewidget.cpp | 38 | ||||
-rw-r--r-- | src/plugins/qmljseditor/qmljsoutline.cpp | 7 | ||||
-rw-r--r-- | src/plugins/qmljseditor/qmljsoutline.h | 3 |
7 files changed, 16 insertions, 61 deletions
diff --git a/src/plugins/classview/classviewnavigationwidget.cpp b/src/plugins/classview/classviewnavigationwidget.cpp index a90a58fa82..8420284d81 100644 --- a/src/plugins/classview/classviewnavigationwidget.cpp +++ b/src/plugins/classview/classviewnavigationwidget.cpp @@ -76,7 +76,6 @@ NavigationWidget::NavigationWidget(QWidget *parent) : { d_ptr->ui = new Ui::NavigationWidget; d_ptr->ui->setupUi(this); - d_ptr->ui->treeView->setIndentation(d_ptr->ui->treeView->indentation() * 9/10); // tree model d_ptr->treeModel = new TreeItemModel(this); diff --git a/src/plugins/classview/classviewnavigationwidget.ui b/src/plugins/classview/classviewnavigationwidget.ui index d9ba960515..0b0bf55a50 100644 --- a/src/plugins/classview/classviewnavigationwidget.ui +++ b/src/plugins/classview/classviewnavigationwidget.ui @@ -21,19 +21,10 @@ <number>0</number> </property> <item> - <widget class="QTreeView" name="treeView"> - <property name="frameShape"> - <enum>QFrame::NoFrame</enum> - </property> + <widget class="Utils::NavigationTreeView" name="treeView"> <property name="editTriggers"> <set>QAbstractItemView::NoEditTriggers</set> </property> - <property name="textElideMode"> - <enum>Qt::ElideNone</enum> - </property> - <property name="uniformRowHeights"> - <bool>true</bool> - </property> <property name="headerHidden"> <bool>true</bool> </property> @@ -41,6 +32,13 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>Utils::NavigationTreeView</class> + <extends>QTreeView</extends> + <header>utils/navigationtreeview.h</header> + </customwidget> + </customwidgets> <resources/> <connections/> </ui> diff --git a/src/plugins/cppeditor/cppoutline.cpp b/src/plugins/cppeditor/cppoutline.cpp index 4e9fcfdbda..14d8b0b9e9 100644 --- a/src/plugins/cppeditor/cppoutline.cpp +++ b/src/plugins/cppeditor/cppoutline.cpp @@ -18,16 +18,11 @@ enum { }; CppOutlineTreeView::CppOutlineTreeView(QWidget *parent) : - QTreeView(parent) + Utils::NavigationTreeView(parent) { // see also QmlJSOutlineTreeView setFocusPolicy(Qt::NoFocus); - setFrameStyle(QFrame::NoFrame); - setAttribute(Qt::WA_MacShowFocusRect, false); - setUniformRowHeights(true); setHeaderHidden(true); - setTextElideMode(Qt::ElideNone); - setIndentation(20); setExpandsOnDoubleClick(false); } diff --git a/src/plugins/cppeditor/cppoutline.h b/src/plugins/cppeditor/cppoutline.h index d007b9689d..a9f2e65e0f 100644 --- a/src/plugins/cppeditor/cppoutline.h +++ b/src/plugins/cppeditor/cppoutline.h @@ -3,6 +3,7 @@ #include "cppeditor.h" +#include <utils/navigationtreeview.h> #include <texteditor/ioutlinewidget.h> #include <QtGui/QSortFilterProxyModel> @@ -11,7 +12,7 @@ namespace CppEditor { namespace Internal { -class CppOutlineTreeView : public QTreeView +class CppOutlineTreeView : public Utils::NavigationTreeView { Q_OBJECT public: diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp index 56495cf639..d6fd7a5f62 100644 --- a/src/plugins/projectexplorer/projecttreewidget.cpp +++ b/src/plugins/projectexplorer/projecttreewidget.cpp @@ -38,6 +38,7 @@ #include <coreplugin/icore.h> #include <coreplugin/editormanager/editormanager.h> #include <utils/qtcassert.h> +#include <utils/navigationtreeview.h> #include <QtCore/QDebug> #include <QtCore/QSettings> @@ -57,14 +58,12 @@ namespace { bool debug = false; } -class ProjectTreeView : public QTreeView +class ProjectTreeView : public Utils::NavigationTreeView { public: ProjectTreeView() { setEditTriggers(QAbstractItemView::EditKeyPressed); - setFrameStyle(QFrame::NoFrame); - setIndentation(indentation() * 9/10); { QHeaderView *treeHeader = header(); treeHeader->setVisible(false); @@ -72,41 +71,8 @@ public: treeHeader->setStretchLastSection(true); } setContextMenuPolicy(Qt::CustomContextMenu); - setUniformRowHeights(true); - setTextElideMode(Qt::ElideNone); // setExpandsOnDoubleClick(false); - setAttribute(Qt::WA_MacShowFocusRect, false); } - -protected: - // This is a workaround to stop Qt from redrawing the project tree every - // time the user opens or closes a menu when it has focus. Would be nicer to - // fix it in Qt. - void focusInEvent(QFocusEvent *event) - { - if (event->reason() != Qt::PopupFocusReason) - QTreeView::focusInEvent(event); - } - - void focusOutEvent(QFocusEvent *event) - { - if (event->reason() != Qt::PopupFocusReason) - QTreeView::focusOutEvent(event); - } - -#ifdef Q_WS_MAC - void keyPressEvent(QKeyEvent *event) - { - if ((event->key() == Qt::Key_Return - || event->key() == Qt::Key_Enter) - && event->modifiers() == 0 - && currentIndex().isValid()) { - emit activated(currentIndex()); - return; - } - QTreeView::keyPressEvent(event); - } -#endif }; /*! diff --git a/src/plugins/qmljseditor/qmljsoutline.cpp b/src/plugins/qmljseditor/qmljsoutline.cpp index 7831670eec..c349dfc9ed 100644 --- a/src/plugins/qmljseditor/qmljsoutline.cpp +++ b/src/plugins/qmljseditor/qmljsoutline.cpp @@ -17,16 +17,11 @@ namespace QmlJSEditor { namespace Internal { QmlJSOutlineTreeView::QmlJSOutlineTreeView(QWidget *parent) : - QTreeView(parent) + Utils::NavigationTreeView(parent) { // see also CppOutlineTreeView setFocusPolicy(Qt::NoFocus); - setFrameStyle(QFrame::NoFrame); - setAttribute(Qt::WA_MacShowFocusRect, false); - setUniformRowHeights(true); setHeaderHidden(true); - setTextElideMode(Qt::ElideNone); - setIndentation(20); setExpandsOnDoubleClick(false); } diff --git a/src/plugins/qmljseditor/qmljsoutline.h b/src/plugins/qmljseditor/qmljsoutline.h index 15221210cb..27c2e4f8d4 100644 --- a/src/plugins/qmljseditor/qmljsoutline.h +++ b/src/plugins/qmljseditor/qmljsoutline.h @@ -3,6 +3,7 @@ #include "qmljseditor.h" +#include <utils/navigationtreeview.h> #include <texteditor/ioutlinewidget.h> #include <QtGui/QTreeView> @@ -19,7 +20,7 @@ class Editor; namespace QmlJSEditor { namespace Internal { -class QmlJSOutlineTreeView : public QTreeView +class QmlJSOutlineTreeView : public Utils::NavigationTreeView { Q_OBJECT public: |