quake-tools/source/quam/project.cc

43 lines
990 B
C++
Raw Normal View History

#include "quam/project.h"
#include <QAbstractItemModel>
#include <QErrorMessage>
#include <QMdiArea>
#include <QSortFilterProxyModel>
2019-10-09 16:06:14 -07:00
Project::Project(std::istream &st, QErrorMessage *errors, QMdiArea *parent) :
QMdiSubWindow{parent},
Ui::Project{},
2019-10-09 16:06:14 -07:00
m_arc{new Arc::Arc{st, this}},
m_root{&m_arc->root},
m_lastDir{nullptr},
2019-10-04 10:37:34 -07:00
m_errors{errors},
m_model{new Arc::Model{this}},
2019-10-04 10:37:34 -07:00
m_sorter{new QSortFilterProxyModel{this}}
{
2019-10-09 16:06:14 -07:00
auto widget = new QWidget{this};
setupUi(widget);
setWidget(widget);
setAttribute(Qt::WA_DeleteOnClose);
showMaximized();
2019-10-04 10:37:34 -07:00
2019-10-08 20:43:35 -07:00
connect(m_model, &Arc::Model::dirChanged,
this, &Project::dirChanged);
connect(tableView, &QAbstractItemView::doubleClicked,
2019-10-09 16:06:14 -07:00
m_model, &Arc::Model::setDirToIndex);
2019-10-04 10:37:34 -07:00
m_sorter->setSourceModel(m_model);
tableView->setModel(m_sorter);
2019-10-09 16:06:14 -07:00
m_model->setDir(m_root);
}
Project::~Project() {
}
2019-10-09 16:06:14 -07:00
void Project::dirChanged(Arc::Dir *from, Arc::Dir *to) {
m_lastDir = from;
tableView->resizeColumnsToContents();
}
// EOF