mirror of https://github.com/buggins/dlangide.git
project items reading is working:
This commit is contained in:
parent
72dfdb74b8
commit
8552d03305
|
@ -2,6 +2,7 @@ module dlangide.ui.wspanel;
|
||||||
|
|
||||||
import dlangui.all;
|
import dlangui.all;
|
||||||
import dlangide.workspace.workspace;
|
import dlangide.workspace.workspace;
|
||||||
|
import dlangide.workspace.project;
|
||||||
|
|
||||||
class WorkspacePanel : VerticalLayout {
|
class WorkspacePanel : VerticalLayout {
|
||||||
protected Workspace _workspace;
|
protected Workspace _workspace;
|
||||||
|
@ -21,6 +22,20 @@ class WorkspacePanel : VerticalLayout {
|
||||||
return _workspace;
|
return _workspace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addProjectItems(TreeItem root, ProjectItem items) {
|
||||||
|
for (int i = 0; i < items.childCount; i++) {
|
||||||
|
ProjectItem child = items.child(i);
|
||||||
|
if (child.isFolder) {
|
||||||
|
TreeItem p = root.newChild(child.filename, child.name, "folder");
|
||||||
|
p.objectParam = child;
|
||||||
|
addProjectItems(p, child);
|
||||||
|
} else {
|
||||||
|
TreeItem p = root.newChild(child.filename, child.name, "text-plain");
|
||||||
|
p.objectParam = child;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@property void workspace(Workspace w) {
|
@property void workspace(Workspace w) {
|
||||||
_workspace = w;
|
_workspace = w;
|
||||||
_tree.requestLayout();
|
_tree.requestLayout();
|
||||||
|
@ -29,6 +44,7 @@ class WorkspacePanel : VerticalLayout {
|
||||||
TreeItem root = _tree.items.newChild(w.filename, w.name, "project-development");
|
TreeItem root = _tree.items.newChild(w.filename, w.name, "project-development");
|
||||||
foreach(project; w.projects) {
|
foreach(project; w.projects) {
|
||||||
TreeItem p = root.newChild(project.filename, project.name, "project-open");
|
TreeItem p = root.newChild(project.filename, project.name, "project-open");
|
||||||
|
addProjectItems(p, project.items);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_tree.items.newChild("none", "New workspace"d, "project-development");
|
_tree.items.newChild("none", "New workspace"d, "project-development");
|
||||||
|
|
|
@ -66,7 +66,7 @@ class ProjectFolder : ProjectItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
@property override bool isFolder() {
|
@property override bool isFolder() {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
@property override int childCount() {
|
@property override int childCount() {
|
||||||
return _children.count;
|
return _children.count;
|
||||||
|
@ -78,13 +78,14 @@ class ProjectFolder : ProjectItem {
|
||||||
void addChild(ProjectItem item) {
|
void addChild(ProjectItem item) {
|
||||||
_children.add(item);
|
_children.add(item);
|
||||||
item._parent = this;
|
item._parent = this;
|
||||||
item._project = this;
|
item._project = _project;
|
||||||
}
|
}
|
||||||
bool loadDir(string path) {
|
bool loadDir(string path) {
|
||||||
string src = relativeToAbsolutePath(path);
|
string src = relativeToAbsolutePath(path);
|
||||||
if (isDir(src) && exists(src)) {
|
if (exists(src) && isDir(src)) {
|
||||||
ProjectFolder dir = new ProjectFolder(src);
|
ProjectFolder dir = new ProjectFolder(src);
|
||||||
addChild(dir);
|
addChild(dir);
|
||||||
|
Log.d(" added project folder ", src);
|
||||||
dir.loadItems();
|
dir.loadItems();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -92,9 +93,10 @@ class ProjectFolder : ProjectItem {
|
||||||
}
|
}
|
||||||
bool loadFile(string path) {
|
bool loadFile(string path) {
|
||||||
string src = relativeToAbsolutePath(path);
|
string src = relativeToAbsolutePath(path);
|
||||||
if (isFile(src) && exists(src)) {
|
if (exists(src) && isFile(src)) {
|
||||||
ProjectSourceFile f = new ProjectSourceFile(src);
|
ProjectSourceFile f = new ProjectSourceFile(src);
|
||||||
addChild(f);
|
addChild(f);
|
||||||
|
Log.d(" added project file ", src);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -196,6 +198,10 @@ class Project : WorkspaceItem {
|
||||||
return buildNormalizedPath(_dir, path);
|
return buildNormalizedPath(_dir, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@property ProjectFolder items() {
|
||||||
|
return _items;
|
||||||
|
}
|
||||||
|
|
||||||
@property Workspace workspace() {
|
@property Workspace workspace() {
|
||||||
return _workspace;
|
return _workspace;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue