Instead, switch to edit mode, show sidebar, scroll to project,
and show a tooltip next to the project.
The tooltip is somewhat easy to miss, but this is a clear improvement
in most cases.
Change-Id: Icd27f76e7d434f33e731b6fd56473ff913986a89
Task-number: QTCREATORBUG-8422
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
On each resize event the treeview iterated over all rows to get the
maximum width of them. That involves text layout and is very slow
with bigger trees.
So cache the size hint for the column and connect to all signals
that can potentially change the size hint.
Change-Id: I83a13982848df56515fed8225ced336096370546
Task-number: QTCREATORBUG-8075
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
So far the code only saved the path of the expanded nodes, which always
created problems for nodes that had the same path. This broke for the
virtual folders SOURCES, FORMS, HEADERS recently because they have
nowadys the same path. They used to have different paths.
This new code saves both the path and the displayname and compares that,
this fixes the expanding for those folders.
Obviously there is no sure way to indetify the right nodes to expand,
and this isn't backwards compatible.
Change-Id: I9854f90ca942f92420970765b0cc19138ad5d63d
Task-number: QTCREATORBUG-14304
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Instead of searching the whole tree for the current node,
only check the newly added files/folders.
Change-Id: I015a955815223767367c4cad476d0620f69abd71
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Mostly done using the following ruby script:
Dir.glob('**/*.cpp').each { |file|
next if file =~ %r{src/shared/qbs|/qmljs/}
s = File.read(file)
s.scan(/^using namespace (.*);$/) {
ns = $1
t = s.gsub(/^(.*)\b#{ns}::((?!Const)[A-Z])/) { |m|
before = $1
char = $2
if before =~ /"|\/\/|\\|using|SIGNAL|SLOT|Q_/
m
else
before + char
end
}
if t != s
puts file
File.open(file, 'w').write(t)
end
}
}
Change-Id: I1d05d48b23f44e3d589cc2a790803714786b57d2
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
Opening the context menu would move the focus, which then would
reset the current node/project to come from the DocumentManager.
So move the context menu handling code to the ProjectTree class
and ensure that while it is open, the corresponding ProjectTree
is considered the focused widget.
Task-number: QTCREATORBUG-13684
Change-Id: I8b3dc410f5f5bc5e9a2dd663421b22cf3f147190
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
On adding nodes to the node structure, both the FlatModel::nodesAdded
and ProjectTree::nodesAdded code is run. We need to ensure that
FlatModel::nodesAdded is run first though, as we need that information
in the ProjectTree.
Task-number: QTCREATORBUG-13667
Change-Id: I0b4b41ed6036cfdef668c16689d25611633ab0c9
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Centralize the handling inside a new class ProjectTree.
React to moving focus and remove most special handling.
This properly fixes the linked task.
Task-number: QTCREATORBUG-13357
Change-Id: I6b06aa32b1e4305ec8a6d432857b302585d8734b
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
I'm not 100% sure that this fixes the crash from QTCREATORBUG-12876.
But it's clearly wrong to only check for removed nodes in the project
tree widget and thus only if a tree widget is shown.
Task-number: QTCREATORBUG-12876
Change-Id: Iaaafcef0fe408e8bc2f4d2b61133f4419a612d57
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
The labels need to be polished so that they get the right palette,
and the icon needs to be switched from light to dark.
Change-Id: I3e37947e741c3d92f3c1ac3bb02e631aa7803f59
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
If there are multiple file nodes for the same file, check in how many
project views they are expanded and select the one that is expanded
in most.
Task-number: QTCREATORBUG-12595
Change-Id: Ic4a640a80b8244b30b8dec62248aebeeaf9216cf
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
If the path() set on that node can not be opened, then the editor
is 0 and thus there is a crash.
Task-number: QBS-367
Change-Id: I8887a3bb84e19292d97357df49ef988d74bf6739
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This change
* Removes IMode::type, ModeManager::activateModeType, and
IEditor::preferredModeType, and adds IEditor::isDesignModePreferred
instead
* Adapts the mode switching code in EditorManager to handle multiple
windows, for example switching to edit mode should only happen if
the editor/view is in the main window. Otherwise the editor window
should be raised and focused
* Renames EditorManager::NoActivate --> DoNotChangeCurrentEditor
* Reverts the EditorManager::ModeSwitch logic to switch mode or
make the current editor visible by default, introducing
DoNotMakeVisible flag instead
* Fixes a few instances where EditorManager::ModeSwitch should have been
used
One non-trivial problem left: If you open a .ui file and switch to an
external editor window, edit mode is activated, because the current
editor no longer is a .ui file, which means that the design mode gets
deactivated.
Change-Id: I76c5c2391eb4090143b778fb103acff3a5a1ff41
Reviewed-by: David Schulz <david.schulz@digia.com>
Also allow for the path to be set. Qbs can move products from one
file to the next, so that is needed there.
Change-Id: Iebaf3be40fdb0e5e462d45b00cf46d58f985a163
Reviewed-by: hjk <hjk121@nokiamail.com>
#!/usr/bin/env ruby
Dir.glob('**/*.cpp') { |file|
# skip ast (excluding paste, astpath, and canv'ast'imer)
next if file =~ /ast[^eip]|keywords\.|qualifiers|preprocessor|names.cpp/i
s = File.read(file)
next if s.include?('qlalr')
orig = s.dup
s.gsub!(/\n *if [^\n]*{\n[^\n]*\n\s+}(\s+else if [^\n]* {\n[^\n]*\n\s+})*(\s+else {\n[^\n]*\n\s+})?\n/m) { |m|
res = $&
if res =~ /^\s*(\/\/|[A-Z_]{3,})/ # C++ comment or macro (Q_UNUSED, SDEBUG), do not touch braces
res
else
res.gsub!('} else', 'else')
res.gsub!(/\n +} *\n/m, "\n")
res.gsub(/ *{$/, '')
end
}
s.gsub!(/ *$/, '')
File.open(file, 'wb').write(s) if s != orig
}
Change-Id: I3b30ee60df0986f66c02132c65fc38a3fbb6bbdc
Reviewed-by: hjk <qthjk@ovi.com>