Skip to content
Snippets Groups Projects
Commit 437b7c21 authored by Cedric Seehausen's avatar Cedric Seehausen
Browse files

Fixed ComboboxButton + Implemented Inactive State in gui

parent 77faaecb
No related branches found
No related tags found
2 merge requests!62Ice Deployment in Scenario Manager and improved LogViewe,!44WIP: Merge with Master + First implementation of Ice Deployment via gui
#include "comboboxbutton.h"
#include <QMouseEvent>
#include <QStylePainter>
#include <ArmarXCore/core/logging/Logging.h>
ComboBoxButton::ComboBoxButton(const QModelIndex index, QWidget* parent) :
QComboBox(parent), index(index)
QComboBox(parent), index(index), buttonPress(false)
{
}
......@@ -12,13 +13,38 @@ ComboBoxButton::~ComboBoxButton()
{
}
void ComboBoxButton::paintEvent(QPaintEvent* e)
{
if (buttonPress)
{
QStylePainter painter(this);
QStyleOptionComboBox opt;
opt.rect = e->rect();
opt.currentIcon = itemIcon(currentIndex());
opt.currentText = currentText();
opt.iconSize = iconSize();
opt.state |= QStyle::State_Sunken;
painter.drawComplexControl(QStyle::CC_ComboBox, opt);
painter.drawControl(QStyle::CE_ComboBoxLabel, opt);
}
else
{
QComboBox::paintEvent(e);
}
}
void ComboBoxButton::mousePressEvent(QMouseEvent* e)
{
if (e->x() > this->width() - 20)
if (e->x() < this->width() - 20)
{
buttonPress = true;
}
else
{
QComboBox::mousePressEvent(e);
}
QComboBox::mousePressEvent(e);
}
void ComboBoxButton::mouseReleaseEvent(QMouseEvent* e)
......@@ -31,5 +57,5 @@ void ComboBoxButton::mouseReleaseEvent(QMouseEvent* e)
{
QComboBox::mouseReleaseEvent(e);
}
QComboBox::mousePressEvent(e);
buttonPress = false;
}
......@@ -17,9 +17,12 @@ signals:
protected:
virtual void mouseReleaseEvent(QMouseEvent* e);
virtual void mousePressEvent(QMouseEvent* e);
virtual void paintEvent(QPaintEvent* e);
private:
QModelIndex index;
bool buttonPress;
};
#endif // COMBOBOXBUTTON_H
......@@ -169,6 +169,10 @@ void DetailedApplicationView::showApplicationInstance(ApplicationInstancePtr app
{
ui->stateLabel->setStyleSheet("QLabel { color : red; }");
}
else if (appInstance->getStatus().compare("Inactive") == 0)
{
ui->stateLabel->setStyleSheet("QLabel { color : gray; }");
}
else
{
ui->stateLabel->setStyleSheet("QLabel { color : black; }");
......@@ -319,6 +323,10 @@ void DetailedApplicationView::showScenario(ScenarioPtr scenario)
{
ui->stateLabel->setStyleSheet("QLabel { color : red; }");
}
else if (scenario->getStatus().compare("Inactive") == 0)
{
ui->stateLabel->setStyleSheet("QLabel { color : gray; }");
}
else if (scenario->getStatus().compare("Mixed") == 0)
{
ui->stateLabel->setStyleSheet("QLabel { color : darkYellow; }");
......
......@@ -101,6 +101,10 @@ void ScenarioItem::update()
{
status = ApplicationStatus::Stopped;
}
else if (status == ApplicationStatus::Unknown && child(i)->data(4).toString().toStdString() == ApplicationStatus::Inactive)
{
status = ApplicationStatus::Inactive;
}
else if (status == ApplicationStatus::Running && child(i)->data(4).toString().toStdString() == ApplicationStatus::Running)
{
status = ApplicationStatus::Running;
......@@ -109,12 +113,16 @@ void ScenarioItem::update()
{
status = ApplicationStatus::Stopped;
}
else if (status == ApplicationStatus::Running && child(i)->data(4).toString().toStdString() == ApplicationStatus::Stopped)
else if (status == ApplicationStatus::Inactive && child(i)->data(4).toString().toStdString() == ApplicationStatus::Inactive)
{
status = ApplicationStatus::Mixed;
break;
status = ApplicationStatus::Inactive;
}
else if (status == ApplicationStatus::Stopped && child(i)->data(4).toString().toStdString() == ApplicationStatus::Running)
else if ((status == ApplicationStatus::Running && child(i)->data(4).toString().toStdString() == ApplicationStatus::Stopped)
|| (status == ApplicationStatus::Stopped && child(i)->data(4).toString().toStdString() == ApplicationStatus::Running)
|| (status == ApplicationStatus::Running && child(i)->data(4).toString().toStdString() == ApplicationStatus::Inactive)
|| (status == ApplicationStatus::Stopped && child(i)->data(4).toString().toStdString() == ApplicationStatus::Inactive)
|| (status == ApplicationStatus::Inactive && child(i)->data(4).toString().toStdString() == ApplicationStatus::Running)
|| (status == ApplicationStatus::Inactive && child(i)->data(4).toString().toStdString() == ApplicationStatus::Stopped))
{
status = ApplicationStatus::Mixed;
break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment