add label.txt content to project name

This commit is contained in:
2025-09-30 14:02:32 +03:00
parent ea1547bb70
commit 10afcc9045
2 changed files with 19 additions and 3 deletions

View File

@@ -1,7 +1,7 @@
{ {
"Id": "projectfilesystemplugin", "Id": "projectfilesystemplugin",
"Name" : "ProjectFilesystemPlugin", "Name" : "ProjectFilesystemPlugin",
"Version" : "2.0.0", "Version" : "3.0.0",
"CompatVersion" : "${IDE_VERSION_COMPAT}", "CompatVersion" : "${IDE_VERSION_COMPAT}",
"VendorId" : "peri4", "VendorId" : "peri4",
"Vendor" : "Peri4", "Vendor" : "Peri4",

View File

@@ -40,6 +40,15 @@ const int roleFullPath = Qt::UserRole;
const int roleItemType = Qt::UserRole + 1; const int roleItemType = Qt::UserRole + 1;
const int roleIsDir = Qt::UserRole + 2; const int roleIsDir = Qt::UserRole + 2;
const int roleProject = Qt::UserRole + 3; 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() { QAction * newSeparator() {
@@ -48,6 +57,7 @@ QAction * newSeparator() {
return sep; return sep;
} }
ProjectFilesystemWidget::ProjectFilesystemWidget(QWidget * parent): QWidget(parent) { ProjectFilesystemWidget::ProjectFilesystemWidget(QWidget * parent): QWidget(parent) {
setupUi(this); setupUi(this);
item_target = nullptr; item_target = nullptr;
@@ -146,7 +156,7 @@ void ProjectFilesystemWidget::projectNameChanged() {
for (int i = 0; i < tree->topLevelItemCount(); ++i) { for (int i = 0; i < tree->topLevelItemCount(); ++i) {
ProjectExplorer::Project * p = (ProjectExplorer::Project *)itemProject(tree->topLevelItem(i)); ProjectExplorer::Project * p = (ProjectExplorer::Project *)itemProject(tree->topLevelItem(i));
if (!p) continue; 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; ProjectExplorer::Project * pr = (ProjectExplorer::Project *)p;
QTreeWidgetItem * ri = new QTreeWidgetItem(); QTreeWidgetItem * ri = new QTreeWidgetItem();
QString dir = pr->projectDirectory().toString(); QString dir = pr->projectDirectory().toString();
ri->setText(0, pr->displayName());
QFile logo(dir + "/logo.png"); QFile logo(dir + "/logo.png");
if (logo.exists()) if (logo.exists())
ri->setIcon(0, QIcon(logo.fileName())); ri->setIcon(0, QIcon(logo.fileName()));
else else
ri->setIcon(0, Utils::FileIconProvider::icon(QFileIconProvider::Folder)); 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, roleProject, (qulonglong)pr);
ri->setData(0, roleFullPath, dir); ri->setData(0, roleFullPath, dir);
ri->setData(0, roleIsDir, true); ri->setData(0, roleIsDir, true);
ri->setData(0, roleItemType, itProject); ri->setData(0, roleItemType, itProject);
setItemProjectName(pr, ri);
createTree(ri, dir); createTree(ri, dir);
tree->addTopLevelItem(ri); tree->addTopLevelItem(ri);
} }