Hello community,
here is the log from the commit of package fate for openSUSE:Factory checked in at 2017-02-01 09:53:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fate (Old)
and /work/SRC/openSUSE:Factory/.fate.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fate"
Changes:
--------
--- /work/SRC/openSUSE:Factory/fate/fate.changes 2017-01-24 10:40:15.563975534 +0100
+++ /work/SRC/openSUSE:Factory/.fate.new/fate.changes 2017-02-03 17:36:40.393430377 +0100
@@ -1,0 +2,30 @@
+Tue Jan 31 11:49:34 UTC 2017 - jplack@suse.com
+
+- replaces outdated inttools@ mail adress by featureadmin@ (bug via email)
+
+-------------------------------------------------------------------
+Sat Jan 28 00:00:58 UTC 2017 - jplack@suse.com
+
+- more fixes:
+ * bsc#837526: fix filter in productviewer, rearrange columns and layout,
+ also show feature open dates and deadlines
+ * bsc#964882: fix crash, QList::first() returns undefined on empty list, so
+ check first
+
+-------------------------------------------------------------------
+Thu Jan 26 15:59:16 UTC 2017 - jplack@suse.com
+
+- update to version 1.5.5.7
+ * make comments always editable by original author
+ * bsc#1006192: have UTC time stamps in comments as in openfate
+ * bsc#940928: fix formatting and limit comment threads
+ * bsc#967367: remove bookmarks feature which is currently broken
+ * bsc#1004536 : create an extra list for ECO stakeholders in feature view
+
+-------------------------------------------------------------------
+Tue Jan 24 14:15:11 UTC 2017 - jplack@suse.com
+
+- removed old style 'norootforbuild'
+- require oxygen-icon-theme instead of oxygen5-icon-theme (bsc#1015881)
+
+-------------------------------------------------------------------
Old:
----
fate-20170120-10cb902.tar.bz2
New:
----
fate-20170131-27be067.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fate.spec ++++++
--- /var/tmp/diff_new_pack.Cm9uTO/_old 2017-02-03 17:36:40.805372071 +0100
+++ /var/tmp/diff_new_pack.Cm9uTO/_new 2017-02-03 17:36:40.809371505 +0100
@@ -1,7 +1,7 @@
#
# spec file for package fate
#
-# Copyright (c) 2008-2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,12 +16,11 @@
#
-# norootforbuild
-%define baseversion 1.5.5.6
-%define patchlevel 0
-%define snapshot 20170120-10cb902
+%define baseversion 1.5.5.7
+%define patchlevel .1
+%define snapshot 20170131-27be067
Name: fate
-Version: %{baseversion}.%{patchlevel}
+Version: %{baseversion}%{patchlevel}
Release: 0
Summary: SUSE Feature Management Tool
License: GPL-2.0 or GPL-3.0 or LGPL-2.1+
@@ -39,7 +38,7 @@
BuildRequires: pkgconfig
BuildRequires: sqlite-devel
Requires: kdebase4-runtime
-Requires: oxygen5-icon-theme
+Requires: oxygen-icon-theme
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} > 1010
Recommends: diffutils
@@ -67,7 +66,7 @@
%install
export SUSE_ASNEEDED=0
-make DESTDIR=%{buildroot} install
+%make_install
%files
%defattr(-,root,root)
++++++ fate-20170120-10cb902.tar.bz2 -> fate-20170131-27be067.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/meta/xslt-html new/fate-20170131-27be067/meta/xslt-html
--- old/fate-20170120-10cb902/meta/xslt-html 2017-01-20 19:36:04.234520490 +0100
+++ new/fate-20170131-27be067/meta/xslt-html 2017-01-31 12:42:53.872633342 +0100
@@ -20,6 +20,8 @@
+
+
<div class="feature">
@@ -121,31 +123,59 @@
<div class="rbroundbox_blue">
<div class="rbtop_blue"><div></div></div>
<div class="rbcontent">
- <h3>Personsxsl:commentactors_hook</h3>
<span id="actors_container">
- <table class="persons" style="width: 100%;">
- <tr>
- <td>
-
-
-
-
-
-
- </td>
- <td>
-
-
-
-
-
-
- </td>
- </tr>
- </table>
+ <h3>Contributorsxsl:commentactors_hook</h3>
+ <table class="persons" style="width: 100%;">
+ <tr>
+ <td style="width: 50%;">
+
+
+
+
+
+
+ </td>
+ <td>
+
+
+
+
+
+
+ </td>
+ </tr>
+ </table>
+
+ <h3 style="margin-top:10px;">ECO Stakeholdersxsl:commentapprovers_hook</h3>
+ <table class="persons" style="width: 100%;">
+ <tr>
+ <td style="width: 50%;">
+
+
+
+
+
+
+ </td>
+ <td>
+
+
+
+
+
+
+ </td>
+ </tr>
+ </table>
+
</span>
</div><!-- /rbcontent -->
-
+
+
<div class="rbbot_blue"><div></div></div>
@@ -160,7 +190,7 @@
<tr><th colspan="2">
float: left;
- xsl:textInterested Persons (xsl:text)xsl:commentintactors_hook
+ xsl:textInterested Persons (xsl:text)xsl:commentintactors_hook
@@ -170,16 +200,17 @@
</th></tr>
<tr class="dropmenu" id="interestdrop">
- <td>
-
-
+ <td style="width: 50%;">
+
+
</td>
<td>
-
+
@@ -431,7 +462,9 @@
xsl:otherwise
-
+
+
+
@@ -457,6 +490,9 @@
+
+ Maximum number of comment reached, please talk to each other
+
xsl:otherwise
<div class="action" style="float:left;">[<a href="fate:comment/0">add comment</a>]</div>
@@ -474,6 +510,8 @@
+
+
xsl:choose
<span class="action"> [
@@ -492,11 +530,15 @@
[<a name="comment{@id}" class="action" href="fate:comment/{@id}">reply</a>]
+
+
+ [ <a href="mailto:{author/person/email}" title="discuss offline">email</a> ]
+
xsl:choose
-
+
[<a href="fate:editcomment/{@id}">edit</a>]
@@ -528,6 +570,7 @@
+
<li>
xsl:choose
@@ -546,12 +589,17 @@
xsl:choose
<span class="header">
-
- </span>
+
+
+
+ </span>
xsl:otherwise
<span class="header headerlatest">
- (latest comment)
+
+
+
+ (latest comment)
</span>
@@ -567,7 +615,9 @@
<ul>
-
+
+
+
</ul>
@@ -576,6 +626,7 @@
+
<span class="id">#: </span>
<span class="author">
@@ -588,7 +639,9 @@
</span>
<span class="reply">
-
+
+
+
</span>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/cache/sqlitecache.cpp new/fate-20170131-27be067/src/cache/sqlitecache.cpp
--- old/fate-20170120-10cb902/src/cache/sqlitecache.cpp 2017-01-20 19:36:04.238520508 +0100
+++ new/fate-20170131-27be067/src/cache/sqlitecache.cpp 2017-01-31 12:42:53.876633353 +0100
@@ -69,7 +69,7 @@
const char* pszUnused;
query = QString( "SELECT id FROM modified_items" );
- sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
rc = sqlite3_step(pStmt);
while( rc != SQLITE_DONE ) {
@@ -112,7 +112,7 @@
}
query = QString( "SELECT data FROM %1 WHERE id='%2'" ).arg(table).arg( id );
- sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
rc = sqlite3_step(pStmt);
if( rc != SQLITE_ROW ){
@@ -160,7 +160,7 @@
}
query += ")";
- rc = sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ rc = sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << rc;
return items;
@@ -225,7 +225,7 @@
query = "INSERT INTO items (id, revision, data ) VALUES ( '" +
id + "','" + rev + "',?)";
- rc =sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ rc =sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << rc;
}
@@ -248,7 +248,7 @@
char *zErrMsg = 0;
QString query;
- rc = sqlite3_open( databaseFile().toAscii(), &db );
+ rc = sqlite3_open( databaseFile().toLatin1().constData(), &db );
if( rc != SQLITE_OK ){
KMessageBox::error( 0, i18n("Could not initialize cache database:\n%1")
@@ -260,14 +260,14 @@
// Initialize main table
query = QString("SELECT name FROM sqlite_master WHERE type='table' AND name='items'" );
- rc = sqlite3_get_table( db, query.toAscii(), &result, &nRow, &nCol, &zErrMsg);
+ rc = sqlite3_get_table( db, query.toLatin1().constData(), &result, &nRow, &nCol, &zErrMsg);
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
} else {
// settings, see http://www.sqlite.org/pragma.html
query = QString("PRAGMA synchronous = OFF;");
- rc = sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg );
+ rc = sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg );
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -278,13 +278,13 @@
"id string primary key not null,"
"revision integer not null,"
"data blob)");
- sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg );
+ sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg );
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
}
query = QString("CREATE INDEX id_index ON items( id )");
- sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg );
+ sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg );
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -294,7 +294,7 @@
// Initialize modified items table
query = QString("SELECT name FROM sqlite_master WHERE type='table' AND name='modified_items'" );
- rc = sqlite3_get_table( db, query.toAscii(), &result, &nRow, &nCol, &zErrMsg);
+ rc = sqlite3_get_table( db, query.toLatin1().constData(), &result, &nRow, &nCol, &zErrMsg);
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -304,7 +304,7 @@
query = QString("CREATE TABLE modified_items ("
"id string primary key not null,"
"data blob)");
- sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg );
+ sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg );
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -314,7 +314,7 @@
// Initialize new items table
query = QString("SELECT name FROM sqlite_master WHERE type='table' AND name='new_items'" );
- rc = sqlite3_get_table( db, query.toAscii(), &result, &nRow, &nCol, &zErrMsg);
+ rc = sqlite3_get_table( db, query.toLatin1().constData(), &result, &nRow, &nCol, &zErrMsg);
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -323,7 +323,7 @@
kDebug() << k_funcinfo << "Need to initialize database";
query = QString("CREATE TABLE new_items ("
"data blob)");
- sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg );
+ sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg );
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -354,7 +354,7 @@
char *zErrMsg = 0;
query = QString( "DELETE FROM items where id='%1'" ).arg( id );
- rc = sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg);
+ rc = sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg);
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -382,7 +382,7 @@
query += ")";
- rc = sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg);
+ rc = sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg);
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -408,7 +408,7 @@
query = "BEGIN TRANSACTION;";
- rc = sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg);
+ rc = sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg);
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -428,7 +428,7 @@
query = "END TRANSACTION;";
- rc = sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg);
+ rc = sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg);
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -451,7 +451,7 @@
query = "DELETE FROM items;";
- rc = sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg);
+ rc = sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg);
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -479,7 +479,7 @@
query = "INSERT INTO modified_items (id, data ) VALUES ( '" +
id + "',?)";
- rc =sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ rc =sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << rc;
}
@@ -514,7 +514,7 @@
const char* pszUnused;
query = QString( "SELECT data FROM modified_items WHERE id='%1'" ).arg( id );
- sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
rc = sqlite3_step(pStmt);
if( rc != SQLITE_ROW ){
@@ -548,7 +548,7 @@
char *zErrMsg = 0;
query = QString( "DELETE FROM modified_items where id='%1'" ).arg( id );
- rc = sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg);
+ rc = sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg);
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -575,7 +575,7 @@
const char* pszUnused;
query = QString( "SELECT data FROM modified_items" );
- sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
rc = sqlite3_step(pStmt);
while( rc != SQLITE_DONE ) {
@@ -613,7 +613,7 @@
bool hasItems;
query = QString( "SELECT COUNT(*) FROM modified_items" );
- sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
rc = sqlite3_step(pStmt);
if( rc != SQLITE_ROW ){
@@ -643,7 +643,7 @@
bool hasItem;
query = QString( "SELECT COUNT(*) FROM modified_items WHERE id='%1'" ).arg( id );
- sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
rc = sqlite3_step(pStmt);
if( rc != SQLITE_ROW ){
@@ -682,7 +682,7 @@
query = "INSERT INTO new_items ( data ) VALUES ( ? )";
- rc =sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ rc =sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << rc;
}
@@ -715,7 +715,7 @@
const char* pszUnused;
query = QString( "SELECT data FROM new_items" );
- sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
rc = sqlite3_step(pStmt);
while( rc != SQLITE_DONE ) {
if( rc == SQLITE_BUSY )
@@ -750,7 +750,7 @@
char *zErrMsg = 0;
query = QString( "DELETE FROM new_items" );
- rc = sqlite3_exec( db, query.toAscii(), 0, 0, &zErrMsg);
+ rc = sqlite3_exec( db, query.toLatin1().constData(), 0, 0, &zErrMsg);
if( rc != SQLITE_OK ){
kDebug() << k_funcinfo << "SQL error: " << zErrMsg;
sqlite3_free(zErrMsg);
@@ -770,7 +770,7 @@
const char* pszUnused;
query = QString( "SELECT COUNT(*) FROM new_items" );
- sqlite3_prepare( db, query.toAscii(), -1, &pStmt, &pszUnused );
+ sqlite3_prepare( db, query.toLatin1().constData(), -1, &pStmt, &pszUnused );
rc = sqlite3_step(pStmt);
if( rc != SQLITE_ROW ){
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/core/fatebookmarkmanager.h new/fate-20170131-27be067/src/fate/core/fatebookmarkmanager.h
--- old/fate-20170120-10cb902/src/fate/core/fatebookmarkmanager.h 2017-01-20 19:36:04.238520508 +0100
+++ new/fate-20170131-27be067/src/fate/core/fatebookmarkmanager.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-#ifndef FATEBOOKMARKMANAGER_H
-#define FATEBOOKMARKMANAGER_H
-
-#include
-#include
-
-class FateBookmarkManager
-{
-public:
- static KBookmarkManager * self() {
- if ( !s_bookmarkManager )
- {
- QString bookmarksFile = KStandardDirs::locateLocal("data", QString::fromLatin1("fate/bookmarks.xml"));
- s_bookmarkManager = KBookmarkManager::managerForFile( bookmarksFile, QString::null );
- }
- return s_bookmarkManager;
- }
-
-
- static KBookmarkManager *s_bookmarkManager;
-};
-
-KBookmarkManager* FateBookmarkManager::s_bookmarkManager;
-
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/core/openproductscheck.cpp new/fate-20170131-27be067/src/fate/core/openproductscheck.cpp
--- old/fate-20170120-10cb902/src/fate/core/openproductscheck.cpp 2017-01-20 19:36:04.238520508 +0100
+++ new/fate-20170131-27be067/src/fate/core/openproductscheck.cpp 2017-01-31 12:42:53.876633353 +0100
@@ -27,9 +27,9 @@
#include "metavaluelist.h"
#include "productmap.h"
-#include
+#include <QStringList>
+#include <QMessageBox>
-#include
#include
bool OpenProductsCheck::checkProducts( const QStringList &list, QWidget *widget,
@@ -83,13 +83,13 @@
if( !warnings.isEmpty() ) {
if( !critical ) {
- if( KMessageBox::warningContinueCancel( widget,
+ if( QMessageBox::warning( widget, QString(),
i18n("<qt>Some of the chosen products are not opened yet, closed or passed the deadline:\n\n"
- "<ul>%1</ul>\n\nContinue anyway?</qt>").arg(warnings) ) == KMessageBox::Cancel )
+ "<ul>%1</ul>\n\nContinue anyway?</qt>").arg(warnings), QMessageBox::Ok|QMessageBox::Cancel, QMessageBox::Ok ) == QMessageBox::Cancel )
return false;
}
else {
- KMessageBox::error( widget,
+ QMessageBox::critical( widget, QString(),
i18n("<qt>Some of the chosen products are not opened yet, closed or passed the deadline:\n\n"
"<ul>%1</ul></qt>").arg(warnings) );
return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/editor/actoreditor.cpp new/fate-20170131-27be067/src/fate/editor/actoreditor.cpp
--- old/fate-20170120-10cb902/src/fate/editor/actoreditor.cpp 2017-01-20 19:36:04.238520508 +0100
+++ new/fate-20170131-27be067/src/fate/editor/actoreditor.cpp 2017-01-31 12:42:53.876633353 +0100
@@ -39,7 +39,6 @@
#include
#include
#include
-#include
#include
#include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/editor/commentdialog.cpp new/fate-20170131-27be067/src/fate/editor/commentdialog.cpp
--- old/fate-20170120-10cb902/src/fate/editor/commentdialog.cpp 2017-01-20 19:36:04.242520526 +0100
+++ new/fate-20170131-27be067/src/fate/editor/commentdialog.cpp 2017-01-31 12:42:53.880633363 +0100
@@ -190,6 +190,7 @@
mPrivate->setChecked( com.isPrivate );
kDebug() << k_funcinfo << "Setting in reply to auf " << com.inReplyTo;
inReplyTo = com.inReplyTo;
+ mAuthor = com.author;
break;
}
}
@@ -259,15 +260,23 @@
FeatureData::Comment CommentDialog::comment( )
{
FeatureData::Comment comment;
- FeatureData::Actor actor;
- comment.author.userid = Prefs::self()->serverUser();
- comment.author.roleId = Prefs::self()->stakeholderFunction();
+
+ if (mCommentId==-1) {
+ comment.author.userid = Prefs::self()->serverUser();
+ } else {
+ comment.author = mAuthor;
+ }
comment.id = mCommentId;
comment.theComment = mEditor->richtextifiedText();
comment.isPrivate = mPrivate->isChecked();
comment.isEditable = true;
comment.inReplyTo = 0;
- comment.created = QDateTime::currentDateTime();
+#if QT_VERSION >= 0x040700
+ comment.created = QDateTime::currentDateTimeUtc();
+#else
+ // SLES 11 SP4 still sits on Qt-4.6
+ comment.created = QDateTime::currentDateTime().toUTC();
+#endif
QString inRepString = mInReplyCombo->currentText();
if( inRepString == INITIAL_DESC ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/editor/commentdialog.h new/fate-20170131-27be067/src/fate/editor/commentdialog.h
--- old/fate-20170120-10cb902/src/fate/editor/commentdialog.h 2017-01-20 19:36:04.242520526 +0100
+++ new/fate-20170131-27be067/src/fate/editor/commentdialog.h 2017-01-31 12:42:53.880633363 +0100
@@ -83,6 +83,7 @@
KPassivePopup *mPassivePop;
QLabel *mWarnDetailLabel;
int mCommentId;
+ FeatureData::Actor mAuthor;
Feature *mFeature;
bool mActorsChanged;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/editor/htmlview.cpp new/fate-20170131-27be067/src/fate/editor/htmlview.cpp
--- old/fate-20170120-10cb902/src/fate/editor/htmlview.cpp 2017-01-20 19:36:04.242520526 +0100
+++ new/fate-20170131-27be067/src/fate/editor/htmlview.cpp 2017-01-31 12:42:53.880633363 +0100
@@ -290,7 +290,7 @@
t += "standardized query language for XML.</p>";
t += "<p>In case of questions or comments please contact the ";
- t += "Internal Tools Team</a>.</p>";
+ t += "Internal Tools Team</a>.</p>";
t += "<p>For bugreports, please use the ";
t += "http://bugzilla.suse.com\">SUSE Bugzilla</a>.</p>";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/editor/prioritytable.cpp new/fate-20170131-27be067/src/fate/editor/prioritytable.cpp
--- old/fate-20170120-10cb902/src/fate/editor/prioritytable.cpp 2017-01-20 19:36:04.242520526 +0100
+++ new/fate-20170131-27be067/src/fate/editor/prioritytable.cpp 2017-01-31 12:42:53.880633363 +0100
@@ -33,7 +33,6 @@
#include <QComboBox>
#include <QHeaderView>
-#include <QLayout>
#include <QString>
#include <QTableWidget>
#include <QVBoxLayout>
@@ -917,15 +916,6 @@
delete dlg;
}
-static inline void
-swap(QString &a, QString &b)
-{
- QString tmp = a;
-
- a = b;
- b = tmp;
-}
-
void PriorityTable::sort()
{
#if 0
@@ -936,8 +926,8 @@
if( mProductIdList[col] == p ) {
mTable->swapColumns( i, col, true );
- swap(mProductIdList[i], mProductIdList[col]);
- swap(mProductNameList[i], mProductNameList[col]);
+ mProductIdList[i].swap(mProductIdList[col]));
+ mProductNameList[i].swap(mProductNameList[col]));
Entry old = mEntries[i];
mEntries[i] = mEntries[col];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/editor/prioritytable.h new/fate-20170131-27be067/src/fate/editor/prioritytable.h
--- old/fate-20170120-10cb902/src/fate/editor/prioritytable.h 2017-01-20 19:36:04.242520526 +0100
+++ new/fate-20170131-27be067/src/fate/editor/prioritytable.h 2017-01-31 12:42:53.880633363 +0100
@@ -25,7 +25,6 @@
#include "productlisteditorbase.h"
#include "featuredata.h"
-#include <QDateTime>
#include <QMap>
#include <QMenu>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/editor/productselectorwidget.cpp new/fate-20170131-27be067/src/fate/editor/productselectorwidget.cpp
--- old/fate-20170120-10cb902/src/fate/editor/productselectorwidget.cpp 2017-01-20 19:36:04.242520526 +0100
+++ new/fate-20170131-27be067/src/fate/editor/productselectorwidget.cpp 2017-01-31 12:42:53.880633363 +0100
@@ -39,7 +39,6 @@
#include
#include
#include
-#include <QVBoxLayout>
QuickProductSelectorWidget::QuickProductSelectorWidget(QWidget *parent)
: QWidget(parent), mSingleSelection(false)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/editor/richtexteditor.cpp new/fate-20170131-27be067/src/fate/editor/richtexteditor.cpp
--- old/fate-20170120-10cb902/src/fate/editor/richtexteditor.cpp 2017-01-20 19:36:04.242520526 +0100
+++ new/fate-20170131-27be067/src/fate/editor/richtexteditor.cpp 2017-01-31 12:42:53.880633363 +0100
@@ -30,7 +30,6 @@
#include <QBoxLayout>
#include <QHeaderView>
#include <QLabel>
-#include <QLayout>
#include <QRegExp>
#include <QSplitter>
#include <QTableWidget>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/inexcheckbox.cpp new/fate-20170131-27be067/src/fate/inexcheckbox.cpp
--- old/fate-20170120-10cb902/src/fate/inexcheckbox.cpp 2017-01-20 19:36:04.242520526 +0100
+++ new/fate-20170131-27be067/src/fate/inexcheckbox.cpp 2017-01-31 12:42:53.880633363 +0100
@@ -29,8 +29,6 @@
#include
#include
-#include <QVBoxLayout>
-#include <QBoxLayout>
InExCheckBox::InExCheckBox( QWidget *parent, const char *text )
: QCheckBox(text, parent)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/mainview.cpp new/fate-20170131-27be067/src/fate/mainview.cpp
--- old/fate-20170120-10cb902/src/fate/mainview.cpp 2017-01-20 19:36:04.246520544 +0100
+++ new/fate-20170131-27be067/src/fate/mainview.cpp 2017-01-31 12:42:53.884633376 +0100
@@ -59,7 +59,6 @@
#include "processhelpdialog.h"
#include "featurerelationdialog.h"
#include "sendmaildialog.h"
-#include "metamanager.h"
#include "keeperjob.h"
#include "texttemplate.h"
#include "odtfile.h"
@@ -95,9 +94,7 @@
#include
#include
#include
-#include
#include
-#include
#include <QDBusConnection>
#define BULK_FEATURE_UPDATES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/mainwindow.cpp new/fate-20170131-27be067/src/fate/mainwindow.cpp
--- old/fate-20170120-10cb902/src/fate/mainwindow.cpp 2017-01-20 19:36:04.246520544 +0100
+++ new/fate-20170131-27be067/src/fate/mainwindow.cpp 2017-01-31 12:42:53.884633376 +0100
@@ -32,7 +32,6 @@
#include "startupsequenceview.h"
#include "progressmanager.h"
#include "version.h"
-#include "fatebookmarkmanager.h"
#include "dialogsize.h"
#include
@@ -47,7 +46,6 @@
#include
#include
#include
-#include
#include
#include
#include
@@ -55,12 +53,11 @@
#include
#include
#include
-#include
#include
MainWindow::MainWindow( bool quietStartup )
: KXmlGuiWindow( 0 ), mOnlineModePending( false ),
- mQueryFeatureLabel( 0 ), mQueryFeatureEdit( 0 ), mBookmarksActionMenu(0)
+ mQueryFeatureLabel( 0 ), mQueryFeatureEdit( 0 )
{
setObjectName( "MainWindow" );
mStartupSequenceView = new StartupSequenceView( StartupSequence::self(),
@@ -149,7 +146,6 @@
DialogSize::remember(this);
delete mQueryFeatureLabel;
delete mQueryFeatureEdit;
- delete mBookmarksActionMenu;
}
void MainWindow::setupActions()
@@ -268,14 +264,6 @@
KStandardAction::preferences( this, SLOT( preferences() ),
actionCollection() );
- mBookmarksActionMenu = new KActionMenu( this );
- mBookmarksActionMenu->setText( i18n( "Bookmarks" ) );
- // mBookmarksActionMenu->setIcon( KIcon("bookmarks") );
- actionCollection()->addAction( "bookmarks", mBookmarksActionMenu );
-
- mBookmarkMenu = new KBookmarkMenu( FateBookmarkManager::self(), this,
- mBookmarksActionMenu->menu(), actionCollection() );
-
mView->setupActions( actionCollection() );
}
@@ -284,17 +272,6 @@
mView->queryFeature( mQueryFeatureEdit->text() );
}
-
-void MainWindow::openBookmark( const KBookmark& bookmark, Qt::MouseButtons,
- Qt::KeyboardModifiers )
-{
- QString url = bookmark.url().url();
- if ( url.left(7) == "fate://" ) {
- QString id = url.mid(7);
- mView->queryFeature( id );
- }
-}
-
QString MainWindow::currentURL() const
{
return mView->currentURL();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/mainwindow.h new/fate-20170131-27be067/src/fate/mainwindow.h
--- old/fate-20170120-10cb902/src/fate/mainwindow.h 2017-01-20 19:36:04.246520544 +0100
+++ new/fate-20170131-27be067/src/fate/mainwindow.h 2017-01-31 12:42:53.884633376 +0100
@@ -25,7 +25,6 @@
#include
#include
#include
-#include
#include "mainview.h"
#include <QLabel>
@@ -37,9 +36,8 @@
class QPushButton;
class StartupSequenceView;
class KLineEdit;
-class KBookmarkMenu;
-class MainWindow : public KXmlGuiWindow, virtual public KBookmarkOwner
+class MainWindow : public KXmlGuiWindow
{
Q_OBJECT
public:
@@ -50,8 +48,6 @@
MainView *view() { return mView; }
- virtual void openBookmark( const KBookmark&,
- Qt::MouseButtons, Qt::KeyboardModifiers );
virtual QString currentTitle() const;
virtual QString currentURL() const;
@@ -96,9 +92,6 @@
QLabel *mQueryFeatureLabel;
KLineEdit *mQueryFeatureEdit;
-
- KActionMenu *mBookmarksActionMenu;
- KBookmarkMenu *mBookmarkMenu;
};
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/productviewer.cpp new/fate-20170131-27be067/src/fate/productviewer.cpp
--- old/fate-20170120-10cb902/src/fate/productviewer.cpp 2017-01-20 19:36:04.246520544 +0100
+++ new/fate-20170131-27be067/src/fate/productviewer.cpp 2017-01-31 12:42:53.884633376 +0100
@@ -2,8 +2,10 @@
This file is part of Fate.
Copyright (c) 2007 SUSE LINUX Products GmbH
+ 2017 SUSE Linux GmbH
Author: Cornelius Schumacher
+ Joachim Plack
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
@@ -25,6 +27,7 @@
#include "productmap.h"
#include "listviewtooltip.h"
#include "filterheader.h"
+#include "dialogsize.h"
#include
@@ -37,7 +40,7 @@
{
QFrame *topFrame = new QFrame( this );
setMainWidget( topFrame );
- setModal( true );
+ setModal( false );
setCaption( i18n("Select Products") );
setButtons( Ok | Cancel | User1 );
setDefaultButton( Ok );
@@ -47,36 +50,38 @@
mListView = new QTreeWidget( topFrame );
mListView->setHeaderLabels(QStringList() <<
- i18n("Id") <<
i18n("Name") <<
+ i18n("Opened at") <<
+ i18n("ext.Deadline") <<
+ i18n("Deadline") <<
i18n("Product Line") <<
+ i18n("Id") <<
i18n("Short") <<
i18n("Long") <<
i18n("Bugzilla"));
mListView->setRootIsDecorated(true);
mToolTips = new TreeViewToolTip(mListView);
-
- TreeFilterHeader *filterHeader = new TreeFilterHeader(mListView, 1, topFrame);
- filterHeader->setItemNames(i18n("No Product"), i18n("1 Product"), i18n("%1 of %2 Products"));
- topLayout->addWidget(filterHeader);
-
+ mFilterHeader = new TreeFilterHeader(mListView, 0, topFrame);
+ mFilterHeader->setItemNames(i18n("No Product"), i18n("1 Product"), i18n("%1 of %2 Products"));
+ topLayout->addWidget(mFilterHeader);
topLayout->addWidget(mListView);
init();
-
- filterHeader->setTitleLabel();
-
connect( mProductMap, SIGNAL( changed() ), SLOT( init() ) );
+ connect( this, SIGNAL(user1Clicked()), SLOT(slotUser1()));
+ DialogSize::restore(this);
}
ProductViewer::~ProductViewer()
{
+ DialogSize::remember(this);
}
void ProductViewer::init()
{
mToolTips->clearAll();
+ mListView->setSortingEnabled(false);
mListView->clear();
const Product::List &products = mProductMap->products();
@@ -84,12 +89,15 @@
for( it = products.begin(); it != products.end(); ++it ) {
Product *p = *it;
QTreeWidgetItem *item = new QTreeWidgetItem( mListView );
- item->setText( 0, p->id() );
- item->setText( 1, p->fateName() );
- item->setText( 2, p->productLine() );
- item->setText( 3, p->shortName() );
- item->setText( 4, p->longName() );
- item->setText( 5, p->bugzillaName() );
+ item->setText( 0, p->fateName() );
+ item->setData( 1, 0, p->featureOpen() );
+ item->setData( 2, 0, p->featureDeadlineExt() );
+ item->setData( 3, 0, p->featureDeadline() );
+ item->setText( 4, p->productLine() );
+ item->setText( 5, p->id() );
+ item->setText( 6, p->shortName() );
+ item->setText( 7, p->longName() );
+ item->setText( 8, p->bugzillaName() );
QString txt;
txt += "<b>Milestones:</b><br/>";
@@ -112,6 +120,11 @@
mToolTips->addDescription( item2, c.description() );
}
}
+ for (int i=0; i<5; i++) {
+ mListView->resizeColumnToContents(i);
+ }
+ mListView->setSortingEnabled(true);
+ mFilterHeader->updateView();
}
void ProductViewer::slotUser1()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/productviewer.h new/fate-20170131-27be067/src/fate/productviewer.h
--- old/fate-20170120-10cb902/src/fate/productviewer.h 2017-01-20 19:36:04.246520544 +0100
+++ new/fate-20170131-27be067/src/fate/productviewer.h 2017-01-31 12:42:53.884633376 +0100
@@ -2,8 +2,9 @@
This file is part of Fate.
Copyright (c) 2007 SUSE LINUX Products GmbH
-
+ 2017 SUSE LINUX GmbH
Author: Cornelius Schumacher
+ Joachim Plack
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
@@ -26,6 +27,7 @@
class ProductMap;
class TreeViewToolTip;
+class TreeFilterHeader;
class QTreeWidget;
class ProductViewer : public KDialog
@@ -35,16 +37,15 @@
ProductViewer( ProductMap *, QWidget *parent );
~ProductViewer();
- protected:
- void slotUser1();
-
protected slots:
+ void slotUser1();
void init();
private:
ProductMap *mProductMap;
QTreeWidget *mListView;
+ TreeFilterHeader *mFilterHeader;
TreeViewToolTip *mToolTips;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/querydialogbase.ui new/fate-20170131-27be067/src/fate/querydialogbase.ui
--- old/fate-20170120-10cb902/src/fate/querydialogbase.ui 2017-01-20 19:36:04.246520544 +0100
+++ new/fate-20170131-27be067/src/fate/querydialogbase.ui 2017-01-31 12:42:53.884633376 +0100
@@ -65,7 +65,7 @@
</spacer>
</item>
<item>
- <widget class="KLineEdit" name="leProducts">
+ <widget class="QLineEdit" name="leProducts">
<property name="readOnly">
<bool>true</bool>
</property>
@@ -457,11 +457,6 @@
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
- <class>KLineEdit</class>
- <extends>QLineEdit</extends>
- <header>klineedit.h</header>
- </customwidget>
- <customwidget>
<class>RoleCombo</class>
<extends>QWidget</extends>
<header>rolecombo.h</header>
@@ -481,7 +476,6 @@
<include location="local">rolecombo.h</include>
<include location="local">inexcheckbox.h</include>
<include location="local">qxtcheckcombobox.h</include>
- <include location="local">klineedit.h</include>
</includes>
<resources/>
<connections/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/relationtreeview.cpp new/fate-20170131-27be067/src/fate/relationtreeview.cpp
--- old/fate-20170120-10cb902/src/fate/relationtreeview.cpp 2017-01-20 19:36:04.246520544 +0100
+++ new/fate-20170131-27be067/src/fate/relationtreeview.cpp 2017-01-31 12:42:53.884633376 +0100
@@ -27,7 +27,6 @@
#include "relationtreelistview.h"
#include "feature.h"
#include "filterheader.h"
-#include "relationtreelistview.h"
#include "featuremap.h"
#include "fatecombobox.h"
#include "actorlistedit.h"
@@ -42,7 +41,7 @@
#include
#include
#include
-#include
+#include <QPushButton>
#include
#include
@@ -50,7 +49,6 @@
#include
#include
#include <QHBoxLayout>
-#include <QDropEvent>
#include <QVBoxLayout>
#include <QBoxLayout>
#include <QLabel>
@@ -138,20 +136,20 @@
buttonLayout->setSpacing(KDialog::spacingHint());
buttonLayout->addStretch(1);
- mEditButton = new KPushButton( this );
+ mEditButton = new QPushButton( this );
mEditButton->setIcon( KIcon( "document-edit" ) );
mEditButton->setText( i18n("Edit tree") );
mEditButton->setEnabled( false );
connect( mEditButton, SIGNAL( clicked() ), SIGNAL( editButtonClicked() ) );
buttonLayout->addWidget(mEditButton);
- mNewButton = new KPushButton( this );
+ mNewButton = new QPushButton( this );
mNewButton->setIcon( KIcon( "document-new" ) );
mNewButton->setText( i18n("Create new tree") );
connect( mNewButton, SIGNAL( clicked() ), SIGNAL( newButtonClicked() ) );
buttonLayout->addWidget(mNewButton);
- mDeleteButton = new KPushButton( this );
+ mDeleteButton = new QPushButton( this );
mDeleteButton->setIcon( KIcon( "edit-delete" ) );
mDeleteButton->setText( i18n("Delete tree") );
connect(mDeleteButton, SIGNAL(clicked()), SLOT(slotDeleteButtonClicked()));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/relationtreeview.h new/fate-20170131-27be067/src/fate/relationtreeview.h
--- old/fate-20170120-10cb902/src/fate/relationtreeview.h 2017-01-20 19:36:04.246520544 +0100
+++ new/fate-20170131-27be067/src/fate/relationtreeview.h 2017-01-31 12:42:53.884633376 +0100
@@ -24,7 +24,6 @@
#include
#include <QPixmap>
-#include <QDropEvent>
#include
#include "relationtree.h"
@@ -34,7 +33,7 @@
class TreeFilterHeader;
class RelationTreeListView;
class QPushButton;
-class KPushButton;
+class QPushButton;
class QComboBox;
class QLabel;
class RelationTreeMap;
@@ -120,9 +119,9 @@
RelationTreeListView *mListView;
QComboBox *mProductCombo;
QLabel *mDescriptionLabel;
- KPushButton *mEditButton;
- KPushButton *mDeleteButton;
- KPushButton *mNewButton;
+ QPushButton *mEditButton;
+ QPushButton *mDeleteButton;
+ QPushButton *mNewButton;
FateComboBox *mTreeCombo;
RelationTreeMap *mRelationTreeMap;
FeatureMap *mFeatureMap;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/rolecombo.cpp new/fate-20170131-27be067/src/fate/rolecombo.cpp
--- old/fate-20170120-10cb902/src/fate/rolecombo.cpp 2017-01-20 19:36:04.246520544 +0100
+++ new/fate-20170131-27be067/src/fate/rolecombo.cpp 2017-01-31 12:42:53.888633387 +0100
@@ -29,8 +29,6 @@
#include
#include
-#include <QVBoxLayout>
-#include <QBoxLayout>
RoleCombo::RoleCombo( QWidget *parent, const char *name )
: QComboBox(parent)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/sendmaildialogbase.ui new/fate-20170131-27be067/src/fate/sendmaildialogbase.ui
--- old/fate-20170120-10cb902/src/fate/sendmaildialogbase.ui 2017-01-20 19:36:04.246520544 +0100
+++ new/fate-20170131-27be067/src/fate/sendmaildialogbase.ui 2017-01-31 12:42:53.888633387 +0100
@@ -113,7 +113,7 @@
</widget>
</item>
<item>
- <widget class="KPushButton" name="btnSelectProduct">
+ <widget class="QPushButton" name="btnSelectProduct">
<property name="text">
<string>Select &Product...</string>
</property>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/storedqueriesdialog.cpp new/fate-20170131-27be067/src/fate/storedqueriesdialog.cpp
--- old/fate-20170120-10cb902/src/fate/storedqueriesdialog.cpp 2017-01-20 19:36:04.250520562 +0100
+++ new/fate-20170131-27be067/src/fate/storedqueriesdialog.cpp 2017-01-31 12:42:53.888633387 +0100
@@ -131,11 +131,18 @@
}
}
+QListWidgetItem *StoredQueriesDialog::selectedItem()
+{
+ QListitems = mListView->selectedItems();
+
+ return items.isEmpty() ? NULL : items.first();
+}
+
Query StoredQueriesDialog::selectedQuery()
{
Query query;
- QListWidgetItem *item = mListView->selectedItems().first();
+ QListWidgetItem *item = selectedItem();
if( item ) {
Query::List::Iterator it;
Query::List queries = mQueries->queries();
@@ -150,7 +157,7 @@
void StoredQueriesDialog::slotRenameQuery()
{
- QListWidgetItem *item = mListView->selectedItems().first();
+ QListWidgetItem *item = selectedItem();
if( !item )
return;
@@ -176,7 +183,7 @@
void StoredQueriesDialog::slotDeleteQuery()
{
- QListWidgetItem *item = mListView->selectedItems().first();
+ QListWidgetItem *item = selectedItem();
if( !item )
return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/storedqueriesdialog.h new/fate-20170131-27be067/src/fate/storedqueriesdialog.h
--- old/fate-20170120-10cb902/src/fate/storedqueriesdialog.h 2017-01-20 19:36:04.250520562 +0100
+++ new/fate-20170131-27be067/src/fate/storedqueriesdialog.h 2017-01-31 12:42:53.888633387 +0100
@@ -27,7 +27,7 @@
#include <QLabel>
class QListWidget;
-
+class QListWidgetItem;
class StoredQueriesDialog : public KDialog
{
@@ -50,6 +50,7 @@
private:
void fillQueries();
+ QListWidgetItem *selectedItem();
private:
StoredQueries *mQueries;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fate/xquerydialog.cpp new/fate-20170131-27be067/src/fate/xquerydialog.cpp
--- old/fate-20170120-10cb902/src/fate/xquerydialog.cpp 2017-01-20 19:36:04.250520562 +0100
+++ new/fate-20170131-27be067/src/fate/xquerydialog.cpp 2017-01-31 12:42:53.888633387 +0100
@@ -27,7 +27,6 @@
#include
#include
-#include
#include
#include
#include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/fateui.rc new/fate-20170131-27be067/src/fateui.rc
--- old/fate-20170120-10cb902/src/fateui.rc 2017-01-20 19:36:04.250520562 +0100
+++ new/fate-20170131-27be067/src/fateui.rc 2017-01-31 12:42:53.888633387 +0100
@@ -63,7 +63,6 @@
<Action name="new_tree"/>
<Action name="stock_tree"/>
</Menu>
- <Action name="bookmarks"/>
<Menu name="settings">
<text>Settings</text>
<Action name="show_query_log"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/libfate/metamanager.cpp new/fate-20170131-27be067/src/libfate/metamanager.cpp
--- old/fate-20170120-10cb902/src/libfate/metamanager.cpp 2017-01-20 19:36:04.254520580 +0100
+++ new/fate-20170131-27be067/src/libfate/metamanager.cpp 2017-01-31 12:42:53.892633399 +0100
@@ -409,7 +409,7 @@
i18n(
"The MD5 sums did not match although the metadata was reloaded"
" from the keeper. If this happens permanently, please contact"
- " inttools@suse.de.\n\nFailed resources:\n%1"
+ " featureadmin@suse.de.\n\nFailed resources:\n%1"
).arg(failedFiles.join("\n")) ,
i18n("Metadata error")
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/libfate/product.cpp new/fate-20170131-27be067/src/libfate/product.cpp
--- old/fate-20170120-10cb902/src/libfate/product.cpp 2017-01-20 19:36:04.254520580 +0100
+++ new/fate-20170131-27be067/src/libfate/product.cpp 2017-01-31 12:42:53.892633399 +0100
@@ -267,6 +267,16 @@
return mFeatureDeadline;
}
+void Product::setFeatureDeadlineExt( const QDate &fde )
+{
+ mFeatureDeadlineExt = fde;
+}
+
+QDate Product::featureDeadlineExt() const
+{
+ return mFeatureDeadlineExt;
+}
+
void Product::setProductReleased( const QDate &pr )
{
mProductReleased = pr;
@@ -294,6 +304,7 @@
out << p.featureOpen();
out << p.featureDeadline();
out << p.productReleased();
+ out << p.featureDeadlineExt();
return out;
}
@@ -328,6 +339,8 @@
in >> fd; p.setFeatureDeadline( fd );
QDate pr;
in >> pr; p.setProductReleased( pr );
+ QDate fde;
+ in >> fde; p.setFeatureDeadline( fde );
return in;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/libfate/product.h new/fate-20170131-27be067/src/libfate/product.h
--- old/fate-20170120-10cb902/src/libfate/product.h 2017-01-20 19:36:04.254520580 +0100
+++ new/fate-20170131-27be067/src/libfate/product.h 2017-01-31 12:42:53.892633399 +0100
@@ -120,6 +120,9 @@
QDate featureDeadline() const;
void setFeatureDeadline( const QDate & );
+ QDate featureDeadlineExt() const;
+ void setFeatureDeadlineExt( const QDate & );
+
QDate productReleased() const;
void setProductReleased( const QDate & );
@@ -140,6 +143,7 @@
Component::List mComponents;
QDate mFeatureOpen;
QDate mFeatureDeadline;
+ QDate mFeatureDeadlineExt;
QDate mProductReleased;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/libfate/productmap.cpp new/fate-20170131-27be067/src/libfate/productmap.cpp
--- old/fate-20170120-10cb902/src/libfate/productmap.cpp 2017-01-20 19:36:04.254520580 +0100
+++ new/fate-20170131-27be067/src/libfate/productmap.cpp 2017-01-31 12:42:53.892633399 +0100
@@ -25,7 +25,6 @@
#include "keeper.h"
#include "prefs.h"
#include "productparser.h"
-#include "keeper.h"
#include "metamanager.h"
#include "metavaluelist.h"
#include "startupsequence.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/libfate/productparser.cpp new/fate-20170131-27be067/src/libfate/productparser.cpp
--- old/fate-20170120-10cb902/src/libfate/productparser.cpp 2017-01-20 19:36:04.254520580 +0100
+++ new/fate-20170131-27be067/src/libfate/productparser.cpp 2017-01-31 12:42:53.892633399 +0100
@@ -198,6 +198,8 @@
mProduct->setFeatureOpen( QDate::fromString( mText, Qt::ISODate ) );
} else if( mDateType == "featureDeadline" ) {
mProduct->setFeatureDeadline( QDate::fromString( mText, Qt::ISODate ) );
+ } else if( mDateType == "featureDeadlineExt" ) {
+ mProduct->setFeatureDeadlineExt( QDate::fromString( mText, Qt::ISODate ) );
} else if( mDateType == "productReleased" ) {
mProduct->setProductReleased( QDate::fromString( mText, Qt::ISODate ) );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/libfate/ui/fatewidgets.h new/fate-20170131-27be067/src/libfate/ui/fatewidgets.h
--- old/fate-20170120-10cb902/src/libfate/ui/fatewidgets.h 2017-01-20 19:36:04.254520580 +0100
+++ new/fate-20170131-27be067/src/libfate/ui/fatewidgets.h 2017-01-31 12:42:53.896633410 +0100
@@ -26,7 +26,6 @@
#include
#include
#include
-#include
// These classes work around a Qt bug, where
// widgets break the parent's layout system
@@ -37,7 +36,7 @@
class FateLabel : public QLabel
{
public:
- FateLabel( const QString &t, QWidget *p ) : QLabel( t, p ) {}
+ FateLabel( const QString &t, QWidget *p = 0) : QLabel( t, p ) {}
FateLabel( QWidget *p) : QLabel( p ) {}
QSize minimumSizeHint() const { return sizeHint(); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/libfate/ui/filterheader.cpp new/fate-20170131-27be067/src/libfate/ui/filterheader.cpp
--- old/fate-20170120-10cb902/src/libfate/ui/filterheader.cpp 2017-01-20 19:36:04.254520580 +0100
+++ new/fate-20170131-27be067/src/libfate/ui/filterheader.cpp 2017-01-31 12:42:53.896633410 +0100
@@ -1,9 +1,12 @@
/*
This file is part of Fate.
- Copyright (c) 2005 SUSE LINUX Products GmbH
+ Copyright (c) 2005,2013 SUSE LINUX Products GmbH
+ 2017 SUSE Linux GmbH
Author: Cornelius Schumacher
+ Olaf Kirch
+ Joachim Plack
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
@@ -97,14 +100,15 @@
{
if (mCheckBox)
mCheckBox->setChecked(false);
- mSearchLine->setText(QString::null);
- updateSearch(QString::null);
+ mSearchLine->clear();
+ updateView();
}
void FilterHeaderBase::updateSearch(const QString &search)
{
mVisibleItems = mTotalItems = 0;
(void) search;
+ kWarning() << "This should never been called";
}
void FilterHeaderBase::setTitleLabel()
@@ -146,7 +150,7 @@
TreeFilterHeader::TreeFilterHeader(QTreeWidget *treeView, unsigned int matchLevel, QWidget *parent)
: FilterHeaderBase(parent), mTreeView(treeView), mMatchLevel(matchLevel), mAutoExpand(12)
{
- updateSearch("");
+ clear();
}
void
@@ -185,11 +189,13 @@
if (item->childCount() != 0 && visibleChildren == 0)
hideItem = true;
} else {
- if (!search.isEmpty())
- hideItem = !item->text(0).contains(search, Qt::CaseInsensitive);
- if (!hideItem)
- mVisibleItems++;
- mTotalItems++;
+ hideItem = !search.isEmpty();
+ for (int i=item->columnCount(); i-- && hideItem;) {
+ hideItem = !item->text(i).contains(search, Qt::CaseInsensitive);
+ }
+ if (!hideItem)
+ mVisibleItems++;
+ mTotalItems++;
}
item->setHidden(hideItem);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/libfate/ui/filterheader.h new/fate-20170131-27be067/src/libfate/ui/filterheader.h
--- old/fate-20170120-10cb902/src/libfate/ui/filterheader.h 2017-01-20 19:36:04.254520580 +0100
+++ new/fate-20170131-27be067/src/libfate/ui/filterheader.h 2017-01-31 12:42:53.896633410 +0100
@@ -1,9 +1,12 @@
/*
This file is part of Fate.
- Copyright (c) 2005 SUSE LINUX Products GmbH
+ Copyright (c) 2005,2013 SUSE LINUX Products GmbH
+ 2017 SUSE Linux GmbH
Author: Cornelius Schumacher
+ Olaf Kirch
+ Joachim Plack
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
@@ -22,10 +25,9 @@
#ifndef FILTERHEADER_H
#define FILTERHEADER_H
-#include
+#include <QWidget>
#include <QLabel>
-class QLabel;
class QCheckBox;
class QBoxLayout;
class QTreeWidget;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/libxclvalidator/dtdvalidator.cpp new/fate-20170131-27be067/src/libxclvalidator/dtdvalidator.cpp
--- old/fate-20170120-10cb902/src/libxclvalidator/dtdvalidator.cpp 2017-01-20 19:36:04.258520598 +0100
+++ new/fate-20170131-27be067/src/libxclvalidator/dtdvalidator.cpp 2017-01-31 12:42:53.896633410 +0100
@@ -77,7 +77,7 @@
int len = base.length();
#ifndef NDEBUG
- qDebug( "Checking the base string |%s| of size %i", checkStr.ascii(), len );
+ qDebug( "Checking the base string |%s| of size %i", checkStr.toLatin1().constData(), len );
#endif
::mXmlErrorList.clear();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fate-20170120-10cb902/src/libxclvalidator/xclvalidator.cpp new/fate-20170131-27be067/src/libxclvalidator/xclvalidator.cpp
--- old/fate-20170120-10cb902/src/libxclvalidator/xclvalidator.cpp 2017-01-20 19:36:04.258520598 +0100
+++ new/fate-20170131-27be067/src/libxclvalidator/xclvalidator.cpp 2017-01-31 12:42:53.896633410 +0100
@@ -24,6 +24,7 @@
#include "dtdvalidator.h"
#include <QTextStream>
+#include <QDebug>
#include
#include
@@ -61,7 +62,7 @@
if( n.nodeName() == "xcl:constraint" ) {
QDomElement constraint = n.toElement();
#ifndef NDEBUG
- qDebug( "::::Got a constraint for %s mandatory: %s", constraint.attribute( "object" ).ascii(), constraint.attribute( "mandatory" ).ascii() );
+ qDebug( "::::Got a constraint for %s mandatory: %s", constraint.attribute( "object" ).toLatin1().constData(), constraint.attribute( "mandatory" ).toLatin1().constData() );
#endif
mBasePath = constraint.attribute( "object" );
@@ -99,7 +100,7 @@
QDomElement e = n.toElement();
mVariables[e.attribute( "name" )] = e.text();
#ifndef NDEBUG
- qDebug( "Got a variable %s : %s", e.attribute( "name" ).ascii(), e.text().ascii() );
+ qDebug( "Got a variable %s : %s", e.attribute( "name" ).toLatin1().constData(), e.text().toLatin1().constData() );
#endif
}
}
@@ -144,14 +145,9 @@
}
qDebug( "::::Claim met: %i", claimMet );
- qDebug( QString("\n\nConstraint result:\n------------------\nDescription:\t%1\nCondition:\t%2\nClaim:\t\t%3").arg( description ).arg( conditionMet ).arg( claimMet ) );
+ qDebug() << QString("\n\nConstraint result:\n------------------\nDescription:\t%1\nCondition:\t%2\nClaim:\t\t%3").arg( description ).arg( conditionMet ).arg( claimMet );
#endif
-
-
-
-
-
if( conditionMet && !claimMet ) // This check failed here, there's no reason to
return false; // check the other nodes.
}
@@ -195,7 +191,7 @@
if( testNode.nodeName() == "xcl:test" ) {
QString testString = testNode.toElement().text();
#ifndef NDEBUG
- qDebug( "Got a constraint test: %s", testString.ascii() );
+ qDebug( "Got a constraint test: %s", testString.toLatin1().constData() );
#endif
result = performTest( testNode, e );
@@ -204,7 +200,7 @@
} else if( testNode.nodeName() == "xcl:hasElement" ) {
QString path = testNode.toElement().attribute( "path" );
#ifndef NDEBUG
- qDebug( "Got a claim hasElement test: %s", path.ascii() );
+ qDebug( "Got a claim hasElement test: %s", path.toLatin1().constData() );
#endif
result = performHasElement( testNode, e );
@@ -212,7 +208,7 @@
} else if( testNode.nodeName() == "xcl:validDTD" ) {
QString path = testNode.toElement().attribute( "path" );
#ifndef NDEBUG
- qDebug( "Got a claim validDTD test: %s", path.ascii() );
+ qDebug( "Got a claim validDTD test: %s", path.toLatin1().constData() );
#endif
result = performValidDTD( testNode, e );
@@ -263,7 +259,7 @@
QDomElement testNode = t.cloneNode().toElement();
QString dtd = getValue( e, testNode.text() );
#ifndef NDEBUG
- qDebug( "DTD: %s", dtd.ascii() );
+ qDebug( "DTD: %s", dtd.toLatin1().constData() );
#endif
bool conditionMet = true;