# Qt sources
-set (CO_SOURCES CodeWidget.cxx)
-set (CO_HEADERS CodeWidget.hxx)
-set (CO_UI_FILES )
-set (CO_RES_FILES )
-set (CO_TS_FILES )
+set (CO_SOURCES CodeWidget.cxx HexWidget.cxx)
+set (CO_HEADERS CodeWidget.hxx HexWidget.hxx)
+set (CO_UI_FILES HexWidget.ui)
+set (CO_RES_FILES Resources.qrc)
+set (CO_TS_FILES i18n_english.ts i18n_french.ts i18n_german.ts)
# wrappers
QT5_ADD_TRANSLATION (CO_TS_SOURCES ${CO_TS_FILES})
// --- CodeWidget: constructors and deconstructors ---
CodeWidget::CodeWidget(QWidget *parent)
-: QPlainTextEdit(parent), _area(new Area(this))
+: QPlainTextEdit(parent), _area(new LinesArea(this))
{
setupActions();
updateAreaWidth(0);
}
CodeWidget::CodeWidget(const QString& text, QWidget *parent)
-: QPlainTextEdit(text, parent), _area(new Area(this))
+: QPlainTextEdit(text, parent), _area(new LinesArea(this))
{
setupActions();
updateAreaWidth(0);
updateAreaWidth(0);
}
-// --- Area: constructors and deconstructors ---
+// --- LinesArea: constructors and deconstructors ---
-Area::Area(CodeWidget *parent)
+LinesArea::LinesArea(CodeWidget *parent)
: QWidget(parent), _parent(parent)
{
}
-Area::~Area()
+LinesArea::~LinesArea()
{
_parent = 0;
}
-// --- Area: public methods ---
+// --- LinesArea: public methods ---
-QSize Area::sizeHint() const
+QSize LinesArea::sizeHint() const
{
return QSize(_parent->areaWidth(), 0);
}
-// --- Area: protected methods ---
+// --- LinesArea: protected methods ---
-void Area::paintEvent(QPaintEvent *event)
+void LinesArea::paintEvent(QPaintEvent *event)
{
_parent->areaPaintEvent(event);
}
QWidget *_area;
};
-class Area : public QWidget {
+class LinesArea : public QWidget {
Q_OBJECT
public:
- explicit Area(CodeWidget *parent);
- virtual ~Area();
+ explicit LinesArea(CodeWidget *parent);
+ virtual ~LinesArea();
QSize sizeHint() const;
--- /dev/null
+#include <QLabel>
+#include <QLineEdit>
+#include <QScrollBar>
+#include "HexWidget.hxx"
+#include "ui_HexWidget.h"
+
+// --- internal typedefs ---
+
+using QL = QLabel;
+using QLE = QLineEdit;
+using QTW = QTableWidget;
+using QTWI = QTableWidgetItem;
+
+// --- internal constants ---
+
+const QChar Null('0');
+
+// --- constructors and deconstructors ---
+
+HexWidget::HexWidget(QWidget *parent)
+: QWidget(parent), _ui(new Ui::HexWidget), _width(8)
+{
+ _ui->setupUi(this);
+
+ setupActions();
+}
+
+HexWidget::~HexWidget()
+{
+ delete _ui;
+}
+
+// --- public methods ---
+
+QByteArray HexWidget::hexData() const
+{
+ return _data;
+}
+
+void HexWidget::setHexData(const QByteArray& data)
+{
+ _data = data;
+
+ slotRefreshViews();
+}
+
+// --- public slots ---
+
+void HexWidget::slotRefreshViews()
+{
+ const qint32 max_chars = _data.count();
+ const qint32 max_rows = max_chars / _width;
+ QTW *dline = _ui->wid_decline;
+ QTW *hex = _ui->wid_hex;
+ QTW *asc = _ui->wid_asc;
+ QTW *hline = _ui->wid_hexline;
+
+ dline->setColumnCount(1);
+ dline->setRowCount(max_rows);
+ hex->setColumnCount(_width);
+ hex->setRowCount(max_rows);
+ asc->setColumnCount(_width);
+ asc->setRowCount(max_rows);
+ hline->setColumnCount(1);
+ hline->setRowCount(max_rows);
+
+ for (qint32 row = 0; row < max_rows; ++row)
+ {
+ QTWI *dl = new QTWI(QString("%1").arg(row * _width, 10, 10, Null));
+ QTWI *hl = new QTWI((QString("%1").arg(row * _width, 8, 16, Null)).toUpper());
+
+ dl->setFlags(dl->flags() ^ Qt::ItemIsEditable);
+ hl->setFlags(dl->flags() ^ Qt::ItemIsEditable);
+
+ dline->setItem(row, 0, dl);
+ hline->setItem(row, 0, hl);
+
+ for (qint32 col = 0; col < _width; ++col)
+ {
+ const qint32 pos = row * _width + col;
+
+ if (pos < max_chars)
+ {
+ const unsigned char chr = _data.at(pos);
+ QTWI *he = new QTWI(QString("%1").arg(chr, 2, 16, Null));
+ QTWI *ae = new QTWI(QString(chr));
+
+ he->setFlags(he->flags() ^ Qt::ItemIsEditable);
+ ae->setFlags(ae->flags() ^ Qt::ItemIsEditable);
+
+ hex->setItem(row, col, he);
+ asc->setItem(row, col, ae);
+ }
+ }
+ }
+
+ dline->resizeColumnsToContents();
+ dline->resizeRowsToContents();
+
+ hex->resizeColumnsToContents();
+ hex->resizeRowsToContents();
+
+ asc->resizeColumnsToContents();
+ asc->resizeRowsToContents();
+ for (qint32 col = 1; col < _width; ++col)
+ asc->setColumnWidth(col, asc->columnWidth(0));
+
+ hline->resizeColumnsToContents();
+ hline->resizeRowsToContents();
+}
+
+void HexWidget::slotSelectCellDLine(qint32 row, qint32 col)
+{
+ _ui->wid_hex->setCurrentCell(row, col);
+ _ui->wid_asc->setCurrentCell(row, col);
+ _ui->wid_hexline->setCurrentCell(row, 0);
+}
+
+void HexWidget::slotSelectCellHex(qint32 row, qint32 col)
+{
+ _ui->wid_decline->setCurrentCell(row, 0);
+ _ui->wid_asc->setCurrentCell(row, col);
+ _ui->wid_hexline->setCurrentCell(row, 0);
+}
+
+void HexWidget::slotSelectCellAsc(qint32 row, qint32 col)
+{
+ _ui->wid_decline->setCurrentCell(row, 0);
+ _ui->wid_hex->setCurrentCell(row, col);
+ _ui->wid_hexline->setCurrentCell(row, 0);
+}
+
+void HexWidget::slotSelectCellHLine(qint32 row, qint32 col)
+{
+ _ui->wid_decline->setCurrentCell(row, 0);
+ _ui->wid_hex->setCurrentCell(row, col);
+ _ui->wid_asc->setCurrentCell(row, col);
+}
+
+void HexWidget::slotScrollDLine(qint32 val)
+{
+ _ui->wid_hex->verticalScrollBar()->setValue(val);
+ _ui->wid_asc->verticalScrollBar()->setValue(val);
+ _ui->wid_hexline->verticalScrollBar()->setValue(val);
+}
+
+void HexWidget::slotScrollHex(qint32 val)
+{
+ _ui->wid_decline->verticalScrollBar()->setValue(val);
+ _ui->wid_asc->verticalScrollBar()->setValue(val);
+ _ui->wid_hexline->verticalScrollBar()->setValue(val);
+}
+
+void HexWidget::slotScrollAsc(qint32 val)
+{
+ _ui->wid_decline->verticalScrollBar()->setValue(val);
+ _ui->wid_hex->verticalScrollBar()->setValue(val);
+ _ui->wid_hexline->verticalScrollBar()->setValue(val);
+}
+
+void HexWidget::slotScrollHLine(qint32 val)
+{
+ _ui->wid_decline->verticalScrollBar()->setValue(val);
+ _ui->wid_hex->verticalScrollBar()->setValue(val);
+ _ui->wid_asc->verticalScrollBar()->setValue(val);
+}
+
+// --- protected methods ---
+
+void HexWidget::changeEvent(QEvent *event)
+{
+ if (event->type() == QEvent::LanguageChange)
+ _ui->retranslateUi(this);
+ else
+ QWidget::changeEvent(event);
+}
+
+void HexWidget::setupActions()
+{
+ connect(_ui->wid_decline, SIGNAL(cellClicked(qint32, qint32)),
+ this, SLOT(slotSelectCellDLine(qint32, qint32)));
+ connect(_ui->wid_hex, SIGNAL(cellClicked(qint32, qint32)),
+ this, SLOT(slotSelectCellHex(qint32, qint32)));
+ connect(_ui->wid_asc, SIGNAL(cellClicked(qint32, qint32)),
+ this, SLOT(slotSelectCellAsc(qint32, qint32)));
+ connect(_ui->wid_hexline, SIGNAL(cellClicked(qint32, qint32)),
+ this, SLOT(slotSelectCellHLine(qint32, qint32)));
+
+ connect(_ui->wid_decline->verticalScrollBar(), SIGNAL(valueChanged(qint32)),
+ this, SLOT(slotScrollDLine(qint32)));
+ connect(_ui->wid_hex->verticalScrollBar(), SIGNAL(valueChanged(qint32)),
+ this, SLOT(slotScrollHex(qint32)));
+ connect(_ui->wid_asc->verticalScrollBar(), SIGNAL(valueChanged(qint32)),
+ this, SLOT(slotScrollAsc(qint32)));
+ connect(_ui->wid_hexline->verticalScrollBar(), SIGNAL(valueChanged(qint32)),
+ this, SLOT(slotScrollHLine(qint32)));
+}
--- /dev/null
+#pragma once
+
+#include <QWidget>
+
+namespace Ui
+{
+ class HexWidget;
+}
+
+class HexWidget : public QWidget {
+ Q_OBJECT
+public:
+ explicit HexWidget(QWidget *parent = 0);
+ virtual ~HexWidget();
+
+ QByteArray hexData() const;
+ void setHexData(const QByteArray& data);
+
+public slots:
+ void slotRefreshViews();
+
+ void slotSelectCellDLine(qint32 row, qint32 col);
+ void slotSelectCellHex(qint32 row, qint32 col);
+ void slotSelectCellAsc(qint32 row, qint32 col);
+ void slotSelectCellHLine(qint32 row, qint32 col);
+
+ void slotScrollDLine(qint32 val);
+ void slotScrollHex(qint32 val);
+ void slotScrollAsc(qint32 val);
+ void slotScrollHLine(qint32 val);
+
+protected:
+ virtual void changeEvent(QEvent *event);
+ void setupActions();
+
+private:
+ Ui::HexWidget *_ui;
+ QByteArray _data;
+ qint32 _width;
+};
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>HexWidget</class>
+ <widget class="QWidget" name="HexWidget">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>672</width>
+ <height>416</height>
+ </rect>
+ </property>
+ <property name="contextMenuPolicy">
+ <enum>Qt::NoContextMenu</enum>
+ </property>
+ <property name="windowTitle">
+ <string>FRM-HEX</string>
+ </property>
+ <property name="locale">
+ <locale language="English" country="UnitedStates"/>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <property name="margin">
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="QTableWidget" name="wid_decline">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>140</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="contextMenuPolicy">
+ <enum>Qt::NoContextMenu</enum>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::SingleSelection</enum>
+ </property>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ <property name="showGrid">
+ <bool>false</bool>
+ </property>
+ <attribute name="horizontalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="horizontalHeaderDefaultSectionSize">
+ <number>0</number>
+ </attribute>
+ <attribute name="horizontalHeaderMinimumSectionSize">
+ <number>0</number>
+ </attribute>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="verticalHeaderDefaultSectionSize">
+ <number>0</number>
+ </attribute>
+ <attribute name="verticalHeaderMinimumSectionSize">
+ <number>0</number>
+ </attribute>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTableWidget" name="wid_hex">
+ <property name="contextMenuPolicy">
+ <enum>Qt::NoContextMenu</enum>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::SingleSelection</enum>
+ </property>
+ <property name="showGrid">
+ <bool>false</bool>
+ </property>
+ <attribute name="horizontalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTableWidget" name="wid_asc">
+ <property name="contextMenuPolicy">
+ <enum>Qt::NoContextMenu</enum>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::SingleSelection</enum>
+ </property>
+ <property name="showGrid">
+ <bool>false</bool>
+ </property>
+ <attribute name="horizontalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTableWidget" name="wid_hexline">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>140</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="contextMenuPolicy">
+ <enum>Qt::NoContextMenu</enum>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::SingleSelection</enum>
+ </property>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ <property name="showGrid">
+ <bool>false</bool>
+ </property>
+ <attribute name="horizontalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="horizontalHeaderDefaultSectionSize">
+ <number>0</number>
+ </attribute>
+ <attribute name="horizontalHeaderMinimumSectionSize">
+ <number>0</number>
+ </attribute>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="verticalHeaderDefaultSectionSize">
+ <number>0</number>
+ </attribute>
+ <attribute name="verticalHeaderMinimumSectionSize">
+ <number>0</number>
+ </attribute>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null
+<RCC>
+ <qresource prefix="Language">
+ <file alias="English">i18n_english.qm</file>
+ <file alias="French">i18n_french.qm</file>
+ <file alias="German">i18n_german.qm</file>
+ </qresource>
+</RCC>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>HexWidget</name>
+ <message>
+ <location filename="HexWidget.ui" line="17"/>
+ <source>FRM-HEX</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>HexWidget</name>
+ <message>
+ <location filename="HexWidget.ui" line="17"/>
+ <source>FRM-HEX</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>HexWidget</name>
+ <message>
+ <location filename="HexWidget.ui" line="17"/>
+ <source>FRM-HEX</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
void DatWindow::slotDatSave()
{
+ //_entry.setOData(_ui->wid_hex->hexData());
+ //_entry.setOSize(_ui->wid_hex->HexData.size());
+ //_entry.setCSize(_entry.cData().size());
+ //_entry.setName(_ui->ed_name->text());
+ //_entry.setNameLength(_entry.name().size() + 1);
+ //_entry.setHSize(_entry.headerSize() + _entry.nameLength());
+
+ emit sigDatUpdate(_entry, _num);
+
+ setMode(Mode::Fresh);
}
void DatWindow::slotDatDiscard()
{
+ _entry = NCFile();
+ _num = 0;
+ //_ui->wid_hex->clear();
+
+ emit sigDatIgnored();
+
+ setMode(Mode::Fresh);
}
void DatWindow::slotDatView(NCFile& entry, quint32 row)
{
+ _entry = entry;
+ _num = row;
+
+ _ui->ed_name->setText(_entry.name());
+ _ui->wid_hex->setHexData(_entry.oData());
+ _ui->ed_size->setText(QString::number(_ui->wid_hex->hexData().size()));
}
// --- protected methods ---
<property name="locale">
<locale language="English" country="UnitedStates"/>
</property>
- <widget class="QWidget" name="wid_central"/>
+ <widget class="QWidget" name="wid_central">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <property name="margin">
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="HexWidget" name="wid_hex" native="true"/>
+ </item>
+ <item>
+ <widget class="QWidget" name="wid_status" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Maximum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="lab_name">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>LAB-STATUS-NAME</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="ed_name">
+ <property name="text">
+ <string notr="true"/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="sp">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>213</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="lab_size">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>LAB-STATUS-SIZE</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="ed_size">
+ <property name="text">
+ <string notr="true"/>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
- <height>22</height>
+ <height>21</height>
</rect>
</property>
<widget class="QMenu" name="mm_dat">
</property>
</action>
</widget>
+ <customwidgets>
+ <customwidget>
+ <class>HexWidget</class>
+ <extends>QWidget</extends>
+ <header>common/HexWidget.hxx</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
<resources/>
<connections/>
</ui>
<translation>QTinNS Editor - Dat Viewer</translation>
</message>
<message>
- <location filename="DatWindow.ui" line="31"/>
+ <location filename="DatWindow.ui" line="48"/>
+ <source>LAB-STATUS-NAME</source>
+ <oldsource>LAB-NAME</oldsource>
+ <translation>Dat name:</translation>
+ </message>
+ <message>
+ <location filename="DatWindow.ui" line="81"/>
+ <source>LAB-STATUS-SIZE</source>
+ <translation>Dat size:</translation>
+ </message>
+ <message>
+ <location filename="DatWindow.ui" line="111"/>
<source>MM-DAT</source>
<translation>Dat</translation>
</message>
<message>
- <location filename="DatWindow.ui" line="41"/>
+ <location filename="DatWindow.ui" line="121"/>
<source>ME-DAT-SAVE</source>
<translation>Save changes</translation>
</message>
<message>
- <location filename="DatWindow.ui" line="46"/>
+ <location filename="DatWindow.ui" line="126"/>
<source>ME-DAT-CANCEL</source>
<translation>Discard changes</translation>
</message>
<translation>QTinNS Editor - Text Viewer</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="72"/>
+ <location filename="TextWindow.ui" line="65"/>
<source>LAB-TEXT-NAME</source>
<translation>Text name:</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="102"/>
+ <location filename="TextWindow.ui" line="95"/>
<source>LAB-TEXT-LINES</source>
<translation>Lines:</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="132"/>
+ <location filename="TextWindow.ui" line="125"/>
<source>LAB-TEXT-SIZE</source>
<translation>Size:</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="162"/>
+ <location filename="TextWindow.ui" line="155"/>
<source>MM-TEXT</source>
<translation>Text</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="170"/>
+ <location filename="TextWindow.ui" line="163"/>
<source>MM-EDIT</source>
<translation>Edit</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="186"/>
+ <location filename="TextWindow.ui" line="179"/>
<source>ME-TEXT-SAVE</source>
<translation>Save changes</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="191"/>
+ <location filename="TextWindow.ui" line="184"/>
<source>ME-TEXT-CANCEL</source>
<translation>Discard changes</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="196"/>
+ <location filename="TextWindow.ui" line="189"/>
<source>ME-EDIT-UNDO</source>
<translation>Undo</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="201"/>
+ <location filename="TextWindow.ui" line="194"/>
<source>ME-EDIT-REDO</source>
<translation>Redo</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="206"/>
+ <location filename="TextWindow.ui" line="199"/>
<source>ME-EDIT-CUT</source>
<translation>Cut</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="211"/>
+ <location filename="TextWindow.ui" line="204"/>
<source>ME-EDIT-COPY</source>
<translation>Copy</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="216"/>
+ <location filename="TextWindow.ui" line="209"/>
<source>ME-EDIT-INSERT</source>
<translation>Insert</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="221"/>
+ <location filename="TextWindow.ui" line="214"/>
<source>ME-EDIT-DELETE</source>
<translation>Delete</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="226"/>
+ <location filename="TextWindow.ui" line="219"/>
<source>ME-EDIT-SELALL</source>
<translation>Select all</translation>
</message>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="DatWindow.ui" line="31"/>
+ <location filename="DatWindow.ui" line="48"/>
+ <source>LAB-STATUS-NAME</source>
+ <oldsource>LAB-NAME</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="DatWindow.ui" line="81"/>
+ <source>LAB-STATUS-SIZE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="DatWindow.ui" line="111"/>
<source>MM-DAT</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="DatWindow.ui" line="41"/>
+ <location filename="DatWindow.ui" line="121"/>
<source>ME-DAT-SAVE</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="DatWindow.ui" line="46"/>
+ <location filename="DatWindow.ui" line="126"/>
<source>ME-DAT-CANCEL</source>
<translation type="unfinished"></translation>
</message>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="72"/>
+ <location filename="TextWindow.ui" line="65"/>
<source>LAB-TEXT-NAME</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="102"/>
+ <location filename="TextWindow.ui" line="95"/>
<source>LAB-TEXT-LINES</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="132"/>
+ <location filename="TextWindow.ui" line="125"/>
<source>LAB-TEXT-SIZE</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="162"/>
+ <location filename="TextWindow.ui" line="155"/>
<source>MM-TEXT</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="170"/>
+ <location filename="TextWindow.ui" line="163"/>
<source>MM-EDIT</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="186"/>
+ <location filename="TextWindow.ui" line="179"/>
<source>ME-TEXT-SAVE</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="191"/>
+ <location filename="TextWindow.ui" line="184"/>
<source>ME-TEXT-CANCEL</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="196"/>
+ <location filename="TextWindow.ui" line="189"/>
<source>ME-EDIT-UNDO</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="201"/>
+ <location filename="TextWindow.ui" line="194"/>
<source>ME-EDIT-REDO</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="206"/>
+ <location filename="TextWindow.ui" line="199"/>
<source>ME-EDIT-CUT</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="211"/>
+ <location filename="TextWindow.ui" line="204"/>
<source>ME-EDIT-COPY</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="216"/>
+ <location filename="TextWindow.ui" line="209"/>
<source>ME-EDIT-INSERT</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="221"/>
+ <location filename="TextWindow.ui" line="214"/>
<source>ME-EDIT-DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="TextWindow.ui" line="226"/>
+ <location filename="TextWindow.ui" line="219"/>
<source>ME-EDIT-SELALL</source>
<translation type="unfinished"></translation>
</message>
<translation>QTinNS Editor - Dat Viewer</translation>
</message>
<message>
- <location filename="DatWindow.ui" line="31"/>
+ <location filename="DatWindow.ui" line="48"/>
+ <source>LAB-STATUS-NAME</source>
+ <oldsource>LAB-NAME</oldsource>
+ <translation>Datdateiname:</translation>
+ </message>
+ <message>
+ <location filename="DatWindow.ui" line="81"/>
+ <source>LAB-STATUS-SIZE</source>
+ <translation>Datgröße:</translation>
+ </message>
+ <message>
+ <location filename="DatWindow.ui" line="111"/>
<source>MM-DAT</source>
<translation>Dat</translation>
</message>
<message>
- <location filename="DatWindow.ui" line="41"/>
+ <location filename="DatWindow.ui" line="121"/>
<source>ME-DAT-SAVE</source>
<translation>Speichere Änderungen</translation>
</message>
<message>
- <location filename="DatWindow.ui" line="46"/>
+ <location filename="DatWindow.ui" line="126"/>
<source>ME-DAT-CANCEL</source>
<translation>Verwerfe Änderungen</translation>
</message>
<translation>QTinNS Editor - Text Viewer</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="72"/>
+ <location filename="TextWindow.ui" line="65"/>
<source>LAB-TEXT-NAME</source>
<translation>Textdateiname:</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="102"/>
+ <location filename="TextWindow.ui" line="95"/>
<source>LAB-TEXT-LINES</source>
<translation>Zeilen:</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="132"/>
+ <location filename="TextWindow.ui" line="125"/>
<source>LAB-TEXT-SIZE</source>
<translation>Größe:</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="162"/>
+ <location filename="TextWindow.ui" line="155"/>
<source>MM-TEXT</source>
<translation>Text</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="170"/>
+ <location filename="TextWindow.ui" line="163"/>
<source>MM-EDIT</source>
<translation>Bearbeiten</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="186"/>
+ <location filename="TextWindow.ui" line="179"/>
<source>ME-TEXT-SAVE</source>
<translation>Speichere Änderungen</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="191"/>
+ <location filename="TextWindow.ui" line="184"/>
<source>ME-TEXT-CANCEL</source>
<translation>Verwerfe Änderungen</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="196"/>
+ <location filename="TextWindow.ui" line="189"/>
<source>ME-EDIT-UNDO</source>
<translation>Rückgängig</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="201"/>
+ <location filename="TextWindow.ui" line="194"/>
<source>ME-EDIT-REDO</source>
<translation>Wiederherstellen</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="206"/>
+ <location filename="TextWindow.ui" line="199"/>
<source>ME-EDIT-CUT</source>
<translation>Ausschneiden</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="211"/>
+ <location filename="TextWindow.ui" line="204"/>
<source>ME-EDIT-COPY</source>
<translation>Kopieren</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="216"/>
+ <location filename="TextWindow.ui" line="209"/>
<source>ME-EDIT-INSERT</source>
<translation>Einfügen</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="221"/>
+ <location filename="TextWindow.ui" line="214"/>
<source>ME-EDIT-DELETE</source>
<translation>Löschen</translation>
</message>
<message>
- <location filename="TextWindow.ui" line="226"/>
+ <location filename="TextWindow.ui" line="219"/>
<source>ME-EDIT-SELALL</source>
<translation>Alles markieren</translation>
</message>