fix: partially resolved #800, rewrite ImportWindow required

This commit is contained in:
QwQ 2020-07-29 15:34:34 +08:00
parent c4f5bb07df
commit 02aa656197
3 changed files with 8 additions and 7 deletions

View File

@ -1 +1 @@
5816 5817

View File

@ -54,7 +54,7 @@ ImportConfigWindow::~ImportConfigWindow()
{ {
} }
QMultiHash<QString, CONFIGROOT> ImportConfigWindow::SelectConnection(bool outboundsOnly) QMultiMap<QString, CONFIGROOT> ImportConfigWindow::SelectConnection(bool outboundsOnly)
{ {
// partial import means only import as an outbound, will set outboundsOnly to // partial import means only import as an outbound, will set outboundsOnly to
// false and disable the checkbox // false and disable the checkbox
@ -62,7 +62,7 @@ QMultiHash<QString, CONFIGROOT> ImportConfigWindow::SelectConnection(bool outbou
routeEditBtn->setEnabled(!outboundsOnly); routeEditBtn->setEnabled(!outboundsOnly);
groupCombo->setEnabled(false); groupCombo->setEnabled(false);
this->exec(); this->exec();
QMultiHash<QString, CONFIGROOT> conn; QMultiMap<QString, CONFIGROOT> conn;
for (const auto &connEntry : connectionsToNewGroup.values()) for (const auto &connEntry : connectionsToNewGroup.values())
{ {
conn += connEntry; conn += connEntry;
@ -71,7 +71,7 @@ QMultiHash<QString, CONFIGROOT> ImportConfigWindow::SelectConnection(bool outbou
{ {
conn += connEntry; conn += connEntry;
} }
return result() == Accepted ? conn : QMultiHash<QString, CONFIGROOT>{}; return result() == Accepted ? conn : QMultiMap<QString, CONFIGROOT>{};
} }
int ImportConfigWindow::PerformImportConnection() int ImportConfigWindow::PerformImportConnection()

View File

@ -15,7 +15,7 @@ class ImportConfigWindow
explicit ImportConfigWindow(QWidget *parent = nullptr); explicit ImportConfigWindow(QWidget *parent = nullptr);
~ImportConfigWindow(); ~ImportConfigWindow();
int PerformImportConnection(); int PerformImportConnection();
QMultiHash<QString, CONFIGROOT> SelectConnection(bool outboundsOnly); QMultiMap<QString, CONFIGROOT> SelectConnection(bool outboundsOnly);
void processCommands(QString command, QStringList commands, QMap<QString, QString> args) override void processCommands(QString command, QStringList commands, QMap<QString, QString> args) override
{ {
const static QMap<QString, int> indexMap{ const static QMap<QString, int> indexMap{
@ -53,6 +53,7 @@ class ImportConfigWindow
void updateColorScheme() override; void updateColorScheme() override;
QMap<QString, QString> linkErrors; QMap<QString, QString> linkErrors;
// //
QHash<GroupId, QMultiHash<QString, CONFIGROOT>> connectionsToExistingGroup; // Use hash here since the order is not important.
QHash<QString, QMultiHash<QString, CONFIGROOT>> connectionsToNewGroup; QHash<GroupId, QMultiMap<QString, CONFIGROOT>> connectionsToExistingGroup;
QMap<QString, QMultiMap<QString, CONFIGROOT>> connectionsToNewGroup;
}; };