Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Tobias Hunger
qt-creator
Commits
27a24174
Commit
27a24174
authored
Mar 31, 2009
by
dt
Browse files
Fix currentNode beeing invalid. The ProjecTreeWidget takes care of that.
parent
738ef0b1
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/plugins/projectexplorer/projecttreewidget.cpp
View file @
27a24174
...
...
@@ -119,6 +119,13 @@ ProjectTreeWidget::ProjectTreeWidget(QWidget *parent)
m_autoSync
(
false
)
{
m_model
=
new
FlatModel
(
m_explorer
->
session
()
->
sessionNode
(),
this
);
NodesWatcher
*
watcher
=
new
NodesWatcher
(
this
);
m_explorer
->
session
()
->
sessionNode
()
->
registerWatcher
(
watcher
);
connect
(
watcher
,
SIGNAL
(
foldersAboutToBeRemoved
(
FolderNode
*
,
const
QList
<
FolderNode
*>
&
)),
this
,
SLOT
(
foldersAboutToBeRemoved
(
FolderNode
*
,
const
QList
<
FolderNode
*>
&
)));
connect
(
watcher
,
SIGNAL
(
filesAboutToBeRemoved
(
FolderNode
*
,
const
QList
<
FileNode
*>
&
)),
this
,
SLOT
(
filesAboutToBeRemoved
(
FolderNode
*
,
const
QList
<
FileNode
*>
&
)));
m_view
=
new
ProjectTreeView
;
m_view
->
setModel
(
m_model
);
...
...
@@ -165,6 +172,29 @@ ProjectTreeWidget::ProjectTreeWidget(QWidget *parent)
setAutoSynchronization
(
true
);
}
void
ProjectTreeWidget
::
foldersAboutToBeRemoved
(
FolderNode
*
,
const
QList
<
FolderNode
*>
&
list
)
{
Node
*
n
=
m_explorer
->
currentNode
();
while
(
n
)
{
if
(
FolderNode
*
fn
=
qobject_cast
<
FolderNode
*>
(
n
))
{
if
(
list
.
contains
(
fn
))
{
m_explorer
->
setCurrentNode
(
n
->
projectNode
());
break
;
}
}
n
=
n
->
parentFolderNode
();
}
}
void
ProjectTreeWidget
::
filesAboutToBeRemoved
(
FolderNode
*
,
const
QList
<
FileNode
*>
&
list
)
{
if
(
FileNode
*
fileNode
=
qobject_cast
<
FileNode
*>
(
m_explorer
->
currentNode
()))
{
if
(
list
.
contains
(
fileNode
))
{
m_explorer
->
setCurrentNode
(
fileNode
->
projectNode
());
}
}
}
QToolButton
*
ProjectTreeWidget
::
toggleSync
()
{
return
m_toggleSync
;
...
...
src/plugins/projectexplorer/projecttreewidget.h
View file @
27a24174
...
...
@@ -40,6 +40,8 @@ namespace ProjectExplorer {
class
ProjectExplorerPlugin
;
class
Project
;
class
Node
;
class
FolderNode
;
class
FileNode
;
namespace
Internal
{
...
...
@@ -73,6 +75,9 @@ private slots:
void
startupProjectChanged
(
ProjectExplorer
::
Project
*
project
);
void
initView
();
void
foldersAboutToBeRemoved
(
FolderNode
*
,
const
QList
<
FolderNode
*>
&
);
void
filesAboutToBeRemoved
(
FolderNode
*
,
const
QList
<
FileNode
*>
&
);
private:
ProjectExplorerPlugin
*
m_explorer
;
QTreeView
*
m_view
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment