give a recipe line its own row for its identity
This commit is contained in:
@@ -13,9 +13,10 @@ class BuildingIconCache;
|
||||
class ItemIconCache;
|
||||
class QHBoxLayout;
|
||||
|
||||
// One recipe drawn on a line: what it consumes, an arrow, what it produces, and how
|
||||
// long a cycle takes (REQ-UI-RECIPE-SUMMARY). Every place the UI states what something
|
||||
// makes draws this same line, so a recipe reads alike wherever it is shown:
|
||||
// One recipe drawn: what it consumes, an arrow, what it produces, and how long a cycle
|
||||
// takes (REQ-UI-RECIPE-SUMMARY), under a header naming the building that runs it and the
|
||||
// recipe itself where the recipe has to identify itself. Every place the UI states what
|
||||
// something makes draws this same line, so a recipe reads alike wherever it is shown:
|
||||
//
|
||||
// * beneath the selection button, for the recipe a building is running
|
||||
// (REQ-UI-RECIPE-SUMMARY);
|
||||
@@ -48,12 +49,13 @@ public:
|
||||
// lines.
|
||||
struct Spec
|
||||
{
|
||||
// Drawn as a leading chip when the line has to say which building runs the
|
||||
// recipe -- an item may have several producers (REQ-UI-ITEM-TOOLTIP). Unset
|
||||
// wherever the surrounding widget already establishes the building.
|
||||
// The chip of the building running the recipe, on the header line, where the
|
||||
// recipe has to say which building that is -- an item may have several producers
|
||||
// (REQ-UI-ITEM-TOOLTIP). Unset wherever the surrounding widget already
|
||||
// establishes the building, and the header line is then left out entirely.
|
||||
std::optional<BuildingType> building;
|
||||
// Leading recipe name, for the same reason. Empty where the name is the
|
||||
// caption above the line instead.
|
||||
// The recipe's name, beside the building chip on the header line. Empty where the
|
||||
// name is the caption of the widget around this one instead.
|
||||
QString name;
|
||||
std::vector<Amount> inputs;
|
||||
// Empty for a line that produces no item of its own: a ship schematic, or a
|
||||
@@ -91,7 +93,13 @@ private:
|
||||
|
||||
ItemIconCache* m_itemIcons;
|
||||
BuildingIconCache* m_buildingIcons;
|
||||
QHBoxLayout* m_layout;
|
||||
// The two lines, each a row widget of its own so a rebuild only has to empty their
|
||||
// layouts -- no nested layout to take apart. The header is hidden where the spec
|
||||
// names neither a building nor a recipe.
|
||||
QWidget* m_headerRow;
|
||||
QHBoxLayout* m_headerLayout;
|
||||
QWidget* m_amountsRow;
|
||||
QHBoxLayout* m_amountsLayout;
|
||||
// What the row currently shows, so a refresh at tick rate rebuilds it only when the
|
||||
// recipe actually changed.
|
||||
Spec m_spec;
|
||||
|
||||
Reference in New Issue
Block a user