37 if(ev->type()==QResizeEvent::Resize)
39 QPixmap pix(QString(
":/locations/%1_%2").arg(QString::number(
sbMapID->value()),QString::number(
sbLocID->value())));
40 if(pix.isNull()){
return;}
56 QTableWidgetItem *newItem;
64 locationTable->setSelectionBehavior(QAbstractItemView::SelectRows);
65 locationTable->setSelectionMode(QAbstractItemView::SingleSelection);
68 newItem =
new QTableWidgetItem(tr(
"Filename"),0);
70 locationTable->setColumnWidth(0,fontMetrics().width(QChar(
'W'))*6);
71 newItem =
new QTableWidgetItem(tr(
"Location Name"),0);
73 locationTable->setColumnWidth(1,fontMetrics().width(QChar(
'W'))*15);
74 newItem =
new QTableWidgetItem(tr(
"LocID"),0);
75 locationTable->setColumnWidth(2,fontMetrics().width(QChar(
'W'))*4);
81 QString tooltip(QString(
"<html><head/><body><p><img src=\":/locations/%1_%2\" width=\"%3\" height\"%4\" /></p></body></html>").arg(
Locations->
mapID(i),
Locations->
locationID(i),QString::number(320*
scale),QString::number(480*
scale)));
84 newItem->setFlags(newItem->flags()&=~Qt::ItemIsEditable);
85 newItem->setToolTip(tooltip);
86 newItem->setTextAlignment(Qt::AlignLeft);
90 newItem->setFlags(newItem->flags()&=~Qt::ItemIsEditable);
91 newItem->setTextAlignment(Qt::AlignLeft);
92 newItem->setToolTip(tooltip);
96 newItem =
new QTableWidgetItem(QString(
"%1").arg(
Locations->
locationID(i).toInt(),3,10,QChar(
'0')).toUpper());
97 newItem->setFlags(newItem->flags()&=~Qt::ItemIsEditable);
98 newItem->setTextAlignment(Qt::AlignHCenter);
102 locationTable->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
103 locationTable->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
107 locationTable->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding);
111 btnSearchOptions->setIcon(QIcon::fromTheme(QString(
"edit-clear"),QPixmap(
":/common/edit-clear")));
126 QString menuStyle = QString(
"QCheckbox::indicator { width: %1px; height: %2px;}").arg(QString::number(16*
scale),QString::number(16*
scale));
128 QMenu * newMenu=
new QMenu;
129 newMenu->setStyleSheet(menuStyle);
132 newMenu->addSeparator();
149 sbMapID->setPrefix(tr(
"MapID: "));
150 sbMapID->setAlignment(Qt::AlignCenter);
155 sbLocID->setPrefix(tr(
"LocID: "));
156 sbLocID->setAlignment(Qt::AlignCenter);
159 sbX->setPrefix(tr(
"X: "));
160 sbX->setMinimum(-32767);
161 sbX->setMaximum(32767);
162 sbX->setWrapping(
true);
163 sbX->setAlignment(Qt::AlignCenter);
166 sbY->setPrefix(tr(
"Y: "));
167 sbY->setMinimum(-32767);
168 sbY->setMaximum(32767);
169 sbY->setWrapping(
true);
170 sbY->setAlignment(Qt::AlignCenter);
173 sbT->setPrefix(tr(
"T: "));
174 sbT->setMaximum(65565);
175 sbT->setWrapping(
true);
176 sbT->setAlignment(Qt::AlignCenter);
179 sbD->setMaximum(255);
180 sbD->setPrefix(tr(
"D: "));
181 sbD->setWrapping(
true);
182 sbD->setAlignment(Qt::AlignCenter);
193 fieldItemList->setSelectionMode(QAbstractItemView::NoSelection);
195 QVBoxLayout *fitemLayout =
new QVBoxLayout();
196 fitemLayout->setContentsMargins(0,0,0,0);
197 fitemLayout->setSpacing(0);
201 groupFieldItems->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum);
203 QHBoxLayout *nameIDs =
new QHBoxLayout;
208 QHBoxLayout *XYTD =
new QHBoxLayout;
209 XYTD->addWidget(
sbX);
210 XYTD->addWidget(
sbY);
211 XYTD->addWidget(
sbT);
212 XYTD->addWidget(
sbD);
214 QVBoxLayout *CoordsLayout =
new QVBoxLayout;
215 CoordsLayout->setContentsMargins(3,3,3,3);
216 CoordsLayout->addLayout(nameIDs);
217 CoordsLayout->addLayout(XYTD);
220 QHBoxLayout *PreviewLayout =
new QHBoxLayout;
221 PreviewLayout->setAlignment(Qt::AlignCenter);
224 QHBoxLayout *FilterLayout =
new QHBoxLayout;
225 FilterLayout->setContentsMargins(0,0,0,0);
226 FilterLayout->setSpacing(0);
230 QVBoxLayout *LeftSideLayout =
new QVBoxLayout;
231 LeftSideLayout->setSpacing(0);
234 LeftSideLayout->addLayout(FilterLayout);
236 QVBoxLayout *RightSideLayout =
new QVBoxLayout;
237 RightSideLayout->addLayout(CoordsLayout);
238 RightSideLayout->addLayout(PreviewLayout);
242 QHBoxLayout *FinalLayout =
new QHBoxLayout;
243 FinalLayout->setContentsMargins(3,3,3,3);
244 FinalLayout->addLayout(LeftSideLayout);
245 FinalLayout->addLayout(RightSideLayout);
246 this->setLayout(FinalLayout);
260 connect(
sbX,SIGNAL(valueChanged(
int)),
this,SLOT(
sbXChanged(
int)));
261 connect(
sbY,SIGNAL(valueChanged(
int)),
this,SLOT(
sbYChanged(
int)));
262 connect(
sbT,SIGNAL(valueChanged(
int)),
this,SLOT(
sbTChanged(
int)));
263 connect(
sbD,SIGNAL(valueChanged(
int)),
this,SLOT(
sbDChanged(
int)));
277 disconnect(
sbX,SIGNAL(valueChanged(
int)),
this,SLOT(
sbXChanged(
int)));
278 disconnect(
sbY,SIGNAL(valueChanged(
int)),
this,SLOT(
sbYChanged(
int)));
279 disconnect(
sbT,SIGNAL(valueChanged(
int)),
this,SLOT(
sbTChanged(
int)));
280 disconnect(
sbD,SIGNAL(valueChanged(
int)),
this,SLOT(
sbDChanged(
int)));
287 if(currentColumn == prevColumn){}
289 if(currentRow ==prevRow){
return;}
342 lblLocationPreview->setPixmap(QPixmap(QString(
"://locations/%1_%2").arg(QString::number(mapId),QString::number(locId))).scaledToWidth(
lblLocationPreview->width(),Qt::SmoothTransformation));
348 qWarning()<<QString(
"LocationString Changed: %1").arg(newStr);
376 qWarning()<<QString(
"LocationString Changed: %1").arg(newStr);
390 if(
region ==
""){qWarning()<<
"Translate: No Region";
return text;}
391 if(
transBasePath==
""){qWarning()<<
"Translate: No Base Path";
return text;}
395 QTranslator Translator;
398 if(reg ==
"BASCUS-94163" || reg ==
"BESCES-00867"){lang.append(
"en.qm");}
399 else if(reg ==
"BESCES-00868"){lang.append(
"fr.qm");}
400 else if(reg ==
"BESCES-00869"){lang.append(
"de.qm");}
401 else if(reg ==
"BESCES-00900"){lang.append(
"es.qm");}
402 else if(reg ==
"BISLPS-00700" || reg ==
"BISLPS-01057"){lang.append(
"ja.qm");}
403 else{qWarning()<<QString(
"Unknown Region:%1").arg(reg);
return text;}
404 Translator.load(lang);
405 QString newText = Translator.translate(
"Locations",text.toUtf8());
406 if(newText.isEmpty()){
return text;}
407 else{
return newText;}
414 if(
regExpSearch){exp.setPatternSyntax(QRegExp::Wildcard);}
415 else{exp.setPatternSyntax(QRegExp::FixedString);}
416 if(
caseSensitive){exp.setCaseSensitivity(Qt::CaseSensitive);}
417 else{exp.setCaseSensitivity(Qt::CaseInsensitive);}
470 if(fieldFileName.isEmpty()){
fieldItemList->setFixedHeight(0);
return;}
479 QListWidgetItem *newItem =
new QListWidgetItem(
fieldItems->
text(i));
480 newItem->setCheckState(Qt::Unchecked);
492 fieldItemList->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
497 fieldItemList->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
506 if(
fieldItemList->item(index.row())->checkState() ==Qt::Checked){checked=
true;}
516 if(checked){
fieldItemList->item(row)->setCheckState(Qt::Checked);}
517 else{
fieldItemList->item(row)->setCheckState(Qt::Unchecked);}
528 if(
locationTable->item(i,j)->text().contains(exp)){hidden=
false;
break;}
535 QStringList locationNames;
549 for(
int j=0;j<locationNames.count();j++)
551 if(
locationTable->item(i,0)->text() == locationNames.at(j) ){hidden=
false;
break;}
Info about field locations.
void init_disconnect(void)
void setFieldItemChecked(int row, bool checked)
QList< quint8 > bit(int index)
bit list for an entry (one per offset)
void setRegion(QString region)
void searchItem(QRegExp exp)
QLineEdit * lineLocationName
void resizeEvent(QResizeEvent *ev)
QCheckBox * chkAutoUpdate
QAction * actionNameSearch
void setAdvancedMode(bool advancedMode)
QLabel * lblLocationPreview
void filterLocations(QString filter)
LocationViewer(qreal Scale=1, QWidget *parent=0)
QTableWidget * locationTable
void fieldItemConnectRequest(quint8 index, QList< quint16 > offset, QList< quint8 >bit)
void actionNameSearchToggled(bool checked)
void fieldItemChanged(int index, bool checked)
QString text(int index)
item or desc of item
void fieldItemListItemChanged(QModelIndex index)
QString mapID(int i)
get map id number
void init_fieldItems(void)
void chkAutoUpdateChanged(bool checked)
void searchName(QRegExp exp)
void init_connections(void)
QString fileName(int i)
get filename for location (flevel file)
Data Class to allow the tracking and changing of items being picked up on the field.
void setFilterString(QString filter="", LocationViewer::filterMode mode=LocationViewer::NAME)
datatype for one item "kernel" style
QLineEdit * lineTableFilter
void btnSearchOptionsClicked(void)
void actionCaseSensitiveToggled(bool checked)
int count()
total entries in FILIST
QList< quint16 > offset(int index)
offset list for an entry (offset[x] bit[x] are pairs needed to read/write correctly ...
QAction * actionCaseSensitive
FF7FieldItemList * fieldItems
void setHorizontalHeaderStyle(QString styleSheet)
QListWidget * fieldItemList
void setLocationId(int locId)
QString t(int i)
triangle of save or valid placment
QString x(int i)
x coord of save or valid placment
void itemChanged(int currentRow, int currentColumn, int prevRow, int prevColumn)
int len(void)
how many items on the location list do we have
void setLocation(int mapId, int locId)
void locationStringChanged(QString)
void setSelected(QString)
void setTranslationBaseFile(QString)
bool locationChangesSaved(void)
void fieldItemCheck(int index)
QAction * actionItemSearch
void locationChanged(QString)
void sbMapIdChanged(int mapId)
QString locationID(int i)
get location id number
void mapIdChanged(int mapId)
QString d(int i)
direction your facing
void actionItemSearchToggled(bool checked)
QGroupBox * groupFieldItems
QAction * actionRegExpSearch
QString translate(QString text)
void locIdChanged(int locId)
QString locationString(int i)
locations String showing menu
void sbLocIdChanged(int locId)
void setLocationString(QString)
QString y(int i)
y coord of save or valid placment
void lineLocationNameChanged(QString)
QStringList maps(int index)
map list for an entry.
void setLocationChangesSaved(bool saveChanges)
void actionRegExpSearchToggled(bool checked)
QToolButton * btnSearchOptions