[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [apper] /: PackageKit Session interface fixed
From:       Daniel Nicoletti <null () kde ! org>
Date:       2018-01-18 21:02:04
Message-ID: E1ecHK0-0001hI-Ks () code ! kde ! org
[Download RAW message or body]

Git commit a873e6600567d6e77d64814baee2ff2c048acd8a by Daniel Nicoletti.
Committed on 18/01/2018 at 21:01.
Pushed by dantti into branch 'master'.

PackageKit Session interface fixed

M  +6    -4    PkSession/AbstractIsRunning.cpp
M  +1    -2    PkSession/CMakeLists.txt
M  +7    -7    PkSession/FilesModel.cpp
M  +12   -12   PkSession/PkInstallCatalogs.cpp
M  +7    -7    PkSession/PkInstallPackageFiles.cpp
M  +22   -33   PkSession/PkInterface.cpp
M  +2    -2    PkSession/PkInterface.h
M  +2    -6    PkSession/PkSession.cpp
M  +2    -2    PkSession/PkSession.h
M  +62   -53   PkSession/SessionTask.cpp
M  +11   -5    PkSession/SessionTask.h
M  +27   -5    PkSession/SessionTask.ui
M  +5    -9    libapper/Requirements.cpp
M  +5    -5    libapper/Requirements.h

https://commits.kde.org/apper/a873e6600567d6e77d64814baee2ff2c048acd8a

diff --git a/PkSession/AbstractIsRunning.cpp b/PkSession/AbstractIsRunning.cpp
index be1f3cc..2dc5c15 100644
--- a/PkSession/AbstractIsRunning.cpp
+++ b/PkSession/AbstractIsRunning.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2009-2011 by Daniel Nicoletti                           *
+ *   Copyright (C) 2009-2018 by Daniel Nicoletti                           *
  *   dantti12@gmail.com                                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -24,6 +24,8 @@
 
 #include <QLoggingCategory>
 
+Q_DECLARE_LOGGING_CATEGORY(APPER_SESSION)
+
 using namespace PackageKit;
 
 AbstractIsRunning::AbstractIsRunning(QObject *parent) :
@@ -38,15 +40,15 @@ AbstractIsRunning::~AbstractIsRunning()
 void AbstractIsRunning::increaseRunning()
 {
     m_running++;
-//    kDebug();
+    qCDebug(APPER_SESSION) << "Increase running" << m_running;
 }
 
 void AbstractIsRunning::decreaseRunning()
 {
     m_running--;
-//    kDebug();
+    qCDebug(APPER_SESSION) << "Decrease running" << m_running;
     if (!isRunning()) {
-//        kDebug() << "Is not Running anymore";
+        qCDebug(APPER_SESSION) << "All tasks completed";
         emit close();
     }
 }
diff --git a/PkSession/CMakeLists.txt b/PkSession/CMakeLists.txt
index 5c9cb3a..b5b9c23 100644
--- a/PkSession/CMakeLists.txt
+++ b/PkSession/CMakeLists.txt
@@ -40,6 +40,7 @@ add_executable(apper-pk-session
 )
 
 target_link_libraries(apper-pk-session
+    Qt5::XmlPatterns
     KF5::WidgetsAddons
     KF5::KIOFileWidgets
     KF5::IconThemes
@@ -48,8 +49,6 @@ target_link_libraries(apper-pk-session
     apper_private
 )
 
-qt5_use_modules(apper-pk-session Core XmlPatterns)
-
 set_target_properties(apper-pk-session PROPERTIES INSTALL_RPATH \
${CMAKE_INSTALL_FULL_LIBDIR}/apper)  
 install(TARGETS apper-pk-session DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
diff --git a/PkSession/FilesModel.cpp b/PkSession/FilesModel.cpp
index b63e78a..9cbb9e6 100644
--- a/PkSession/FilesModel.cpp
+++ b/PkSession/FilesModel.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2009-2010 by Daniel Nicoletti                           *
+ *   Copyright (C) 2009-2018 by Daniel Nicoletti                           *
  *   dantti12@gmail.com                                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -35,8 +35,8 @@
 Q_DECLARE_LOGGING_CATEGORY(APPER_SESSION)
 
 FilesModel::FilesModel(const QStringList &files, const QStringList &mimes, QObject \
                *parent)
-: QStandardItemModel(parent),
-  m_mimes(mimes)
+    : QStandardItemModel(parent)
+    ,  m_mimes(mimes)
 {
     if (!files.isEmpty()) {
         QList<QUrl> urls;
@@ -77,7 +77,7 @@ bool FilesModel::insertFiles(const QList<QUrl> &urls)
 {
     bool ret = false;
     for (const QUrl &url : urls) {
-        QString path = QUrl::fromPercentEncoding(url.path().toUtf8());
+        const QString path = QUrl::fromPercentEncoding(url.path().toLatin1());
         if (files().contains(path)) {
             continue;
         }
@@ -91,7 +91,7 @@ bool FilesModel::insertFiles(const QList<QUrl> &urls)
             for (const QString &mimeType : qAsConst(m_mimes)) {
                 if (mime.name() == mimeType) {
                     ret = true;
-/*                    kDebug() << "Found Supported Mime" << mimeType << \
mime->iconName();*/ +                    qCDebug(APPER_SESSION) << "Found Supported \
Mime" << mimeType << mime.iconName();  item = new QStandardItem(fileInfo.fileName());
                     item->setData(path);
                     item->setToolTip(path);
@@ -102,7 +102,7 @@ bool FilesModel::insertFiles(const QList<QUrl> &urls)
             }
 
             if (ret == false && m_mimes.isEmpty()) {
-                if (mime.name() == "application/x-desktop") {
+                if (mime.name() == QLatin1String("application/x-desktop")) {
                     auto service = new KService(path);
                     item = new QStandardItem(service->name());
                     item->setData(true, Qt::UserRole);
@@ -176,4 +176,4 @@ bool FilesModel::onlyApplications() const
     return true;
 }
 
-#include "FilesModel.moc"
+#include "moc_FilesModel.cpp"
diff --git a/PkSession/PkInstallCatalogs.cpp b/PkSession/PkInstallCatalogs.cpp
index 4ceeef1..74a3abb 100644
--- a/PkSession/PkInstallCatalogs.cpp
+++ b/PkSession/PkInstallCatalogs.cpp
@@ -59,9 +59,9 @@ PkInstallCatalogs::PkInstallCatalogs(uint xid,
         }
     }
 
-    QStringList mimes;
-    mimes << "application/x-catalog";
-    mimes << "text/plain";
+    const QStringList mimes{
+        QLatin1String("application/x-catalog"), QLatin1String("text/plain")
+    };
     m_introDialog = new IntroDialog(this);
     m_introDialog->acceptDrops(i18n("You can drop more catalogs in here"));
     m_model = new FilesModel(files, mimes, this);
@@ -78,7 +78,7 @@ PkInstallCatalogs::~PkInstallCatalogs()
 
 void PkInstallCatalogs::modelChanged()
 {
-    QStringList files = m_model->files();
+    const QStringList files = m_model->files();
     enableButtonOk(!files.isEmpty());
     QString description;
     if (files.isEmpty()) {
@@ -107,28 +107,28 @@ void PkInstallCatalogs::modelChanged()
 
 void PkInstallCatalogs::search()
 {
-    QString distroId = Daemon::global()->distroID();
-    QStringList parts = distroId.split(';');
+    const QString distroId = Daemon::global()->distroID();
+    const QStringList parts = distroId.split(QLatin1Char(';'));
     if (parts.size() != 3) {
         sendErrorFinished(Failed, "invalid distribution id, please fill a bug \
against you distribution backend");  return;
     }
-    QString distro = parts.at(0);
-    QString version = parts.at(1);
-    QString arch = parts.at(2);
+    const QString distro = parts.at(0);
+    const QString version = parts.at(1);
+    const QString arch = parts.at(2);
 
     QStringList rxActions;
     Transaction::Roles roles = Daemon::global()->roles();
     if (roles & Transaction::RoleResolve) {
-        rxActions << "InstallPackages";
+        rxActions << QLatin1String("InstallPackages");
     }
 
     if (roles & Transaction::RoleWhatProvides) {
-        rxActions << "InstallProvides";
+        rxActions << QLatin1String("InstallProvides");
     }
 
     if (roles & Transaction::RoleSearchFile) {
-        rxActions << "InstallFiles";
+        rxActions << QLatin1String("InstallFiles");
     }
 
     if (rxActions.isEmpty()) {
diff --git a/PkSession/PkInstallPackageFiles.cpp \
b/PkSession/PkInstallPackageFiles.cpp index 5022e9a..93e4581 100644
--- a/PkSession/PkInstallPackageFiles.cpp
+++ b/PkSession/PkInstallPackageFiles.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2008-2011 by Daniel Nicoletti                           *
+ *   Copyright (C) 2008-2018 by Daniel Nicoletti                           *
  *   dantti12@gmail.com                                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -39,7 +39,7 @@ PkInstallPackageFiles::PkInstallPackageFiles(uint xid,
 {
     setWindowTitle(i18n("Install Packages Files"));
 
-//    if (Daemon::global()->roles() & Transaction::RoleInstallFiles) {
+    if (Daemon::global()->roles() & Transaction::RoleInstallFiles) {
         m_introDialog = new IntroDialog(this);
         m_introDialog->acceptDrops(i18n("You can drop more files in here"));
 
@@ -49,10 +49,10 @@ PkInstallPackageFiles::PkInstallPackageFiles(uint xid,
         setMainWidget(m_introDialog);
 
         modelChanged();
-//    } else {
-//        setError(i18n("Not Supported"),
-//                 i18n("Your current backend does not support installing files"));
-//    }
+    } else {
+        setError(i18n("Not Supported"),
+                 i18n("Your current backend does not support installing files"));
+    }
 }
 
 PkInstallPackageFiles::~PkInstallPackageFiles()
@@ -61,7 +61,7 @@ PkInstallPackageFiles::~PkInstallPackageFiles()
 
 void PkInstallPackageFiles::modelChanged()
 {
-    QStringList files = m_model->files();
+    const QStringList files = m_model->files();
     enableButtonOk(!files.isEmpty());
 
     QString description;
diff --git a/PkSession/PkInterface.cpp b/PkSession/PkInterface.cpp
index 1e60143..57de96b 100644
--- a/PkSession/PkInterface.cpp
+++ b/PkSession/PkInterface.cpp
@@ -67,12 +67,12 @@ PkInterface::PkInterface(QObject *parent) :
     qCDebug(APPER_SESSION) << "Creating Helper";
     (void) new ModifyAdaptor(this);
     (void) new QueryAdaptor(this);
-    if (!QDBusConnection::sessionBus().registerService("org.freedesktop.PackageKit")) \
{ +    if (!QDBusConnection::sessionBus().registerService(QLatin1String("org.freedesktop.PackageKit"))) \
{  qCDebug(APPER_SESSION) << "unable to register service to dbus";
         return;
     }
 
-    if (!QDBusConnection::sessionBus().registerObject("/org/freedesktop/PackageKit", \
this)) { +    if (!QDBusConnection::sessionBus().registerObject(QLatin1String("/org/freedesktop/PackageKit"), \
this)) {  qCDebug(APPER_SESSION) << "unable to register object to dbus";
         return;
     }
@@ -85,94 +85,84 @@ PkInterface::~PkInterface()
 void PkInterface::InstallCatalogs(uint xid, const QStringList &files, const QString \
&interaction)  {
     qCDebug(APPER_SESSION) << xid << files << interaction;
-    auto task = new PkInstallCatalogs(xid, files, interaction, message());
-    show(task);
+    show(new PkInstallCatalogs(xid, files, interaction, message()));
 }
 
 void PkInterface::InstallFontconfigResources(uint xid, const QStringList &resources, \
const QString &interaction)  {
     qCDebug(APPER_SESSION) << xid << resources << interaction;
-    auto task = new PkInstallFontconfigResources(xid, resources, interaction, \
                message());
-    show(task);
+    show(new PkInstallFontconfigResources(xid, resources, interaction, message()));
 }
 
 void PkInterface::InstallGStreamerResources(uint xid, const QStringList &resources, \
const QString &interaction)  {
     qCDebug(APPER_SESSION) << xid << resources << interaction;
-    auto task = new PkInstallGStreamerResources(xid, resources, interaction, \
                message());
-    show(task);
+    show(new PkInstallGStreamerResources(xid, resources, interaction, message()));
 }
 
 void PkInterface::InstallMimeTypes(uint xid, const QStringList &mime_types, const \
QString &interaction)  {
     qCDebug(APPER_SESSION) << xid << mime_types << interaction;
-    auto task = new PkInstallMimeTypes(xid, mime_types, interaction, message());
-    show(task);
+    show(new PkInstallMimeTypes(xid, mime_types, interaction, message()));
 }
 
 void PkInterface::InstallPackageFiles(uint xid, const QStringList &files, const \
QString &interaction)  {
     qCDebug(APPER_SESSION) << xid << files << interaction;
-    auto task = new PkInstallPackageFiles(xid, files, interaction, message());
-    show(task);
+    show(new PkInstallPackageFiles(xid, files, interaction, message()));
 }
 
 void PkInterface::InstallPackageNames(uint xid, const QStringList &packages, const \
QString &interaction)  {
     qCDebug(APPER_SESSION) << xid << packages << interaction;
-    auto task = new PkInstallPackageNames(xid, packages, interaction, message());
-    show(task);
+    show(new PkInstallPackageNames(xid, packages, interaction, message()));
 }
 
 void PkInterface::InstallProvideFiles(uint xid, const QStringList &files, const \
QString &interaction)  {
     qCDebug(APPER_SESSION) << xid << files << interaction;
-    auto task = new PkInstallProvideFiles(xid, files, interaction, message());
-    show(task);
+    show(new PkInstallProvideFiles(xid, files, interaction, message()));
 }
 
 void PkInterface::RemovePackageByFiles(uint xid, const QStringList &files, const \
QString &interaction)  {
     qCDebug(APPER_SESSION) << xid << files << interaction;
-    auto task = new PkRemovePackageByFiles(xid, files, interaction, message());
-    show(task);
+    show(new PkRemovePackageByFiles(xid, files, interaction, message()));
 }
 
 void PkInterface::InstallPrinterDrivers(uint xid, const QStringList &resources, \
const QString &interaction)  {
     qCDebug(APPER_SESSION) << xid << resources << interaction;
-    auto task = new PkInstallPrinterDrivers(xid, resources, interaction, message());
-    show(task);
+    show(new PkInstallPrinterDrivers(xid, resources, interaction, message()));
 }
 
 void PkInterface::InstallPlasmaResources(uint xid, const QStringList &resources, \
const QString &interaction)  {
     qCDebug(APPER_SESSION) << xid << resources << interaction;
-    auto task = new PkInstallPlasmaResources(xid, resources, interaction, \
                message());
-    show(task);
+    show(new PkInstallPlasmaResources(xid, resources, interaction, message()));
 }
 
 void PkInterface::InstallResources(uint xid, const QString &type, const QStringList \
&resources, const QString &interaction)  {
-    if (type == "codec")
+    if (type == QLatin1String("codec")) {
         InstallGStreamerResources(xid, resources, interaction);
-    else if (type == "mimetype")
+    } else if (type == QLatin1String("mimetype")) {
         InstallMimeTypes(xid, resources, interaction);
-    else if (type == "font")
+    } else if (type == QLatin1String("font")) {
         InstallFontconfigResources(xid, resources, interaction);
-    else if (type == "postscript-driver")
+    } else if (type == QLatin1String("postscript-driver")) {
         InstallPrinterDrivers(xid, resources, interaction);
-    else if (type == "plasma-service")
+    } else if (type == QLatin1String("plasma-service")) {
         InstallPlasmaResources(xid, resources, interaction);
-    else
-        sendErrorReply("org.freedesktop.PackageKit.Failed", "Unsupported resource \
type"); +    } else {
+        sendErrorReply(QStringLiteral("org.freedesktop.PackageKit.Failed"), \
QStringLiteral("Unsupported resource type")); +    }
 }
 
 //Query
 bool PkInterface::IsInstalled(const QString &package_name, const QString \
&interaction)  {
-    auto task = new PkIsInstalled(package_name, interaction, message());
-    show(task);
+    show(new PkIsInstalled(package_name, interaction, message()));
     // This is discarted
     return false;
 }
@@ -180,8 +170,7 @@ bool PkInterface::IsInstalled(const QString &package_name, const \
QString &intera  bool PkInterface::SearchFile(const QString &file_name, const QString \
&interaction, QString &package_name)  {
     Q_UNUSED(package_name)
-    auto task = new PkSearchFile(file_name, interaction, message());
-    show(task);
+    show(new PkSearchFile(file_name, interaction, message()));
     // This is discarted
     return false;
 }
diff --git a/PkSession/PkInterface.h b/PkSession/PkInterface.h
index c496354..be1a352 100644
--- a/PkSession/PkInterface.h
+++ b/PkSession/PkInterface.h
@@ -41,10 +41,10 @@ public Q_SLOTS:
     void InstallMimeTypes(uint xid, const QStringList &mime_types, const QString \
                &interaction);
     void InstallPackageFiles(uint xid, const QStringList &files, const QString \
                &interaction);
     void InstallPackageNames(uint xid, const QStringList &packages, const QString \
                &interaction);
-    void InstallProvideFiles(uint xid, const QStringList &files, const QString \
                &interaction);
-    void RemovePackageByFiles(uint xid, const QStringList &files, const QString \
                &interaction);
     void InstallPrinterDrivers(uint xid, const QStringList &resources, const QString \
&interaction); +    void InstallProvideFiles(uint xid, const QStringList &files, \
                const QString &interaction);
     void InstallResources(uint xid, const QString &type, const QStringList \
&resources, const QString &interaction); +    void RemovePackageByFiles(uint xid, \
const QStringList &files, const QString &interaction);  //Query
     bool IsInstalled(const QString &package_name, const QString &interaction);
     bool SearchFile(const QString &file_name, const QString &interaction, QString \
                &package_name);
diff --git a/PkSession/PkSession.cpp b/PkSession/PkSession.cpp
index 38f8681..742c80f 100644
--- a/PkSession/PkSession.cpp
+++ b/PkSession/PkSession.cpp
@@ -25,9 +25,6 @@
 #include <QApplication>
 
 #include <KLocalizedString>
-//#include <KCmdLineArgs>
-//#include <KDebug>
-//#include <KGlobal>
 
 #include <QLoggingCategory>
 
@@ -39,10 +36,9 @@ Q_DECLARE_LOGGING_CATEGORY(APPER_SESSION)
 
 using namespace PackageKit;
 
-PkSession::PkSession(QObject* parent)
-    : QObject(parent)
+PkSession::PkSession(QObject* parent) : QObject(parent)
+  , m_pkInterface(new PkInterface(this))
 {
-    m_pkInterface = new PkInterface(this);
     connect(m_pkInterface, &PkInterface::close, this, &PkSession::prepareToClose);
 
     Daemon::global()->setHints(QLatin1String("locale=") + QLocale::system().name() + \
                QLatin1String(".UTF-8"));
diff --git a/PkSession/PkSession.h b/PkSession/PkSession.h
index ed21cec..70c6ae5 100644
--- a/PkSession/PkSession.h
+++ b/PkSession/PkSession.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2008-2011 by Daniel Nicoletti                           *
+ *   Copyright (C) 2008-2018 by Daniel Nicoletti                           *
  *   dantti12@gmail.com                                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -29,7 +29,7 @@ class PkSession : public QObject
 {
     Q_OBJECT
 public:
-    explicit PkSession(QObject* parent = 0);
+    explicit PkSession(QObject* parent = nullptr);
     virtual ~PkSession();
     int newInstance();
 
diff --git a/PkSession/SessionTask.cpp b/PkSession/SessionTask.cpp
index b5c4ace..d7e63e3 100644
--- a/PkSession/SessionTask.cpp
+++ b/PkSession/SessionTask.cpp
@@ -57,8 +57,6 @@ SessionTask::SessionTask(uint xid, const QString &interaction, \
const QDBusMessag  QDialog(parent),
     m_xid(xid),
     m_message(message),
-    m_reviewChanges(0),
-    m_pkTransaction(0),
     ui(new Ui::SessionTask)
 {
     ui->setupUi(this);
@@ -71,10 +69,16 @@ SessionTask::SessionTask(uint xid, const QString &interaction, \
const QDBusMessag  updatePallete();
 
     setWindowIcon(QIcon::fromTheme("system-software-install"));
-//    setButtons(KDialog::Ok | KDialog::Cancel);
-//    setButtonText(KDialog::Ok, i18n("Continue"));
-//    setButtonIcon(KDialog::Ok, QIcon::fromTheme("go-next"));
+    QPushButton *okButton = ui->buttonBox->button(QDialogButtonBox::Ok);
+    okButton->setText(i18n("Continue"));
+    okButton->setIcon(QIcon::fromTheme("go-next"));
     enableButtonOk(false);
+    connect(okButton, &QPushButton::clicked, this, \
&SessionTask::slotContinueClicked); +
+    QPushButton *cancelButton = ui->buttonBox->button(QDialogButtonBox::Cancel);
+    connect(cancelButton, &QPushButton::clicked, this, \
&SessionTask::slotCancelClicked); +
+
 
     Daemon::global()->setHints(QLatin1String("locale=") + QLocale::system().name() + \
QLatin1String(".UTF-8"));  
@@ -133,14 +137,15 @@ void SessionTask::searchFinished(PkTransaction::ExitStatus \
status)  m_model->finished();
         if (m_model->rowCount() == 0) {
             notFound();
+            showCloseButton();
         } else {
             searchSuccess();
         }
     } else if (status == PkTransaction::Cancelled) {
-        // TODO PORT
-//        slotButtonClicked(KDialog::Cancel);
+        cancelClicked();
     } else {
         searchFailed();
+        showCloseButton();
     }
 }
 
@@ -156,12 +161,13 @@ void SessionTask::commitFinished(PkTransaction::ExitStatus \
status)  removePackages();
         } else {
             commitSuccess();
+            showCloseButton();
         }
     } else if (status == PkTransaction::Cancelled) {
-        // TODO PORT
-//        slotButtonClicked(KDialog::Cancel);
+        cancelClicked();
     } else {
         commitFailed();
+        showCloseButton();
     }
 }
 
@@ -185,10 +191,10 @@ void SessionTask::setDialog(QDialog *dialog)
         commitSuccess(dialog);
     } else {
         // Set the new ones
-//        setMainWidget(dialog->mainWidget());
+        setMainWidget(dialog);
 //        setTitle(dialog->windowTitle()); // must come after
-//        connect(this, SIGNAL(okClicked()),
-//                dialog, SLOT(accept()));
+        connect(this, &SessionTask::continueClicked, dialog, &QDialog::accept);
+//        connect(this, &SessionTask::continueClicked, dia, &QDialog::accept);
 //        connect(this, SIGNAL(okClicked()),
 //                dialog->mainWidget(), SLOT(deleteLater()));
 //        connect(this, SIGNAL(okClicked()),
@@ -197,10 +203,8 @@ void SessionTask::setDialog(QDialog *dialog)
         // Make sure we see the last widget and title
         auto mapper = new QSignalMapper(this);
         mapper->setMapping(this, widget);
-        connect(this, SIGNAL(okClicked()),
-                mapper, SLOT(map()));
-        connect(mapper, SIGNAL(mapped(QWidget*)),
-                this, SLOT(setMainWidget(QWidget*)));
+        connect(this, &SessionTask::continueClicked, mapper, \
QOverload<>::of(&QSignalMapper::map)); +        connect(mapper, \
QOverload<QWidget*>::of(&QSignalMapper::mapped), this, &SessionTask::setMainWidget);  \
enableButtonOk(true);  }
 }
@@ -426,7 +430,7 @@ void SessionTask::commitFailed()
     // This should not be used to display stuff as the transaction should
     // emit error() or info()
 //    setInfo(i18n("Failed to commit transaction"),
-//            PkStrings::errorMessage(m_pkTransaction->error()));
+//            PkStrings::errsearchFailedorMessage(m_pkTransaction->error()));
     sendErrorFinished(Failed, i18n("Transaction did not finish with success"));
 }
 
@@ -437,23 +441,12 @@ void SessionTask::commitSuccess(QWidget *widget)
     finishTaskOk();
 }
 
-void SessionTask::slotButtonClicked(int button)
+void SessionTask::showCloseButton()
 {
-    if (button == QDialogButtonBox::Ok) {
-//        qCDebug(APPER_SESSION) << mainWidget()->objectName();
-        if (qobject_cast<IntroDialog*>(mainWidget())) {
-            enableButtonOk(false);
-            search();
-        } else if (qobject_cast<ReviewChanges*>(mainWidget())) {
-            enableButtonOk(false);
-            commit();
-        } else {
-//            emit okClicked();
-        }
-    } else {
-//        KDialog::slotButtonClicked(button);
-        sendErrorFinished(Cancelled, "Aborted by the user");
-    }
+    ui->buttonBox->setStandardButtons(QDialogButtonBox::Close);
+    QPushButton *closeBt = ui->buttonBox->button(QDialogButtonBox::Close);
+    closeBt->setDefault(true);
+    connect(closeBt, &QPushButton::clicked, this, &SessionTask::accept);
 }
 
 void SessionTask::sendErrorFinished(DBusError error, const QString &msg)
@@ -461,23 +454,22 @@ void SessionTask::sendErrorFinished(DBusError error, const \
QString &msg)  QString dbusError;
     switch (error) {
     case Failed:
-        dbusError = "org.freedesktop.PackageKit.Failed";
+        dbusError = QLatin1String("org.freedesktop.PackageKit.Failed");
         break;
     case InternalError:
-        dbusError = "org.freedesktop.PackageKit.InternalError";
+        dbusError = QLatin1String("org.freedesktop.PackageKit.InternalError");
         break;
     case NoPackagesFound:
-        dbusError = "org.freedesktop.PackageKit.NoPackagesFound";
+        dbusError = QLatin1String("org.freedesktop.PackageKit.NoPackagesFound");
         break;
     case Forbidden:
-        dbusError = "org.freedesktop.PackageKit.Forbidden";
+        dbusError = QLatin1String("org.freedesktop.PackageKit.Forbidden");
         break;
     case Cancelled:
-        dbusError = "org.freedesktop.PackageKit.Cancelled";
+        dbusError = QLatin1String("org.freedesktop.PackageKit.Cancelled");
         break;
     }
-    QDBusMessage reply;
-    reply = m_message.createErrorReply(dbusError, msg);
+    QDBusMessage reply = m_message.createErrorReply(dbusError, msg);
     QDBusConnection::sessionBus().send(reply);
 }
 
@@ -492,12 +484,34 @@ uint SessionTask::parentWId() const
     return m_xid;
 }
 
-void SessionTask::enableButtonOk(bool state)
+void SessionTask::slotContinueClicked()
+{
+    if (qobject_cast<IntroDialog*>(mainWidget())) {
+        enableButtonOk(false);
+        search();
+    } else if (qobject_cast<ReviewChanges*>(mainWidget())) {
+        enableButtonOk(false);
+        commit();
+    } else {
+//        emit okClicked();
+    }
+}
+
+void SessionTask::slotCancelClicked()
 {
-//    KDialog::enableButtonOk(state);
-    if (state) {
+    emit cancelClicked();
+    sendErrorFinished(Cancelled, "Aborted by the user");
+    reject();
+
+}
+
+void SessionTask::enableButtonOk(bool enable)
+{
+    QPushButton *okButton = ui->buttonBox->button(QDialogButtonBox::Ok);
+    okButton->setEnabled(enable);
+    if (enable) {
         // When enabling the Continue button put focus on it
-//        button(KDialog::Ok)->setFocus();
+        okButton->setFocus();
     }
 }
 
@@ -590,16 +604,11 @@ void SessionTask::setTransaction(Transaction::Role role, \
PkTransaction *t)  
         ui->stackedWidget->addWidget(m_pkTransaction);
         connect(m_pkTransaction, &PkTransactionWidget::titleChanged, this, \
                &SessionTask::setTitle);
-        connect(this, SIGNAL(cancelClicked()),
-                m_pkTransaction, SLOT(cancel()));
-        connect(m_pkTransaction, SIGNAL(dialog(KDialog*)),
-                this, SLOT(setDialog(KDialog*)));
-        connect(m_pkTransaction, SIGNAL(sorry(QString,QString,QString)),
-                this, SLOT(setInfo(QString,QString,QString)));
-        connect(m_pkTransaction, SIGNAL(error(QString,QString,QString)),
-                this, SLOT(setError(QString,QString,QString)));
+        connect(this, &SessionTask::cancelClicked, m_pkTransaction, \
&PkTransactionWidget::cancel); +        connect(m_pkTransaction, \
&PkTransactionWidget::dialog, this, &SessionTask::setDialog); +        \
connect(m_pkTransaction, &PkTransactionWidget::sorry, this, &SessionTask::setInfo); + \
connect(m_pkTransaction, &PkTransactionWidget::error, this, &SessionTask::setError);  \
                }
-
     if (t) {
         m_pkTransaction->setTransaction(t, role);
 //        setTitle(m_pkTransaction->title());
diff --git a/PkSession/SessionTask.h b/PkSession/SessionTask.h
index 9643271..d69f393 100644
--- a/PkSession/SessionTask.h
+++ b/PkSession/SessionTask.h
@@ -74,16 +74,21 @@ public:
     bool showFinished() const;
     bool showWarning() const;
 
-    virtual void slotButtonClicked(int button);
-
     Interactions interactions() const;
     uint timeout() const;
 
     QWidget* mainWidget();
     uint parentWId() const;
 
+    void slotContinueClicked();
+    void slotCancelClicked();
+
+Q_SIGNALS:
+    void continueClicked();
+    void cancelClicked();
+
 public Q_SLOTS:
-    void enableButtonOk(bool state);
+    void enableButtonOk(bool enable);
     void setMainWidget(QWidget *widget);
 
 protected:
@@ -96,6 +101,7 @@ protected:
     virtual void commitFailed();
     virtual void commitSuccess(QWidget *widget = 0);
 
+    void showCloseButton();
     bool foundPackages() const;
     int  foundPackagesSize() const;
     PackageModel* model() const;
@@ -134,8 +140,8 @@ private:
     uint m_timeout;
     PackageModel *m_model;
     QStringList m_removePackages;
-    ReviewChanges *m_reviewChanges;
-    PkTransactionWidget *m_pkTransaction;
+    ReviewChanges *m_reviewChanges = nullptr;
+    PkTransactionWidget *m_pkTransaction = nullptr;
     Ui::SessionTask *ui;
 };
 
diff --git a/PkSession/SessionTask.ui b/PkSession/SessionTask.ui
index afbee28..7ab0552 100644
--- a/PkSession/SessionTask.ui
+++ b/PkSession/SessionTask.ui
@@ -11,9 +11,6 @@
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="margin">
-    <number>0</number>
-   </property>
    <item>
     <widget class="QFrame" name="frame">
      <property name="frameShape">
@@ -26,7 +23,16 @@
       <property name="spacing">
        <number>0</number>
       </property>
-      <property name="margin">
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
        <number>0</number>
       </property>
       <item>
@@ -38,7 +44,16 @@
          <property name="spacing">
           <number>0</number>
          </property>
-         <property name="margin">
+         <property name="leftMargin">
+          <number>0</number>
+         </property>
+         <property name="topMargin">
+          <number>0</number>
+         </property>
+         <property name="rightMargin">
+          <number>0</number>
+         </property>
+         <property name="bottomMargin">
           <number>0</number>
          </property>
          <item>
@@ -63,6 +78,13 @@
    <item>
     <widget class="QStackedWidget" name="stackedWidget"/>
    </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
   </layout>
  </widget>
  <resources/>
diff --git a/libapper/Requirements.cpp b/libapper/Requirements.cpp
index 37979e4..99c9689 100644
--- a/libapper/Requirements.cpp
+++ b/libapper/Requirements.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2008-2011 by Daniel Nicoletti                           *
+ *   Copyright (C) 2008-2018 by Daniel Nicoletti                           *
  *   dantti12@gmail.com                                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -34,15 +34,13 @@
 
 Requirements::Requirements(PackageModel *model, QWidget *parent) :
     QDialog(parent),
-    m_embed(false),
-    m_shouldShow(true),
-    m_untrustedButton(0),
     ui(new Ui::Requirements)
 {
+    ui->setupUi(this);
+
     setAttribute(Qt::WA_DeleteOnClose);
 
-    ui->setupUi(this);
-    connect(ui->confirmCB, SIGNAL(toggled(bool)), this, \
SLOT(on_confirmCB_Toggled(bool))); +    connect(ui->confirmCB, &QCheckBox::toggled, \
this, &Requirements::confirmCBChanged);  
     ApplicationSortFilterModel *proxy = new ApplicationSortFilterModel(this);
     proxy->setSourceModel(model);
@@ -54,8 +52,6 @@ Requirements::Requirements(PackageModel *model, QWidget *parent) :
     ui->packageView->header()->hideSection(PackageModel::OriginCol);
     ui->packageView->header()->hideSection(PackageModel::SizeCol);
 
-    m_hideAutoConfirm = false;
-
     setWindowTitle(i18n("Additional changes"));
     setWindowIcon(QIcon::fromTheme("dialog-warning"));
     ui->buttonBox->button(QDialogButtonBox::Ok)->setText(i18n("Continue"));
@@ -234,7 +230,7 @@ void Requirements::slotButtonClicked(int)
 //    }
 }
 
-void Requirements::on_confirmCB_Toggled(bool checked)
+void Requirements::confirmCBChanged(bool checked)
 {
     KConfig config("apper");
     KConfigGroup requirementsDialog(&config, "requirementsDialog");
diff --git a/libapper/Requirements.h b/libapper/Requirements.h
index 9c7d86a..730644b 100644
--- a/libapper/Requirements.h
+++ b/libapper/Requirements.h
@@ -50,16 +50,16 @@ protected Q_SLOTS:
      virtual void slotButtonClicked(int button);
 
 private Q_SLOTS:
-    void on_confirmCB_Toggled(bool checked);
     void actionClicked(int type);
 
 private:
+    void confirmCBChanged(bool checked);
     void showUntrustedButton();
 
-    bool m_embed;
-    bool m_shouldShow;
-    bool m_hideAutoConfirm;
-    QToolButton *m_untrustedButton;
+    bool m_embed = false;
+    bool m_shouldShow = true;
+    bool m_hideAutoConfirm = false;
+    QToolButton *m_untrustedButton = nullptr;
     QButtonGroup *m_buttonGroup;
     Ui::Requirements *ui;
 };


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic