# HG changeset patch # User Chris Cannam # Date 1290523753 0 # Node ID 622da79c0f4f53fe86156b1b295916d063d3de63 # Parent c5e34ed5b7914f56c3c96bd67bc03a334396dd3e * A bit more work on new Work (file status) widget diff -r c5e34ed5b791 -r 622da79c0f4f filestatuswidget.cpp --- a/filestatuswidget.cpp Tue Nov 23 11:33:15 2010 +0000 +++ b/filestatuswidget.cpp Tue Nov 23 14:49:13 2010 +0000 @@ -31,6 +31,9 @@ layout->addWidget(new QLabel(tr("Local:")), row, 0); m_localPathLabel = new QLabel; + QFont f(m_localPathLabel->font()); + f.setBold(true); + m_localPathLabel->setFont(f); layout->addWidget(m_localPathLabel, row, 1); ++row; @@ -38,17 +41,39 @@ m_remoteURLLabel = new QLabel; layout->addWidget(m_remoteURLLabel, row, 1); - m_modifiedList = new QListWidget; - m_addedList = new QListWidget; - m_unknownList = new QListWidget; - m_removedList = new QListWidget; - m_missingList = new QListWidget; + layout->setColumnStretch(1, 20); - layout->addWidget(m_modifiedList, ++row, 0, 1, 2); - layout->addWidget(m_addedList, ++row, 0, 1, 2); - layout->addWidget(m_removedList, ++row, 0, 1, 2); - layout->addWidget(m_unknownList, ++row, 0, 1, 2); - layout->addWidget(m_missingList, ++row, 0, 1, 2); + QStringList labels; + labels << tr("Modified files:") + << tr("Added files:") + << tr("Removed files:") + << tr("New untracked files:") + << tr("Missing files:"); + + QList lists; + lists << &m_modifiedList + << &m_addedList + << &m_removedList + << &m_unknownList + << &m_missingList; + + for (int i = 0; i < labels.size(); ++i) { + + QWidget *box = new QWidget; + QGridLayout *boxlayout = new QGridLayout; + box->setLayout(boxlayout); + + boxlayout->addWidget(new QLabel(labels[i]), 0, 0); + + *lists[i] = new QListWidget; + (*lists[i])->setSelectionMode(QListWidget::ExtendedSelection); + boxlayout->addWidget(*lists[i], 1, 0); + + layout->addWidget(box, ++row, 0, 1, 2); + box->hide(); + } + + layout->setRowStretch(++row, 20); } void @@ -75,16 +100,18 @@ void FileStatusWidget::updateWidgets() { - m_modifiedList->clear(); - m_addedList->clear(); - m_unknownList->clear(); - m_removedList->clear(); - m_missingList->clear(); + StatParser &sp = m_statParser; + QMap listmap; + listmap[&sp.modified] = m_modifiedList; + listmap[&sp.added] = m_addedList; + listmap[&sp.removed] = m_removedList; + listmap[&sp.missing] = m_missingList; + listmap[&sp.unknown] = m_unknownList; - m_modifiedList->addItems(m_statParser.modified); - m_addedList->addItems(m_statParser.added); - m_unknownList->addItems(m_statParser.unknown); - m_removedList->addItems(m_statParser.removed); - m_missingList->addItems(m_statParser.missing); + foreach (QStringList *sl, listmap.keys()) { + listmap[sl]->clear(); + listmap[sl]->addItems(*sl); + listmap[sl]->parentWidget()->setVisible(!sl->empty()); + } } diff -r c5e34ed5b791 -r 622da79c0f4f hgexpwidget.cpp --- a/hgexpwidget.cpp Tue Nov 23 11:33:15 2010 +0000 +++ b/hgexpwidget.cpp Tue Nov 23 14:49:13 2010 +0000 @@ -107,11 +107,13 @@ mainLayout -> addWidget(grpRemoteRepo, 1); mainLayout -> addWidget(grpLocalRepo, 8); mainLayout -> addWidget(grpWorkFolder, 12); - addTab(workPageWidget, tr("My work")); +//!!! addTab(workPageWidget, tr("My work")); // New work page fileStatusWidget = new FileStatusWidget; - addTab(fileStatusWidget, tr("My work (new)")); + fileStatusWidget->setLocalPath(workFolderPath); + fileStatusWidget->setRemoteURL(remoteRepo); + addTab(fileStatusWidget, tr("My work")); // History graph page historyGraphPageWidget = new QWidget; @@ -238,6 +240,8 @@ { statParser = StatParser(fileList); + fileStatusWidget->setStatParser(statParser); + workFolderFileList-> clear(); workFolderFileList -> addItems(fileList.split("\n")); } @@ -407,6 +411,9 @@ grpRemoteRepo -> setTitle(tr(REMOTE_REPO_STR) + remoteRepoPath); grpLocalRepo -> setTitle(tr(LOCAL_REPO_STR) + workFolderPath + getHgDirName()); grpWorkFolder -> setTitle(tr(WORKFOLDER_STR) + workFolderPath); + + fileStatusWidget->setLocalPath(workFolderPath); + fileStatusWidget->setRemoteURL(remoteRepoPath); } #define MERC_SHA1_MARKER_LEN 12