File indexing completed on 2024-03-24 17:21:58

0001 /***************************************************************************
0002  *   Copyright (C) 2009-2018 by Daniel Nicoletti                           *
0003  *   dantti12@gmail.com                                                    *
0004  *                                                                         *
0005  *   This program is free software; you can redistribute it and/or modify  *
0006  *   it under the terms of the GNU General Public License as published by  *
0007  *   the Free Software Foundation; either version 2 of the License, or     *
0008  *   (at your option) any later version.                                   *
0009  *                                                                         *
0010  *   This program is distributed in the hope that it will be useful,       *
0011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
0012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
0013  *   GNU General Public License for more details.                          *
0014  *                                                                         *
0015  *   You should have received a copy of the GNU General Public License     *
0016  *   along with this program; see the file COPYING. If not, write to       *
0017  *   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,  *
0018  *   Boston, MA 02110-1301, USA.                                           *
0019  ***************************************************************************/
0020 #include "BackendDetails.h"
0021 #include "ui_BackendDetails.h"
0022 
0023 #include <QStringBuilder>
0024 #include <KLocalizedString>
0025 
0026 #include <Daemon>
0027 
0028 using namespace PackageKit;
0029 
0030 BackendDetails::BackendDetails(QWidget *parent) :
0031     QDialog(parent),
0032     ui(new Ui::BackendDetails)
0033 {
0034     ui->setupUi(this);
0035 
0036     setWindowTitle(i18n("Backend Details"));
0037     setWindowIcon(QIcon::fromTheme(QLatin1String("help-about")));
0038 
0039     // update information about PackageKit backend
0040     connect(Daemon::global(), &Daemon::changed, this, &BackendDetails::daemonChanged);
0041 
0042     if (Daemon::global()->isRunning()) {
0043         daemonChanged();
0044     }
0045 }
0046 
0047 BackendDetails::~BackendDetails()
0048 {
0049     delete ui;
0050 }
0051 
0052 void BackendDetails::daemonChanged()
0053 {
0054     // PackageKit
0055     QString versionMajor = QString::number(Daemon::global()->versionMajor());
0056     QString versionMinor = QString::number(Daemon::global()->versionMinor());
0057     QString versionMicro = QString::number(Daemon::global()->versionMicro());
0058     ui->pkVersionL->setText(versionMajor % QLatin1Char('.') % versionMinor % QLatin1Char('.') % versionMicro);
0059 
0060     // GENERAL - Setup backend name and author
0061     ui->nameL->setText(Daemon::global()->backendName());
0062     ui->descriptionL->setText(Daemon::global()->backendDescription());
0063     ui->authorL->setText(Daemon::global()->backendAuthor());
0064     ui->distroL->setText(Daemon::global()->distroID());
0065 
0066     // METHODS - Setup backend supported methods
0067     Transaction::Roles actions = Daemon::global()->roles();// TODO this is async now
0068     ui->getUpdatesCB->setChecked(actions & Transaction::RoleGetUpdates);
0069     ui->getDistroUpgradesCB->setChecked(actions & Transaction::RoleGetDistroUpgrades);
0070     ui->refreshCacheCB->setChecked(actions & Transaction::RoleRefreshCache);
0071     ui->searchNameCB->setChecked(actions & Transaction::RoleSearchName);
0072     ui->searchDetailsCB->setChecked(actions & Transaction::RoleSearchDetails);
0073     ui->searchGroupCB->setChecked(actions & Transaction::RoleSearchGroup);
0074     ui->searchFileCB->setChecked(actions & Transaction::RoleSearchFile);
0075     ui->cancelCB->setChecked(actions & Transaction::RoleCancel);
0076     ui->resolveCB->setChecked(actions & Transaction::RoleResolve);
0077 
0078     ui->updatePackageCB->setChecked(actions & Transaction::RoleUpdatePackages);
0079     ui->installPackageCB->setChecked(actions & Transaction::RoleInstallPackages);
0080     ui->removePackageCB->setChecked(actions & Transaction::RoleRemovePackages);
0081     ui->getDependsCB->setChecked(actions & Transaction::RoleDependsOn);
0082     ui->getRequiresCB->setChecked(actions & Transaction::RoleRequiredBy);
0083     ui->getUpdateDetailCB->setChecked(actions & Transaction::RoleGetUpdateDetail);
0084     ui->getDescriptionCB->setChecked(actions & Transaction::RoleGetDetails);
0085     ui->getFilesCB->setChecked(actions & Transaction::RoleRefreshCache);
0086     ui->installFileCB->setChecked(actions & Transaction::RoleInstallFiles);
0087 
0088     ui->getRepositoryListCB->setChecked(actions & Transaction::RoleGetRepoList);
0089     ui->repositoryEnableCB->setChecked(actions & Transaction::RoleRepoEnable);
0090     ui->repositorySetEnableCB->setChecked(actions & Transaction::RoleRepoSetData);
0091     ui->whatProvidesCB->setChecked(actions & Transaction::RoleWhatProvides);
0092     ui->getPackagesCB->setChecked(actions & Transaction::RoleGetPackages);
0093     ui->repairSystemCB->setChecked(actions & Transaction::RoleRepairSystem);
0094 
0095     // FILTERS - Setup filters
0096     Transaction::Filters filters = Daemon::global()->filters();
0097     ui->installedCB->setChecked(filters & Transaction::FilterInstalled);
0098     ui->guiCB->setChecked(filters & Transaction::FilterGui);
0099 
0100     ui->developmentCB->setChecked(filters & Transaction::FilterDevel);
0101     ui->freeCB->setChecked(filters & Transaction::FilterFree);
0102 
0103     ui->visibleCB->setChecked(filters & Transaction::FilterVisible);
0104     ui->supportedCB->setChecked(filters & Transaction::FilterSupported);
0105 
0106     ui->newestCB->setChecked(filters & Transaction::FilterNewest);
0107     ui->archCB->setChecked(filters & Transaction::FilterNotArch);
0108 }
0109 
0110 #include "moc_BackendDetails.cpp"