Skip to content

Commit be1f218

Browse files
committed
fix: find out adsk problem of flatpak
1 parent d8d004f commit be1f218

5 files changed

Lines changed: 18 additions & 3 deletions

File tree

src/core/function/gpg/GpgKeyGetter.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ class GpgKeyGetter::Impl : public SingletonFunctionObject<GpgKeyGetter::Impl> {
4646
// find in cache first
4747
if (cache) {
4848
auto key = get_key_in_cache(key_id);
49+
assert(key->KeyType() == GpgAbstractKeyType::kGPG_KEY);
50+
4951
if (key != nullptr) return qSharedPointerDynamicCast<GpgKey>(key);
5052

5153
LOG_W() << "get gpg key" << key_id
@@ -164,6 +166,10 @@ class GpgKeyGetter::Impl : public SingletonFunctionObject<GpgKeyGetter::Impl> {
164166
for (const auto& s_key : g_key->SubKeys()) {
165167
if (s_key.ID() == g_key->ID()) continue;
166168
auto p_s_key = QSharedPointer<GpgSubKey>::create(s_key);
169+
170+
// don't add adsk key or it will cause bugs
171+
if (p_s_key->IsADSK()) continue;
172+
167173
keys_search_cache_.insert(s_key.ID(), p_s_key);
168174
keys_search_cache_.insert(s_key.Fingerprint(), p_s_key);
169175
}

src/core/model/GpgKeyTableModel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyTableItem {
151151

152152
private:
153153
GpgAbstractKeyPtr key_;
154-
bool checked_;
154+
bool checked_ = false;
155155
};
156156

157157
class GPGFRONTEND_CORE_EXPORT GpgKeyTableModel : public QAbstractTableModel {

src/core/model/GpgKeyTreeModel.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,9 +222,13 @@ auto GpgKeyTreeModel::create_gpg_key_tree_items(const GpgAbstractKeyPtr &key)
222222
auto i_key = QSharedPointer<GpgKeyTreeItem>::create(key, columns);
223223
i_key->SetEnable(true);
224224
i_key->SetCheckable(checkable_detector_(i_key->Key()));
225+
i_key->SetChecked(false);
225226
cached_items_.push_back(i_key);
226227

227228
for (const auto &s_key : g_key->SubKeys()) {
229+
// avoid bugs due to duplicate key ids
230+
if (g_key->ID() == s_key.ID() || s_key.IsADSK()) continue;
231+
228232
QVariantList columns;
229233
columns << "/";
230234
columns << (s_key.IsHasCertCap() ? "primary" : "sub");
@@ -239,6 +243,7 @@ auto GpgKeyTreeModel::create_gpg_key_tree_items(const GpgAbstractKeyPtr &key)
239243
QSharedPointer<GpgSubKey>::create(s_key), columns);
240244
i_s_key->SetEnable(true);
241245
i_s_key->SetCheckable(checkable_detector_(i_s_key->Key()));
246+
i_s_key->SetChecked(false);
242247
i_key->AppendChild(i_s_key);
243248
cached_items_.push_back(i_s_key);
244249
}
@@ -254,6 +259,10 @@ auto GpgKeyTreeModel::GetAllCheckedSubKey() -> QContainer<GpgSubKey> {
254259
continue;
255260
}
256261

262+
LOG_D() << "subkey checked: " << i->Key()->ID()
263+
<< "uid: " << i->Key()->UID() << "checkable: " << i->Checkable()
264+
<< "checked: " << i->Checked();
265+
257266
auto *s_key = dynamic_cast<GpgSubKey *>(i->Key());
258267
if (s_key == nullptr) continue;
259268

@@ -267,6 +276,7 @@ auto GpgKeyTreeModel::GetKeyByIndex(QModelIndex index) -> GpgAbstractKey * {
267276

268277
const auto *item =
269278
static_cast<const GpgKeyTreeItem *>(index.internalPointer());
279+
assert(item != nullptr);
270280

271281
return item->Key();
272282
}

src/core/model/GpgKeyTreeModel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyTreeItem {
231231
private:
232232
QContainer<QSharedPointer<GpgKeyTreeItem>> children_;
233233
QVariantList data_;
234-
bool checked_;
234+
bool checked_ = false;
235235
bool checkable_;
236236
bool enable_;
237237
QSharedPointer<GpgAbstractKey> key_;

src/ui/dialog/keypair_details/KeyPairDetailTab.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,6 @@ void KeyPairDetailTab::slot_refresh_key() {
274274
assert(refreshed_key != nullptr);
275275

276276
std::swap(this->key_, refreshed_key);
277-
278277
this->slot_refresh_key_info();
279278
}
280279

0 commit comments

Comments
 (0)