FMTX support
authorNikolay Tischenko <niktischenko@gmail.com>
Sat, 11 Dec 2010 22:26:48 +0000 (04:26 +0600)
committerNikolay Tischenko <niktischenko@gmail.com>
Sat, 11 Dec 2010 22:26:48 +0000 (04:26 +0600)
someplayer.pro
src/fmtxsettingsdialog.cpp [new file with mode: 0644]
src/fmtxsettingsdialog.h [new file with mode: 0644]
src/mainwindow.cpp
src/mainwindow.h
src/playerform.cpp
src/playerform.h
src/settingsform.cpp
src/settingsform.h
src/ui/fmtxsettingsdialog.ui [new file with mode: 0644]
src/ui/settingsform.ui

index c671223..c1333c5 100644 (file)
@@ -127,7 +127,8 @@ SOURCES += src/main.cpp\
     src/coverfinder.cpp \
     src/clickablelabel.cpp \
     src/settingsform.cpp \
-    src/dbusclient.cpp
+    src/dbusclient.cpp \
+    src/fmtxsettingsdialog.cpp
 
 HEADERS  += src/mainwindow.h \
                src/player/player.h \
@@ -233,7 +234,8 @@ HEADERS  += src/mainwindow.h \
     src/coverfinder.h \
     src/clickablelabel.h \
     src/settingsform.h \
-    src/dbusclient.h
+    src/dbusclient.h \
+    src/fmtxsettingsdialog.h
 
 FORMS    += src/ui/mainwindow.ui \
     src/ui/playerform.ui \
@@ -247,7 +249,8 @@ FORMS    += src/ui/mainwindow.ui \
     src/ui/toolswidget.ui \
     src/ui/managelibraryform.ui \
     src/ui/directoryview.ui \
-    src/ui/settingsform.ui
+    src/ui/settingsform.ui \
+    src/ui/fmtxsettingsdialog.ui
 
 CONFIG += mobility
 MOBILITY = 
diff --git a/src/fmtxsettingsdialog.cpp b/src/fmtxsettingsdialog.cpp
new file mode 100644 (file)
index 0000000..2dd8b2b
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * SomePlayer - An alternate music player for Maemo 5
+ * Copyright (C) 2010 Nikolay (somebody) Tischenko <niktischenko@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+#include "fmtxsettingsdialog.h"
+#include "ui_fmtxsettingsdialog.h"
+#include "someplayer.h"
+
+using namespace SomePlayer::Storage;
+
+FmtxSettingsDialog::FmtxSettingsDialog(QWidget *parent) :
+               QDialog(parent),
+               ui(new Ui::FmtxSettingsDialog)
+{
+       ui->setupUi(this);
+       Config config;
+       QString station_name = config.getValue("fmtx/station_name").toString();
+       if (station_name.isEmpty()) {
+               station_name = "S.P.";
+               config.setValue("fmtx/station_name", station_name);
+       }
+       int freq = config.getValue("fmtx/frequency").toInt();
+       ui->stationNameLineEdit->setText(station_name);
+       int freq_g = freq/1000;
+       int freq_s = (freq % 1000)/10;
+       freq_g = freq_g > 107 ? 107 : freq_g;
+       freq_g = freq_g < 88 ? 88 : freq_g;
+       ui->freqGWidget->scrollTo(ui->freqGWidget->model()->index(freq_g-88, 0));
+       ui->freqGWidget->setCurrentRow(freq_g-88);
+       ui->freqSWidget->scrollTo(ui->freqSWidget->model()->index(freq_s/5, 0));
+       ui->freqSWidget->setCurrentRow(freq_s/5);
+}
+
+FmtxSettingsDialog::~FmtxSettingsDialog()
+{
+       delete ui;
+}
+
+QString FmtxSettingsDialog::stationName() {
+       return ui->stationNameLineEdit->text();
+}
+
+int FmtxSettingsDialog::frequency() {
+       return (88+ui->freqGWidget->currentRow())*1000+10*(ui->freqSWidget->currentRow()*5);
+}
diff --git a/src/fmtxsettingsdialog.h b/src/fmtxsettingsdialog.h
new file mode 100644 (file)
index 0000000..25e90a9
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * SomePlayer - An alternate music player for Maemo 5
+ * Copyright (C) 2010 Nikolay (somebody) Tischenko <niktischenko@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+#ifndef FMTXSETTINGSDIALOG_H
+#define FMTXSETTINGSDIALOG_H
+
+#include <QDialog>
+
+namespace Ui {
+       class FmtxSettingsDialog;
+}
+
+class FmtxSettingsDialog : public QDialog
+{
+       Q_OBJECT
+
+public:
+       explicit FmtxSettingsDialog(QWidget *parent = 0);
+       ~FmtxSettingsDialog();
+       QString stationName();
+       int frequency();
+
+private:
+       Ui::FmtxSettingsDialog *ui;
+};
+
+#endif // FMTXSETTINGSDIALOG_H
index 2654394..2785cc7 100644 (file)
@@ -41,6 +41,7 @@
 
 using namespace SomePlayer::DataObjects;
 using namespace SomePlayer::Storage;
