Files
qtcreator/project_fs/projectfilesystemwidgetplugin.cpp
2025-01-09 13:49:30 +03:00

72 lines
2.4 KiB
C++

#include "projectfilesystemwidgetplugin.h"
#include "projectfilesystemwidget.h"
#include <utils/utilsicons.h>
#include <utils/qtcsettings.h>
#include <QToolButton>
#include <QSettings>
#include <QMessageBox>
ProjectFSWidgetFactory::ProjectFSWidgetFactory() {
setDisplayName(tr("Project filesystem"));
setId("project_filesystem");
}
Core::NavigationView ProjectFSWidgetFactory::createWidget() {
Core::NavigationView view;
view.widget = new ProjectFilesystemWidget();
btn_reload = new QToolButton();
btn_reload->setIcon(Utils::Icons::RELOAD.icon());
btn_reload->setToolTip(tr("Reload tree"));
view.dockToolBarWidgets << btn_reload;
connect(btn_reload, SIGNAL(clicked()), view.widget, SLOT(projectsChanged()));
btn_filters = new QToolButton();
btn_filters->setIcon(Utils::Icons::FILTER.icon());
btn_filters->setToolTip(tr("Setup filters ..."));
view.dockToolBarWidgets << btn_filters;
connect(btn_filters, SIGNAL(clicked()), view.widget, SLOT(filterClicked()));
return view;
}
void ProjectFSWidgetFactory::saveSettings(Utils::QtcSettings * settings, int position, QWidget * widget) {
//QMessageBox::information(0, "", QString::fromLatin1(widget->metaObject()->className()));
ProjectFilesystemWidget * w = qobject_cast<ProjectFilesystemWidget * >(widget);
if (!w) return;
settings->beginGroup("ProjectFilesystem");
settings->beginWriteArray("widget");
settings->setArrayIndex(position);
settings->setValue("filters", w->currentFilters().toVariant());
settings->setValue("search", w->currentSearch());
settings->endArray();
settings->endGroup();
settings->sync();
}
void ProjectFSWidgetFactory::restoreSettings(Utils::QtcSettings * settings, int position, QWidget * widget) {
ProjectFilesystemWidget * w = qobject_cast<ProjectFilesystemWidget * >(widget);
if (!w) return;
settings->beginGroup("ProjectFilesystem");
settings->beginReadArray("widget");
settings->setArrayIndex(position);
w->setCurrentFilter(FilterDialog::Filter(settings->value("filters", FilterDialog::Filter().toVariant())));
w->setCurrentSearch(settings->value("search", QString()).toString());
settings->endArray();
settings->endGroup();
}
/*
void ProjectFSWidgetFactory::changeEvent(QEvent *e) {
switch (e->type()) {
case QEvent::LanguageChange:
setDisplayName(tr("Project filesystem"));
if (btn_reload) btn_reload->setToolTip(tr("Reload tree"));
if (btn_filters) btn_filters->setToolTip(tr("Setup filters ..."));
break;
default: break;
}
}
*/