diff --git a/project_fs/ProjectFilesystemPlugin.json.in b/project_fs/ProjectFilesystemPlugin.json.in index a0391b8..b690a1f 100644 --- a/project_fs/ProjectFilesystemPlugin.json.in +++ b/project_fs/ProjectFilesystemPlugin.json.in @@ -1,7 +1,7 @@ { "Id": "projectfilesystemplugin", "Name" : "ProjectFilesystemPlugin", - "Version" : "2.0.0", + "Version" : "3.0.0", "CompatVersion" : "${IDE_VERSION_COMPAT}", "VendorId" : "peri4", "Vendor" : "Peri4", diff --git a/project_fs/projectfilesystemwidget.cpp b/project_fs/projectfilesystemwidget.cpp index 0fe006a..c38e38a 100644 --- a/project_fs/projectfilesystemwidget.cpp +++ b/project_fs/projectfilesystemwidget.cpp @@ -40,6 +40,15 @@ const int roleFullPath = Qt::UserRole; const int roleItemType = Qt::UserRole + 1; const int roleIsDir = Qt::UserRole + 2; const int roleProject = Qt::UserRole + 3; +const int roleLabel = Qt::UserRole + 4; + + +void setItemProjectName(ProjectExplorer::Project * pr, QTreeWidgetItem * item) { + if (!pr || !item) return; + QString dn = pr->displayName(), l = item->data(0, roleLabel).toString(); + if (!l.isEmpty()) dn += " (" + l + ")"; + item->setText(0, dn); +} QAction * newSeparator() { @@ -48,6 +57,7 @@ QAction * newSeparator() { return sep; } + ProjectFilesystemWidget::ProjectFilesystemWidget(QWidget * parent): QWidget(parent) { setupUi(this); item_target = nullptr; @@ -146,7 +156,7 @@ void ProjectFilesystemWidget::projectNameChanged() { for (int i = 0; i < tree->topLevelItemCount(); ++i) { ProjectExplorer::Project * p = (ProjectExplorer::Project *)itemProject(tree->topLevelItem(i)); if (!p) continue; - tree->topLevelItem(i)->setText(0, p->displayName()); + setItemProjectName(p, tree->topLevelItem(i)); } } @@ -300,16 +310,22 @@ void ProjectFilesystemWidget::createProjectTree(void * p) { ProjectExplorer::Project * pr = (ProjectExplorer::Project *)p; QTreeWidgetItem * ri = new QTreeWidgetItem(); QString dir = pr->projectDirectory().toString(); - ri->setText(0, pr->displayName()); QFile logo(dir + "/logo.png"); if (logo.exists()) ri->setIcon(0, QIcon(logo.fileName())); else ri->setIcon(0, Utils::FileIconProvider::icon(QFileIconProvider::Folder)); + QFile label(dir + "/label.txt"); + if (label.exists()) { + label.open(QIODevice::ReadOnly); + ri->setData(0, roleLabel, QString::fromUtf8(label.readAll()).trimmed()); + } else + ri->setData(0, roleLabel, QString()); ri->setData(0, roleProject, (qulonglong)pr); ri->setData(0, roleFullPath, dir); ri->setData(0, roleIsDir, true); ri->setData(0, roleItemType, itProject); + setItemProjectName(pr, ri); createTree(ri, dir); tree->addTopLevelItem(ri); }