+using namespace SomePlayer::Playback;
 
 MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
@@ -98,6 +99,8 @@ MainWindow::MainWindow(QWidget *parent) :
        connect(_settings_form, SIGNAL(trackColorChanged()), _player_form, SLOT(updateTrackColor()));
        connect(_settings_form, SIGNAL(hwZoomPolicyChanged()), this, SLOT(_hw_zoom_policy_changed()));
        connect(&_dbus_client, SIGNAL(displayStateChanged(bool)), this, SLOT(_set_display_state(bool)));
+       connect(_settings_form, SIGNAL(fmtxSettingsChanged()), this, SLOT(_fmtx_settings_changed()));
+       connect(_player_form, SIGNAL(trackChanged()), this, SLOT(_update_fmtx_text()));
        _player_form->reload(true);
        QString mode = config.getValue("ui/orientation").toString();
        if (mode == "landscape") {
@@ -384,3 +387,24 @@ void MainWindow::_zoom_key_pressed(quint32 code) {
                }
        }
 }
+
+void MainWindow::_fmtx_settings_changed() {
+       Config config;
+       if (config.getValue("fmtx/enabled").toString() == "yes") {
+               QString station_name = config.getValue("fmtx/station_name").toString();
+               int frequency = config.getValue("fmtx/frequency").toInt();
+               system(QString("fmtx_client -p1 -f%1 -s\"%2\" -t\"%3\" 2>&1 >/dev/null")
+                      .arg(frequency)
+                      .arg(station_name)
+                      .arg(_player_form->playerCaption()).toAscii());
+       } else {
+               system("fmtx_client -p 0 2>&1 >/dev/null");
+       }
+}
+
+void MainWindow::_update_fmtx_text() {
+       Config config;
+       if (config.getValue("fmtx/enabled").toString() == "yes") {
+               system(QString("fmtx_client -t \"%1\" 2>&1 >/dev/null").arg(_player_form->playerCaption()).toAscii());
+       }
+}
index fecda17..2e3f180 100644 (file)
@@ -77,6 +77,8 @@ private slots:
        void _hw_zoom_policy_changed();
        void _set_display_state(bool);
        void _zoom_key_pressed(quint32);
+       void _fmtx_settings_changed();
+       void _update_fmtx_text();
 private:
        PlayerForm *_player_form;
        LibraryForm *_library_form;
