Flesh out some GUI infrastructure.

This commit is contained in:
David Given
2024-01-12 23:00:04 +01:00
parent 35633ae0ee
commit 5cda1901a6
6 changed files with 464 additions and 265 deletions

View File

@@ -35,6 +35,9 @@ cxxprogram(
name="gui2", name="gui2",
srcs=[ srcs=[
"./main.cc", "./main.cc",
"./mainwindow.cc",
"./globals.h",
"./mainwindow.h",
], ],
cflags=["-fPIC"], cflags=["-fPIC"],
ldflags=["$(QT5_EXTRA_LIBS)"], ldflags=["$(QT5_EXTRA_LIBS)"],

18
src/gui2/globals.h Normal file
View File

@@ -0,0 +1,18 @@
#pragma once
#include "userinterface.h"
class UserInterface : public Ui_MainWindow
{
};
class Application : public QApplication
{
public:
Application(int& argc, char** argv): QApplication(argc, argv) {}
virtual ~Application() {}
public:
};
extern std::unique_ptr<Application> app;

View File

@@ -1,19 +1,25 @@
#include <QApplication> #include "globals.h"
#include <QPushButton> #include "mainwindow.h"
#include "userinterface.h"
class UserInterface : public Ui_MainWindow {}; std::unique_ptr<Application> app;
int main(int argc, char **argv) class ApplicationImpl : public Application
{ {
QApplication app (argc, argv); public:
Q_INIT_RESOURCE(resources); ApplicationImpl(int& argc, char** argv):
QMainWindow mainWindow; Application(argc, argv),
UserInterface ui; _mainWindow(MainWindow::create())
ui.setupUi(&mainWindow); {
mainWindow.setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); _mainWindow->show();
mainWindow.setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); }
mainWindow.show();
return app.exec(); private:
std::unique_ptr<MainWindow> _mainWindow;
};
int main(int argc, char** argv)
{
Q_INIT_RESOURCE(resources);
app = std::make_unique<ApplicationImpl>(argc, argv);
return app->exec();
} }

26
src/gui2/mainwindow.cc Normal file
View File

@@ -0,0 +1,26 @@
#include "mainwindow.h"
class MainWindowImpl : public MainWindow
{
public:
MainWindowImpl()
{
setupUi(this);
setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
setDriveConfigurationPane(noDriveConfigurationWidget);
}
public:
void setDriveConfigurationPane(QWidget* active)
{
for (auto* w : driveConfigurationContainer->findChildren<QWidget*>())
w->setVisible(w == active);
}
};
std::unique_ptr<MainWindow> MainWindow::create()
{
return std::make_unique<MainWindowImpl>();
}

9
src/gui2/mainwindow.h Normal file
View File

@@ -0,0 +1,9 @@
#pragma once
#include "globals.h"
class MainWindow : public QMainWindow, public Ui_MainWindow
{
public:
static std::unique_ptr<MainWindow> create();
};

View File

@@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1449</width> <width>1574</width>
<height>705</height> <height>845</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@@ -19,14 +19,17 @@
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">QTabWidget::pane { <string notr="true">QTabWidget::pane {
border: 1px black; // border: 1px black;
border-style: solid; // border-style: solid;
} }
</string> </string>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@@ -35,34 +38,7 @@
<string notr="true"/> <string notr="true"/>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="3" column="1"> <item row="0" column="3">
<widget class="QLabel" name="label_9">
<property name="text">
<string>http://cowlark.com/fluxengine</string>
</property>
<property name="textFormat">
<enum>Qt::MarkdownText</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>Work directly with disk</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QPushButton" name="pushButton_4">
<property name="text">
<string>Write memory to disk</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QWidget" name="widget_2" native="true"> <widget class="QWidget" name="widget_2" native="true">
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing"> <property name="spacing">
@@ -80,38 +56,58 @@
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
</layout>
</widget>
</item>
<item row="6" column="1">
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Disk operations</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item> <item>
<widget class="QLabel" name="label"> <widget class="QPushButton" name="pushButton_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
<property name="text"> <property name="text">
<string/> <string>Read disk into memory</string>
</property> </property>
<property name="pixmap"> <property name="icon">
<pixmap resource="resources.qrc">:/ui/extras/icon.png</pixmap> <iconset theme="media-playback-start">
<normaloff>.</normaloff>.</iconset>
</property> </property>
<property name="scaledContents"> </widget>
<bool>true</bool> </item>
<item>
<widget class="QPushButton" name="pushButton_4">
<property name="text">
<string>Write memory to disk</string>
</property> </property>
<property name="alignment"> <property name="icon">
<set>Qt::AlignCenter</set> <iconset theme="media-record">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>Work directly with disk</string>
</property>
<property name="icon">
<iconset theme="system-run">
<normaloff>.</normaloff>.</iconset>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="4" column="1"> <item row="4" column="1" colspan="3">
<spacer name="verticalSpacer"> <spacer name="verticalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
@@ -124,49 +120,6 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="8" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="6" column="2">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="1">
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>Read disk into memory</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="label_2">
<property name="text">
<string>FluxEngine</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="6" column="0"> <item row="6" column="0">
<spacer name="horizontalSpacer_2"> <spacer name="horizontalSpacer_2">
<property name="orientation"> <property name="orientation">
@@ -180,6 +133,136 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="1" column="1" colspan="3">
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="resources.qrc">:/ui/extras/icon.png</pixmap>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="7" column="1" colspan="3">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="1" colspan="3">
<widget class="QLabel" name="label_9">
<property name="text">
<string>http://cowlark.com/fluxengine</string>
</property>
<property name="textFormat">
<enum>Qt::MarkdownText</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="1" colspan="3">
<widget class="QLabel" name="label_2">
<property name="text">
<string>FluxEngine</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="6" column="3">
<widget class="QGroupBox" name="groupBox_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Memory operations</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>Load image into memory</string>
</property>
<property name="icon">
<iconset theme="document-open">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_6">
<property name="text">
<string>Save image/flux from memory</string>
</property>
<property name="icon">
<iconset theme="document-save">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_9">
<property name="text">
<string>Create blank image</string>
</property>
<property name="icon">
<iconset theme="document-new">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="6" column="4">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="6" column="2">
<widget class="QLabel" name="label_8">
<property name="styleSheet">
<string notr="true">font-size: 20pt;
</string>
</property>
<property name="text">
<string>⬅➡</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<widget class="QMenuBar" name="menubar"> <widget class="QMenuBar" name="menubar">
@@ -187,12 +270,11 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1449</width> <width>1574</width>
<height>22</height> <height>29</height>
</rect> </rect>
</property> </property>
</widget> </widget>
<widget class="QStatusBar" name="statusbar"/>
<widget class="QDockWidget" name="memoryWindow"> <widget class="QDockWidget" name="memoryWindow">
<property name="features"> <property name="features">
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set> <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
@@ -321,24 +403,6 @@ background: white;
</widget> </widget>
</widget> </widget>
</item> </item>
<item>
<layout class="QHBoxLayout" name="_2">
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>Load image into memory</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_6">
<property name="text">
<string>Save image/flux from memory</string>
</property>
</widget>
</item>
</layout>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@@ -357,8 +421,26 @@ background: white;
</attribute> </attribute>
<widget class="QWidget" name="dockWidgetContents_3"> <widget class="QWidget" name="dockWidgetContents_3">
<layout class="QVBoxLayout" name="verticalLayout_8"> <layout class="QVBoxLayout" name="verticalLayout_8">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item> <item>
<widget class="QScrollArea" name="scrollArea_2"> <widget class="QScrollArea" name="scrollArea_2">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
@@ -376,8 +458,8 @@ background: white;
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>283</width> <width>310</width>
<height>635</height> <height>524</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_4"> <layout class="QVBoxLayout" name="verticalLayout_4">
@@ -416,11 +498,8 @@ background: white;
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QWidget" name="formWidget_2" native="true"> <widget class="QWidget" name="driveConfigurationContainer" native="true">
<property name="autoFillBackground"> <layout class="QVBoxLayout" name="verticalLayout_2">
<bool>true</bool>
</property>
<layout class="QFormLayout" name="fluxfileDriveConfigurationWidget">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>0</number>
</property> </property>
@@ -433,140 +512,179 @@ background: white;
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item row="1" column="0"> <item>
<widget class="QLabel" name="label_6"> <widget class="QWidget" name="hardwareDriveConfigurationWidget_2" native="true">
<property name="text"> <property name="enabled">
<string>Filename:</string> <bool>true</bool>
</property> </property>
<layout class="QFormLayout" name="hardwareDriveConfigurationWidget">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Drive:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Drive type:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBox_3">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>High density disk inserted</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_2">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <widget class="QWidget" name="fluxFileDriveConfigurationContainer" native="true">
<item> <property name="autoFillBackground">
<widget class="QLineEdit" name="lineEdit"/> <bool>true</bool>
</item>
<item>
<widget class="QPushButton" name="pushButton_7">
<property name="text">
<string>Open</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Override RPM:</string>
</property> </property>
<layout class="QFormLayout" name="fluxfileDriveConfigurationWidget">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Filename:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item>
<widget class="QPushButton" name="pushButton_7">
<property name="text">
<string>Open</string>
</property>
<property name="icon">
<iconset theme="document-open">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Override RPM:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QRadioButton" name="radioButton">
<property name="text">
<string>Use value in file</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QRadioButton" name="radioButton_2">
<property name="text">
<string>300 rpm / 200 ms</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QRadioButton" name="radioButton_3">
<property name="text">
<string>360 rpm / 166 ms</string>
</property>
</widget>
</item>
<item row="5" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QRadioButton" name="radioButton_4">
<property name="text">
<string>Custom:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item>
<widget class="QRadioButton" name="radioButton"> <widget class="QLabel" name="noDriveConfigurationWidget">
<property name="text"> <property name="text">
<string>Use value in file</string> <string>No drive selected! Select one from the list above, or work with images in the pane on the right.</string>
</property> </property>
</widget> <property name="alignment">
</item> <set>Qt::AlignCenter</set>
<item row="3" column="1">
<widget class="QRadioButton" name="radioButton_2">
<property name="text">
<string>300 rpm / 200 ms</string>
</property> </property>
</widget> <property name="wordWrap">
</item> <bool>true</bool>
<item row="4" column="1">
<widget class="QRadioButton" name="radioButton_3">
<property name="text">
<string>360 rpm / 166 ms</string>
</property>
</widget>
</item>
<item row="5" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QRadioButton" name="radioButton_4">
<property name="text">
<string>Custom:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="formWidget" native="true">
<property name="enabled">
<bool>true</bool>
</property>
<layout class="QFormLayout" name="hardwareDriveConfigurationWidget">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Drive:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_2"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Drive type:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="comboBox_3"/>
</item>
<item row="2" column="1">
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>High density disk inserted</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<widget class="QLabel" name="label_8">
<property name="text">
<string>No drive selected! Select one from the list above, or work with images in the pane on the right.</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item> <item>
<spacer name="verticalSpacer_4"> <spacer name="verticalSpacer_4">
<property name="orientation"> <property name="orientation">
@@ -575,7 +693,7 @@ background: white;
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>214</height> <height>0</height>
</size> </size>
</property> </property>
</spacer> </spacer>
@@ -633,8 +751,8 @@ background: white;
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1431</width> <width>1558</width>
<height>179</height> <height>193</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@@ -652,11 +770,15 @@ background: white;
</property> </property>
<item> <item>
<layout class="QGridLayout" name="gridLayout_2" columnstretch="0,0,100,0"> <layout class="QGridLayout" name="gridLayout_2" columnstretch="0,0,100,0">
<item row="1" column="2">
<widget class="QComboBox" name="comboBox_4"/>
</item>
<item row="0" column="2" colspan="2"> <item row="0" column="2" colspan="2">
<widget class="QComboBox" name="comboBox"/> <widget class="QComboBox" name="comboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item> </item>
<item row="0" column="1"> <item row="0" column="1">
<widget class="QRadioButton" name="radioButton_5"> <widget class="QRadioButton" name="radioButton_5">
@@ -670,6 +792,10 @@ background: white;
<property name="text"> <property name="text">
<string>Open</string> <string>Open</string>
</property> </property>
<property name="icon">
<iconset theme="document-open">
<normaloff>.</normaloff>.</iconset>
</property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="1" column="1">
@@ -689,6 +815,16 @@ background: white;
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="2">
<widget class="QLineEdit" name="lineEdit_2">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@@ -735,6 +871,7 @@ background: white;
</layout> </layout>
</widget> </widget>
</widget> </widget>
<widget class="QStatusBar" name="statusbar"/>
</widget> </widget>
<resources> <resources>
<include location="resources.qrc"/> <include location="resources.qrc"/>