|
@@ -15,7 +15,7 @@
|
|
|
|
|
|
#include <QDebug>
|
|
|
|
|
|
-ProjectListItemWidget::ProjectListItemWidget(int index, QWidget *parent) : QWidget(parent), m_index(index)
|
|
|
+ProjectListItemWidget::ProjectListItemWidget(QWidget *parent) : QWidget(parent)
|
|
|
{
|
|
|
initWidgets();
|
|
|
initLayout();
|
|
@@ -105,7 +105,7 @@ void ProjectListItemWidget::connectSignalsAndSlots()
|
|
|
connect(m_delete, &PushButton::clicked, this, &ProjectListItemWidget::sigDelete);
|
|
|
}
|
|
|
|
|
|
-void ProjectListItemWidget::setInfo(ProjectInfo *info)
|
|
|
+void ProjectListItemWidget::setProj(ProjectInfo *info)
|
|
|
{
|
|
|
m_proj = info;
|
|
|
|
|
@@ -131,11 +131,6 @@ void ProjectListItemWidget::setInfo(ProjectInfo *info)
|
|
|
m_type->setText(tStr);
|
|
|
}
|
|
|
|
|
|
-int ProjectListItemWidget::index() const
|
|
|
-{
|
|
|
- return m_index;
|
|
|
-}
|
|
|
-
|
|
|
ProjectInfo *ProjectListItemWidget::proj() const
|
|
|
{
|
|
|
return m_proj;
|
|
@@ -148,23 +143,44 @@ ProjectListWidget::ProjectListWidget(QWidget *parent) : QWidget(parent)
|
|
|
connectSiganlsAndSlots();
|
|
|
}
|
|
|
|
|
|
-void ProjectListWidget::showProjects(QList<ProjectInfo *> list)
|
|
|
+void ProjectListWidget::setProjects(QList<ProjectInfo *> list)
|
|
|
{
|
|
|
+ m_projList.clear();
|
|
|
m_listWidget->clear();
|
|
|
|
|
|
- for (int i = 0; i < list.count(); i++) {
|
|
|
- ProjectListItemWidget *w = new ProjectListItemWidget(i, m_listWidget);
|
|
|
- w->setInfo(list[i]);
|
|
|
- connect(w, &ProjectListItemWidget::sigInfo, this, &ProjectListWidget::slotInfo);
|
|
|
- connect(w, &ProjectListItemWidget::sigOpen, this, &ProjectListWidget::slotOpen);
|
|
|
- connect(w, &ProjectListItemWidget::sigDelete, this, &ProjectListWidget::slotDelete);
|
|
|
+ for (auto proj : list) {
|
|
|
+ addProject(proj);
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
- QListWidgetItem *item = new QListWidgetItem(m_listWidget);
|
|
|
- item->setSizeHint(QSize(300, 135));
|
|
|
- m_listWidget->setItemWidget(item, w);
|
|
|
+void ProjectListWidget::showLast() const
|
|
|
+{
|
|
|
+ if (m_projList.count() > 0) {
|
|
|
+ m_listWidget->setCurrentRow(m_projList.count() - 1);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void ProjectListWidget::addProject(ProjectInfo *proj)
|
|
|
+{
|
|
|
+ m_projList.append(proj);
|
|
|
+
|
|
|
+ ProjectListItemWidget *w = new ProjectListItemWidget(m_listWidget);
|
|
|
+ w->setProj(proj);
|
|
|
+ connect(w, &ProjectListItemWidget::sigInfo, this, &ProjectListWidget::slotInfo);
|
|
|
+ connect(w, &ProjectListItemWidget::sigOpen, this, &ProjectListWidget::slotOpen);
|
|
|
+ connect(w, &ProjectListItemWidget::sigDelete, this, &ProjectListWidget::slotDelete);
|
|
|
+
|
|
|
+ QListWidgetItem *item = new QListWidgetItem(m_listWidget);
|
|
|
+ item->setSizeHint(QSize(300, 135));
|
|
|
+ m_listWidget->setItemWidget(item, w);
|
|
|
+}
|
|
|
+
|
|
|
+void ProjectListWidget::removeProject(ProjectInfo *proj)
|
|
|
+{
|
|
|
+ int index = m_projList.indexOf(proj);
|
|
|
+ m_listWidget->takeItem(index);
|
|
|
+}
|
|
|
+
|
|
|
ProjectListItemWidget *ProjectListWidget::itemWidget(QListWidgetItem *item) const
|
|
|
{
|
|
|
QWidget *w = m_listWidget->itemWidget(item);
|