##// END OF EJS Templates
Added static plugin support...
Added static plugin support In case of fully static exe even plugins must be static to allow single file executable. Small fix, when using resources in app from library they must be initialized with Q_INIT_RESOURCE. Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r1141:00ce9b74612e
r1156:247dc18789c6
Show More
CatalogueEventsWidget.cpp
100 lines | 3.8 KiB | text/x-c | CppLexer
/ gui / src / Catalogue / CatalogueEventsWidget.cpp
#include "Catalogue/CatalogueEventsWidget.h"
#include "ui_CatalogueEventsWidget.h"
#include <QtDebug>
struct CatalogueEventsWidget::CatalogueEventsWidgetPrivate {
void addEventItem(const QStringList &data, QTableWidget *tableWidget);
enum class Column { Event, TStart, TEnd, Tags, Product, NbColumn };
QStringList columnNames() { return QStringList{"Event", "TStart", "TEnd", "Tags", "Product"}; }
};
CatalogueEventsWidget::CatalogueEventsWidget(QWidget *parent)
: QWidget(parent),
ui(new Ui::CatalogueEventsWidget),
impl{spimpl::make_unique_impl<CatalogueEventsWidgetPrivate>()}
{
ui->setupUi(this);
connect(ui->btnTime, &QToolButton::clicked, [this](auto checked) {
if (checked) {
ui->btnChart->setChecked(false);
}
});
connect(ui->btnChart, &QToolButton::clicked, [this](auto checked) {
if (checked) {
ui->btnTime->setChecked(false);
}
});
connect(ui->tableWidget, &QTableWidget::cellClicked, [this](auto row, auto column) {
auto event = ui->tableWidget->item(row, 0)->text();
emit this->eventSelected(event);
});
connect(ui->tableWidget, &QTableWidget::currentItemChanged,
[this](auto current, auto previous) {
if (current && current->row() >= 0) {
auto event = ui->tableWidget->item(current->row(), 0)->text();
emit this->eventSelected(event);
}
});
connect(ui->tableWidget, &QTableWidget::itemSelectionChanged, [this]() {
auto selection = ui->tableWidget->selectedRanges();
auto isNotMultiSelection
= selection.isEmpty() || (selection.count() == 1 && selection.first().rowCount() == 1);
ui->btnChart->setEnabled(isNotMultiSelection);
ui->btnTime->setEnabled(isNotMultiSelection);
});
Q_ASSERT(impl->columnNames().count() == (int)CatalogueEventsWidgetPrivate::Column::NbColumn);
ui->tableWidget->setColumnCount((int)CatalogueEventsWidgetPrivate::Column::NbColumn);
ui->tableWidget->setHorizontalHeaderLabels(impl->columnNames());
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
ui->tableWidget->horizontalHeader()->setSortIndicatorShown(true);
}
CatalogueEventsWidget::~CatalogueEventsWidget()
{
delete ui;
}
void CatalogueEventsWidget::populateWithCatalogue(const QString &catalogue)
{
ui->tableWidget->clearContents();
ui->tableWidget->setRowCount(0);
// TODO
impl->addEventItem(
{catalogue + " - Event 1", "12/12/2012 12:12", "12/12/2042 12:52", "cloud", "mfi/b_gse42"},
ui->tableWidget);
impl->addEventItem(
{catalogue + " - Event 2", "12/12/2012 12:10", "12/12/2042 12:42", "Acloud", "mfi/b_gse1"},
ui->tableWidget);
impl->addEventItem(
{catalogue + " - Event 3", "12/12/2012 12:22", "12/12/2042 12:12", "Gcloud", "mfi/b_gse2"},
ui->tableWidget);
impl->addEventItem(
{catalogue + " - Event 4", "12/12/2012 12:00", "12/12/2042 12:62", "Bcloud", "mfi/b_gse3"},
ui->tableWidget);
}
void CatalogueEventsWidget::CatalogueEventsWidgetPrivate::addEventItem(const QStringList &data,
QTableWidget *tableWidget)
{
tableWidget->setSortingEnabled(false);
auto row = tableWidget->rowCount();
tableWidget->setRowCount(row + 1);
for (auto i = 0; i < (int)Column::NbColumn; ++i) {
auto item = new QTableWidgetItem(data.value(i));
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
tableWidget->setItem(row, i, item);
}
tableWidget->setSortingEnabled(true);
}