feat: import as new group

This commit is contained in:
arm64v8a
2023-05-20 14:25:51 +09:00
parent f9a8dc640a
commit e3f325ef38
4 changed files with 42 additions and 16 deletions

View File

@@ -408,21 +408,36 @@ namespace NekoRay::sub {
void GroupUpdater::AsyncUpdate(const QString &str, int _sub_gid, const std::function<void()> &finish) {
auto content = str.trimmed();
bool asURL = false;
bool createNewGroup = false;
if (_sub_gid < 0 && (content.startsWith("http://") || content.startsWith("https://"))) {
auto items = QStringList{QObject::tr("As Subscription"), QObject::tr("As link")};
auto items = QStringList{
QObject::tr("As Subscription (add to this group)"),
QObject::tr("As Subscription (create new group)"),
QObject::tr("As link"),
};
bool ok;
auto a = QInputDialog::getItem(nullptr,
QObject::tr("url detected"),
QObject::tr("%1\nHow to update?").arg(content),
items, 0, false, &ok);
if (!ok) return;
if (items.indexOf(a) == 0) asURL = true;
if (items.indexOf(a) <= 1) asURL = true;
if (items.indexOf(a) == 1) createNewGroup = true;
}
runOnNewThread([=] {
Update(str, _sub_gid, asURL);
emit asyncUpdateCallback(_sub_gid);
auto gid = _sub_gid;
if (createNewGroup) {
auto group = ProfileManager::NewGroup();
group->name = QUrl(str).host();
group->url = str;
profileManager->AddGroup(group);
gid = group->id;
MW_dialog_message("SubUpdater", "NewGroup");
}
Update(str, gid, asURL);
emit asyncUpdateCallback(gid);
if (finish != nullptr) finish();
});
}