Hotfix/2657 prevent share overwrite (#2746)
* Fix problem with export from newly saved database Newly created/saved databases (or used with DatabaseWidget::saveAs) were not exported/imported correctly. Fixed the problem by reinitializing the ShareObserver on DatabaseWidget::saveAs. * Introduce warnings and prevent conflicting shares Introduced several warnings and errors to indicate improper settings. Prevent export when a path is used multiple times (only the file path is checked - may ignore multiple similar ways to reference a share). * Improve KeeShare integration in DatabaseWidget Moved initial KeeShare association to constructor. Introduced Q_UNUSED to indicate need for assignment statement.
This commit is contained in:
committed by
Jonathan White
parent
ebb87e6379
commit
11ecaf4fa4
@@ -208,6 +208,12 @@ DatabaseWidget::DatabaseWidget(QSharedPointer<Database> db, QWidget* parent)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WITH_XC_KEESHARE
|
||||
// We need to reregister the database to allow exports
|
||||
// from a newly created database
|
||||
KeeShare::instance()->connectDatabase(m_db, {});
|
||||
#endif
|
||||
|
||||
switchToMainView();
|
||||
}
|
||||
|
||||
@@ -391,6 +397,9 @@ void DatabaseWidget::replaceDatabase(QSharedPointer<Database> db)
|
||||
processAutoOpen();
|
||||
#if defined(WITH_XC_KEESHARE)
|
||||
KeeShare::instance()->connectDatabase(m_db, oldDb);
|
||||
#else
|
||||
// Keep the instance active till the end of this function
|
||||
Q_UNUSED(oldDb);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -36,9 +36,9 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void set(Group* temporaryGroup) const
|
||||
void set(Group* temporaryGroup, QSharedPointer<Database> database) const
|
||||
{
|
||||
editPage->set(widget, temporaryGroup);
|
||||
editPage->set(widget, temporaryGroup, database);
|
||||
}
|
||||
|
||||
void assign() const
|
||||
@@ -133,7 +133,7 @@ void EditGroupWidget::loadGroup(Group* group, bool create, const QSharedPointer<
|
||||
m_editWidgetProperties->setCustomData(m_temporaryGroup->customData());
|
||||
|
||||
for (const ExtraPage& page : asConst(m_extraPages)) {
|
||||
page.set(m_temporaryGroup.data());
|
||||
page.set(m_temporaryGroup.data(), m_db);
|
||||
}
|
||||
|
||||
setCurrentPage(0);
|
||||
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
virtual QString name() = 0;
|
||||
virtual QIcon icon() = 0;
|
||||
virtual QWidget* createWidget() = 0;
|
||||
virtual void set(QWidget* widget, Group* tempoaryGroup) = 0;
|
||||
virtual void set(QWidget* widget, Group* tempoaryGroup, QSharedPointer<Database> database) = 0;
|
||||
virtual void assign(QWidget* widget) = 0;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user