index ae91db2..d25c3f9 100644 (file)
@@ -228,6 +228,7 @@ void PlayerForm::_track_changed(Track track) {
        ui->playlistView->show();
        _display_track(track);
        _context_menu->actions().at(2)->setText(_lib->isFavorite(track) ? tr("Remove from favorites") : tr("Add to favorites"));
+       emit trackChanged();
 }
 
 void PlayerForm::_display_track(Track track) {
@@ -763,3 +764,8 @@ void PlayerForm::next() {
 void PlayerForm::prev() {
        _player->prev();
 }
+
+QString PlayerForm::playerCaption() {
+       TrackMetadata meta = _player->current().metadata();
+       return QString("%1 - %2").arg(meta.artist()).arg(meta.title());
+}
index a081ace..fd02bc2 100644 (file)
@@ -56,6 +56,7 @@ public:
        ~PlayerForm();
        bool isEqualizerEnabled() { return _player->equalizerEnabled(); }
        bool isEqualizerAvailable() { return _player->equalizerAvailable(); }
+       QString playerCaption();
 
 signals:
        void library();
@@ -63,6 +64,7 @@ signals:
        void clearPlaylist();
        void refreshLibrary();
        void dirView();
+       void trackChanged();
 
 public slots:
        void reload(bool);
index 7baf60e..a922f32 100644 (file)
@@ -23,6 +23,7 @@
 #include <QDebug>
 #include <QFile>
 #include "someplayer.h"
+#include "fmtxsettingsdialog.h"
 
 using namespace SomePlayer::Storage;
 
@@ -51,6 +52,7 @@ SettingsForm::SettingsForm(QWidget *parent) :
        ui->hwkeysLabel->setEnabled(false);
        ui->hwTControlButton->setEnabled(false);
        ui->hwVolumeButton->setEnabled(false);
+       ui->fmtxGroupBox->setChecked(false);
        if (albumSorting == "alphabet") {
                ui->albumsSortAButton->setChecked(true);
        }
@@ -104,6 +106,10 @@ SettingsForm::SettingsForm(QWidget *parent) :
                ui->hwVolumeButton->setChecked(true);
                config.setValue("hw/zoom_action", "volume");
        }
+       if (config.getValue("fmtx/enabled").toString() == "yes") {
+               ui->fmtxGroupBox->setChecked(true);
+               emit fmtxSettingsChanged();
+       }
        if (!QFile::exists(QString(_APPLICATION_PATH_)+"/someplayer_ru.qm")) {
                ui->langBox->hide();
        } // refactor this when more translations will be added
@@ -136,6 +142,8 @@ SettingsForm::SettingsForm(QWidget *parent) :
        connect (ui->uiButton, SIGNAL(clicked()), this, SLOT(_toggle_view_ui()));
        connect (ui->hwButton, SIGNAL(clicked()), this, SLOT(_toggle_view_hw()));
        connect (ui->libraryButton, SIGNAL(clicked()), this, SLOT(_toggle_view_lib()));
+       connect (ui->fmtxSettingsButton, SIGNAL(clicked()), this, SLOT(_open_fmtx_settings()));
+       connect (ui->fmtxGroupBox, SIGNAL(toggled(bool)), this, SLOT(_toggle_fmtx_settings(bool)));
        _toggle_view_ui();
        setAttribute(Qt::WA_Maemo5StackedWindow);
        setWindowFlags(Qt::Window | windowFlags());
@@ -402,3 +410,18 @@ void SettingsForm::portraitMode() {
        ui->orientationGridLayout->addWidget(ui->orientationAButton, 0, 1);
        ui->orientationGridLayout->addWidget(ui->orientationPButton, 1, 0, 1, 2);
 }
+
+void SettingsForm::_open_fmtx_settings() {
+       FmtxSettingsDialog dialog(this);
+       dialog.exec();
+       Config config;
+       config.setValue("fmtx/station_name", dialog.stationName());
+       config.setValue("fmtx/frequency", dialog.frequency());
+       emit fmtxSettingsChanged();
+}
+
+void SettingsForm::_toggle_fmtx_settings(bool checked) {
+       Config config;
+       config.setValue("fmtx/enabled", checked ? "yes" : "no");
+       emit fmtxSettingsChanged();
+}
index bdd07d8..817d9f5 100644 (file)
@@ -48,6 +48,7 @@ signals:
        void translationChanged();
        void trackColorChanged();
        void hwZoomPolicyChanged();
+       void fmtxSettingsChanged();
 
 private:
        Ui::SettingsForm *ui;
@@ -82,6 +83,8 @@ private slots:
        void _toggle_view_ui();
        void _toggle_view_lib();
        void _toggle_view_hw();
+       void _open_fmtx_settings();
+       void _toggle_fmtx_settings(bool);
 };
 
 #endif // SETTINGSFORM_H
