void MythUIStateType::CopyFrom(MythUIType *base) { MythUIStateType *st = dynamic_cast<MythUIStateType *>(base); if (!st) return; m_ShowEmpty = st->m_ShowEmpty; MythUIType::CopyFrom(base); QMap<QString, MythUIType *>::iterator i; for (i = st->m_ObjectsByName.begin(); i != st->m_ObjectsByName.end(); ++i) { MythUIType *other = i.value(); QString key = i.key(); MythUIType *newtype = GetChild(other->objectName()); AddObject(key, newtype); newtype->SetVisible(false); } QMap<int, MythUIType *>::iterator j; for (j = st->m_ObjectsByState.begin(); j != st->m_ObjectsByState.end(); ++j) { MythUIType *other = j.value(); int key = j.key(); MythUIType *newtype = GetChild(other->objectName()); AddObject((StateType)key, newtype); newtype->SetVisible(false); } }
void ZMEvents::setGridLayout(int layout) { if (layout < 1 || layout > 3) layout = 1; if (layout == m_layout) return; if (m_eventGrid) m_eventGrid->Reset(); m_layout = layout; // iterate though the children showing/hiding them as appropriate QString name; QString layoutName = QString("layout%1").arg(layout); QList<MythUIType *> *children = GetAllChildren(); for (int x = 0; x < children->size(); x++) { MythUIType *type = children->at(x); name = type->objectName(); if (name.startsWith("layout")) { if (name.startsWith(layoutName)) type->SetVisible(true); else type->SetVisible(false); } } // get the correct grid m_eventGrid = dynamic_cast<MythUIButtonList *> (GetChild(layoutName + "_eventlist")); if (m_eventGrid) { connect(m_eventGrid, SIGNAL(itemSelected( MythUIButtonListItem*)), this, SLOT(eventChanged(MythUIButtonListItem*))); connect(m_eventGrid, SIGNAL(itemClicked( MythUIButtonListItem*)), this, SLOT(playPressed())); connect(m_eventGrid, SIGNAL(itemVisible(MythUIButtonListItem*)), this, SLOT(eventVisible(MythUIButtonListItem*))); updateUIList(); BuildFocusList(); SetFocusWidget(m_eventGrid); } else {
bool MythUIStateType::DisplayState(const QString &name) { if (name.isEmpty()) return false; MythUIType *old = m_CurrentState; QMap<QString, MythUIType *>::Iterator i = m_ObjectsByName.find(name.toLower()); if (i != m_ObjectsByName.end()) m_CurrentState = i.value(); else m_CurrentState = NULL; if (m_CurrentState != old) { if (m_ShowEmpty || m_CurrentState) { if (m_deferload && m_CurrentState) m_CurrentState->LoadNow(); if (old) old->SetVisible(false); if (m_CurrentState) m_CurrentState->SetVisible(true); } } AdjustDependence(); return (m_CurrentState != NULL); }
bool MythUIStateType::DisplayState(StateType type) { MythUIType *old = m_CurrentState; QMap<int, MythUIType *>::Iterator i = m_ObjectsByState.find((int)type); if (i != m_ObjectsByState.end()) m_CurrentState = i.value(); else m_CurrentState = NULL; if (m_CurrentState != old) { if (m_ShowEmpty || m_CurrentState) { if (m_deferload && m_CurrentState) m_CurrentState->LoadNow(); if (old) old->SetVisible(false); if (m_CurrentState) m_CurrentState->SetVisible(true); } } AdjustDependence(); return (m_CurrentState != NULL); }
void MythUIStateType::CopyFrom(MythUIType *base) { MythUIStateType *st = dynamic_cast<MythUIStateType *>(base); if (!st) { VERBOSE(VB_IMPORTANT, "ERROR, bad parsing"); return; } ClearMaps(); m_ShowEmpty = st->m_ShowEmpty; MythUIType::CopyFrom(base); QMap<QString, MythUIType *>::iterator i; for (i = st->m_ObjectsByName.begin(); i != st->m_ObjectsByName.end(); ++i) { MythUIType *other = i.data(); QString key = i.key(); MythUIType *newtype = GetChild(other->name()); AddObject(key, newtype); newtype->SetVisible(other->IsVisible()); } QMap<int, MythUIType *>::iterator j; for (j = st->m_ObjectsByState.begin(); j != st->m_ObjectsByState.end(); ++j) { MythUIType *other = j.data(); int key = j.key(); MythUIType *newtype = GetChild(other->name()); AddObject((StateType)key, newtype); newtype->SetVisible(other->IsVisible()); } }
bool MythUIStateType::DisplayState(StateType type) { MythUIType *old = m_CurrentState; QMap<int, MythUIType *>::Iterator i = m_ObjectsByState.find((int)type); if (i != m_ObjectsByState.end()) m_CurrentState = i.data(); else m_CurrentState = NULL; if (m_CurrentState != old) { if (m_ShowEmpty || m_CurrentState != NULL) { if (m_CurrentState) m_CurrentState->SetVisible(true); if (old) old->SetVisible(false); } } return (m_CurrentState != NULL); }
bool MythUIStateType::DisplayState(const QString &name) { MythUIType *old = m_CurrentState; QMap<QString, MythUIType *>::Iterator i = m_ObjectsByName.find(name.lower()); if (i != m_ObjectsByName.end()) m_CurrentState = i.data(); else m_CurrentState = NULL; if (m_CurrentState != old) { if (m_ShowEmpty || m_CurrentState != NULL) { if (m_CurrentState) m_CurrentState->SetVisible(true); if (old) old->SetVisible(false); } } return (m_CurrentState != NULL); }
void MythUIProgressBar::CalculatePosition(void) { MythUIType *progressType = GetChild("progressimage"); if (!progressType) { LOG(VB_GENERAL, LOG_ERR, "Progress image doesn't exist"); return; } progressType->SetVisible(false); int total = m_total - m_start; int current = m_current - m_start; float percentage = 0.0; if (total <= 0 || current <= 0 || current > total) return; percentage = (float)current / (float)total; progressType->SetVisible(true); QRect fillArea = progressType->GetArea(); int height = fillArea.height(); int width = fillArea.width(); int x = fillArea.x(); int y = fillArea.y(); switch (m_effect) { case EffectReveal : if (m_layout == LayoutHorizontal) { width = (int)((float)fillArea.width() * percentage); } else { height = (int)((float)fillArea.height() * percentage); } break; case EffectSlide : if (m_layout == LayoutHorizontal) { int newwidth = (int)((float)fillArea.width() * percentage); x = width - newwidth; width = newwidth; } else { int newheight = (int)((float)fillArea.height() * percentage); y = height - newheight; height = newheight; } break; case EffectAnimate : // Not implemented yet break; } MythUIImage *progressImage = dynamic_cast<MythUIImage *>(progressType); MythUIShape *progressShape = dynamic_cast<MythUIShape *>(progressType); if (width <= 0) width = 1; if (height <= 0) height = 1; if (progressImage) progressImage->SetCropRect(x, y, width, height); else if (progressShape) progressShape->SetCropRect(x, y, width, height); SetRedraw(); }
void MythUIEditBar::Display(void) { QRect keeparea = QRect(); QRect cutarea = QRect(); MythUIType *position = GetChild("position"); MythUIType *keep = GetChild("keep"); MythUIType *cut = GetChild("cut"); MythUIType *cuttoleft = GetChild("cuttoleft"); MythUIType *cuttoright = GetChild("cuttoright"); MythUIType *keeptoleft = GetChild("keeptoleft"); MythUIType *keeptoright = GetChild("keeptoright"); if (position) position->SetVisible(false); if (keep) { keep->SetVisible(false); keeparea = keep->GetArea(); } if (cut) { cut->SetVisible(false); cutarea = cut->GetArea(); } if (cuttoleft) cuttoleft->SetVisible(false); if (cuttoright) cuttoright->SetVisible(false); if (keeptoleft) keeptoleft->SetVisible(false); if (keeptoright) keeptoright->SetVisible(false); if (position && keeparea.isValid()) { int offset = position->GetArea().width() / 2; int newx = (int)(((float)keeparea.width() * m_editPosition) + 0.5f); int newy = position->GetArea().top(); position->SetPosition(newx - offset, newy); position->SetVisible(true); } ClearImages(); if (!m_regions.size()) { if (keep) keep->SetVisible(true); return; } MythUIShape *barshape = dynamic_cast<MythUIShape *>(cut); MythUIImage *barimage = dynamic_cast<MythUIImage *>(cut); MythUIShape *leftshape = dynamic_cast<MythUIShape *>(cuttoleft); MythUIImage *leftimage = dynamic_cast<MythUIImage *>(cuttoleft); MythUIShape *rightshape = dynamic_cast<MythUIShape *>(cuttoright); MythUIImage *rightimage = dynamic_cast<MythUIImage *>(cuttoright); QListIterator<QPair<float, float> > regions(m_regions); while (regions.hasNext() && cutarea.isValid()) { QPair<float, float> region = regions.next(); int left = (int)((region.first * cutarea.width()) + 0.5f); int right = (int)((region.second * cutarea.width()) + 0.5f); if (left >= right) right = left + 1; if (cut) { AddBar(barshape, barimage, QRect(left, cutarea.top(), right - left, cutarea.height())); } if (cuttoleft && (region.second < 1.0f)) AddMark(leftshape, leftimage, right, true); if (cuttoright && (region.first > 0.0f)) AddMark(rightshape, rightimage, left, false); } CalcInverseRegions(); barshape = dynamic_cast<MythUIShape *>(keep); barimage = dynamic_cast<MythUIImage *>(keep); leftshape = dynamic_cast<MythUIShape *>(keeptoleft); leftimage = dynamic_cast<MythUIImage *>(keeptoleft); rightshape = dynamic_cast<MythUIShape *>(keeptoright); rightimage = dynamic_cast<MythUIImage *>(keeptoright); QListIterator<QPair<float, float> > regions2(m_invregions); while (regions2.hasNext() && keeparea.isValid()) { QPair<float, float> region = regions2.next(); int left = (int)((region.first * keeparea.width()) + 0.5f); int right = (int)((region.second * keeparea.width()) + 0.5f); if (left >= right) right = left + 1; if (keep) { AddBar(barshape, barimage, QRect(left, keeparea.top(), right - left, keeparea.height())); } if (keeptoleft && (region.second < 1.0f)) AddMark(leftshape, leftimage, right, true); if (keeptoright && (region.first > 0.0f)) AddMark(rightshape, rightimage, left, false); } if (position) position->MoveToTop(); }