major ui changes, deleted some files

remotes/origin/HEAD
Tobias Weiss 7 years ago
parent 9f03443034
commit f9f7e5f92f

@ -8,7 +8,6 @@ SOURCES += src/localzleafstarter.cpp \
src/main.cpp \
src/mainwindow.cpp \
src/manualprintingsetup.cpp \
src/sessiondisplay.cpp \
src/sessionstarter.cpp \
src/Lib/client.cpp \
src/Lib/clienthelpnotificationserver.cpp \
@ -25,7 +24,6 @@ SOURCES += src/localzleafstarter.cpp \
HEADERS += src/localzleafstarter.h \
src/mainwindow.h \
src/manualprintingsetup.h \
src/sessiondisplay.h \
src/sessionstarter.h \
src/Lib/client.h \
src/Lib/clienthelpnotificationserver.h \
@ -43,7 +41,6 @@ HEADERS += src/localzleafstarter.h \
FORMS += src/localzleafstarter.ui \
src/mainwindow.ui \
src/manualprintingsetup.ui \
src/sessiondisplay.ui \
src/sessionstarter.ui
QMAKE_CXXFLAGS += -std=c++11

@ -105,22 +105,6 @@ void lc::Client::Boot() {
GotStatusChanged( state_t::BOOTING );
}
/*void lc::Client::DeactiveScreensaver() {
QStringList arguments;
arguments << "-i" << settings->pkeyPathUser
<< QString{ settings->userNameOnClients + "@" + ip }
<< settings->xsetCmd << "-display" << ":0.0" << "dpms" << "force" << "on";
// Start the process
QProcess deactiveScreensaverProcess;
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
deactiveScreensaverProcess.setProcessEnvironment( env );
deactiveScreensaverProcess.startDetached( settings->sshCmd, arguments );
// Output message via the debug messages tab
qDebug() << settings->sshCmd << arguments.join( " " );
}*/
void lc::Client::GotStatusChanged( state_t argState ) {
if ( ( protectedCycles > 0 ) && ( state == state_t::BOOTING ) && ( argState != state_t::RESPONDING ) ) {
return;
@ -319,3 +303,17 @@ void lc::Client::StartZLeaf( const QString * const argFakeName ) {
qDebug() << settings->sshCmd << arguments.join( " " );
}
}
void lc::Client::StartClientBrowser( const QString * const argURL ) {
//Declarations
QStringList arguments;
// Start the process
QProcess startClientBrowserProcess;
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
startClientBrowserProcess.setProcessEnvironment( env );
startClientBrowserProcess.startDetached( settings->clientBrowserCmd, arguments );
// Output message via the debug messages tab
qDebug() << settings->clientBrowserCmd << arguments.join( " " );
}

@ -113,6 +113,10 @@ public:
@param argFakeName The name the zLeaf instance shall have (if not the default, which is the hostname of the client)
*/
void StartZLeaf( const QString * const argFakeName = nullptr );
/*!
@param argURL URL to open in clients browser
*/
void StartClientBrowser( const QString * const argURL = nullptr );
private:
const QString &GetzLeafVersion() const { return zLeafVersion; }

@ -84,6 +84,7 @@ public:
const QStringList installedLaTeXHeaders;
const QStringList installedZTreeVersions;
const quint16 clientHelpNotificationServerPort = 0;
const QString clientBrowserCmd;
private:
static bool CheckPathAndComplain( const QString &argPath, const QString &argVariableName,

@ -71,6 +71,16 @@ bool lc::MainWindow::CheckIfUserIsAdmin() {
}
void lc::MainWindow::DisableDisfunctionalWidgets() {
const QStringList &zTreeEntries = settings->installedZTreeVersions;
if ( zTreeEntries.isEmpty() ) {
ui->CBClientNames->setEnabled( false );
//ui->GBzTree->setEnabled( false );
ui->LFakeName->setEnabled( false );
ui->PBRunzLeaf->setEnabled( false );
ui->PBStartLocalzLeaf->setEnabled( false );
ui->PBStartzLeaf->setEnabled( false );
}
// Disable all z-Leaf killing related buttons if the 'killall' command is not available
if ( settings->killallCmd.isEmpty() ) {
ui->PBKillLocalzLeaf->setEnabled( false );
@ -462,14 +472,6 @@ void lc::MainWindow::on_PBShowPreprints_clicked() {
lablib->ShowPreprints();
}
void lc::MainWindow::on_PBShowSessions_clicked() {
QWidget *sessionDisplay = new SessionDisplay{ lablib->GetSessionsModel(), this };
sessionDisplay->setWindowFlags( Qt::Window );
sessionDisplay->show();
connect( sessionDisplay, &SessionDisplay::destroyed,
sessionDisplay, &SessionDisplay::deleteLater );
}
void lc::MainWindow::on_PBShutdown_clicked() {
// Confirmation dialog
QMessageBox::StandardButton reply;
@ -612,16 +614,6 @@ void lc::MainWindow::SetupWidgets() {
ui->CBWebcamChooser->addItem( s );
}
const QStringList &zTreeEntries = settings->installedZTreeVersions;
if ( zTreeEntries.isEmpty() ) {
ui->CBClientNames->setEnabled( false );
//ui->GBzTree->setEnabled( false );
ui->LFakeName->setEnabled( false );
ui->PBRunzLeaf->setEnabled( false );
ui->PBStartLocalzLeaf->setEnabled( false );
ui->PBStartzLeaf->setEnabled( false );
}
// Disable the admin tab if the user has no administrative rights and set it up
if ( CheckIfUserIsAdmin() ) {
ui->TAdminActions->setEnabled( true );
@ -654,10 +646,15 @@ void lc::MainWindow::SetupWidgets() {
<< "apt full-upgrade -y" << "reboot" << "uname -a" );
}
DisableDisfunctionalWidgets();
// Disable buttons which are not configured
//DisableDisfunctionalWidgets();
// Set the info text in LInfo on the TInfo tab
ui->LInfo->setText( "This is Labcontrol.\n\nCopyright 2014-2016 Markus Prasser\n\n\n"
ui->LInfo->setText( "This is Labcontrol.\n\nDevelopers\n\n"
"0day-2016 Henning Prömpers\n"
"2014-2016 Markus Prasser\n"
"2016 - now WiwilabHiwiOrgaization\n\n\n"
"\n\nCopyright\n\n\n"
"Labcontrol is free software: you can redistribute it and/or modify\n"
"it under the terms of the GNU General Public License as published by\n"
"the Free Software Foundation, either version 3 of the License, or\n"
@ -735,7 +732,7 @@ void lc::MainWindow::UpdateClientsTableView() {
}
}
// TODO: Implement the functionality of the script in here
// TODO: Implement the functionality of the restore session script in here (no zenity script)
void lc::MainWindow::on_PBrestartCrashedSession_clicked() {
QProcess startProc;
startProc.setProcessEnvironment( QProcessEnvironment::systemEnvironment() );
@ -764,3 +761,14 @@ void lc::MainWindow::on_PBKillzTree_clicked()
qDebug() << "Canceled killing all z-Tree processes";
}
}
void lc::MainWindow::on_PBstartBrowser_clicked()
{
QModelIndexList activated_items = ui->TVClients->selectionModel()->selectedIndexes();
for ( QModelIndexList::ConstIterator it = activated_items.cbegin(); it != activated_items.cend(); ++it ) {
if ( ( *it ).data( Qt::DisplayRole ).type() != 0 ) {
Client *client = static_cast< Client* >( ( *it ).data( Qt::UserRole ).value< void * >() );
client->StartZLeaf( nullptr );
}
}
}

@ -25,7 +25,6 @@ enum class icons_t : unsigned short int { UNKNOWN, OFF, DOWN, BOOT, ON, ZLEAF, I
#include "Lib/client.h"
#include "Lib/lablib.h"
#include "sessionstarter.h"
#include "sessiondisplay.h"
#include "ui_mainwindow.h"
#include <cmath>
@ -70,7 +69,6 @@ private slots:
void on_PBRunzLeaf_clicked();
void on_PBShowORSEE_clicked();
void on_PBShowPreprints_clicked();
void on_PBShowSessions_clicked();
void on_PBShutdown_clicked();
void on_PBStartLocalzLeaf_clicked();
void on_PBStartSession_clicked();
@ -117,6 +115,7 @@ private slots:
QString argDateString );
void on_PBrestartCrashedSession_clicked();
void on_PBKillzTree_clicked();
void on_PBstartBrowser_clicked();
};
}

@ -35,7 +35,7 @@
</property>
<widget class="QWidget" name="TExperimenterActions">
<attribute name="title">
<string>Experimenter actions</string>
<string>Experiment actions</string>
</attribute>
<layout class="QHBoxLayout" name="HLExperimenterTab" stretch="1,1">
<item>
@ -54,7 +54,7 @@
</widget>
</item>
<item>
<widget class="Line" name="line">
<widget class="Line" name="line_ORSEE">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -78,7 +78,7 @@
</widget>
</item>
<item>
<widget class="Line" name="line_2">
<widget class="Line" name="line_preprints">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -102,7 +102,7 @@
</widget>
</item>
<item>
<widget class="Line" name="line_4">
<widget class="Line" name="line_zTree">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -127,7 +127,7 @@
</layout>
</item>
<item>
<widget class="Line" name="line_3">
<widget class="Line" name="line_localZleaf">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -145,7 +145,7 @@
</size>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Run zLeaf with another name than the client's:&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Run zLeaf with another name than local &lt;br/&gt;(or selected client's hostname):&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
@ -178,7 +178,7 @@
</widget>
</item>
<item>
<widget class="Line" name="line_5">
<widget class="Line" name="line_otherNameZLeaf">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -200,6 +200,19 @@
</item>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
@ -237,7 +250,7 @@
</widget>
</item>
<item>
<widget class="Line" name="line_6">
<widget class="Line" name="line_bootActions">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -264,7 +277,7 @@
</widget>
</item>
<item>
<widget class="Line" name="line_7">
<widget class="Line" name="line_zLeafActions">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -276,7 +289,7 @@
<string>Shows the desktop of the selected clients.</string>
</property>
<property name="text">
<string>View desktop of selected clients (viel only)</string>
<string>View desktop of selected clients (view only)</string>
</property>
</widget>
</item>
@ -288,7 +301,7 @@
</widget>
</item>
<item>
<widget class="Line" name="line_8">
<widget class="Line" name="line_viewDesktop">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -297,9 +310,9 @@
<item>
<layout class="QHBoxLayout" name="HLFileChooser">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<layout class="QVBoxLayout" name="VLUploadFolder">
<item>
<widget class="QLabel" name="label">
<widget class="QLabel" name="LUploadFolder">
<property name="text">
<string>Upload folder to all selected clients:</string>
</property>
@ -309,7 +322,7 @@
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<layout class="QHBoxLayout" name="HLUploadFolder">
<item>
<widget class="QPushButton" name="PBChooseFile">
<property name="text">
@ -338,21 +351,21 @@
</layout>
</item>
<item>
<widget class="Line" name="line_9">
<widget class="Line" name="line_uploadFolder">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="LStartBrowser">
<widget class="QLabel" name="LBrowserActions">
<property name="text">
<string>Start browser on all selected clients:</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<layout class="QHBoxLayout" name="HLURL">
<item>
<widget class="QLabel" name="LURL">
<property name="text">
@ -361,21 +374,32 @@
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit"/>
<widget class="QLineEdit" name="LEURL">
<property name="text">
<string>http://</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>Fullscreen</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<layout class="QHBoxLayout" name="HLbrowserActions">
<item>
<widget class="QPushButton" name="PBstartBrowser">
<property name="text">
<string>Start browser</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<widget class="QPushButton" name="PBstopBrowser_2">
<property name="text">
<string>Stop browser</string>
</property>
@ -383,6 +407,19 @@
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
@ -395,24 +432,242 @@
<bool>true</bool>
</property>
<attribute name="title">
<string>Start session</string>
<string>Session actions</string>
</attribute>
<widget class="QWidget" name="verticalLayoutWidget_2">
<property name="geometry">
<rect>
<x>9</x>
<y>9</y>
<y>79</y>
<width>371</width>
<height>381</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>New session</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_12">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>z-Tree version</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox"/>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Data target path:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_2"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>Port:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox">
<property name="minimum">
<number>7000</number>
</property>
<property name="maximum">
<number>10000</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="checkBox_2">
<property name="text">
<string>Use ramdisk for gamesafe file</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_5">
<property name="text">
<string>Allow session without attached clients</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_6">
<property name="text">
<string>Start z-Leaf on clients with the session</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>Start session</string>
</property>
</widget>
</item>
<item>
<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>
</layout>
</widget>
<widget class="QWidget" name="verticalLayoutWidget_3">
<property name="geometry">
<rect>
<x>390</x>
<y>140</y>
<width>381</width>
<height>321</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4"/>
</widget>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>761</width>
<height>411</height>
<height>57</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2"/>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label_15">
<property name="text">
<string>Cleanup / recover last session</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>Stop z-Tree</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>Recover crashed session</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="verticalLayoutWidget_6">
<property name="geometry">
<rect>
<x>388</x>
<y>108</y>
<width>381</width>
<height>321</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_13">
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>Template for receipts:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_3"/>
</item>
<item>
<widget class="QCheckBox" name="checkBox_3">
<property name="text">
<string>Print anonymous receipts</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_7">
<property name="text">
<string>Substitute participant names with:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_4"/>
</item>
<item>
<widget class="QCheckBox" name="checkBox_4">
<property name="text">
<string>Print receipt for local client</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Settings</string>
</attribute>
</widget>
<widget class="QWidget" name="TAdminActions">
<property name="enabled">
@ -531,12 +786,110 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Settings</string>
</attribute>
<widget class="QWidget" name="formLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>371</width>
<height>451</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_13">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_14">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit_2"/>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEdit_3"/>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="lineEdit_4"/>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="lineEdit_5"/>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="lineEdit_6"/>
</item>
<item row="6" column="1">
<widget class="QLineEdit" name="lineEdit_7"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="formLayoutWidget_2">
<property name="geometry">
<rect>
<x>390</x>
<y>10</y>
<width>381</width>
<height>451</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout_2"/>
</widget>
</widget>
<widget class="QWidget" name="TInfo">
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<attribute name="title">
<string>Info</string>
<string>Credits</string>
</attribute>
<layout class="QVBoxLayout" name="VLInfo">
<item>

@ -1,34 +0,0 @@
/*
* Copyright 2014-2016 Markus Prasser
*
* This file is part of Labcontrol.
*
* Labcontrol 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 3 of the License, or
* (at your option) any later version.
*
* Labcontrol 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 Labcontrol. If not, see <http://www.gnu.org/licenses/>.
*/
#include "sessiondisplay.h"
#include "ui_sessiondisplay.h"
lc::SessionDisplay::SessionDisplay( QAbstractTableModel *argSessionsModel,
QWidget *argParent ) :
QWidget{ argParent },
ui{ new Ui::SessionDisplay }
{
ui->setupUi( this );
ui->TVSessions->setModel( argSessionsModel );
}
lc::SessionDisplay::~SessionDisplay() {
delete ui;
}

@ -1,46 +0,0 @@
/*
* Copyright 2014-2016 Markus Prasser
*
* This file is part of Labcontrol.
*
* Labcontrol 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 3 of the License, or
* (at your option) any later version.
*
* Labcontrol 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 Labcontrol. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef SESSIONDISPLAY_H
#define SESSIONDISPLAY_H
#include <QAbstractTableModel>
#include <QWidget>
namespace lc {
namespace Ui {
class SessionDisplay;
}
class SessionDisplay : public QWidget {
Q_OBJECT
public:
explicit SessionDisplay( QAbstractTableModel *argSessionsModel,
QWidget *argParent = nullptr );
~SessionDisplay();
private:
Ui::SessionDisplay *ui = nullptr;
};
}
#endif // SESSIONDISPLAY_H

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>lc::SessionDisplay</class>
<widget class="QWidget" name="lc::SessionDisplay">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Session Display</string>
</property>
<layout class="QVBoxLayout" name="VLSessionDisplay">
<item>
<widget class="QTableView" name="TVSessions"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
Loading…
Cancel
Save