- added a generic HEX view widget
authorAkiko <akiko@linux-addicted.net>
Tue, 15 Oct 2013 05:06:41 +0000 (07:06 +0200)
committerAkiko <akiko@linux-addicted.net>
Tue, 15 Oct 2013 05:06:41 +0000 (07:06 +0200)
- updated makefiles for the generic components
- the dat viewer component uses the hex one now
! the hex widget is very basic and not suitable for data beyond 40k+

15 files changed:
common/CMakeLists.txt
common/CodeWidget.cxx
common/CodeWidget.hxx
common/HexWidget.cxx [new file with mode: 0644]
common/HexWidget.hxx [new file with mode: 0644]
common/HexWidget.ui [new file with mode: 0644]
common/Resources.qrc [new file with mode: 0644]
common/i18n_english.ts [new file with mode: 0644]
common/i18n_french.ts [new file with mode: 0644]
common/i18n_german.ts [new file with mode: 0644]
editor/DatWindow.cxx
editor/DatWindow.ui
editor/i18n_english.ts
editor/i18n_french.ts
editor/i18n_german.ts

index ac2464f..dc7b864 100644 (file)
@@ -1,9 +1,9 @@
 # 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})
index dd5c93a..2166f5f 100644 (file)
@@ -6,7 +6,7 @@
 // --- CodeWidget: constructors and deconstructors ---
 
 CodeWidget::CodeWidget(QWidget *parent)
-: QPlainTextEdit(parent), _area(new Area(this))
+: QPlainTextEdit(parent), _area(new LinesArea(this))
 {
     setupActions();
     updateAreaWidth(0);
@@ -14,7 +14,7 @@ CodeWidget::CodeWidget(QWidget *parent)
 }
 
 CodeWidget::CodeWidget(const QString& text, QWidget *parent)
-: QPlainTextEdit(text, parent), _area(new Area(this))
+: QPlainTextEdit(text, parent), _area(new LinesArea(this))
 {
     setupActions();
     updateAreaWidth(0);
@@ -126,28 +126,28 @@ void CodeWidget::updateArea(const QRect& rect, qint32 dy)
         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);
 }
index 804de03..6c3ada2 100644 (file)
@@ -26,11 +26,11 @@ private:
     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;
 
diff --git a/common/HexWidget.cxx b/common/HexWidget.cxx
new file mode 100644 (file)
index 0000000..300a3c0
--- /dev/null
@@ -0,0 +1,197 @@
+#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)));
+}
diff --git a/common/HexWidget.hxx b/common/HexWidget.hxx
new file mode 100644 (file)
index 0000000..ca71d69
--- /dev/null
@@ -0,0 +1,40 @@
+#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;
+};
diff --git a/common/HexWidget.ui b/common/HexWidget.ui
new file mode 100644 (file)
index 0000000..46805c5
--- /dev/null
@@ -0,0 +1,163 @@
+<?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>
diff --git a/common/Resources.qrc b/common/Resources.qrc
new file mode 100644 (file)
index 0000000..41680fc
--- /dev/null
@@ -0,0 +1,7 @@
+<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>
diff --git a/common/i18n_english.ts b/common/i18n_english.ts
new file mode 100644 (file)
index 0000000..93c1d8d
--- /dev/null
@@ -0,0 +1,12 @@
+<?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>
diff --git a/common/i18n_french.ts b/common/i18n_french.ts
new file mode 100644 (file)
index 0000000..93c1d8d
--- /dev/null
@@ -0,0 +1,12 @@
+<?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>
diff --git a/common/i18n_german.ts b/common/i18n_german.ts
new file mode 100644 (file)
index 0000000..93c1d8d
--- /dev/null
@@ -0,0 +1,12 @@
+<?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>
index 624c9f8..f530a0a 100644 (file)
@@ -21,14 +21,37 @@ DatWindow::~DatWindow()
 
 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 ---
index 075d988..04c5407 100644 (file)
   <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>
index 4e912d6..9116c55 100644 (file)
@@ -9,17 +9,28 @@
         <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>
index ced766a..cd8748e 100644 (file)
@@ -9,17 +9,28 @@
         <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>
index 6c3d912..7bcf8ae 100644 (file)
@@ -9,17 +9,28 @@
         <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>