void MusicSongsListWidget::listCellEntered(int row, int column) { QTableWidgetItem *it = item(m_previousColorRow, 2); if(it != nullptr) { it->setIcon(QIcon()); it->setText((*m_musicSongs)[m_previousColorRow].getMusicTime()); } if((it = item(row, 2)) != nullptr) { it->setText(QString()); it->setIcon(QIcon(":/image/musicdelete")); } bool isCurrentIndex; emit isCurrentIndexs(isCurrentIndex); if(isCurrentIndex && (it = item(m_playRowIndex, 2)) != nullptr) { it->setText(QString()); it->setIcon(QIcon()); } MusicAbstractTableWidget::listCellEntered(row, column); //To show music Songs Item information if(m_musicSongsInfoWidget == nullptr) { m_musicSongsInfoWidget = new MusicSongsListItemInfoWidget; m_musicSongsInfoWidget->hide(); } m_timerShow.stop(); m_timerShow.start(500); m_timerStay.stop(); m_timerStay.start(3000); }
void MusicSongsListWidget::showTimeOut() { m_timerShow.stop(); if(m_musicSongsInfoWidget) { MusicSong song = (*m_musicSongs)[m_previousColorRow]; song.setMusicSize( QFileInfo(song.getMusicPath()).size() ); m_musicSongsInfoWidget->setMusicSongInformation( song ); m_musicSongsInfoWidget->setGeometry(mapToGlobal(QPoint(width(), 0)).x() + 5, QCursor::pos().y(), 264, 108); bool isCurrentIndex; emit isCurrentIndexs(isCurrentIndex); m_musicSongsInfoWidget->setVisible( isCurrentIndex ? (m_musicSongsPlayWidget && !m_musicSongsPlayWidget->getItemRenameState()) : true); } }
void MusicSongsListWidget::startToDrag() { bool empty; emit isSearchFileListEmpty(empty); if(empty && m_dragStartIndex > -1 && m_leftButtonPressed && m_mouseMoved) { QStringList list; int start = m_dragStartIndex; int end = currentRow(); int index = m_playRowIndex; if(m_playRowIndex == start) { index = end; } else if(m_playRowIndex == end) { index = (start > end) ? (end + 1) : (end - 1); } else { if(start > m_playRowIndex && end < m_playRowIndex) { ++index; } else if(start < m_playRowIndex && end > m_playRowIndex) { --index; } } emit getMusicIndexSwaped(start, end, index, list); for(int i=qMin(start, end); i<=qMax(start, end); ++i) { item(i, 1)->setText(list[i]); } bool isCurrent; emit isCurrentIndexs(isCurrent); if(isCurrent) { selectRow(index); } } }