More UI work
This commit is contained in:
parent
2deadc6cfb
commit
c6713d0876
15 changed files with 352 additions and 75 deletions
|
|
@ -8,11 +8,13 @@ Numberator::Numberator(QWidget *parent)
|
|||
: QMainWindow(parent)
|
||||
, ui(new Ui::Numberator)
|
||||
, tagsDockUi(new Ui::TagListDock)
|
||||
, tagEditUi(new Ui::TagEditDialog)
|
||||
, settings("jaseg.de", "Numberator")
|
||||
, loadImageDialog(this)
|
||||
, proj()
|
||||
, tagListModel(proj)
|
||||
, tagPropTableModel(proj)
|
||||
, tagPropTableModel(&proj)
|
||||
, dialogTagPropTableModel(nullptr, false)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
|
|
@ -22,16 +24,75 @@ Numberator::Numberator(QWidget *parent)
|
|||
QMessageBox::critical(this, errorName, description);
|
||||
});
|
||||
|
||||
QDialog *tagEditDialog = new QDialog(this);
|
||||
tagEditUi->setupUi(tagEditDialog);
|
||||
tagEditUi->tagPropertiesView->setModel(&dialogTagPropTableModel);
|
||||
connect(tagEditUi->buttonBox, &QDialogButtonBox::accepted, [=]() {
|
||||
Tag newTag(m_tagBeingEdited);
|
||||
newTag.name = tagEditUi->tagNameEdit->text();
|
||||
newTag.metadata = dialogTagPropTableModel.metadata();
|
||||
proj.updateTag(newTag);
|
||||
tagEditDialog->hide();
|
||||
});
|
||||
|
||||
connect(tagEditUi->buttonBox, &QDialogButtonBox::rejected, tagEditDialog, &QDialog::hide);
|
||||
|
||||
connect(ui->graphicsView->scene(), &TagScene::selectionChanged, [=](){
|
||||
auto dbg = qDebug() << "tag view selection changed";
|
||||
auto items = ui->graphicsView->scene()->selectedItems();
|
||||
if (items.isEmpty()) {
|
||||
dbg << "<empty>";
|
||||
return;
|
||||
}
|
||||
QGraphicsItem *first = items.first();
|
||||
TagItem *it = qgraphicsitem_cast<TagItem *>(first);
|
||||
dbg << first << it << first->type() << TagItem::Type;
|
||||
if (!it) {
|
||||
dbg << "<no tagitem>";
|
||||
return;
|
||||
}
|
||||
dbg << it->tag().id << it->tag().name;
|
||||
QSignalBlocker(tagsDockUi->tagList->selectionModel());
|
||||
tagsDockUi->tagList->selectionModel()->select(tagListModel.indexOf(it->tag()), QItemSelectionModel::ClearAndSelect);
|
||||
tagPropTableModel.showTag(it->tag());
|
||||
});
|
||||
|
||||
/*
|
||||
m_tagBeingEdited = it->tag();
|
||||
tagEditUi->tagNameEdit->setText(m_tagBeingEdited.name);
|
||||
tagEditUi->tagIdLabel->setText(QString::number(m_tagBeingEdited.id));
|
||||
tagEditUi->tagLocationLabel->setText(m_tagBeingEdited.humanReadableAnchor());
|
||||
dialogTagPropTableModel.showTag(m_tagBeingEdited);
|
||||
*/
|
||||
|
||||
QDockWidget *dock = new QDockWidget(this);
|
||||
tagsDockUi->setupUi(dock);
|
||||
addDockWidget(Qt::LeftDockWidgetArea, dock);
|
||||
tagsDockUi->tagList->setModel(&tagListModel);
|
||||
qDebug() << "connecting up model" << tagsDockUi->tagList->selectionModel();
|
||||
connect(tagsDockUi->tagList->selectionModel(), &QItemSelectionModel::selectionChanged,
|
||||
[=](const QItemSelection &selected, const QItemSelection &deselected) {
|
||||
Q_UNUSED(deselected);
|
||||
auto dbg = qDebug() << "tagList...selectionChanged";
|
||||
if (selected.indexes().isEmpty()) {
|
||||
dbg << "<empty>";
|
||||
ui->graphicsView->scene()->clearSelection();
|
||||
tagPropTableModel.showTag(Tag());
|
||||
|
||||
} else {
|
||||
Tag tag(tagListModel.getTag(selected.indexes().first()));
|
||||
qDebug() << tag.id << tag.name;
|
||||
tagPropTableModel.showTag(tag);
|
||||
QSignalBlocker(ui->graphicsView->scene());
|
||||
ui->graphicsView->scene()->selectTag(tag);
|
||||
}
|
||||
});
|
||||
|
||||
ui->menuView->addAction(dock->toggleViewAction());
|
||||
connect(ui->actionReload_Image, &QAction::triggered,
|
||||
&proj, &SQLiteSaveFile::reloadImageFromDisk);
|
||||
connect(ui->actionReload_Image, &QAction::triggered, &proj, &SQLiteSaveFile::reloadImageFromDisk);
|
||||
|
||||
ui->graphicsView->setProject(&proj);
|
||||
|
||||
tagsDockUi->tagList->setModel(&tagListModel);
|
||||
tagsDockUi->propertyTable->setModel(&tagPropTableModel);
|
||||
|
||||
loadImageDialog.setWindowModality(Qt::ApplicationModal);
|
||||
|
|
@ -80,12 +141,6 @@ Numberator::Numberator(QWidget *parent)
|
|||
});
|
||||
connect(ui->actionAbout, &QAction::triggered, &aboutDialog, &AboutDialog::open);
|
||||
|
||||
connect(tagsDockUi->tagList->selectionModel(), &QItemSelectionModel::selectionChanged,
|
||||
[=](const QItemSelection &selected, const QItemSelection &deselected) {
|
||||
Q_UNUSED(deselected);
|
||||
tagPropTableModel.showTag(tagListModel.getTag(selected.indexes().first()));
|
||||
});
|
||||
|
||||
connect(ui->actionZoom_to_fit, &QAction::triggered, ui->graphicsView, &TagView::zoomToFit);
|
||||
connect(ui->actionZoom_in, &QAction::triggered, ui->graphicsView, &TagView::zoomIn);
|
||||
connect(ui->actionZoom_out, &QAction::triggered, ui->graphicsView, &TagView::zoomOut);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue