first try

This commit is contained in:
2025-01-09 13:49:30 +03:00
parent 8ef5bef4b7
commit 62ec870192
3 changed files with 19 additions and 19 deletions

View File

@@ -4,7 +4,6 @@
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/fileutils.h> #include <coreplugin/fileutils.h>
#include <coreplugin/navigationwidget.h> #include <coreplugin/navigationwidget.h>
#include <coreplugin/fileiconprovider.h>
#include <coreplugin/actionmanager/actioncontainer.h> #include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/editormanager/ieditor.h> #include <coreplugin/editormanager/ieditor.h>
@@ -17,10 +16,11 @@
#include <projectexplorer/project.h> #include <projectexplorer/project.h>
#include <projectexplorer/projectnodes.h> #include <projectexplorer/projectnodes.h>
#include <projectexplorer/buildmanager.h> #include <projectexplorer/buildmanager.h>
#include <projectexplorer/session.h> #include <projectexplorer/projectmanager.h>
#include <projectexplorer/target.h> #include <projectexplorer/target.h>
#include <utils/utilsicons.h> #include <utils/utilsicons.h>
#include <utils/macroexpander.h> #include <utils/macroexpander.h>
#include <utils/fsengine/fileiconprovider.h>
#include <QApplication> #include <QApplication>
#include <QDesktopServices> #include <QDesktopServices>
#include <QMessageBox> #include <QMessageBox>
@@ -59,7 +59,7 @@ ProjectFilesystemWidget::ProjectFilesystemWidget(QWidget * parent): QWidget(pare
buttonCollapse->setIcon(Utils::Icons::COLLAPSE.icon()); buttonCollapse->setIcon(Utils::Icons::COLLAPSE.icon());
actionOpen_here->setIcon(Utils::Icons::OPENFILE.icon()); actionOpen_here->setIcon(Utils::Icons::OPENFILE.icon());
actionOpen_external->setIcon(Utils::Icons::OPENFILE.icon()); actionOpen_external->setIcon(Utils::Icons::OPENFILE.icon());
actionShow_external->setIcon(Core::FileIconProvider::icon(QFileIconProvider::Folder)); actionShow_external->setIcon(Utils::FileIconProvider::icon(QFileIconProvider::Folder));
actionCopy_name->setIcon(Utils::Icons::COPY.icon()); actionCopy_name->setIcon(Utils::Icons::COPY.icon());
actionCopy_path->setIcon(Utils::Icons::COPY.icon()); actionCopy_path->setIcon(Utils::Icons::COPY.icon());
actionBuild->setIcon(ProjectExplorer::Icons::BUILD_SMALL.icon()); actionBuild->setIcon(ProjectExplorer::Icons::BUILD_SMALL.icon());
@@ -77,23 +77,23 @@ ProjectFilesystemWidget::ProjectFilesystemWidget(QWidget * parent): QWidget(pare
this_actions << actionCopy_name << actionCopy_path; this_actions << actionCopy_name << actionCopy_path;
proj_plug = 0; proj_plug = 0;
//connect(ProjectExplorer::ProjectTree::instance(), SIGNAL(subtreeChanged(ProjectExplorer::FolderNode*)), this, SLOT(projectsChanged())); //connect(ProjectExplorer::ProjectTree::instance(), SIGNAL(subtreeChanged(ProjectExplorer::FolderNode*)), this, SLOT(projectsChanged()));
connect(ProjectExplorer::SessionManager::instance(), SIGNAL(startupProjectChanged(ProjectExplorer::Project *)), this, SLOT(startupProjectChanged())); connect(ProjectExplorer::ProjectManager::instance(), SIGNAL(startupProjectChanged(ProjectExplorer::Project *)), this, SLOT(startupProjectChanged()));
connect(ProjectExplorer::SessionManager::instance(), &ProjectExplorer::SessionManager::projectAdded, [this](ProjectExplorer::Project * p){ connect(ProjectExplorer::ProjectManager::instance(), &ProjectExplorer::ProjectManager::projectAdded, [this](ProjectExplorer::Project * p){
createProjectTree(p); createProjectTree(p);
filter(); filter();
startupProjectChanged(); startupProjectChanged();
}); });
connect(ProjectExplorer::SessionManager::instance(), &ProjectExplorer::SessionManager::projectDisplayNameChanged, [this](ProjectExplorer::Project * p){ connect(ProjectExplorer::ProjectManager::instance(), &ProjectExplorer::ProjectManager::projectDisplayNameChanged, [this](ProjectExplorer::Project * p){
projectNameChanged(); projectNameChanged();
}); });
connect(ProjectExplorer::SessionManager::instance(), &ProjectExplorer::SessionManager::projectRemoved, [this](ProjectExplorer::Project * p){ connect(ProjectExplorer::ProjectManager::instance(), &ProjectExplorer::ProjectManager::projectRemoved, [this](ProjectExplorer::Project * p){
QTreeWidgetItem * pi = projectItem(p); QTreeWidgetItem * pi = projectItem(p);
if (!pi) return; if (!pi) return;
delete pi; delete pi;
cleanMappedItems(); cleanMappedItems();
startupProjectChanged(); startupProjectChanged();
}); });
//connect(ProjectExplorer::SessionManager::instance(), SIGNAL(), this, SLOT(startupProjectChanged())); //connect(ProjectExplorer::ProjectManager::instance(), SIGNAL(), this, SLOT(startupProjectChanged()));
connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)), this, SLOT(currentFileChanged())); connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)), this, SLOT(currentFileChanged()));
connect(&fs_watcher, SIGNAL(directoryChanged(const QString &)), this, SLOT(directoryChanged(const QString &))); connect(&fs_watcher, SIGNAL(directoryChanged(const QString &)), this, SLOT(directoryChanged(const QString &)));
projectsChanged(); projectsChanged();
@@ -170,7 +170,7 @@ void ProjectFilesystemWidget::createTree(QTreeWidgetItem * ti, const QString & d
} }
QTreeWidgetItem * ni = new QTreeWidgetItem(); QTreeWidgetItem * ni = new QTreeWidgetItem();
ni->setText(0, nit); ni->setText(0, nit);
ni->setIcon(0, Core::FileIconProvider::icon(Utils::FilePath::fromString(i.absoluteFilePath()))); ni->setIcon(0, Utils::FileIconProvider::icon(Utils::FilePath::fromString(i.absoluteFilePath())));
ni->setData(0, roleFullPath, i.absoluteFilePath()); ni->setData(0, roleFullPath, i.absoluteFilePath());
ni->setData(0, roleItemType, i.isDir() ? itDir : itFile); ni->setData(0, roleItemType, i.isDir() ? itDir : itFile);
ni->setData(0, roleIsDir, i.isDir()); ni->setData(0, roleIsDir, i.isDir());
@@ -276,7 +276,7 @@ void ProjectFilesystemWidget::projectsChanged() {
tree->clear(); tree->clear();
fs_watcher.removePaths(fs_watcher.directories()); fs_watcher.removePaths(fs_watcher.directories());
QApplication::setOverrideCursor(Qt::WaitCursor); QApplication::setOverrideCursor(Qt::WaitCursor);
QList<ProjectExplorer::Project *> pl = ProjectExplorer::SessionManager::projects(); QList<ProjectExplorer::Project *> pl = ProjectExplorer::ProjectManager::projects();
for (ProjectExplorer::Project * p: pl) { for (ProjectExplorer::Project * p: pl) {
createProjectTree(p); createProjectTree(p);
} }
@@ -305,7 +305,7 @@ void ProjectFilesystemWidget::createProjectTree(void * p) {
if (logo.exists()) if (logo.exists())
ri->setIcon(0, QIcon(logo.fileName())); ri->setIcon(0, QIcon(logo.fileName()));
else else
ri->setIcon(0, Core::FileIconProvider::icon(QFileIconProvider::Folder)); ri->setIcon(0, Utils::FileIconProvider::icon(QFileIconProvider::Folder));
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);
@@ -334,7 +334,7 @@ void ProjectFilesystemWidget::currentFileChanged() {
void ProjectFilesystemWidget::startupProjectChanged() { void ProjectFilesystemWidget::startupProjectChanged() {
ProjectExplorer::Project * sp = ProjectExplorer::SessionManager::startupProject(); ProjectExplorer::Project * sp = ProjectExplorer::ProjectManager::startupProject();
QFont f(tree->font()), bf(f); QFont f(tree->font()), bf(f);
bf.setBold(true); bf.setBold(true);
for (int i = 0; i < tree->topLevelItemCount(); ++i) { for (int i = 0; i < tree->topLevelItemCount(); ++i) {
@@ -428,7 +428,7 @@ void ProjectFilesystemWidget::on_tree_customContextMenuRequested(const QPoint &
/*if (item->data(0, roleItemType).toInt() == itProject) { /*if (item->data(0, roleItemType).toInt() == itProject) {
QString proj_path = item->data(0, roleFullPath).toString(); QString proj_path = item->data(0, roleFullPath).toString();
ProjectExplorer::Project * project = Utils::findOrDefault(ProjectExplorer::SessionManager::projects(), ProjectExplorer::Project * project = Utils::findOrDefault(ProjectExplorer::ProjectManager::projects(),
[proj_path](const ProjectExplorer::Project * p) {return p->containerNode()->path() == proj_path;}); [proj_path](const ProjectExplorer::Project * p) {return p->containerNode()->path() == proj_path;});
//ProjectExplorer::ProjectTree::instance()->setCurrent //ProjectExplorer::ProjectTree::instance()->setCurrent
@@ -439,7 +439,7 @@ void ProjectFilesystemWidget::on_tree_customContextMenuRequested(const QPoint &
}*/ }*/
ProjectExplorer::Project * p = (ProjectExplorer::Project *)itemProject(item_target); ProjectExplorer::Project * p = (ProjectExplorer::Project *)itemProject(item_target);
if (p) { if (p) {
actionSet_as_startup->setVisible(p != ProjectExplorer::SessionManager::startupProject()); actionSet_as_startup->setVisible(p != ProjectExplorer::ProjectManager::startupProject());
bool can_build = !p->needsConfiguration(), can_run = false; bool can_build = !p->needsConfiguration(), can_run = false;
if (p->activeTarget()) { if (p->activeTarget()) {
can_build = can_build && p->activeTarget()->activeBuildConfiguration(); can_build = can_build && p->activeTarget()->activeBuildConfiguration();
@@ -486,7 +486,7 @@ void ProjectFilesystemWidget::on_actionShow_external_triggered() {
void ProjectFilesystemWidget::on_actionOpen_terminal_triggered() { void ProjectFilesystemWidget::on_actionOpen_terminal_triggered() {
if (projectfs_menu_target.path().isEmpty()) return; if (projectfs_menu_target.path().isEmpty()) return;
Core::FileUtils::openTerminal(Utils::FilePath::fromString(QDir(projectfs_menu_target.absoluteFilePath()).path())); Core::FileUtils::openTerminal(Utils::FilePath::fromString(QDir(projectfs_menu_target.absoluteFilePath()).path()), {});
} }
@@ -505,7 +505,7 @@ void ProjectFilesystemWidget::on_actionCopy_path_triggered() {
void ProjectFilesystemWidget::on_actionSet_as_startup_triggered() { void ProjectFilesystemWidget::on_actionSet_as_startup_triggered() {
ProjectExplorer::Project * p = (ProjectExplorer::Project *)itemProject(item_target); ProjectExplorer::Project * p = (ProjectExplorer::Project *)itemProject(item_target);
if (!p) return; if (!p) return;
ProjectExplorer::SessionManager::setStartupProject(p); ProjectExplorer::ProjectManager::setStartupProject(p);
} }
@@ -542,5 +542,5 @@ void ProjectFilesystemWidget::on_actionClose_project_triggered() {
if (!p) return; if (!p) return;
if (QMessageBox::question(0, "Project close", tr("Are you sure to close project \"%1\"?").arg(p->displayName())) != QMessageBox::Yes) if (QMessageBox::question(0, "Project close", tr("Are you sure to close project \"%1\"?").arg(p->displayName())) != QMessageBox::Yes)
return; return;
ProjectExplorer::SessionManager::removeProject(p); ProjectExplorer::ProjectManager::removeProject(p);
} }

View File

@@ -45,7 +45,7 @@ void ProjectFSWidgetFactory::saveSettings(Utils::QtcSettings * settings, int pos
} }
void ProjectFSWidgetFactory::restoreSettings(QSettings * settings, int position, QWidget * widget) { void ProjectFSWidgetFactory::restoreSettings(Utils::QtcSettings * settings, int position, QWidget * widget) {
ProjectFilesystemWidget * w = qobject_cast<ProjectFilesystemWidget * >(widget); ProjectFilesystemWidget * w = qobject_cast<ProjectFilesystemWidget * >(widget);
if (!w) return; if (!w) return;
settings->beginGroup("ProjectFilesystem"); settings->beginGroup("ProjectFilesystem");

View File

@@ -13,7 +13,7 @@ public:
Core::NavigationView createWidget() override; Core::NavigationView createWidget() override;
void saveSettings(Utils::QtcSettings * settings, int position, QWidget * widget) override; void saveSettings(Utils::QtcSettings * settings, int position, QWidget * widget) override;
void restoreSettings(QSettings * settings, int position, QWidget * widget) override; void restoreSettings(Utils::QtcSettings * settings, int position, QWidget * widget) override;
//void changeEvent(QEvent * e) override; //void changeEvent(QEvent * e) override;