From cadd088a694f040b6f672186c7503bdcd469901f Mon Sep 17 00:00:00 2001 From: Daniel Nicoletti Date: Fri, 13 Jun 2008 21:33:15 -0300 Subject: now it's possible to install/remove packages, but there is a bug when you hide the transaction ui --- gui/ui/AddRm/PkAddRm.cpp | 5 ++- gui/ui/AddRm/PkRequirements.cpp | 7 +++- gui/ui/AddRm/PkRequirements.h | 5 +-- gui/ui/AddRm/PkReviewChanges.cpp | 82 +++++++++++++++++++++++++++------------- gui/ui/AddRm/PkReviewChanges.h | 6 +++ gui/ui/AddRm/PkReviewChanges.ui | 4 +- gui/ui/AddRm/PkTransaction.cpp | 44 ++++++++++----------- gui/ui/AddRm/PkTransaction.ui | 2 +- 8 files changed, 93 insertions(+), 62 deletions(-) diff --git a/gui/ui/AddRm/PkAddRm.cpp b/gui/ui/AddRm/PkAddRm.cpp index ae28adb..7a9327a 100755 --- a/gui/ui/AddRm/PkAddRm.cpp +++ b/gui/ui/AddRm/PkAddRm.cpp @@ -41,12 +41,13 @@ PkAddRm::PkAddRm( QWidget *parent ) //initialize the model, delegate, client and connect it's signals packageView->setItemDelegate(pkg_delegate = new PkDelegate(this)); packageView->setModel(m_pkg_model_main = new PkAddRmModel(this)); + packageView->viewport()->setAttribute(Qt::WA_Hover); // check to see if the backend support these actions // if ( m_daemon->getActions() & Actions::Install_package || m_daemon->getActions() & Actions::Remove_packages) connect( m_pkg_model_main, SIGNAL( changed(bool) ), this, SIGNAL( changed(bool) ) ); -// qDebug() << "actions" << m_daemon->getActions(); -// qDebug() << "details" << Actions::Get_details; +qDebug() << "actions" << m_daemon->getActions(); +qDebug() << "details" << Actions::Get_details; // if ( m_daemon->getActions() & Actions::Search_group ) // qDebug() << "ok"; // else diff --git a/gui/ui/AddRm/PkRequirements.cpp b/gui/ui/AddRm/PkRequirements.cpp index 94b8786..8cc0704 100755 --- a/gui/ui/AddRm/PkRequirements.cpp +++ b/gui/ui/AddRm/PkRequirements.cpp @@ -21,12 +21,15 @@ #include "PkRequirements.h" PkRequirements::PkRequirements( QString msg, PkAddRmModel* model, QWidget *parent ) - : QWidget( parent ) + : KDialog( parent ) { - setupUi( this ); + setupUi( mainWidget() ); label->setText(msg); packageView->setModel(model); + setCaption( "Confirm" ); + setButtons( KDialog::Ok | KDialog::Cancel ); + setModal(true); } PkRequirements::~PkRequirements() diff --git a/gui/ui/AddRm/PkRequirements.h b/gui/ui/AddRm/PkRequirements.h index dfb7c93..691ed9b 100755 --- a/gui/ui/AddRm/PkRequirements.h +++ b/gui/ui/AddRm/PkRequirements.h @@ -21,15 +21,14 @@ #ifndef PKREQUIREMENTS_H #define PKREQUIREMENTS_H -#include +#include #include "PkAddRm_Model.h" #include "ui_PkRequirements.h" -// #include "../../../lib/QPackageKit.h" using namespace PackageKit; -class PkRequirements : public QWidget, public Ui::PkRequirements +class PkRequirements : public KDialog, Ui::PkRequirements { Q_OBJECT public: diff --git a/gui/ui/AddRm/PkReviewChanges.cpp b/gui/ui/AddRm/PkReviewChanges.cpp index b36e910..4425ed6 100755 --- a/gui/ui/AddRm/PkReviewChanges.cpp +++ b/gui/ui/AddRm/PkReviewChanges.cpp @@ -22,13 +22,12 @@ #include #include "PkTransaction.h" -#include "PkRequirements.h" #include "PkReviewChanges.h" #define UNIVERSAL_PADDING 6 PkReviewChanges::PkReviewChanges( const QList &packages, QWidget *parent ) - : KDialog(parent) + : KDialog(parent), m_waitPD(0), m_requimentD(0) { setupUi( mainWidget() ); @@ -42,16 +41,16 @@ PkReviewChanges::PkReviewChanges( const QList &packages, QWidget *pare // Set Apply and Cancel buttons setButtons( KDialog::Apply | KDialog::Cancel ); -// m_pbTimer = new QTimer(this); -// connect(m_pbTimer, SIGNAL(timeout()), this, SLOT(updateProgress() )); -// m_pbTimer->start(5); + m_pbTimer = new QTimer(this); + connect(m_pbTimer, SIGNAL( timeout() ), this, SLOT( updateProgress() )); - label->setText( i18n("Please Wait..." ) ); + label->setText( i18n("You selected the folowwing packages to be INSTALLED/REMOVED, press ok to proceed:") ); } void PkReviewChanges::updateProgress() { -// progressBar->setValue(progressBar->value() + 1); + if (m_waitPD) + m_waitPD->progressBar()->setValue( m_waitPD->progressBar()->value() + 1 ); } void PkReviewChanges::ProgressChanged(uint /*percentage*/, uint /*subpercentage*/, uint /*elapsed*/, uint /*remaining*/) @@ -107,7 +106,15 @@ void PkReviewChanges::checkTask() m_pkgModelReq = new PkAddRmModel(this); connect( m_transactionReq, SIGNAL( GotPackage(Package *) ), m_pkgModelReq, SLOT( addUniquePackage(Package *) ) ); connect( m_transactionReq, SIGNAL( Finished(Exit::Value, uint) ), this, SLOT( reqFinished(Exit::Value, uint) ) ); - m_transactionReq->getRequires("installed", m_remPackages.takeFirst(), true); + // Create a KProgressDialog to don't upset the user + m_waitPD = new KProgressDialog(this, i18n("Wait - KPackageKit"), i18n("Checking required packages") ); + m_waitPD->progressBar()->setMinimum(0); + m_waitPD->progressBar()->setMaximum(0); + m_waitPD->setAutoClose(false); + m_waitPD->setModal(true); + m_pbTimer->start(5); + m_waitPD->show(); + m_transactionReq->getRequires("installed", m_reqDepPackages.takeFirst(), true); } } else @@ -121,7 +128,15 @@ void PkReviewChanges::checkTask() m_transactionDep = m_daemon->newTransaction(); m_pkgModelDep = new PkAddRmModel(this); connect( m_transactionDep, SIGNAL( GotPackage(Package *) ), m_pkgModelDep, SLOT( addUniquePackage(Package *) ) ); - connect( m_transactionDep, SIGNAL( Finished(Exit::Value, uint) ), this, SLOT( reqFinished(Exit::Value, uint) ) ); + connect( m_transactionDep, SIGNAL( Finished(Exit::Value, uint) ), this, SLOT( depFinished(Exit::Value, uint) ) ); + // Create a KProgressDialog to don't upset the user + m_waitPD = new KProgressDialog(this, i18n("Wait - KPackageKit"), i18n("Checking dependat packages") ); + m_waitPD->progressBar()->setMinimum(0); + m_waitPD->progressBar()->setMaximum(0); + m_waitPD->setAutoClose(false); + m_waitPD->setModal(true); + m_pbTimer->start(5); + m_waitPD->show(); m_transactionDep->getDepends("~installed", m_reqDepPackages.takeFirst(), true); } } @@ -134,17 +149,17 @@ void PkReviewChanges::checkTask() void PkReviewChanges::reqFinished(Exit::Value status, uint /*runtime*/) { + kDebug() << "reqFinished"; if (status == Exit::Success) { if ( m_reqDepPackages.isEmpty() ) { + m_pbTimer->stop(); + delete m_waitPD; + m_waitPD = 0; if ( m_pkgModelReq->rowCount( QModelIndex() ) > 0 ) { - KDialog *dialog = new KDialog( this ); - dialog->setCaption( "Confirm" ); - dialog->setButtons( KDialog::Ok | KDialog::Cancel ); - PkRequirements *widget = new PkRequirements( i18n("The following packages must also be removed"), m_pkgModelReq, this ); - dialog->setMainWidget( widget ); - connect( dialog, SIGNAL( okClicked() ), this, SLOT( removePackages() ) ); - connect( dialog, SIGNAL( cancelClicked() ), this, SLOT( close() ) ); - dialog->exec(); + m_requimentD = new PkRequirements( i18n("The following packages must also be removed"), m_pkgModelReq, this ); + connect( m_requimentD, SIGNAL( okClicked() ), this, SLOT( removePackages() ) ); + connect( m_requimentD, SIGNAL( cancelClicked() ), this, SLOT( close() ) ); + m_requimentD->show(); } else removePackages(); @@ -153,6 +168,10 @@ void PkReviewChanges::reqFinished(Exit::Value status, uint /*runtime*/) m_transactionReq->getRequires("installed", m_reqDepPackages.takeFirst(), true); } else { + m_pbTimer->stop(); + delete m_waitPD; + m_waitPD = 0; + // TODO inform the user qDebug() << "getReq Failed: " << status; m_reqDepPackages.clear(); checkTask(); @@ -161,26 +180,29 @@ void PkReviewChanges::reqFinished(Exit::Value status, uint /*runtime*/) void PkReviewChanges::removePackages() { + kDebug() << "removePackages"; m_trans = m_daemon->newTransaction(); - PkTransaction *frm = new PkTransaction(m_trans, i18n("Install Packages"), this); + PkTransaction *frm = new PkTransaction(m_trans, i18n("Remove Packages"), this); connect( m_trans, SIGNAL( Finished(Exit::Value, uint) ), this, SLOT( remFinished(Exit::Vaue, uint) ) ); m_trans->removePackages(m_remPackages); + delete m_requimentD; + m_requimentD = 0; frm->exec(); } void PkReviewChanges::depFinished(Exit::Value status, uint /*runtime*/) { + kDebug() << "depFinished"; if (status == Exit::Success) { if ( m_reqDepPackages.isEmpty() ) { + m_pbTimer->stop(); + delete m_waitPD; + m_waitPD = 0; if ( m_pkgModelDep->rowCount( QModelIndex() ) > 0 ) { - KDialog *dialog = new KDialog( this ); - dialog->setCaption( "Confirm" ); - dialog->setButtons( KDialog::Ok | KDialog::Cancel ); - PkRequirements *widget = new PkRequirements( i18n("The following packages must also be installed"), m_pkgModelDep, this ); - dialog->setMainWidget( widget ); - connect( dialog, SIGNAL( okClicked() ), this, SLOT( installPackages() ) ); - connect( dialog, SIGNAL( cancelClicked() ), this, SLOT( close() ) ); - dialog->exec(); + m_requimentD = new PkRequirements( i18n("The following packages must also be installed"), m_pkgModelDep, this ); + connect( m_requimentD, SIGNAL( okClicked() ), this, SLOT( installPackages() ) ); + connect( m_requimentD, SIGNAL( cancelClicked() ), this, SLOT( close() ) ); + m_requimentD->show(); } else installPackages(); @@ -189,6 +211,9 @@ void PkReviewChanges::depFinished(Exit::Value status, uint /*runtime*/) m_transactionDep->getDepends("~installed", m_reqDepPackages.takeFirst(), true); } else { + m_pbTimer->stop(); + delete m_waitPD; + m_waitPD = 0; qDebug() << "getDep Failed: " << status; m_reqDepPackages.clear(); checkTask(); @@ -197,10 +222,13 @@ void PkReviewChanges::depFinished(Exit::Value status, uint /*runtime*/) void PkReviewChanges::installPackages() { + kDebug() << "installPackages"; m_trans = m_daemon->newTransaction(); PkTransaction *frm = new PkTransaction(m_trans, QString(i18n("Install Packages")), this); connect( m_trans, SIGNAL( Finished(Exit::Value, uint) ), this, SLOT( addFinished(Exit::Vaue, uint) ) ); - m_trans->installPackages(m_remPackages); + m_trans->installPackages(m_addPackages); + delete m_requimentD; + m_requimentD = 0; frm->exec(); } diff --git a/gui/ui/AddRm/PkReviewChanges.h b/gui/ui/AddRm/PkReviewChanges.h index a1fe971..d5bdc16 100755 --- a/gui/ui/AddRm/PkReviewChanges.h +++ b/gui/ui/AddRm/PkReviewChanges.h @@ -22,7 +22,9 @@ #define PKREVIEWCHANGES_H #include +#include +#include "PkRequirements.h" #include "PkDelegate.h" #include "PkAddRm_Model.h" #include "ui_PkReviewChanges.h" @@ -51,6 +53,10 @@ public slots: private: PkAddRmModel *m_pkgModelMain, *m_pkgModelReq, *m_pkgModelDep; PkDelegate *m_pkgDelegate; + + KProgressDialog *m_waitPD; + PkRequirements *m_requimentD; + Daemon *m_daemon; Transaction *m_trans; Transaction *m_transactionReq; diff --git a/gui/ui/AddRm/PkReviewChanges.ui b/gui/ui/AddRm/PkReviewChanges.ui index fca0f10..f992070 100644 --- a/gui/ui/AddRm/PkReviewChanges.ui +++ b/gui/ui/AddRm/PkReviewChanges.ui @@ -5,8 +5,8 @@ 0 0 - 451 - 402 + 533 + 445 diff --git a/gui/ui/AddRm/PkTransaction.cpp b/gui/ui/AddRm/PkTransaction.cpp index b90151b..70bc71d 100755 --- a/gui/ui/AddRm/PkTransaction.cpp +++ b/gui/ui/AddRm/PkTransaction.cpp @@ -77,7 +77,7 @@ void PkTransaction::slotButtonClicked(int button) switch(button) { case KDialog::Cancel : m_trans->cancel(); - break;/*accept();*/ + break; case KDialog::User1 : close(); break; @@ -190,32 +190,26 @@ void PkTransaction::ErrorCode(const QString &one, const QString &two) void PkTransaction::Finished(Exit::Value status, uint /*runtime*/) { - switch(status) { - default : - close(); - } -qDebug() << "trans finished: " << status ; -// notifyF->show(); -// QPalette teste; // switch(status) { -// case Exit::Success : -// notifyL->setText("Search finished in " + KGlobal::locale()->formatDuration(runtime) ); -// teste.setColor( QPalette::Normal, QPalette::Window, QColor(0,255,0,150)); -// notifyL->setPalette(teste); -// notifyL->setAutoFillBackground(true); -// m_notifyT.start(100); -// break; -// case Exit::Failed : -// notifyL->setText("Search Failed " + KGlobal::locale()->formatDuration(runtime) ); -// teste.setColor(QPalette::Normal, QPalette::Window, QColor(255,0,0,150)); -// notifyL->setPalette(teste); -// notifyL->setAutoFillBackground(true); -// m_notifyT.start(50); -// break; -// case Exit::Quit : break; -// case Exit::Kill : break; -// case Exit::Unknown : break; +// default : +// close(); // } +qDebug() << "trans finished: " << status ; + switch(status) { + case Exit::Success : + qDebug() << "trans succes: "; + break; + case Exit::Failed : + qDebug() << "trans failed: "; + m_notifyT.start(50); + break; + case Exit::Kill : + qDebug() << "trans quit: "; + break; + case Exit::Unknown : + qDebug() << "trans quit: "; + break; + } } #include "PkTransaction.moc" diff --git a/gui/ui/AddRm/PkTransaction.ui b/gui/ui/AddRm/PkTransaction.ui index 1dc82a3..399644a 100644 --- a/gui/ui/AddRm/PkTransaction.ui +++ b/gui/ui/AddRm/PkTransaction.ui @@ -2,7 +2,7 @@ PkTransaction - Qt::WindowModal + Qt::NonModal -- cgit v1.2.3