Skip to content

#757 - Implement a Site subtab for ground temperatures#859

Open
jmarrec wants to merge 25 commits intodevelopfrom
757_SiteGroundTemperature
Open

#757 - Implement a Site subtab for ground temperatures#859
jmarrec wants to merge 25 commits intodevelopfrom
757_SiteGroundTemperature

Conversation

@jmarrec
Copy link
Collaborator

@jmarrec jmarrec commented Mar 3, 2026

For now I added:

  • Site:GroundTemperature:BuildingSurface
  • Site:GroundTemperature:Shallow, with an option to import if the WeatherFile has Ground Temps at 0.5m
  • Site:GroundTemperature:Deep, with an option to import if the WeatherFile has a Ground Temps at 4.0m
  • Site:WaterMainsTemperature

2026-03-05-757-GroundTemp

TODO:

  • While recording the inital GIF 2026-03-03-757-GroundTemp I'm noticing that I have a hiccup with the units being displayed when I switch back and forth between subtabs...
  • I'm considering adding Kiva, but this is far more complicated
  • Ideally a SiteWaterMainsTemperature panel would be added too, this is a widely useful object as soon as you intend to model DHW

@jmarrec jmarrec self-assigned this Mar 3, 2026
@jmarrec jmarrec force-pushed the 757_SiteGroundTemperature branch from 53954ab to d61e711 Compare March 3, 2026 13:44
jmarrec added 10 commits March 3, 2026 14:54
Replace OSItem-based left panel with ScheduleTabDefault-style static entries

The current SiteGroundTemperatureMonthlyListView uses OSItemSelector + custom OSItem
subclasses. This results in a "NO ICON" placeholder next to each entry because OSItem always
reserves space for an icon. I aim to have the visual style of the Schedules tab's
ScheduleTabDefault: plain clickable text labels, no icon, with a "not present" fallback view (like NewProfileView) that offers an Add button if the unique object doesn't exist yet.
unbind() (line 190):
  setLocked(true);  // → m_lineEdit->setReadOnly(true)

  Old completeBind() (before my fix) — line 160:
  setEnabled(true);  // enables outer widget, but m_lineEdit->readOnly is still true!

  My fix (line 159):
  m_lineEdit->setLocked(false);  // resets readOnly before enabling
  setEnabled(true);

  The fix is safe because QuantityLineEdit::setLocked guards with if (m_locked != locked), so calling setLocked(false) on a fresh (never-unbound) edit is a no-op. The old code had the same latent bug; it
  was just never exposed because the original UI was broken in a more visible way ("NO ICON" items) before the full switch to the new widget pattern.
@jmarrec jmarrec force-pushed the 757_SiteGroundTemperature branch from d61e711 to ae6d2ab Compare March 3, 2026 13:55
jmarrec added 9 commits March 5, 2026 10:22
…l rendering.

The QSS + property approach is strictly better:

  - Qt handles all rendering (no manual fillRect/drawLine)
  - :hover pseudo-selector replaces m_hovering, mouseMoveEvent, leaveEvent
  - setSelected() just toggles the property + unpolish/polish
  - paintEvent reduces to the standard QStyleOption boilerplate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement a method to specify monthly ground temperature schedule

1 participant