Hello community, here is the log from the commit of package fate for openSUSE:Factory checked in at 2017-08-16 16:14:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fate (Old) and /work/SRC/openSUSE:Factory/.fate.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fate" Wed Aug 16 16:14:52 2017 rev:10 rq:516804 version:1.6.0.3 Changes: -------- --- /work/SRC/openSUSE:Factory/fate/fate.changes 2017-08-01 09:26:02.838048737 +0200 +++ /work/SRC/openSUSE:Factory/.fate.new/fate.changes 2017-08-16 16:15:15.796332794 +0200 @@ -1,0 +2,10 @@ +Mon Aug 14 11:53:52 UTC 2017 - [email protected] + +- bugfix release 1.6.0.3 + * fix #1049390 - Standard approvers are not prepopulated anymore in ECOs + * fix #1052788 - attachments are accepted , but not added / referenced + * fix #1053025 - Crash when trying to approve an ECO + * fix #1052391 - Cannot add Engineering Manager + * fix #1052799 - Cannot change Priority + +------------------------------------------------------------------- Old: ---- fate-20170731-4baa429b.tar.bz2 New: ---- fate-20170814-415babab.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fate.spec ++++++ --- /var/tmp/diff_new_pack.ySCSie/_old 2017-08-16 16:15:16.828187954 +0200 +++ /var/tmp/diff_new_pack.ySCSie/_new 2017-08-16 16:15:16.832187393 +0200 @@ -17,8 +17,8 @@ %define baseversion 1.6 -%define patchlevel .0.2 -%define snapshot 20170731-4baa429b +%define patchlevel .0.3 +%define snapshot 20170814-415babab Name: fate Version: %{baseversion}%{patchlevel} Release: 0 ++++++ fate-20170731-4baa429b.tar.bz2 -> fate-20170814-415babab.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/fate/editor/approvallistedit.cpp new/fate-20170814-415babab/src/fate/editor/approvallistedit.cpp --- old/fate-20170731-4baa429b/src/fate/editor/approvallistedit.cpp 2017-07-31 10:53:53.773448590 +0200 +++ new/fate-20170814-415babab/src/fate/editor/approvallistedit.cpp 2017-08-14 13:32:09.669465494 +0200 @@ -170,6 +170,7 @@ QString myself(Prefs::self()->serverUser()); ECO::Approval::List::Iterator it; int row; + bool changed = false; for (it = mApprovals.begin(), row = 0; it != mApprovals.end(); ++it, ++row) { if (it->actor.userid != myself || isRowHidden(row)) @@ -178,9 +179,11 @@ if (!it->given) { it->setState(true); renderRow(row, *it); - emit modified(); + changed = true; } } + if (changed) + emit modified(); } void @@ -190,6 +193,7 @@ QString myself(Prefs::self()->serverUser()); ECO::Approval::List::Iterator it; int row; + bool changed = false; for (it = mApprovals.begin(), row = 0; it != mApprovals.end(); ++it, ++row) { if (it->actor.userid != myself || isRowHidden(row)) @@ -198,9 +202,11 @@ if (it->given) { it->setState(false); renderRow(row, *it); - emit modified(); + changed = true; } } + if (changed) + emit modified(); } void @@ -301,7 +307,12 @@ approval.actor = dlg.actor(); approval.given = false; approval.dateGiven = QString::null; - updateRow(r, approval); + + // updateRow(r, approval); + if (r < mApprovals.size()) + mApprovals[r] = approval; + renderRow(r, approval); + emit modified(); } } @@ -392,13 +403,10 @@ if (r < 0) return; -#ifdef notyet - ECO::Approval approval(approvalForRow(row)); - - // show yesnot dialog -#endif + // removeRow(r); + mApprovals.removeAt(r); + ListEdit::removeRow(r); - removeRow(r); emit modified(); } @@ -532,21 +540,4 @@ i->setIcon(approval.given? KIcon("dialog-ok-apply") : QIcon()); } -void -ApproverListEdit::updateRow(int row, const ECO::Approval &approval) -{ - if (0 < row && row < mApprovals.size()) - mApprovals[row] = approval; - renderRow(row, approval); -} - -void -ApproverListEdit::removeRow(int row) -{ - if (row >= 0) { - mApprovals.removeAt(row); - ListEdit::removeRow(row); - } -} - #include "approvallistedit.moc" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/fate/editor/approvallistedit.h new/fate-20170814-415babab/src/fate/editor/approvallistedit.h --- old/fate-20170731-4baa429b/src/fate/editor/approvallistedit.h 2017-07-31 10:53:53.773448590 +0200 +++ new/fate-20170814-415babab/src/fate/editor/approvallistedit.h 2017-08-14 13:32:09.669465494 +0200 @@ -53,23 +53,12 @@ signals: void modified(); - public slots: - //void addActor(); - protected: - - //ActorItem *findItem( const QString &userid, const QString &email, const QString &fullname, const QString &role ); void setToolTip(const FeatureData::Actor *actor, QTableWidgetItem *item); const FeatureData::Actor &actorForRow(int) const; ECO::Approval approvalForRow(int) const; - - void updateRow(int row, const ECO::Approval &approval); void renderRow(int row, const ECO::Approval &approval); - - void insertRow(int row, const ECO::Approval &approval); - void removeRow(int row); - void addApproval(const ECO::Approval &approval, bool hidden = false); QString renderApproverRole(const ECO::Approval &approval); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/fate/editor/ecoeditor.cpp new/fate-20170814-415babab/src/fate/editor/ecoeditor.cpp --- old/fate-20170731-4baa429b/src/fate/editor/ecoeditor.cpp 2017-07-31 10:53:53.773448590 +0200 +++ new/fate-20170814-415babab/src/fate/editor/ecoeditor.cpp 2017-08-14 13:32:09.669465494 +0200 @@ -74,9 +74,6 @@ void EcoEditor::setFeature(Feature *feature) { - if (mFeature) { - mFeature->eco(); // trigger ECO saving - } FeatureViewBase_setFeature(feature); if (mFeature) { ECO *eco = mFeature->eco(); @@ -85,7 +82,7 @@ page->clear(); page->load(eco); } - connect(mFeature, SIGNAL(saveECO(ECO *)), SLOT(saveToFeature(ECO *))); + connect(mFeature, SIGNAL(featureChanged()), SLOT(updateFeature())); } else { foreach (EcoPage *page, mPages) { @@ -96,19 +93,18 @@ } void -EcoEditor::saveToFeature(ECO *eco) +EcoEditor::updateFeature() { - if (eco) - foreach (EcoPage *page, mPages) { - page->save(eco); - } + setFeature(mFeature); } void EcoEditor::slotModified() { if (mFeature) { + disconnect(mFeature, SIGNAL(featureChanged())); mFeature->setModified(true); + connect(mFeature, SIGNAL(featureChanged()), SLOT(updateFeature())); } } @@ -492,10 +488,10 @@ // ECO Approvals ////////////////////////////////////////////////////////////////// EcoApprovalPage::EcoApprovalPage(QWidget *parent) -: EcoPage(parent) + : EcoPage(parent), mEco(0) { mListEdit = addApproverListEdit(i18n("Approvals")); - connect(mListEdit, SIGNAL(modified()), SIGNAL(modified())); + connect(mListEdit, SIGNAL(modified()), SLOT(slotModified())); } void @@ -507,16 +503,18 @@ void EcoApprovalPage::load(ECO *eco) { + mEco = eco; if (eco) mListEdit->setApprovals(eco->approvals()); } void -EcoApprovalPage::save(ECO *eco) +EcoApprovalPage::slotModified() { - if (eco != 0) { - eco->setApprovals(mListEdit->approvals()); + if (mEco) { + mEco->setApprovals(mListEdit->approvals()); } + emit modified(); } #include "ecoeditor.moc" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/fate/editor/ecoeditor.h new/fate-20170814-415babab/src/fate/editor/ecoeditor.h --- old/fate-20170731-4baa429b/src/fate/editor/ecoeditor.h 2017-07-31 10:53:53.773448590 +0200 +++ new/fate-20170814-415babab/src/fate/editor/ecoeditor.h 2017-08-14 13:32:09.669465494 +0200 @@ -36,7 +36,6 @@ class ApproverListEdit; class QCheckBox; class QLabel; -class QPushButton; class EcoGeneralPage; class EcoJustificationPage; @@ -57,10 +56,6 @@ virtual void clear(); virtual void load(ECO *) = 0; - virtual void save(ECO *) { - // This is a no-op per default because the Editable classes - // have already done it most of the time - } signals: void modified(); @@ -82,8 +77,8 @@ void clear() { setFeature(0); } private slots: - void saveToFeature(ECO *); void updateFinalized (); + void updateFeature(); void slotModified(); protected: @@ -102,10 +97,6 @@ EcoApprovalPage *mApprovalPage; QList<EcoPage *> mPages; - - QPushButton *mSaveButton; - QPushButton *mSaveAllButton; - QPushButton *mDiffButton; }; ////////////////////////////////////////////////////////////////// @@ -311,10 +302,12 @@ virtual void clear(); void load(ECO *); - virtual void save(ECO *); + private slots: + void slotModified(); private: ApproverListEdit *mListEdit; + ECO *mEco; }; #endif // ECOEDITOR_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/fate/editor/featurediffview.cpp new/fate-20170814-415babab/src/fate/editor/featurediffview.cpp --- old/fate-20170731-4baa429b/src/fate/editor/featurediffview.cpp 2017-07-31 10:53:53.773448590 +0200 +++ new/fate-20170814-415babab/src/fate/editor/featurediffview.cpp 2017-08-14 13:32:09.669465494 +0200 @@ -126,11 +126,9 @@ void FeatureDiffView::setFeature(Feature *f) { if (mProc) { // Stop any remaining diff process - mProc->kill(); - delete mProc; + mProc->deleteLater(); delete mNewFile; delete mOldFile; - mOldFile = 0; mProc = 0; } FeatureViewBase_setFeature(f); @@ -168,8 +166,8 @@ } } - if (mOldFile) { // still another diff process running - qWarning() << "still another diff process running"; + if (mProc && mProc->state() != QProcess::NotRunning) { + // Collision:: still another diff process running! return; } @@ -252,6 +250,9 @@ void FeatureDiffView::processExited(FATE::Process *proc, bool success) { + if (proc != mProc) + return; + QString output; if (!success) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/fate/editor/featureview.cpp new/fate-20170814-415babab/src/fate/editor/featureview.cpp --- old/fate-20170731-4baa429b/src/fate/editor/featureview.cpp 2017-07-31 10:53:53.777448609 +0200 +++ new/fate-20170814-415babab/src/fate/editor/featureview.cpp 2017-08-14 13:32:09.669465494 +0200 @@ -333,9 +333,12 @@ } mFeatureMap = mFeature->featureMap(); - if ( mFeatureMap && mFeatureMap->view() == this) { - connect( mFeatureMap, SIGNAL( currentFeatureChanged( Feature * ) ), - SLOT( setFeature( Feature * ) ) ); + if ( mFeatureMap ) { + if (mFeatureMap->view() == this) + connect( mFeatureMap, SIGNAL( currentFeatureChanged( Feature * ) ), + SLOT( setFeature( Feature * ) ) ); + connect( mFeatureMap, SIGNAL( featureReloaded( Feature * ) ), + SLOT( setFeature( Feature * ) ) ); } if (mFeature->eco()) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/fate/mainview.cpp new/fate-20170814-415babab/src/fate/mainview.cpp --- old/fate-20170731-4baa429b/src/fate/mainview.cpp 2017-07-31 10:53:53.777448609 +0200 +++ new/fate-20170814-415babab/src/fate/mainview.cpp 2017-08-14 13:32:09.673465514 +0200 @@ -177,10 +177,6 @@ SLOT( slotQueryDone() ) ); connect( &mFeatureMap, SIGNAL( dataChanged() ), SLOT( slotFeatureDataChanged() ) ); - - // Thinks we do not need that in the end ... - connect( &mFeatureMap, SIGNAL( featureChanged( Feature * ) ), - SLOT( slotFeatureReloaded( Feature * ) ) ); connect( &mFeatureMap, SIGNAL( connectionEstablished( bool ) ), SIGNAL( connectionEstablished( bool ) ) ); // TODO: may be move this completely to FeatureMapListView @@ -258,11 +254,11 @@ view->addAction(c.action(i)); connect( &mFeatureMap, SIGNAL(dataAboutToBeReset()), - view, SLOT(close())); + view, SLOT(deleteLater())); disconnect( feature, SIGNAL(destroyed()), view, 0); connect( feature, SIGNAL(destroyed()), - view, SLOT(close())); + view, SLOT(deleteLater())); connect( view, SIGNAL(destroyed()), SLOT(aboutToDestroyFeatureView())); // TODO: load and store a default size @@ -1166,14 +1162,6 @@ mFeatureMap.doReload( feature ); } -void MainView::slotFeatureReloaded( Feature * f ) -{ - Feature *currentFeature = mFeatureMap.currentFeature(); - if ( !currentFeature || currentFeature->id() == f->id() ) { - mFeatureView->setFeature( f ); - } -} - void MainView::doDelayedQuery() { kDebug() << k_funcinfo; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/fate/mainview.h new/fate-20170814-415babab/src/fate/mainview.h --- old/fate-20170731-4baa429b/src/fate/mainview.h 2017-07-31 10:53:53.777448609 +0200 +++ new/fate-20170814-415babab/src/fate/mainview.h 2017-08-14 13:32:09.673465514 +0200 @@ -158,7 +158,6 @@ void slotPreconditionChanged( StartupSequence::Precondition p, bool on ); void slotFeatureDataChanged(); void slotQueryDone(); - void slotFeatureReloaded( Feature * ); void keeperChanged( const QString & ); void clientLocked( bool ); void editRelationTree(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/libfate/feature.cpp new/fate-20170814-415babab/src/libfate/feature.cpp --- old/fate-20170731-4baa429b/src/libfate/feature.cpp 2017-07-31 10:53:53.785448648 +0200 +++ new/fate-20170814-415babab/src/libfate/feature.cpp 2017-08-14 13:32:09.677465533 +0200 @@ -718,7 +718,6 @@ ECO * Feature::eco() { - emit saveECO(mECO); return mECO; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/libfate/feature.h new/fate-20170814-415babab/src/libfate/feature.h --- old/fate-20170731-4baa429b/src/libfate/feature.h 2017-07-31 10:53:53.785448648 +0200 +++ new/fate-20170814-415babab/src/libfate/feature.h 2017-08-14 13:32:09.677465533 +0200 @@ -173,7 +173,6 @@ void productsChanged( const ProductContext::List & ); void actorsChanged( const FeatureData::Actor::List & ); void relationsChanged( const Relation::List & ); - void saveECO( ECO * ); public: bool hasActor( const QString &role ) const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/libfate/featuremap.cpp new/fate-20170814-415babab/src/libfate/featuremap.cpp --- old/fate-20170731-4baa429b/src/libfate/featuremap.cpp 2017-07-31 10:53:53.785448648 +0200 +++ new/fate-20170814-415babab/src/libfate/featuremap.cpp 2017-08-14 13:32:09.681465554 +0200 @@ -323,13 +323,6 @@ emit featuresModified(); } -void FeatureMap::signalFeatureModification( Feature *f ) -{ - if (!f) f = mCurrentFeature; - f->setModified(true); - emit featureChanged( f ); -} - Feature * FeatureMap::feature(const QString &id) const { @@ -724,6 +717,7 @@ f->setFeatureMap( this ); f->setModified(false); // emit a Feature::featureChanged() and thus // a FeatureMap::featureChanged(f) + emit featureReloaded(f); if( mCache ) { mCache->removeModifiedItem( f->id() ); } @@ -767,15 +761,13 @@ void FeatureMap::finishSave( Feature *f ) { - f->setModified( false ); + f->mModified = false; // no signal Feature::featureChanged() here!! if( mCache ) { mCache->removeModifiedItem( f->id() ); mCache->save( f->id(), QString::number( f->revision() ), f ); } - emit featureChanged( f ); - doReload( f ); } @@ -945,6 +937,7 @@ CheckResultsDialog resultsDialog( f, mView ); bool failed = false; bool warn = false; + f->createDomTree(false); FeatureCheck::Map map = xclv.validate( f->domElement(), f ); QList<QString> groups = map.keys(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/libfate/featuremap.h new/fate-20170814-415babab/src/libfate/featuremap.h --- old/fate-20170731-4baa429b/src/libfate/featuremap.h 2017-07-31 10:53:53.785448648 +0200 +++ new/fate-20170814-415babab/src/libfate/featuremap.h 2017-08-14 13:32:09.681465554 +0200 @@ -83,7 +83,6 @@ void cancelQuery(); void addNewFeature( Feature * ); void removeFeature( Feature * ); - void signalFeatureModification( Feature *f = 0 ); bool saveCache( const Feature::List & ); bool saveKeeper( Feature * ); @@ -110,7 +109,8 @@ void featureAdded( Feature * ); // a feature in the map has been changed void featureChanged( Feature * ); - + // a feature has been reloaded, featureChanged() emitted before that; + void featureReloaded( Feature * ); // passthrough signal from QueryEngine void connectionEstablished( bool ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/libfate/process.cpp new/fate-20170814-415babab/src/libfate/process.cpp --- old/fate-20170731-4baa429b/src/libfate/process.cpp 2017-07-31 10:53:53.785448648 +0200 +++ new/fate-20170814-415babab/src/libfate/process.cpp 2017-08-14 13:32:09.681465554 +0200 @@ -6,7 +6,7 @@ #include "process.h" -#include "qdebug.h" +#include <QDebug> FATE::Process::Process(QObject *parent, const QString &cmdName) : QProcess(parent), mCmdName(cmdName), mComplete(false) @@ -19,6 +19,15 @@ { } +FATE::Process::~Process() +{ + if (!waitForFinished(1)) { + // avoid QProcess to be whining + kill(); + waitForFinished(500); // wait max half a second + } +} + bool FATE::Process::start(void) { @@ -29,12 +38,6 @@ connect(this, SIGNAL(readyReadStandardError ()), SLOT(grabStandardError())); connect(this, SIGNAL(finished(int, QProcess::ExitStatus)), SLOT(complete(int, QProcess::ExitStatus))); - if (mArgs.isEmpty()) { - qDebug() << "Starting process:" << mCmdName; - } else { - qDebug() << "Starting process:" << mCmdName << mArgs.join("\" \""); - } - QProcess::start(mCmdName, mArgs, QIODevice::ReadOnly); return true; } @@ -118,6 +121,8 @@ void FATE::Process::complete(int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + mComplete = true; if (exitStatus != QProcess::NormalExit) { qDebug() << "Process" << mCmdName << "crashed"; @@ -129,8 +134,6 @@ grabStandardOutput(); grabStandardError(); - qDebug() << "Process" << mCmdName << "exited with status code " << exitCode; - emit done(this, true); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/libfate/process.h new/fate-20170814-415babab/src/libfate/process.h --- old/fate-20170731-4baa429b/src/libfate/process.h 2017-07-31 10:53:53.785448648 +0200 +++ new/fate-20170814-415babab/src/libfate/process.h 2017-08-14 13:32:09.681465554 +0200 @@ -7,7 +7,7 @@ #ifndef __LIBDFATE_PROCESS_H__ #define __LIBDFATE_PROCESS_H__ -#include <qprocess.h> +#include <QProcess> namespace FATE { @@ -16,6 +16,7 @@ public: Process(QObject *, const QString &cmdName); Process(QObject *, const QString &cmdName, const QStringList &args); + ~Process(); void addArgument(const QString &); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/libfate/ui/featurelistview.cpp new/fate-20170814-415babab/src/libfate/ui/featurelistview.cpp --- old/fate-20170731-4baa429b/src/libfate/ui/featurelistview.cpp 2017-07-31 10:53:53.789448668 +0200 +++ new/fate-20170814-415babab/src/libfate/ui/featurelistview.cpp 2017-08-14 13:32:09.681465554 +0200 @@ -824,8 +824,6 @@ // handle signals from FeatureTableView connect( this, SIGNAL( featureSelected( Feature * ) ), mFeatureMap, SLOT( setCurrentFeature( Feature * ) ) ); - connect( this, SIGNAL( requestFeatureView( Feature * ) ), - SIGNAL( requestFeatureView( Feature * ) ) ); connect( this, SIGNAL( requestRemoveFeature( Feature * ) ), mFeatureMap, SLOT( removeFeature( Feature * ) ) ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170731-4baa429b/src/libfate/ui/featurelistview.h new/fate-20170814-415babab/src/libfate/ui/featurelistview.h --- old/fate-20170731-4baa429b/src/libfate/ui/featurelistview.h 2017-07-31 10:53:53.789448668 +0200 +++ new/fate-20170814-415babab/src/libfate/ui/featurelistview.h 2017-08-14 13:32:09.681465554 +0200 @@ -237,9 +237,6 @@ ~FeatureMapListView(); void setupActions(KActionCollection*); - signals: - void requestFeatureView(Feature *); - protected slots: void updateFeature(Feature *f); void queryDone();
