void MyPrintout::AdjustColumn(int * x, int * y, int textWidth, int textHeight) { // Decide if we need a new column. If so, adjust x and y so that the // next item is drawn at the start of a new column. if (m_gridRect.Contains(*x, *y) || m_gridRect.Contains(*x + textWidth, *y + textHeight)) { // If there is still room under the grid, don't start a new // column, just move y down. if (m_gridRect.GetBottom() + textHeight < m_pageRect.GetBottom()) *y = m_gridRect.GetBottom(); else // Otherwise start a new column NewColumn(x, y); } // If we're below the page, start a new column. else if (*y + textHeight > m_pageRect.GetBottom()) { NewColumn(x, y); } }
void CTimelineWidget::UpdateTimeline() { QLayoutItem *child; if(layout() != Q_NULLPTR) { while (((child = layout()->takeAt(0)) != 0)) { // delete child->widget(); delete child; } delete layout(); } m_pLoader->start(); QHBoxLayout* pHBLayout = new QHBoxLayout(this); pHBLayout->setSpacing(6); pHBLayout->setContentsMargins(3, 3, 3, 3); QPalette Pal(palette()); Pal.setColor(QPalette::Background, QColor(240,240,240)); setAutoFillBackground(true); setPalette(Pal); int iLayout1 = 0; int iLayout2 = 0; QList<int> lPendingGames = QList<int>(); for (int i = 0; i < m_pThumbnailList->length(); i++) { if (m_pThumbnailList->at(i)->GetSyncedID() != QString("")) { int j = FindThumbnailIndex(m_pThumbnailList->at(i)->GetSyncedID()); if (j >= 0) { if (i < j) { pHBLayout->addWidget(NewColumn(true)); AddThumbnail(m_pThumbnailList->at(i), pHBLayout->itemAt(pHBLayout->count()-1)->widget()); AddThumbnail(m_pThumbnailList->at(j), pHBLayout->itemAt(pHBLayout->count()-1)->widget()); if (m_pThumbnailList->at(i)->GetPlayerID() == CMainWindow::PLAYER_1) { iLayout1 = pHBLayout->count(); lPendingGames.append(iLayout1); } else if (m_pThumbnailList->at(i)->GetPlayerID() == CMainWindow::PLAYER_2) { iLayout2 = pHBLayout->count(); lPendingGames.append(iLayout2); } } else { if (m_pThumbnailList->at(i)->GetPlayerID() == CMainWindow::PLAYER_1) { iLayout1 = lPendingGames.takeFirst(); } else if (m_pThumbnailList->at(i)->GetPlayerID() == CMainWindow::PLAYER_2) { iLayout2 = lPendingGames.takeFirst(); } } } } else if (m_pThumbnailList->at(i)->GetPlayerID() == CMainWindow::PLAYER_1) { if (iLayout1 >= pHBLayout->count()) { pHBLayout->addWidget(NewColumn(false)); } if (!AddThumbnail(m_pThumbnailList->at(i), pHBLayout->itemAt(iLayout1)->widget())) { pHBLayout->insertWidget(iLayout1, NewColumn(false)); AddThumbnail(m_pThumbnailList->at(i), pHBLayout->itemAt(iLayout1)->widget()); iLayout2++; for (QList<int>::Iterator g = lPendingGames.begin(); g != lPendingGames.end(); g++) { (*g)++; } } iLayout1++; } else if (m_pThumbnailList->at(i)->GetPlayerID() == CMainWindow::PLAYER_2) { if (iLayout2 >= pHBLayout->count()) { pHBLayout->addWidget(NewColumn(false)); } if (!AddThumbnail(m_pThumbnailList->at(i), pHBLayout->itemAt(iLayout2)->widget())) { pHBLayout->insertWidget(iLayout2, NewColumn(false)); AddThumbnail(m_pThumbnailList->at(i), pHBLayout->itemAt(iLayout2)->widget()); iLayout1++; for (QList<int>::Iterator g = lPendingGames.begin(); g != lPendingGames.end(); g++) { (*g)++; } } iLayout2++; } else if (m_pThumbnailList->at(i)->GetPlayerID() == CMainWindow::BOTH_PLAYER) { pHBLayout->addWidget(NewColumn(false)); AddThumbnail(m_pThumbnailList->at(i), pHBLayout->itemAt(pHBLayout->count()-1)->widget()); iLayout1 = pHBLayout->count(); iLayout2 = pHBLayout->count(); } } setLayout(pHBLayout); }