Ticket #7826: buttontree_columns.patch
File buttontree_columns.patch, 2.9 KB (added by , 16 years ago) |
---|
-
libs/libmythui/mythuibuttontree.h
62 62 uint m_visibleLists; 63 63 uint m_currentDepth; 64 64 uint m_oldDepth; 65 QString m_columnWidths; 65 66 QList<MythUIButtonList*> m_buttonlists; 67 QList<MythUIButtonList*> m_listColumns; 66 68 MythUIButtonList *m_listTemplate; 67 69 MythUIButtonList *m_activeList; 68 70 uint m_activeListID; -
libs/libmythui/mythuibuttontree.cpp
10 10 11 11 // Mythui Headers 12 12 #include "mythmainwindow.h" 13 #include "mythuihelper.h" 13 14 14 15 MythUIButtonTree::MythUIButtonTree(MythUIType *parent, const QString &name) 15 16 : MythUIType(parent, name) … … 56 57 57 58 m_listTemplate->SetVisible(false); 58 59 59 int width = (m_Area.width() - (m_listSpacing * (m_numLists-1))) / m_numLists; 60 61 if(m_listColumns.size() == 0) 62 { 63 int i = 1; 64 while ( i <= (int)m_numLists ) 65 { 66 QString columnname = QString("listcolumn_%1").arg(i); 67 MythUIButtonList *column = dynamic_cast<MythUIButtonList *>(GetChild(columnname)); 68 if (column) column->SetVisible(false); 69 m_listColumns.append(column); 70 i++; 71 }; 72 }; 73 74 75 76 QStringList widthlist = m_columnWidths.split(',', QString::SkipEmptyParts); 77 int defaultwidth = (m_Area.width() - (m_listSpacing * (m_numLists-1))) / m_numLists; 60 78 int height = m_Area.height(); 61 79 80 float scalex, scaley; 81 GetMythUI()->GetScreenSettings(scalex, scaley); 82 83 int x = 0; 62 84 int i = 0; 63 85 while ( i < (int)m_numLists ) 64 86 { 87 int width = (widthlist.size() == (int)m_numLists) ? (int)widthlist[i].toInt()*scalex : defaultwidth; 88 MythUIButtonList *column = m_listColumns[i]; 89 if (!column) column = m_listTemplate; 90 91 65 92 QString listname = QString("buttontree list %1").arg(i); 66 93 MythUIButtonList *list = new MythUIButtonList(this, listname); 67 list->CopyFrom( m_listTemplate);94 list->CopyFrom(column); 68 95 list->SetVisible(false); 69 96 list->SetActive(false); 70 97 list->SetCanTakeFocus(false); 71 int x = i * (width + m_listSpacing);72 98 MythRect listArea = MythRect(x,0,width,height); 73 99 list->SetArea(listArea); 74 100 m_buttonlists.append(list); 101 x += width + m_listSpacing; 75 102 i++; 76 103 } 77 104 … … 565 592 { 566 593 m_numLists = getFirstText(element).toInt(); 567 594 } 595 else if (element.tagName() == "columnwidths") 596 { 597 m_columnWidths = getFirstText(element); 598 } 568 599 else 569 600 return MythUIType::ParseElement(element); 570 601