Add saveable labels for parts and connectors

This commit is contained in:
xypwn
2020-04-03 19:38:01 +02:00
parent de3d0823fb
commit 5340635389
26 changed files with 341 additions and 63 deletions

View File

@@ -7,6 +7,7 @@ AndGate::AndGate(Logic* logic)
{
addInputs(2);
addOutputs(1);
setLabel("And Gate");
recalculateLayout();
}

View File

@@ -7,6 +7,7 @@ BufferGate::BufferGate(Logic* logic)
{
addInputs(1);
addOutputs(1);
setLabel("Buffer Gate");
recalculateLayout();
}

View File

@@ -7,6 +7,7 @@ HighConstant::HighConstant(Logic* logic)
{
addInputs(0);
addOutputs(1);
setLabel("High Constant");
recalculateLayout();
m_brushColorNormal = Qt::GlobalColor::green;
m_brushColorSelected = Qt::GlobalColor::green;
@@ -14,6 +15,7 @@ HighConstant::HighConstant(Logic* logic)
QVector<bool> HighConstant::compute(QVector<bool> inputs)
{
Q_UNUSED(inputs)
QVector<bool> ret(1);
ret[0] = true;
return ret;

View File

@@ -1,7 +1,10 @@
#include "IntegratedCircuit.h"
#include <QFileInfo>
#include "../Scene.h"
#include "../Logic.h"
#include "../Connector.h"
#include "ToggleButton.h"
#include "LightBulb.h"
@@ -30,7 +33,14 @@ IntegratedCircuit::IntegratedCircuit(Logic* logic, QString filename)
std::sort(m_icLogicInputs.begin(), m_icLogicInputs.end(), compareToggleButtons);
std::sort(m_icLogicOutputs.begin(), m_icLogicOutputs.end(), compareLightBulbs);
setLabel(QFileInfo(m_filename).fileName());
recalculateLayout();
// Give all connectors labels according to those of the buttons/lamps of the IC logic
for(int i = 0; i < m_inputs.length(); i++)
m_inputs[i]->setLabel(m_icLogicInputs[i]->label());
for(int i = 0; i < m_outputs.length(); i++)
m_outputs[i]->setLabel(m_icLogicOutputs[i]->label());
}
QString IntegratedCircuit::filename()

View File

@@ -7,6 +7,7 @@ LightBulb::LightBulb(Logic* logic)
{
addInputs(1);
addOutputs(0);
setLabel("Light Bulb");
recalculateLayout();
m_brushColorNormal = Qt::GlobalColor::black;
m_brushColorSelected = Qt::GlobalColor::black;

View File

@@ -7,6 +7,7 @@ LowConstant::LowConstant(Logic* logic)
{
addInputs(0);
addOutputs(1);
setLabel("Low Constant");
recalculateLayout();
m_brushColorNormal = Qt::GlobalColor::black;
m_brushColorSelected = Qt::GlobalColor::black;
@@ -14,6 +15,7 @@ LowConstant::LowConstant(Logic* logic)
QVector<bool> LowConstant::compute(QVector<bool> inputs)
{
Q_UNUSED(inputs)
QVector<bool> ret(1);
ret[0] = false;
return ret;

View File

@@ -7,6 +7,7 @@ NandGate::NandGate(Logic* logic)
{
addInputs(2);
addOutputs(1);
setLabel("Nand Gate");
recalculateLayout();
}

View File

@@ -7,6 +7,7 @@ NorGate::NorGate(Logic* logic)
{
addInputs(2);
addOutputs(1);
setLabel("Nor Gate");
recalculateLayout();
}

View File

@@ -7,6 +7,7 @@ NotGate::NotGate(Logic* logic)
{
addInputs(1);
addOutputs(1);
setLabel("Not Gate");
recalculateLayout();
}

View File

@@ -7,6 +7,7 @@ OrGate::OrGate(Logic* logic)
{
addInputs(2);
addOutputs(1);
setLabel("Or Gate");
recalculateLayout();
}

View File

@@ -7,6 +7,7 @@ ToggleButton::ToggleButton(Logic* logic)
{
addInputs(0);
addOutputs(1);
setLabel("Toggle Button");
recalculateLayout();
m_brushColorNormal = Qt::GlobalColor::red;
m_brushColorSelected = Qt::GlobalColor::red;
@@ -14,6 +15,7 @@ ToggleButton::ToggleButton(Logic* logic)
QVector<bool> ToggleButton::compute(QVector<bool> inputs)
{
Q_UNUSED(inputs)
QVector<bool> ret(1);
ret[0] = m_toggleState;
return ret;

View File

@@ -7,6 +7,7 @@ XnorGate::XnorGate(Logic* logic)
{
addInputs(2);
addOutputs(1);
setLabel("Xnor Gate");
recalculateLayout();
}

View File

@@ -7,6 +7,7 @@ XorGate::XorGate(Logic* logic)
{
addInputs(2);
addOutputs(1);
setLabel("Xor Gate");
recalculateLayout();
}