add label.txt content to project name
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user