57 lines
2.8 KiB
C++
57 lines
2.8 KiB
C++
#include "devicewindow.h"
|
|
#include "ui_devicewindow.h"
|
|
|
|
#include <QMessageBox>
|
|
#include <QStringBuilder>
|
|
|
|
DeviceWindow::DeviceWindow(QWidget *parent)
|
|
: QMainWindow(parent)
|
|
, ui(new Ui::DeviceWindow)
|
|
, model(new WidgetModel(this))
|
|
, sortProxy(new QSortFilterProxyModel(this))
|
|
{
|
|
// build the UI
|
|
ui->setupUi(this);
|
|
ui->menubar->setNativeMenuBar(false); // workaround for poor Qt6 support in KDE 5
|
|
|
|
// setup the model
|
|
sortProxy->setSourceModel(model);
|
|
ui->widgetView->setModel(sortProxy);
|
|
ui->widgetView->setSortingEnabled(true);
|
|
ui->widgetView->sortByColumn(WidgetModel::Column::PortName, Qt::SortOrder::AscendingOrder);
|
|
|
|
// action connections
|
|
connect(ui->actionAbout, &QAction::triggered,
|
|
this, [this](){
|
|
QString title = tr("About") % " " % qAppName();
|
|
QString text = QApplication::organizationName() % "\n"
|
|
% "https://" % QApplication::organizationDomain() % "\n\n"
|
|
% QApplication::applicationName() % " is a demonstration of the capabilities "
|
|
% "of the DMX-USB-Pro driver implimentation in the OpenLCP protocol library."
|
|
% "\n\n" % "© 2023 Kevin Matz" % "\n\n"
|
|
% "Permission is hereby granted, free of charge, to any person obtaining a copy"
|
|
% "of this software and associated documentation files (the \"Software\"), "
|
|
% "to deal in the Software without restriction, including without limitation "
|
|
% "the rights to use, copy, modify, merge, publish, distribute, sublicense, "
|
|
% "and/or sell copies of the Software, and to permit persons to whom the "
|
|
% "Software is furnished to do so, subject to the following conditions:" % "\n\n"
|
|
% "The above copyright notice and this permission notice shall be included in "
|
|
% "all copies or substantial portions of the Software." % "\n\n"
|
|
% "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR "
|
|
% "IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, "
|
|
% "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE "
|
|
% "AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER "
|
|
% "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
|
|
% "FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER "
|
|
% "DEALINGS IN THE SOFTWARE.";
|
|
QMessageBox::about(this, title, text);
|
|
});
|
|
connect(ui->actionAbout_Qt, &QAction::triggered,
|
|
this, [this](){QMessageBox::aboutQt(this);});
|
|
}
|
|
|
|
DeviceWindow::~DeviceWindow()
|
|
{
|
|
delete ui;
|
|
}
|