17 #include "pegbaralignmentdialog.h"
18 #include "ui_pegbaralignmentdialog.h"
20 #include <QListWidget>
21 #include <QListWidgetItem>
22 #include <QMessageBox>
23 #include "layermanager.h"
24 #include "selectionmanager.h"
26 PegBarAlignmentDialog::PegBarAlignmentDialog(
Editor *editor,
QWidget *parent) :
36 connect(mEditor->layers(), &LayerManager::layerCountChanged,
this, &PegBarAlignmentDialog::updatePegRegLayers);
37 connect(mEditor->select(), &SelectionManager::selectionChanged,
this, &PegBarAlignmentDialog::updatePegRegDialog);
38 connect(mEditor, &Editor::currentFrameChanged,
this, &PegBarAlignmentDialog::updatePegRegDialog);
39 connect(mEditor->layers(), &LayerManager::currentLayerChanged,
this, &PegBarAlignmentDialog::updatePegRegDialog);
41 ui->btnAlign->setEnabled(
false);
45 PegBarAlignmentDialog::~PegBarAlignmentDialog()
50 void PegBarAlignmentDialog::setLayerList(
QStringList layerList)
52 ui->lwLayers->clear();
53 mLayernames = layerList;
54 for (
int i = 0; i < mLayernames.
count(); i++)
56 ui->lwLayers->addItem(mLayernames.
at(i));
63 selectedLayers.
clear();
64 for (
int i = 0; i < ui->lwLayers->count(); i++)
66 if (ui->lwLayers->item(i)->isSelected())
67 selectedLayers.
append(ui->lwLayers->item(i)->text());
69 return selectedLayers;
72 void PegBarAlignmentDialog::updateRefKeyLabelText()
74 ui->labRefKey->setText(QStringLiteral(
"%1 - %2").arg(mRefLayer).arg(mRefkey));
77 void PegBarAlignmentDialog::setAreaSelected(
bool b)
83 void PegBarAlignmentDialog::setReferenceSelected(
bool b)
85 mReferenceSelected = b;
89 void PegBarAlignmentDialog::setLayerSelected(
bool b)
95 void PegBarAlignmentDialog::updatePegRegLayers()
98 for (
int i = 0; i < mEditor->layers()->count(); i++)
100 if (mEditor->layers()->getLayer(i)->type() == Layer::BITMAP)
102 bitmaplayers.
append(mEditor->layers()->getLayer(i)->name());
105 setLayerList(bitmaplayers);
108 void PegBarAlignmentDialog::updatePegRegDialog()
111 setAreaSelected(mEditor->select()->somethingSelected());
113 const Layer* currentLayer = mEditor->layers()->currentLayer();
115 setRefLayer(currentLayer->name());
116 setRefKey(mEditor->currentFrame());
118 bool isReferenceSelected = (currentLayer->type() == Layer::BITMAP &&
119 currentLayer->keyExists(mEditor->currentFrame()));
120 setReferenceSelected(isReferenceSelected);
127 setLayerSelected(
false);
131 setRefLayer(currentLayer->name());
132 setRefKey(mEditor->currentFrame());
133 setLayerSelected(
true);
136 setBtnAlignEnabled();
139 void PegBarAlignmentDialog::alignPegs()
145 tr(
"No layers selected!",
"PegBar Dialog error message"),
154 result.description(),
161 void PegBarAlignmentDialog::setBtnAlignEnabled()
163 if (mAreaSelected && mReferenceSelected && mLayerSelected)
164 ui->btnAlign->setEnabled(
true);
166 ui->btnAlign->setEnabled(
false);
169 void PegBarAlignmentDialog::setRefLayer(
QString s)
172 updateRefKeyLabelText();
175 void PegBarAlignmentDialog::setRefKey(
int i)
178 updateRefKeyLabelText();
181 void PegBarAlignmentDialog::closeClicked()
const T & at(int i) const const
QString tr(const char *sourceText, const char *disambiguation, int n)
int count(const T &value) const const
void append(const T &value)
bool isEmpty() const const
void clicked(const QModelIndex &index)
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)