diff options
Diffstat (limited to 'source/kde/patch/calligra')
10 files changed, 0 insertions, 962 deletions
diff --git a/source/kde/patch/calligra/0001-adapt-to-libwps-0.4.patch b/source/kde/patch/calligra/0001-adapt-to-libwps-0.4.patch deleted file mode 100644 index b4494b3e..00000000 --- a/source/kde/patch/calligra/0001-adapt-to-libwps-0.4.patch +++ /dev/null @@ -1,52 +0,0 @@ -From e81fe84405bc635dfa93e54fb8a3c8e6065dbf10 Mon Sep 17 00:00:00 2001 -From: David Tardon <dtardon@redhat.com> -Date: Sat, 6 Jun 2015 18:27:24 +0200 -Subject: [PATCH] adapt to libwps 0.4 - ---- - cmake/modules/FindLibWps.cmake | 6 +++--- - filters/words/works/import/WPSImport.cpp | 4 +++- - 2 files changed, 6 insertions(+), 4 deletions(-) - -diff --git a/cmake/modules/FindLibWps.cmake b/cmake/modules/FindLibWps.cmake -index f8c8225..58ef2b5 100644 ---- a/cmake/modules/FindLibWps.cmake -+++ b/cmake/modules/FindLibWps.cmake -@@ -10,16 +10,16 @@ - - include(LibFindMacros) - libfind_package(LIBWPS LibWpd) --libfind_pkg_check_modules(LIBWPS_PKGCONF libwps-0.3) -+libfind_pkg_check_modules(LIBWPS_PKGCONF libwps-0.4) - - find_path(LIBWPS_INCLUDE_DIR - NAMES libwps/libwps.h - HINTS ${LIBWPS_PKGCONF_INCLUDE_DIRS} ${LIBWPS_PKGCONF_INCLUDEDIR} -- PATH_SUFFIXES libwps-0.3 -+ PATH_SUFFIXES libwps-0.4 - ) - - find_library(LIBWPS_LIBRARY -- NAMES wps wps-0.3 -+ NAMES wps wps-0.4 - HINTS ${LIBWPS_PKGCONF_LIBRARY_DIRS} ${LIBWPS_PKGCONF_LIBDIR} - ) - -diff --git a/filters/words/works/import/WPSImport.cpp b/filters/words/works/import/WPSImport.cpp -index eea2cc9..94b859d 100644 ---- a/filters/words/works/import/WPSImport.cpp -+++ b/filters/words/works/import/WPSImport.cpp -@@ -91,7 +91,9 @@ public: - bool isSupportedFormat(librevenge::RVNGInputStream &input) - { - WPSKind kind = WPS_TEXT; -- WPSConfidence confidence = WPSDocument::isFileFormatSupported(&input, kind); -+ WPSCreator creator = WPS_MSWORKS; -+ bool needsEncoding = false; -+ WPSConfidence confidence = WPSDocument::isFileFormatSupported(&input, kind, creator, needsEncoding); - if (confidence == WPS_CONFIDENCE_NONE || kind != WPS_TEXT) - return false; - return true; --- -2.4.2 - diff --git a/source/kde/patch/calligra/0065-Backport-Plan-Fix-crash-due-to-accessing-deleted-obj.patch b/source/kde/patch/calligra/0065-Backport-Plan-Fix-crash-due-to-accessing-deleted-obj.patch deleted file mode 100644 index b3f38d47..00000000 --- a/source/kde/patch/calligra/0065-Backport-Plan-Fix-crash-due-to-accessing-deleted-obj.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 7c64caec3022b28775ea85864eef47bf2ac51066 Mon Sep 17 00:00:00 2001 -From: Dag Andersen <danders@get2net.dk> -Date: Mon, 22 Aug 2016 08:49:13 +0200 -Subject: [PATCH 65/80] Backport: Plan: Fix crash due to accessing deleted - object - -KReportDesigner takes ownership of reportdata, so give it a clone it can delete ---- - plan/libs/ui/reports/reportview.cpp | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/plan/libs/ui/reports/reportview.cpp b/plan/libs/ui/reports/reportview.cpp -index 462a31d..8552790 100644 ---- a/plan/libs/ui/reports/reportview.cpp -+++ b/plan/libs/ui/reports/reportview.cpp -@@ -1250,10 +1250,10 @@ void ReportDesigner::createDockers() - - void ReportDesigner::setReportData( const QString &tag ) - { -- -+ emit optionsModified(); - ReportData *rd = Report::findReportData( m_reportdatamodels, tag ); -- if ( rd != m_designer->reportData() ) { -- emit optionsModified(); -+ if ( rd ) { -+ rd = rd->clone(); // KReportDesigner takes ownership, so give it a clone it can delete - } - m_designer->setReportData( rd ); - --- -2.7.4 - diff --git a/source/kde/patch/calligra/0066-Backport-Plan-Do-not-crash-if-scheduler-plugins-not-.patch b/source/kde/patch/calligra/0066-Backport-Plan-Do-not-crash-if-scheduler-plugins-not-.patch deleted file mode 100644 index efbd9ac8..00000000 --- a/source/kde/patch/calligra/0066-Backport-Plan-Do-not-crash-if-scheduler-plugins-not-.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 4d9762cd151b7d6a208aece8cebcdbe09bd41703 Mon Sep 17 00:00:00 2001 -From: Dag Andersen <danders@get2net.dk> -Date: Mon, 22 Aug 2016 09:15:32 +0200 -Subject: [PATCH 66/80] Backport: Plan: Do not crash if scheduler plugins not - found - -Shouldn't happen atm, but... ---- - plan/libs/models/kptschedulemodel.cpp | 69 ++++++++++++++++++++++------------- - 1 file changed, 43 insertions(+), 26 deletions(-) - -diff --git a/plan/libs/models/kptschedulemodel.cpp b/plan/libs/models/kptschedulemodel.cpp -index 35b74bc..e3ce298 100644 ---- a/plan/libs/models/kptschedulemodel.cpp -+++ b/plan/libs/models/kptschedulemodel.cpp -@@ -252,9 +252,16 @@ Qt::ItemFlags ScheduleItemModel::flags( const QModelIndex &index ) const - if ( !m_readWrite ) { - return flags &= ~Qt::ItemIsEditable; - } -- flags &= ~Qt::ItemIsEditable; - ScheduleManager *sm = manager( index ); -- int capabilities = sm->schedulerPlugin()->capabilities(); -+ if ( sm == 0 ) { -+ return flags; -+ } -+ SchedulerPlugin *pl = sm->schedulerPlugin(); -+ if ( pl == 0 ) { -+ return flags; -+ } -+ int capabilities = pl->capabilities(); -+ flags &= ~Qt::ItemIsEditable; - if ( sm && ! sm->isBaselined() ) { - switch ( index.column() ) { - case ScheduleModel::ScheduleState: break; -@@ -452,7 +459,11 @@ QVariant ScheduleItemModel::allowOverbooking( const QModelIndex &index, int role - if ( sm == 0 ) { - return QVariant(); - } -- int capabilities = sm->schedulerPlugin()->capabilities(); -+ SchedulerPlugin *pl = sm->schedulerPlugin(); -+ if ( pl == 0 ) { -+ return QVariant(); -+ } -+ int capabilities = pl->capabilities(); - switch ( role ) { - case Qt::EditRole: - return sm->allowOverbooking(); -@@ -480,11 +491,11 @@ QVariant ScheduleItemModel::allowOverbooking( const QModelIndex &index, int role - if ( capabilities & SchedulerPlugin::AllowOverbooking ) { - return sm->allowOverbooking() - ? i18nc( "@info:tooltip", "Allow overbooking of resources" ) -- : i18nc( "@info:tooltip 1=scheduler name", "%1 always allows overbooking of resources", sm->schedulerPlugin()->name() ); -+ : i18nc( "@info:tooltip 1=scheduler name", "%1 always allows overbooking of resources", pl->name() ); - } - if ( capabilities & SchedulerPlugin::AvoidOverbooking ) { - return sm->allowOverbooking() -- ? i18nc( "@info:tooltip 1=scheduler name", "%1 always avoids overbooking of resources", sm->schedulerPlugin()->name() ) -+ ? i18nc( "@info:tooltip 1=scheduler name", "%1 always avoids overbooking of resources", pl->name() ) - : i18nc( "@info:tooltip", "Avoid overbooking resources" ); - } - break; -@@ -637,7 +648,11 @@ QVariant ScheduleItemModel::schedulingDirection( const QModelIndex &index, int r - if ( sm == 0 ) { - return QVariant(); - } -- int capabilities = sm->schedulerPlugin()->capabilities(); -+ SchedulerPlugin *pl = sm->schedulerPlugin(); -+ if ( pl == 0 ) { -+ return QVariant(); -+ } -+ int capabilities = pl->capabilities(); - switch ( role ) { - case Qt::EditRole: - return sm->schedulingDirection(); -@@ -664,13 +679,13 @@ QVariant ScheduleItemModel::schedulingDirection( const QModelIndex &index, int r - } - if ( capabilities & SchedulerPlugin::ScheduleForward ) { - return sm->schedulingDirection() -- ? i18nc( "@info:tooltip 1=scheduler name", "%1 always schedules from target start time", sm->schedulerPlugin()->name() ) -+ ? i18nc( "@info:tooltip 1=scheduler name", "%1 always schedules from target start time", pl->name() ) - : i18nc( "@info:tooltip", "Schedule project from target start time" ); - } - if ( capabilities & SchedulerPlugin::ScheduleBackward ) { - return sm->schedulingDirection() - ? i18nc( "@info:tooltip", "Schedule project from target end time" ) -- : i18nc( "@info:tooltip 1=scheduler name", "%1 always schedules from target end time", sm->schedulerPlugin()->name() ); -+ : i18nc( "@info:tooltip 1=scheduler name", "%1 always schedules from target end time", pl->name() ); - } - break; - case Role::EnumList: -@@ -708,24 +723,26 @@ QVariant ScheduleItemModel::scheduler( const QModelIndex &index, int role ) cons - return QVariant(); - } - SchedulerPlugin *pl = sm->schedulerPlugin(); -- switch ( role ) { -- case Qt::EditRole: -- return sm->schedulerPluginId(); -- case Qt::DisplayRole: -- return pl ? pl->name() : i18n( "Unknown" ); -- case Qt::ToolTipRole: -- return pl ? pl->comment() : QString(); -- case Role::EnumList: -- return sm->schedulerPluginNames(); -- case Role::EnumListValue: -- return sm->schedulerPluginIndex(); -- case Qt::TextAlignmentRole: -- return Qt::AlignCenter; -- case Qt::StatusTipRole: -- return QVariant(); -- case Qt::WhatsThisRole: { -- QString s = pl->description(); -- return s.isEmpty() ? QVariant() : QVariant( s ); -+ if ( pl ) { -+ switch ( role ) { -+ case Qt::EditRole: -+ return sm->schedulerPluginId(); -+ case Qt::DisplayRole: -+ return pl ? pl->name() : i18n( "Unknown" ); -+ case Qt::ToolTipRole: -+ return pl ? pl->comment() : QString(); -+ case Role::EnumList: -+ return sm->schedulerPluginNames(); -+ case Role::EnumListValue: -+ return sm->schedulerPluginIndex(); -+ case Qt::TextAlignmentRole: -+ return Qt::AlignCenter; -+ case Qt::StatusTipRole: -+ return QVariant(); -+ case Qt::WhatsThisRole: { -+ QString s = pl->description(); -+ return s.isEmpty() ? QVariant() : QVariant( s ); -+ } - } - } - return QVariant(); --- -2.7.4 - diff --git a/source/kde/patch/calligra/0067-Backport-Plan-Fix-insert-file.patch b/source/kde/patch/calligra/0067-Backport-Plan-Fix-insert-file.patch deleted file mode 100644 index 4db4becc..00000000 --- a/source/kde/patch/calligra/0067-Backport-Plan-Fix-insert-file.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 5cffbe5ecf1f82369abbad1a06154368459f7845 Mon Sep 17 00:00:00 2001 -From: Dag Andersen <danders@get2net.dk> -Date: Mon, 22 Aug 2016 09:20:32 +0200 -Subject: [PATCH 67/80] Backport: Plan: Fix insert file - -Use KUrl instead of QString for filename -KoDocument::openUrl() opens the url (not KoPart) ---- - plan/kptmaindocument.cpp | 23 ++++++++++------------- - plan/kptmaindocument.h | 4 ++-- - plan/kptview.cpp | 2 +- - 3 files changed, 13 insertions(+), 16 deletions(-) - -diff --git a/plan/kptmaindocument.cpp b/plan/kptmaindocument.cpp -index 2343471..e418972 100644 ---- a/plan/kptmaindocument.cpp -+++ b/plan/kptmaindocument.cpp -@@ -947,35 +947,32 @@ bool MainDocument::loadAndParse(KoStore *store, const QString &filename, KoXmlDo - return true; - } - --void MainDocument::insertFile( const QString &filename, Node *parent, Node *after ) -+void MainDocument::insertFile( const KUrl &url, Node *parent, Node *after ) - { - Part *part = new Part( this ); - MainDocument *doc = new MainDocument( part ); - part->setDocument( doc ); - doc->disconnect(); // doc shall not handle feedback from openUrl() - doc->setAutoSave( 0 ); //disable -- doc->m_insertFileInfo.url = filename; -+ doc->m_insertFileInfo.url = url; - doc->m_insertFileInfo.parent = parent; - doc->m_insertFileInfo.after = after; - connect(doc, SIGNAL(completed()), SLOT(insertFileCompleted())); - connect(doc, SIGNAL(canceled(QString)), SLOT(insertFileCancelled(QString))); - -- doc->openUrl( KUrl( filename ) ); -+ doc->openUrl( url ); - } - - void MainDocument::insertFileCompleted() - { - kDebug(planDbg())<<sender(); -- Part *part = qobject_cast<Part*>( sender() ); -- if ( part ) { -- MainDocument *doc = qobject_cast<MainDocument*>( part->document() ); -- if ( doc ) { -- Project &p = doc->getProject(); -- insertProject( p, doc->m_insertFileInfo.parent, doc->m_insertFileInfo.after ); -- } else { -- KMessageBox::error( 0, i18n("Internal error, failed to insert file.") ); -- } -- part->deleteLater(); // also deletes document -+ MainDocument *doc = qobject_cast<MainDocument*>( sender() ); -+ if ( doc ) { -+ Project &p = doc->getProject(); -+ insertProject( p, doc->m_insertFileInfo.parent, doc->m_insertFileInfo.after ); -+ doc->documentPart()->deleteLater(); // also deletes document -+ } else { -+ KMessageBox::error( 0, i18n("Internal error, failed to insert file.") ); - } - } - -diff --git a/plan/kptmaindocument.h b/plan/kptmaindocument.h -index 5ead4ea..c467e1f 100644 ---- a/plan/kptmaindocument.h -+++ b/plan/kptmaindocument.h -@@ -117,7 +117,7 @@ public: - Package *loadWorkPackageXML( Project& project, QIODevice*, const KoXmlDocument& document, const KUrl& url ); - QMap<KDateTime, Package*> workPackages() const { return m_workpackages; } - -- void insertFile( const QString &filename, Node *parent, Node *after = 0 ); -+ void insertFile( const KUrl &url, Node *parent, Node *after = 0 ); - bool insertProject( Project &project, Node *parent, Node *after ); - - KPlatoAboutPage &aboutPage() { return m_aboutPage; } -@@ -165,7 +165,7 @@ protected: - - // used by insert file - struct InsertFileInfo { -- QString url; -+ KUrl url; - Node *parent; - Node *after; - } m_insertFileInfo; -diff --git a/plan/kptview.cpp b/plan/kptview.cpp -index 6876c3e..b38d8b6 100644 ---- a/plan/kptview.cpp -+++ b/plan/kptview.cpp -@@ -1452,7 +1452,7 @@ void View::slotInsertFileFinished( int result ) - return; - } - if ( result == QDialog::Accepted ) { -- getPart()->insertFile( dlg->url().url(), dlg->parentNode(), dlg->afterNode() ); -+ getPart()->insertFile( dlg->url(), dlg->parentNode(), dlg->afterNode() ); - } - dlg->deleteLater(); - } --- -2.7.4 - diff --git a/source/kde/patch/calligra/0068-Backport-Plan-Fix-task-module-load-and-save.patch b/source/kde/patch/calligra/0068-Backport-Plan-Fix-task-module-load-and-save.patch deleted file mode 100644 index ca6ae192..00000000 --- a/source/kde/patch/calligra/0068-Backport-Plan-Fix-task-module-load-and-save.patch +++ /dev/null @@ -1,68 +0,0 @@ -From fd5b8dca68d0a418aac926fe60814ebe537ee032 Mon Sep 17 00:00:00 2001 -From: Dag Andersen <danders@get2net.dk> -Date: Mon, 22 Aug 2016 10:00:52 +0200 -Subject: [PATCH 68/80] Backport: Plan: Fix task module load and save - -Workaround: saveTaskModules destroys project ---- - plan/kptview.cpp | 19 ++++++++++++------- - plan/libs/models/kptnodeitemmodel.cpp | 6 +++++- - 2 files changed, 17 insertions(+), 8 deletions(-) - -diff --git a/plan/kptview.cpp b/plan/kptview.cpp -index b38d8b6..af606f6 100644 ---- a/plan/kptview.cpp -+++ b/plan/kptview.cpp -@@ -114,6 +114,7 @@ - #include "kptviewlistdocker.h" - #include "kptviewlist.h" - #include "kptschedulesdocker.h" -+#include "kptpart.h" - #include "kptdebug.h" - - #include "plansettings.h" -@@ -3033,13 +3034,17 @@ void View::saveTaskModule( const KUrl &url, Project *project ) - QString dir = Factory::global().dirs()->saveLocation( "plan_taskmodules" ); - kDebug(planDbg())<<"dir="<<dir; - if ( ! dir.isEmpty() ) { -- MainDocument part(getKoPart()); -- part.insertProject( *project, 0, 0 ); -- part.getProject().setName( project->name() ); -- part.getProject().setLeader( project->leader() ); -- part.getProject().setDescription( project->description() ); -- part.saveNativeFormat( dir + url.fileName() ); -- kDebug(planDbg())<<dir + url.fileName(); -+ Part *part = new Part( this ); -+ MainDocument *doc = new MainDocument( part ); -+ part->setDocument( doc ); -+ doc->disconnect(); // doc shall not handle feedback from openUrl() -+ doc->setAutoSave( 0 ); //disable -+ doc->insertProject( *project, 0, 0 ); -+ doc->getProject().setName( project->name() ); -+ doc->getProject().setLeader( project->leader() ); -+ doc->getProject().setDescription( project->description() ); -+ doc->saveNativeFormat( dir + url.fileName() ); -+ part->deleteLater(); // also deletes document - } else { - kDebug(planDbg())<<"Could not find a location"; - } -diff --git a/plan/libs/models/kptnodeitemmodel.cpp b/plan/libs/models/kptnodeitemmodel.cpp -index 834e45a..45b1650 100644 ---- a/plan/libs/models/kptnodeitemmodel.cpp -+++ b/plan/libs/models/kptnodeitemmodel.cpp -@@ -4990,7 +4990,11 @@ bool TaskModuleModel::importProject( const KUrl &url, bool emitsignal ) - stripProject( project ); - addTaskModule( project ); - if ( emitsignal ) { -- emit saveTaskModule( url, project ); -+ // FIXME: save modifies the project, so give it a copy (see kptview.cpp) -+ Project p; -+ status.setProject( &p ); -+ p.load( element, status ); -+ emit saveTaskModule( url, &p ); - } - } else { - kDebug(planDbg())<<"Failed to load project from:"<<url; --- -2.7.4 - diff --git a/source/kde/patch/calligra/0069-Backport-Plan-Avoid-crash-in-special-cases.patch b/source/kde/patch/calligra/0069-Backport-Plan-Avoid-crash-in-special-cases.patch deleted file mode 100644 index 75ec66b5..00000000 --- a/source/kde/patch/calligra/0069-Backport-Plan-Avoid-crash-in-special-cases.patch +++ /dev/null @@ -1,452 +0,0 @@ -From b25d46bf9fa6d5b9ff34115edb4719592c191935 Mon Sep 17 00:00:00 2001 -From: Dag Andersen <danders@get2net.dk> -Date: Tue, 23 Aug 2016 08:01:58 +0200 -Subject: [PATCH 69/80] Backport: Plan: Avoid crash in special cases - -Sometimes (eg. when New is pressed) the Project can be deleted before models -and thus cause a crash. -Added a Project::aboutToBeDeleted signal so models can adjust. - -BUG: 346976 -FIXED_IN: 2.9.12 ---- - plan/libs/kernel/kptproject.cpp | 1 + - plan/libs/kernel/kptproject.h | 2 ++ - plan/libs/models/kptaccountsmodel.cpp | 2 ++ - plan/libs/models/kptcalendarmodel.cpp | 4 ++++ - plan/libs/models/kptitemmodelbase.cpp | 5 +++++ - plan/libs/models/kptitemmodelbase.h | 1 + - plan/libs/models/kptnodechartmodel.cpp | 2 ++ - plan/libs/models/kptnodeitemmodel.cpp | 4 ++++ - plan/libs/models/kptpertcpmmodel.cpp | 4 ++++ - plan/libs/models/kptrelationmodel.cpp | 2 ++ - plan/libs/models/kptresourceallocationmodel.cpp | 2 ++ - plan/libs/models/kptresourceappointmentsmodel.cpp | 8 ++++++++ - plan/libs/models/kptresourcemodel.cpp | 12 +++++++----- - plan/libs/models/kptschedulemodel.cpp | 13 +++++++++++++ - plan/libs/models/kptschedulemodel.h | 2 ++ - plan/libs/models/kpttaskstatusmodel.cpp | 2 ++ - 16 files changed, 61 insertions(+), 5 deletions(-) - -diff --git a/plan/libs/kernel/kptproject.cpp b/plan/libs/kernel/kptproject.cpp -index 158040b..451e897 100644 ---- a/plan/libs/kernel/kptproject.cpp -+++ b/plan/libs/kernel/kptproject.cpp -@@ -89,6 +89,7 @@ void Project::deref() - --m_refCount; - Q_ASSERT( m_refCount >= 0 ); - if ( m_refCount <= 0 ) { -+ emit aboutToBeDeleted(); - deleteLater(); - } - } -diff --git a/plan/libs/kernel/kptproject.h b/plan/libs/kernel/kptproject.h -index 1dbea7d..db18d36 100644 ---- a/plan/libs/kernel/kptproject.h -+++ b/plan/libs/kernel/kptproject.h -@@ -519,6 +519,8 @@ public Q_SLOTS: - void setMaxProgress( int max, ScheduleManager *sm = 0 ); - - Q_SIGNALS: -+ /// Emitted when the project is about to be deleted (The destroyed signal is disabled) -+ void aboutToBeDeleted(); - /// Emitted when anything in the project is changed (use with care) - void projectChanged(); - /// Emitted when the WBS code definition has changed. This may change all nodes. -diff --git a/plan/libs/models/kptaccountsmodel.cpp b/plan/libs/models/kptaccountsmodel.cpp -index 53f725a..4657979 100644 ---- a/plan/libs/models/kptaccountsmodel.cpp -+++ b/plan/libs/models/kptaccountsmodel.cpp -@@ -533,6 +533,7 @@ void CostBreakdownItemModel::setProject( Project *project ) - disconnect( acc, SIGNAL(accountRemoved(const Account*)), this, SLOT(slotAccountRemoved(const Account*)) ); - disconnect( acc, SIGNAL(accountToBeRemoved(const Account*)), this, SLOT(slotAccountToBeRemoved(const Account*)) ); - -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project , SIGNAL(nodeChanged(Node*)), this, SLOT(slotDataChanged()) ); - disconnect( m_project , SIGNAL(nodeAdded(Node*)), this, SLOT(slotDataChanged()) ); - disconnect( m_project , SIGNAL(nodeRemoved(Node*)), this, SLOT(slotDataChanged()) ); -@@ -553,6 +554,7 @@ void CostBreakdownItemModel::setProject( Project *project ) - connect( acc, SIGNAL(accountRemoved(const Account*)), this, SLOT(slotAccountRemoved(const Account*)) ); - connect( acc, SIGNAL(accountToBeRemoved(const Account*)), this, SLOT(slotAccountToBeRemoved(const Account*)) ); - -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project , SIGNAL(nodeChanged(Node*)), this, SLOT(slotDataChanged()) ); - connect( m_project , SIGNAL(nodeAdded(Node*)), this, SLOT(slotDataChanged()) ); - connect( m_project , SIGNAL(nodeRemoved(Node*)), this, SLOT(slotDataChanged()) ); -diff --git a/plan/libs/models/kptcalendarmodel.cpp b/plan/libs/models/kptcalendarmodel.cpp -index 6c0f017..401379c 100644 ---- a/plan/libs/models/kptcalendarmodel.cpp -+++ b/plan/libs/models/kptcalendarmodel.cpp -@@ -74,10 +74,12 @@ void CalendarDayItemModelBase::setProject( Project *project ) - { - setCalendar( 0 ); - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project, SIGNAL(calendarToBeRemoved(const Calendar*)), this, SLOT(slotCalendarToBeRemoved(const Calendar*)) ); - } - m_project = project; - if ( project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(calendarToBeRemoved(const Calendar*)), this, SLOT(slotCalendarToBeRemoved(const Calendar*)) ); - } - reset(); -@@ -136,6 +138,7 @@ void CalendarItemModel::slotCalendarRemoved( const Calendar * ) - void CalendarItemModel::setProject( Project *project ) - { - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project , SIGNAL(calendarChanged(Calendar*)), this, SLOT(slotCalendarChanged(Calendar*)) ); - - disconnect( m_project, SIGNAL(calendarAdded(const Calendar*)), this, SLOT(slotCalendarInserted(const Calendar*)) ); -@@ -146,6 +149,7 @@ void CalendarItemModel::setProject( Project *project ) - } - m_project = project; - if ( project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(calendarChanged(Calendar*)), this, SLOT(slotCalendarChanged(Calendar*)) ); - - connect( m_project, SIGNAL(calendarAdded(const Calendar*)), this, SLOT(slotCalendarInserted(const Calendar*)) ); -diff --git a/plan/libs/models/kptitemmodelbase.cpp b/plan/libs/models/kptitemmodelbase.cpp -index 499fcfe..ff74394 100644 ---- a/plan/libs/models/kptitemmodelbase.cpp -+++ b/plan/libs/models/kptitemmodelbase.cpp -@@ -731,6 +731,11 @@ bool ItemModelBase::setData( const QModelIndex &index, const QVariant &value, in - return false; - } - -+void ItemModelBase::projectDeleted() -+{ -+ setProject(0); -+} -+ - } //namespace KPlato - - #include "kptitemmodelbase.moc" -diff --git a/plan/libs/models/kptitemmodelbase.h b/plan/libs/models/kptitemmodelbase.h -index 578c18e..5d3719d 100644 ---- a/plan/libs/models/kptitemmodelbase.h -+++ b/plan/libs/models/kptitemmodelbase.h -@@ -309,6 +309,7 @@ protected Q_SLOTS: - virtual void slotLayoutToBeChanged(); - virtual void slotLayoutChanged(); - -+ void projectDeleted(); - protected: - Project *m_project; - ScheduleManager *m_manager; -diff --git a/plan/libs/models/kptnodechartmodel.cpp b/plan/libs/models/kptnodechartmodel.cpp -index 025da86..9b8d397 100644 ---- a/plan/libs/models/kptnodechartmodel.cpp -+++ b/plan/libs/models/kptnodechartmodel.cpp -@@ -294,6 +294,7 @@ void ChartItemModel::setProject( Project *project ) - m_bcws.clear(); - m_acwp.clear(); - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project, SIGNAL(projectCalculated(ScheduleManager*)), this, SLOT(setScheduleManager(ScheduleManager*)) ); - disconnect( m_project, SIGNAL(nodeRemoved(Node*)), this, SLOT(slotNodeRemoved(Node*)) ); - disconnect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); -@@ -302,6 +303,7 @@ void ChartItemModel::setProject( Project *project ) - } - m_project = project; - if ( m_project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(projectCalculated(ScheduleManager*)), this, SLOT(setScheduleManager(ScheduleManager*)) ); - connect( m_project, SIGNAL(nodeRemoved(Node*)), this, SLOT(slotNodeRemoved(Node*)) ); - connect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); -diff --git a/plan/libs/models/kptnodeitemmodel.cpp b/plan/libs/models/kptnodeitemmodel.cpp -index 45b1650..e66277f 100644 ---- a/plan/libs/models/kptnodeitemmodel.cpp -+++ b/plan/libs/models/kptnodeitemmodel.cpp -@@ -3122,6 +3122,7 @@ void NodeItemModel::slotWbsDefinitionChanged() - void NodeItemModel::setProject( Project *project ) - { - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project, SIGNAL(localeChanged()), this, SLOT(slotLayoutChanged()) ); - disconnect( m_project, SIGNAL(wbsDefinitionChanged()), this, SLOT(slotWbsDefinitionChanged()) ); - disconnect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); -@@ -3139,6 +3140,7 @@ void NodeItemModel::setProject( Project *project ) - kDebug(planDbg())<<this<<m_project<<"->"<<project; - m_nodemodel.setProject( project ); - if ( project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(localeChanged()), this, SLOT(slotLayoutChanged()) ); - connect( m_project, SIGNAL(wbsDefinitionChanged()), this, SLOT(slotWbsDefinitionChanged()) ); - connect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); -@@ -4381,6 +4383,7 @@ void MilestoneItemModel::slotNodeMoved( Node *node ) - void MilestoneItemModel::setProject( Project *project ) - { - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project, SIGNAL(localeChanged()), this, SLOT(slotLayoutChanged()) ); - disconnect( m_project, SIGNAL(wbsDefinitionChanged()), this, SLOT(slotWbsDefinitionChanged()) ); - disconnect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); -@@ -4397,6 +4400,7 @@ void MilestoneItemModel::setProject( Project *project ) - //kDebug(planDbg())<<m_project<<"->"<<project; - m_nodemodel.setProject( project ); - if ( project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(localeChanged()), this, SLOT(slotLayoutChanged()) ); - connect( m_project, SIGNAL(wbsDefinitionChanged()), this, SLOT(slotWbsDefinitionChanged()) ); - connect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); -diff --git a/plan/libs/models/kptpertcpmmodel.cpp b/plan/libs/models/kptpertcpmmodel.cpp -index 71745ef..7340c61 100644 ---- a/plan/libs/models/kptpertcpmmodel.cpp -+++ b/plan/libs/models/kptpertcpmmodel.cpp -@@ -82,6 +82,7 @@ void CriticalPathItemModel::slotNodeRemoved( Node *node ) - void CriticalPathItemModel::setProject( Project *project ) - { - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); - disconnect( m_project, SIGNAL(nodeToBeAdded(Node*,int)), this, SLOT(slotNodeToBeInserted(Node*,int)) ); - disconnect( m_project, SIGNAL(nodeToBeRemoved(Node*)), this, SLOT(slotNodeToBeRemoved(Node*)) ); -@@ -94,6 +95,7 @@ void CriticalPathItemModel::setProject( Project *project ) - m_project = project; - m_nodemodel.setProject( project ); - if ( project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); - connect( m_project, SIGNAL(nodeToBeAdded(Node*,int)), this, SLOT(slotNodeToBeInserted(Node*,int)) ); - connect( m_project, SIGNAL(nodeToBeRemoved(Node*)), this, SLOT(slotNodeToBeRemoved(Node*)) ); -@@ -354,6 +356,7 @@ void PertResultItemModel::setProject( Project *project ) - { - clear(); - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); - disconnect( m_project, SIGNAL(nodeToBeAdded(Node*,int)), this, SLOT(slotNodeToBeInserted(Node*,int)) ); - disconnect( m_project, SIGNAL(nodeToBeRemoved(Node*)), this, SLOT(slotNodeToBeRemoved(Node*)) ); -@@ -366,6 +369,7 @@ void PertResultItemModel::setProject( Project *project ) - m_project = project; - m_nodemodel.setProject( project ); - if ( project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); - connect( m_project, SIGNAL(nodeToBeAdded(Node*,int)), this, SLOT(slotNodeToBeInserted(Node*,int)) ); - connect( m_project, SIGNAL(nodeToBeRemoved(Node*)), this, SLOT(slotNodeToBeRemoved(Node*)) ); -diff --git a/plan/libs/models/kptrelationmodel.cpp b/plan/libs/models/kptrelationmodel.cpp -index b2617fb..a5acfb6 100644 ---- a/plan/libs/models/kptrelationmodel.cpp -+++ b/plan/libs/models/kptrelationmodel.cpp -@@ -241,6 +241,7 @@ void RelationItemModel::slotLayoutChanged() - void RelationItemModel::setProject( Project *project ) - { - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); - disconnect( m_project, SIGNAL(nodeToBeRemoved(Node*)), this, SLOT(slotNodeToBeRemoved(Node*)) ); - -@@ -254,6 +255,7 @@ void RelationItemModel::setProject( Project *project ) - } - m_project = project; - if ( project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); - connect( m_project, SIGNAL(nodeToBeRemoved(Node*)), this, SLOT(slotNodeToBeRemoved(Node*)) ); - -diff --git a/plan/libs/models/kptresourceallocationmodel.cpp b/plan/libs/models/kptresourceallocationmodel.cpp -index 11f909e..500a24c 100644 ---- a/plan/libs/models/kptresourceallocationmodel.cpp -+++ b/plan/libs/models/kptresourceallocationmodel.cpp -@@ -425,6 +425,7 @@ void ResourceAllocationItemModel::slotResourceGroupRemoved( const ResourceGroup - void ResourceAllocationItemModel::setProject( Project *project ) - { - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project, SIGNAL(resourceChanged(Resource*)), this, SLOT(slotResourceChanged(Resource*)) ); - disconnect( m_project, SIGNAL(resourceGroupChanged(ResourceGroup*)), this, SLOT(slotResourceGroupChanged(ResourceGroup*)) ); - -@@ -447,6 +448,7 @@ void ResourceAllocationItemModel::setProject( Project *project ) - } - m_project = project; - if ( m_project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(resourceChanged(Resource*)), this, SLOT(slotResourceChanged(Resource*)) ); - connect( m_project, SIGNAL(resourceGroupChanged(ResourceGroup*)), this, SLOT(slotResourceGroupChanged(ResourceGroup*)) ); - -diff --git a/plan/libs/models/kptresourceappointmentsmodel.cpp b/plan/libs/models/kptresourceappointmentsmodel.cpp -index b580dfe..f4700c6 100644 ---- a/plan/libs/models/kptresourceappointmentsmodel.cpp -+++ b/plan/libs/models/kptresourceappointmentsmodel.cpp -@@ -220,7 +220,10 @@ void ResourceAppointmentsItemModel::setProject( Project *project ) - { - kDebug(planDbg()); - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); -+ - disconnect( m_project, SIGNAL(resourceChanged(Resource*)), this, SLOT(slotResourceChanged(Resource*)) ); -+ - disconnect( m_project, SIGNAL(resourceGroupChanged(ResourceGroup*)), this, SLOT(slotResourceGroupChanged(ResourceGroup*)) ); - - disconnect( m_project, SIGNAL(resourceGroupToBeAdded(const ResourceGroup*,int)), this, SLOT(slotResourceGroupToBeInserted(const ResourceGroup*,int)) ); -@@ -255,6 +258,7 @@ void ResourceAppointmentsItemModel::setProject( Project *project ) - } - m_project = project; - if ( m_project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(resourceChanged(Resource*)), this, SLOT(slotResourceChanged(Resource*)) ); - connect( m_project, SIGNAL(resourceGroupChanged(ResourceGroup*)), this, SLOT(slotResourceGroupChanged(ResourceGroup*)) ); - -@@ -1351,6 +1355,8 @@ void ResourceAppointmentsRowModel::setProject( Project *project ) - { - //kDebug(planDbg())<<project; - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); -+ - disconnect( m_project, SIGNAL(resourceGroupToBeAdded(const ResourceGroup*,int)), this, SLOT(slotResourceGroupToBeInserted(const ResourceGroup*,int)) ); - - disconnect( m_project, SIGNAL(resourceGroupToBeRemoved(const ResourceGroup*)), this, SLOT(slotResourceGroupToBeRemoved(const ResourceGroup*)) ); -@@ -1379,6 +1385,8 @@ void ResourceAppointmentsRowModel::setProject( Project *project ) - } - m_project = project; - if ( m_project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); -+ - connect( m_project, SIGNAL(resourceGroupToBeAdded(const ResourceGroup*,int)), this, SLOT(slotResourceGroupToBeInserted(const ResourceGroup*,int)) ); - - connect( m_project, SIGNAL(resourceGroupToBeRemoved(const ResourceGroup*)), this, SLOT(slotResourceGroupToBeRemoved(const ResourceGroup*)) ); -diff --git a/plan/libs/models/kptresourcemodel.cpp b/plan/libs/models/kptresourcemodel.cpp -index 81f3493..23242df 100644 ---- a/plan/libs/models/kptresourcemodel.cpp -+++ b/plan/libs/models/kptresourcemodel.cpp -@@ -599,6 +599,7 @@ void ResourceItemModel::slotLayoutChanged() - void ResourceItemModel::setProject( Project *project ) - { - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project, SIGNAL(localeChanged()), this, SLOT(slotLayoutChanged()) ); - disconnect( m_project, SIGNAL(resourceChanged(Resource*)), this, SLOT(slotResourceChanged(Resource*)) ); - disconnect( m_project, SIGNAL(resourceGroupChanged(ResourceGroup*)), this, SLOT(slotResourceGroupChanged(ResourceGroup*)) ); -@@ -623,6 +624,7 @@ void ResourceItemModel::setProject( Project *project ) - } - m_project = project; - if ( m_project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(localeChanged()), this, SLOT(slotLayoutChanged()) ); - connect( m_project, SIGNAL(resourceChanged(Resource*)), this, SLOT(slotResourceChanged(Resource*)) ); - connect( m_project, SIGNAL(resourceGroupChanged(ResourceGroup*)), this, SLOT(slotResourceGroupChanged(ResourceGroup*)) ); -@@ -711,7 +713,7 @@ QModelIndex ResourceItemModel::parent( const QModelIndex &index ) const - } - //kDebug(planDbg())<<index.internalPointer()<<":"<<index.row()<<","<<index.column(); - -- Resource *r = qobject_cast<Resource*>( object( index ) ); -+ Resource *r = resource( index ); - if ( r && r->parentGroup() ) { - // only resources have parent - int row = m_project->indexOf( r->parentGroup() ); -@@ -732,8 +734,7 @@ QModelIndex ResourceItemModel::index( int row, int column, const QModelIndex &pa - } - return QModelIndex(); - } -- QObject *p = object( parent ); -- ResourceGroup *g = qobject_cast<ResourceGroup*>( p ); -+ ResourceGroup *g = group( parent ); - if ( g ) { - if ( row < g->numResources() ) { - return createIndex( row, column, g->resourceAt( row ) ); -@@ -782,8 +783,7 @@ int ResourceItemModel::rowCount( const QModelIndex &parent ) const - if ( ! parent.isValid() ) { - return m_project->numResourceGroups(); - } -- QObject *p = object( parent ); -- ResourceGroup *g = qobject_cast<ResourceGroup*>( p ); -+ ResourceGroup *g = group( parent ); - if ( g ) { - return g->numResources(); - } -@@ -1148,6 +1148,8 @@ QObject *ResourceItemModel::object( const QModelIndex &index ) const - { - QObject *o = 0; - if ( index.isValid() ) { -+ Q_ASSERT( m_project ); -+ Q_ASSERT(m_project->resourceGroups().contains(static_cast<ResourceGroup*>(index.internalPointer())) || m_project->resourceList().contains(static_cast<Resource*>(index.internalPointer()))); - o = static_cast<QObject*>( index.internalPointer() ); - Q_ASSERT( o ); - } -diff --git a/plan/libs/models/kptschedulemodel.cpp b/plan/libs/models/kptschedulemodel.cpp -index e3ce298..4d47ee5 100644 ---- a/plan/libs/models/kptschedulemodel.cpp -+++ b/plan/libs/models/kptschedulemodel.cpp -@@ -171,6 +171,8 @@ void ScheduleItemModel::slotScheduleRemoved( const MainSchedule * ) - void ScheduleItemModel::setProject( Project *project ) - { - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); -+ - disconnect( m_project, SIGNAL(scheduleManagerChanged(ScheduleManager*)), this, SLOT(slotManagerChanged(ScheduleManager*)) ); - - disconnect( m_project, SIGNAL(scheduleManagerToBeAdded(const ScheduleManager*,int)), this, SLOT(slotScheduleManagerToBeInserted(const ScheduleManager*,int)) ); -@@ -197,6 +199,8 @@ void ScheduleItemModel::setProject( Project *project ) - } - m_project = project; - if ( m_project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); -+ - connect( m_project, SIGNAL(scheduleManagerChanged(ScheduleManager*)), this, SLOT(slotManagerChanged(ScheduleManager*)) ); - - connect( m_project, SIGNAL(scheduleManagerToBeAdded(const ScheduleManager*,int)), this, SLOT(slotScheduleManagerToBeInserted(const ScheduleManager*,int)) ); -@@ -1074,10 +1078,17 @@ void ScheduleLogItemModel::slotScheduleRemoved( const MainSchedule *sch ) - kDebug(planDbg())<<m_schedule<<sch; - } - -+void ScheduleLogItemModel::projectDeleted() -+{ -+ setProject(0); -+} -+ - void ScheduleLogItemModel::setProject( Project *project ) - { - kDebug(planDbg())<<m_project<<"->"<<project; - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); -+ - disconnect( m_project, SIGNAL(scheduleManagerChanged(ScheduleManager*)), this, SLOT(slotManagerChanged(ScheduleManager*)) ); - - disconnect( m_project, SIGNAL(scheduleManagerToBeRemoved(const ScheduleManager*)), this, SLOT(slotScheduleManagerToBeRemoved(const ScheduleManager*)) ); -@@ -1096,6 +1107,8 @@ void ScheduleLogItemModel::setProject( Project *project ) - } - m_project = project; - if ( m_project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); -+ - connect( m_project, SIGNAL(scheduleManagerChanged(ScheduleManager*)), this, SLOT(slotManagerChanged(ScheduleManager*)) ); - - connect( m_project, SIGNAL(scheduleManagerToBeRemoved(const ScheduleManager*)), this, SLOT(slotScheduleManagerToBeRemoved(const ScheduleManager*)) ); -diff --git a/plan/libs/models/kptschedulemodel.h b/plan/libs/models/kptschedulemodel.h -index c09d8fb..acc75b4 100644 ---- a/plan/libs/models/kptschedulemodel.h -+++ b/plan/libs/models/kptschedulemodel.h -@@ -203,6 +203,8 @@ protected Q_SLOTS: - - void slotLogInserted( MainSchedule*, int firstrow, int lastrow ); - -+ void projectDeleted(); -+ - protected: - void addLogEntry( const Schedule::Log &log, int row ); - -diff --git a/plan/libs/models/kpttaskstatusmodel.cpp b/plan/libs/models/kpttaskstatusmodel.cpp -index e0693b8..9fb3b37 100644 ---- a/plan/libs/models/kpttaskstatusmodel.cpp -+++ b/plan/libs/models/kpttaskstatusmodel.cpp -@@ -126,6 +126,7 @@ void TaskStatusItemModel::setProject( Project *project ) - { - clear(); - if ( m_project ) { -+ disconnect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - disconnect( m_project, SIGNAL(localeChanged()), this, SLOT(slotLayoutChanged()) ); - disconnect( m_project, SIGNAL(wbsDefinitionChanged()), this, SLOT(slotWbsDefinitionChanged()) ); - disconnect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); -@@ -140,6 +141,7 @@ void TaskStatusItemModel::setProject( Project *project ) - m_project = project; - m_nodemodel.setProject( project ); - if ( project ) { -+ connect(m_project, SIGNAL(aboutToBeDeleted()), this, SLOT(projectDeleted())); - connect( m_project, SIGNAL(localeChanged()), this, SLOT(slotLayoutChanged()) ); - connect( m_project, SIGNAL(wbsDefinitionChanged()), this, SLOT(slotWbsDefinitionChanged()) ); - connect( m_project, SIGNAL(nodeChanged(Node*)), this, SLOT(slotNodeChanged(Node*)) ); --- -2.7.4 - diff --git a/source/kde/patch/calligra/0070-Plan-Guard-against-trying-to-move-a-task-into-the-sa.patch b/source/kde/patch/calligra/0070-Plan-Guard-against-trying-to-move-a-task-into-the-sa.patch deleted file mode 100644 index debb62b7..00000000 --- a/source/kde/patch/calligra/0070-Plan-Guard-against-trying-to-move-a-task-into-the-sa.patch +++ /dev/null @@ -1,50 +0,0 @@ -From a9134500e4e599ba316617941bcd04f640ed3999 Mon Sep 17 00:00:00 2001 -From: Dag Andersen <danders@get2net.dk> -Date: Tue, 23 Aug 2016 13:30:13 +0200 -Subject: [PATCH 70/80] Plan: Guard against trying to move a task into the same - porition - -QAbstractItemModel cannot handle this and it causes a crash (later) ---- - plan/libs/kernel/kptproject.cpp | 4 ++++ - plan/libs/models/kptnodeitemmodel.cpp | 9 +++++++++ - 2 files changed, 13 insertions(+) - -diff --git a/plan/libs/kernel/kptproject.cpp b/plan/libs/kernel/kptproject.cpp -index 451e897..fdf43bc 100644 ---- a/plan/libs/kernel/kptproject.cpp -+++ b/plan/libs/kernel/kptproject.cpp -@@ -1565,6 +1565,10 @@ bool Project::moveTask( Node* node, Node *newParent, int newPos ) - Node *oldParent = node->parentNode(); - int oldPos = oldParent->indexOf( node ); - int i = newPos < 0 ? newParent->numChildren() : newPos; -+ if ( oldParent == newParent && i == oldPos ) { -+ // no need to move to where it already is -+ return false; -+ } - int newRow = i; - if ( oldParent == newParent && newPos > oldPos ) { - ++newRow; // itemmodels wants new row *before* node is removed from old position -diff --git a/plan/libs/models/kptnodeitemmodel.cpp b/plan/libs/models/kptnodeitemmodel.cpp -index e66277f..5581f8f 100644 ---- a/plan/libs/models/kptnodeitemmodel.cpp -+++ b/plan/libs/models/kptnodeitemmodel.cpp -@@ -4036,6 +4036,15 @@ bool NodeItemModel::dropMimeData( const QMimeData *data, Qt::DropAction action, - if ( pos >= 0 && n->parentNode() == par && par->indexOf( n ) < pos ) { - --pos; - } -+ if ( n->parentNode() == par ) { -+ // avoid drop into the same position, QAbstractItemModel does not like it -+ int crow = par->indexOf( n ); -+ if ( ( ( pos == -1 ) && ( crow == par->numChildren() - 1 ) ) || ( pos == crow ) ) { -+ delete cmd; -+ cmd = 0; -+ continue; -+ } -+ } - cmd->addCommand( new NodeMoveCmd( m_project, n, par, pos ) ); - offset++; - } --- -2.7.4 - diff --git a/source/kde/patch/calligra/boost-1.65.0.patch b/source/kde/patch/calligra/boost-1.65.0.patch deleted file mode 100644 index 9f6a4066..00000000 --- a/source/kde/patch/calligra/boost-1.65.0.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -ru calligra-2.9.11.orig/gemini/desktopviewproxy.cpp calligra-2.9.11/gemini/desktopviewproxy.cpp ---- calligra-2.9.11.orig/gemini/desktopviewproxy.cpp 2016-02-02 20:53:13.000000000 +0100 -+++ calligra-2.9.11/gemini/desktopviewproxy.cpp 2017-08-27 17:54:48.900376022 +0200 -@@ -31,7 +31,7 @@ - #include <krecentfilesaction.h> - #include <kactioncollection.h> - --#include <boost/config/posix_features.hpp> -+#include <boost/config/detail/posix_features.hpp> - #include <KConfigGroup> - - #include <KoMainWindow.h> -diff -ru calligra-2.9.11.orig/krita/gemini/desktopviewproxy.cpp calligra-2.9.11/krita/gemini/desktopviewproxy.cpp ---- calligra-2.9.11.orig/krita/gemini/desktopviewproxy.cpp 2016-02-02 20:53:14.000000000 +0100 -+++ calligra-2.9.11/krita/gemini/desktopviewproxy.cpp 2017-08-27 17:53:54.964372389 +0200 -@@ -31,7 +31,7 @@ - #include <krecentfilesaction.h> - #include <kactioncollection.h> - --#include <boost/config/posix_features.hpp> -+#include <boost/config/detail/posix_features.hpp> - - #include <KisMainWindow.h> - #include <KisImportExportManager.h> diff --git a/source/kde/patch/calligra/calligra-2.9.11-gcc6_arm.patch b/source/kde/patch/calligra/calligra-2.9.11-gcc6_arm.patch deleted file mode 100644 index 2b1271c0..00000000 --- a/source/kde/patch/calligra/calligra-2.9.11-gcc6_arm.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up calligra-2.9.11/libs/flake/KoSnapStrategy.cpp.gcc6_arm calligra-2.9.11/libs/flake/KoSnapStrategy.cpp ---- calligra-2.9.11/libs/flake/KoSnapStrategy.cpp.gcc6_arm 2016-02-02 13:53:15.000000000 -0600 -+++ calligra-2.9.11/libs/flake/KoSnapStrategy.cpp 2016-02-08 09:12:39.452896965 -0600 -@@ -181,7 +181,7 @@ bool ExtensionSnapStrategy::snap(const Q - Q_ASSERT(isfinite(maxSnapDistance)); - - const qreal maxDistance = maxSnapDistance * maxSnapDistance; -- qreal minDistances[2] = { HUGE_VAL, HUGE_VAL }; -+ qreal minDistances[2] = { (qreal)HUGE_VAL, (qreal)HUGE_VAL }; - - QPointF snappedPoints[2] = { mousePosition, mousePosition }; - QPointF startPoints[2]; diff --git a/source/kde/patch/calligra/calligra.mariadb.diff b/source/kde/patch/calligra/calligra.mariadb.diff deleted file mode 100644 index 96006998..00000000 --- a/source/kde/patch/calligra/calligra.mariadb.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- ./kexi/migration/mysql/mysqlmigrate.cpp.orig 2016-02-02 13:53:13.000000000 -0600 -+++ ./kexi/migration/mysql/mysqlmigrate.cpp 2017-08-30 14:21:01.436709371 -0500 -@@ -42,7 +42,7 @@ - #ifdef Q_WS_WIN - # undef _WIN32_WINNT // avoid redef. - #endif --#include <mysql_version.h> -+#include <mariadb_version.h> - #include <mysql.h> - #define BOOL bool - ---- ./kexi/kexidb/drivers/mysql/mysqldriver.cpp.orig 2016-02-02 13:53:13.000000000 -0600 -+++ ./kexi/kexidb/drivers/mysql/mysqldriver.cpp 2017-08-30 14:20:24.858710150 -0500 -@@ -31,7 +31,7 @@ - #include <QVariant> - #include <QFile> - --#include <mysql_version.h> -+#include <mariadb_version.h> - #include <mysql.h> - #define BOOL bool - ---- ./kexi/kexidb/drivers/mysql/mysqlconnection_p.h.orig 2016-02-02 13:53:13.000000000 -0600 -+++ ./kexi/kexidb/drivers/mysql/mysqlconnection_p.h 2017-08-30 14:20:24.861710150 -0500 -@@ -30,7 +30,7 @@ - # endif - # include <my_global.h> - #endif --#include <mysql_version.h> -+#include <mariadb_version.h> - #include <mysql.h> - - typedef struct st_mysql MYSQL; |