1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
/***************************************************************************
* Copyright (C) 2008-2011 by Daniel Nicoletti *
* dantti12@gmail.com *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; see the file COPYING. If not, write to *
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301, USA. *
***************************************************************************/
#include "ReviewChanges.h"
#include "ui_ReviewChanges.h"
#include <PackageModel.h>
#include <ChangesDelegate.h>
#include <KLocalizedString>
#include <KCategorizedSortFilterProxyModel>
#include <KDebug>
ReviewChanges::ReviewChanges(PackageModel *model, QWidget *parent) :
QWidget(parent),
ui(new Ui::ReviewChanges),
m_model(model)
{
ui->setupUi(this);
//initialize the model, delegate, client and connect it's signals
ui->packageView->viewport()->setAttribute(Qt::WA_Hover);
KCategorizedSortFilterProxyModel *changedProxy = new KCategorizedSortFilterProxyModel(this);
changedProxy->setSourceModel(m_model);
changedProxy->setCategorizedModel(true);
changedProxy->sort(0);
changedProxy->setDynamicSortFilter(true);
changedProxy->setSortCaseSensitivity(Qt::CaseInsensitive);
changedProxy->setSortRole(PackageModel::SortRole);
ui->packageView->setModel(changedProxy);
setWindowTitle(i18np("The following package was found",
"The following packages were found",
m_model->rowCount()));
ChangesDelegate *delegate = new ChangesDelegate(ui->packageView);
delegate->setExtendPixmapWidth(0);
ui->packageView->setItemDelegate(delegate);
connect(m_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
this, SLOT(selectionChanged()));
}
ReviewChanges::~ReviewChanges()
{
delete ui;
}
PackageModel *ReviewChanges::model() const
{
return m_model;
}
void ReviewChanges::selectionChanged()
{
emit hasSelectedPackages(!m_model->selectedPackagesToInstall().isEmpty() ||
!m_model->selectedPackagesToRemove().isEmpty());
}
#include "ReviewChanges.moc"
|