diff options
Diffstat (limited to 'smtk-import')
-rw-r--r-- | smtk-import/smrtk2ssrfc_window.cpp | 104 | ||||
-rw-r--r-- | smtk-import/smrtk2ssrfc_window.h | 39 | ||||
-rw-r--r-- | smtk-import/smrtk2ssrfc_window.ui | 823 | ||||
-rw-r--r-- | smtk-import/smtk_standalone.cpp | 49 |
4 files changed, 1015 insertions, 0 deletions
diff --git a/smtk-import/smrtk2ssrfc_window.cpp b/smtk-import/smrtk2ssrfc_window.cpp new file mode 100644 index 000000000..cb332cd81 --- /dev/null +++ b/smtk-import/smrtk2ssrfc_window.cpp @@ -0,0 +1,104 @@ +#include "smrtk2ssrfc_window.h" +#include "ui_smrtk2ssrfc_window.h" +#include "filtermodels.h" +#include "dive.h" +#include "divelist.h" +#include <QFileDialog> +#include <QFileInfo> +#include <QSettings> +#include <QDebug> + +QStringList inputFiles; +QString outputFile; + +Smrtk2ssrfcWindow::Smrtk2ssrfcWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::Smrtk2ssrfcWindow) +{ + ui->setupUi(this); + ui->plainTextEdit->setDisabled(true); + ui->progressBar->setDisabled(true); + ui->statusBar->adjustSize(); +} + +Smrtk2ssrfcWindow::~Smrtk2ssrfcWindow() +{ + delete ui; +} + +QString Smrtk2ssrfcWindow::lastUsedDir() +{ + QSettings settings; + QString lastDir = QDir::homePath(); + + settings.beginGroup("FileDialog"); + if (settings.contains("LastDir")) + if (QDir::setCurrent(settings.value("LastDir").toString())) + lastDir = settings.value("LastDir").toString(); + return lastDir; +} + +void Smrtk2ssrfcWindow::updateLastUsedDir(const QString &dir) +{ + QSettings s; + s.beginGroup("FileDialog"); + s.setValue("LastDir", dir); +} + +void Smrtk2ssrfcWindow::on_inputFilesButton_clicked() +{ + inputFiles = QFileDialog::getOpenFileNames(this, tr("Open SmartTrak files"), lastUsedDir(), + tr("SmartTrak files (*.slg *.SLG);;" + "All files (*)")); + if (inputFiles.isEmpty()) + return; + updateLastUsedDir(QFileInfo(inputFiles[0]).dir().path()); + ui->inputLine->setText(inputFiles.join(" ")); + ui->progressBar->setEnabled(true); +} + +void Smrtk2ssrfcWindow::on_outputFileButton_clicked() +{ + outputFile = QFileDialog::getSaveFileName(this, tr("Open Subsurface files"), lastUsedDir(), + tr("Subsurface files (*.ssrf *SSRF *.xml *.XML);;" + "All files (*)")); + if (outputFile.isEmpty()) + return; + updateLastUsedDir(QFileInfo(outputFile).dir().path()); + ui->outputLine->setText(outputFile); +} + +void Smrtk2ssrfcWindow::on_importButton_clicked() +{ + if (inputFiles.isEmpty()) + return; + + QByteArray fileNamePtr; + + ui->plainTextEdit->setDisabled(false); + ui->progressBar->setRange(0, inputFiles.size()); + for (int i = 0; i < inputFiles.size(); ++i) { + ui->progressBar->setValue(i); + fileNamePtr = QFile::encodeName(inputFiles.at(i)); + smartrak_import(fileNamePtr.data(), &dive_table); + ui->plainTextEdit->appendPlainText(QString(get_error_string())); + } + ui->progressBar->setValue(inputFiles.size()); + save_dives_logic(outputFile.toUtf8().data(), false); + ui->progressBar->setDisabled(true); +} + +void Smrtk2ssrfcWindow::on_exitButton_clicked() +{ + this->close(); +} + +void Smrtk2ssrfcWindow::on_outputLine_textEdited() +{ + outputFile = ui->outputLine->text(); +} + +void Smrtk2ssrfcWindow::on_inputLine_textEdited() +{ + inputFiles = ui->inputLine->text().split(" "); +} diff --git a/smtk-import/smrtk2ssrfc_window.h b/smtk-import/smrtk2ssrfc_window.h new file mode 100644 index 000000000..8d5ae9027 --- /dev/null +++ b/smtk-import/smrtk2ssrfc_window.h @@ -0,0 +1,39 @@ +#ifndef SMRTK2SSRFC_WINDOW_H +#define SMRTK2SSRFC_WINDOW_H + +#include <QMainWindow> +#include <QFileDialog> +#include <QFileInfo> + +extern "C" void smartrak_import(const char *file, struct dive_table *divetable); + +namespace Ui { +class Smrtk2ssrfcWindow; +} + +class Smrtk2ssrfcWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit Smrtk2ssrfcWindow(QWidget *parent = 0); + ~Smrtk2ssrfcWindow(); + +private: + Ui::Smrtk2ssrfcWindow *ui; + QString lastUsedDir(); + QString filter(); + void updateLastUsedDir(const QString &s); + void closeCurrentFile(); + +private +slots: + void on_inputFilesButton_clicked(); + void on_outputFileButton_clicked(); + void on_importButton_clicked(); + void on_exitButton_clicked(); + void on_outputLine_textEdited(); + void on_inputLine_textEdited(); +}; + +#endif // SMRTK2SSRFC_WINDOW_H diff --git a/smtk-import/smrtk2ssrfc_window.ui b/smtk-import/smrtk2ssrfc_window.ui new file mode 100644 index 000000000..4e5e2ecb3 --- /dev/null +++ b/smtk-import/smrtk2ssrfc_window.ui @@ -0,0 +1,823 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Smrtk2ssrfcWindow</class> + <widget class="QMainWindow" name="Smrtk2ssrfcWindow"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>512</width> + <height>431</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="windowTitle"> + <string>SmartTrak files importer</string> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="autoFillBackground"> + <bool>true</bool> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="documentMode"> + <bool>false</bool> + </property> + <property name="dockNestingEnabled"> + <bool>false</bool> + </property> + <widget class="QWidget" name="centralWidget"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <widget class="Line" name="line"> + <property name="geometry"> + <rect> + <x>30</x> + <y>360</y> + <width>438</width> + <height>16</height> + </rect> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + <widget class="QLabel" name="label_3"> + <property name="geometry"> + <rect> + <x>10</x> + <y>150</y> + <width>127</width> + <height>16</height> + </rect> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="frameShape"> + <enum>QFrame::Panel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Sunken</enum> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" color:#6ebeb9;">Subsurface divelog</span></p></body></html></string> + </property> + </widget> + <widget class="QLineEdit" name="outputLine"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>142</x> + <y>150</y> + <width>241</width> + <height>22</height> + </rect> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + </widget> + <widget class="QPushButton" name="outputFileButton"> + <property name="geometry"> + <rect> + <x>390</x> + <y>150</y> + <width>80</width> + <height>22</height> + </rect> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="text"> + <string>Choose</string> + </property> + </widget> + <widget class="QLabel" name="label_2"> + <property name="geometry"> + <rect> + <x>10</x> + <y>120</y> + <width>113</width> + <height>16</height> + </rect> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="frameShape"> + <enum>QFrame::Panel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Sunken</enum> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" color:#6ebeb9;">Smartrak divelog</span></p></body></html></string> + </property> + <property name="textInteractionFlags"> + <set>Qt::NoTextInteraction</set> + </property> + </widget> + <widget class="QLineEdit" name="inputLine"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>142</x> + <y>120</y> + <width>241</width> + <height>22</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="inputMethodHints"> + <set>Qt::ImhNone</set> + </property> + </widget> + <widget class="QPushButton" name="inputFilesButton"> + <property name="geometry"> + <rect> + <x>390</x> + <y>120</y> + <width>80</width> + <height>22</height> + </rect> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="text"> + <string>Choose</string> + </property> + </widget> + <widget class="QProgressBar" name="progressBar"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>50</x> + <y>380</y> + <width>401</width> + <height>22</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="cursor"> + <cursorShape>ArrowCursor</cursorShape> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="value"> + <number>0</number> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="invertedAppearance"> + <bool>false</bool> + </property> + <property name="textDirection"> + <enum>QProgressBar::TopToBottom</enum> + </property> + </widget> + <widget class="QPushButton" name="exitButton"> + <property name="geometry"> + <rect> + <x>390</x> + <y>180</y> + <width>80</width> + <height>22</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Ignored" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="text"> + <string>Exit</string> + </property> + </widget> + <widget class="QPushButton" name="importButton"> + <property name="geometry"> + <rect> + <x>300</x> + <y>180</y> + <width>80</width> + <height>22</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> + </property> + <property name="contextMenuPolicy"> + <enum>Qt::PreventContextMenu</enum> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="text"> + <string>Import</string> + </property> + </widget> + <widget class="QLabel" name="label"> + <property name="geometry"> + <rect> + <x>40</x> + <y>10</y> + <width>431</width> + <height>101</height> + </rect> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Plain</enum> + </property> + <property name="text"> + <string><html><head/><body><p><span style=" font-weight:600; color:#6ebeb9;">Select the .slg file(s) you want to import to Subsurface format, and the exported .xml file. It's advisable to use a new output file, as its actual content will be erased.</span></p></body></html></string> + </property> + <property name="textFormat"> + <enum>Qt::AutoText</enum> + </property> + <property name="scaledContents"> + <bool>false</bool> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + <property name="margin"> + <number>0</number> + </property> + <property name="indent"> + <number>-1</number> + </property> + </widget> + <widget class="QLabel" name="label_4"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>-40</x> + <y>-30</y> + <width>571</width> + <height>471</height> + </rect> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + <property name="text"> + <string/> + </property> + <property name="pixmap"> + <pixmap resource="../subsurface.qrc">:/subsurface-icon</pixmap> + </property> + <property name="scaledContents"> + <bool>true</bool> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + <widget class="QPlainTextEdit" name="plainTextEdit"> + <property name="geometry"> + <rect> + <x>50</x> + <y>220</y> + <width>401</width> + <height>131</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>8</pointsize> + </font> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <property name="inputMethodHints"> + <set>Qt::ImhNone</set> + </property> + <property name="frameShape"> + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Sunken</enum> + </property> + <property name="lineWrapMode"> + <enum>QPlainTextEdit::NoWrap</enum> + </property> + <property name="textInteractionFlags"> + <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set> + </property> + <property name="backgroundVisible"> + <bool>true</bool> + </property> + <property name="placeholderText"> + <string>Import messages (Errors, warnings, etc)</string> + </property> + </widget> + <zorder>label_4</zorder> + <zorder>line</zorder> + <zorder>label_3</zorder> + <zorder>outputLine</zorder> + <zorder>outputFileButton</zorder> + <zorder>label_2</zorder> + <zorder>inputLine</zorder> + <zorder>inputFilesButton</zorder> + <zorder>progressBar</zorder> + <zorder>exitButton</zorder> + <zorder>importButton</zorder> + <zorder>label</zorder> + <zorder>plainTextEdit</zorder> + </widget> + <widget class="QStatusBar" name="statusBar"> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>34</red> + <green>74</green> + <blue>133</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>51</red> + <green>111</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>42</red> + <green>92</green> + <blue>166</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>17</red> + <green>37</green> + <blue>66</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>22</red> + <green>49</green> + <blue>89</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>34</red> + <green>74</green> + <blue>133</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>144</red> + <green>164</green> + <blue>194</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>34</red> + <green>74</green> + <blue>133</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>51</red> + <green>111</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>42</red> + <green>92</green> + <blue>166</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>17</red> + <green>37</green> + <blue>66</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>22</red> + <green>49</green> + <blue>89</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>34</red> + <green>74</green> + <blue>133</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>144</red> + <green>164</green> + <blue>194</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>17</red> + <green>37</green> + <blue>66</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>34</red> + <green>74</green> + <blue>133</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>51</red> + <green>111</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>42</red> + <green>92</green> + <blue>166</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>17</red> + <green>37</green> + <blue>66</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>22</red> + <green>49</green> + <blue>89</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>17</red> + <green>37</green> + <blue>66</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>17</red> + <green>37</green> + <blue>66</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>34</red> + <green>74</green> + <blue>133</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>34</red> + <green>74</green> + <blue>133</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>34</red> + <green>74</green> + <blue>133</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="autoFillBackground"> + <bool>true</bool> + </property> + <property name="locale"> + <locale language="English" country="UnitedStates"/> + </property> + </widget> + </widget> + <layoutdefault spacing="6" margin="11"/> + <resources> + <include location="../subsurface.qrc"/> + </resources> + <connections/> +</ui> diff --git a/smtk-import/smtk_standalone.cpp b/smtk-import/smtk_standalone.cpp new file mode 100644 index 000000000..54d5b6a99 --- /dev/null +++ b/smtk-import/smtk_standalone.cpp @@ -0,0 +1,49 @@ +#include <stdlib.h> +#include <stdio.h> +#include "dive.h" +#include "smrtk2ssrfc_window.h" +#include <QApplication> +#include <QDebug> + +extern "C" void smartrak_import(const char *file, struct dive_table *table); + +/* + * Simple command line interface to call directly smartrak_import() or launch + * the GUI if called without arguments. + */ + +int main(int argc, char *argv[]) +{ + char *infile, *outfile; + int i; + QApplication a(argc, argv); + Smrtk2ssrfcWindow w; + + switch (argc) { + case 1: + w.show(); + return a.exec(); + break; + case 2: + qDebug() << "\nUsage:\n"; + qDebug() << "Smrtk2ssrfc importer can be used without arguments (in a graphical UI)"; + qDebug() << "or with, at least, two arguments (in a CLI, the file to be imported and"; + qDebug() << "the file to store the Subsurface formatted dives), so you have to use one"; + qDebug() << "of these examples:\n"; + qDebug() << "$smrtk2ssrfc"; + qDebug() << "or"; + qDebug() << "$smrtk2ssrfc /input/file.slg[ file_2[ file_n]] /output/file.xml\n\n"; + break; + default: + outfile = argv[argc - 1]; + qDebug() << "\n[Importing]\n"; + for(i = 1; i < argc -1; i++) { + infile = argv[i]; + qDebug() << "\t" << infile << "\n"; + smartrak_import(infile, &dive_table); + } + qDebug() << "\n[Writing]\n\t" << outfile << "\n"; + save_dives_logic(outfile, false); + break; + } +} |