diff --git a/src/ui/fmtxsettingsdialog.ui b/src/ui/fmtxsettingsdialog.ui
new file mode 100644 (file)
index 0000000..7145947
--- /dev/null
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>FmtxSettingsDialog</class>
+ <widget class="QDialog" name="FmtxSettingsDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>607</width>
+    <height>348</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>FMTX Settings</string>
+  </property>
+  <layout class="QFormLayout" name="formLayout">
+   <item row="1" column="1">
+    <widget class="QLineEdit" name="stationNameLineEdit"/>
+   </item>
+   <item row="3" column="0">
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string>Frequency:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="1">
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QListWidget" name="freqGWidget">
+       <property name="minimumSize">
+        <size>
+         <width>0</width>
+         <height>0</height>
+        </size>
+       </property>
+       <item>
+        <property name="text">
+         <string>88</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>89</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>90</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>91</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>92</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>93</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>94</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>95</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>96</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>97</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>98</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>99</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>100</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>101</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>102</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>103</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>104</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>105</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>106</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>107</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+      </widget>
+     </item>
+     <item>
+      <widget class="QListWidget" name="freqSWidget">
+       <property name="minimumSize">
+        <size>
+         <width>0</width>
+         <height>0</height>
+        </size>
+       </property>
+       <item>
+        <property name="text">
+         <string>00</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>05</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>10</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>15</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>20</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>25</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>30</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>35</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>40</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>45</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>50</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>55</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>60</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>65</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>70</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>75</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>80</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>85</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>90</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>95</string>
+        </property>
+        <property name="textAlignment">
+         <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+        </property>
+       </item>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item row="4" column="1">
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Station:</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>FmtxSettingsDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>FmtxSettingsDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
index a1cf6e0..7d35f7f 100644 (file)
@@ -51,7 +51,7 @@
      <item>
       <widget class="QPushButton" name="hwButton">
        <property name="text">
-        <string>Hardware</string>
+        <string>System</string>
        </property>
        <property name="checkable">
         <bool>true</bool>
@@ -68,7 +68,7 @@
      <property name="currentIndex">
       <number>2</number>
      </property>
-     <widget class="QWidget" name="stackedWidgetPage1" native="true">
+     <widget class="QWidget" name="stackedWidgetPage1">
       <layout class="QVBoxLayout" name="verticalLayout_13">
        <property name="spacing">
         <number>0</number>
        </item>
       </layout>
      </widget>
-     <widget class="QWidget" name="stackedWidgetPage2" native="true">
+     <widget class="QWidget" name="stackedWidgetPage2">
       <layout class="QVBoxLayout" name="verticalLayout_15">
        <property name="spacing">
         <number>0</number>
        </item>
       </layout>
      </widget>
-     <widget class="QWidget" name="stackedWidgetPage3" native="true">
+     <widget class="QWidget" name="stackedWidgetPage3">
       <layout class="QVBoxLayout" name="verticalLayout_17">
        <property name="spacing">
         <number>0</number>
             </widget>
            </item>
            <item>
+            <widget class="QGroupBox" name="fmtxGroupBox">
+             <property name="title">
+              <string>Use FMTX</string>
+             </property>
+             <property name="checkable">
+              <bool>true</bool>
+             </property>
+             <layout class="QVBoxLayout" name="verticalLayout_6">
+              <property name="spacing">
+               <number>6</number>
+              </property>
+              <property name="leftMargin">
+               <number>0</number>
+              </property>
+              <property name="rightMargin">
+               <number>0</number>
+              </property>
+              <property name="bottomMargin">
+               <number>0</number>
+              </property>
+              <item>
+               <widget class="QLabel" name="label">
+                <property name="text">
+                 <string/>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QPushButton" name="fmtxSettingsButton">
+                <property name="text">
+                 <string>Settings</string>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </widget>
+           </item>
+           <item>
             <spacer name="verticalSpacer_3">
              <property name="orientation">
               <enum>Qt::Vertical</enum>