libpurple/plugins/keyrings/kwallet.cpp

branch
soc.2008.masterpassword
changeset 34087
b9798bef2af2
parent 34085
26a50ff943ed
child 34089
3ac90007a6bf
equal deleted inserted replaced
34086:6fcec7f32c4a 34087:b9798bef2af2
70 public: 70 public:
71 engine(); 71 engine();
72 ~engine(); 72 ~engine();
73 void queue(request *req); 73 void queue(request *req);
74 static engine *Instance(); 74 static engine *Instance();
75 bool closing;
75 76
76 private slots: 77 private slots:
77 void walletOpened(bool opened); 78 void walletOpened(bool opened);
78 79
79 private: 80 private:
127 connect(wallet, SIGNAL(walletOpened(bool)), SLOT(walletOpened(bool))); 128 connect(wallet, SIGNAL(walletOpened(bool)), SLOT(walletOpened(bool)));
128 } 129 }
129 130
130 KWalletPlugin::engine::~engine() 131 KWalletPlugin::engine::~engine()
131 { 132 {
133 closing = true;
134
132 while (!isEmpty()) { 135 while (!isEmpty()) {
133 request *req = dequeue(); 136 request *req = dequeue();
134 req->abort(); 137 req->abort();
135 delete req; 138 delete req;
136 } 139 }
283 } 286 }
284 287
285 static void 288 static void
286 kwallet_close(GError **error) 289 kwallet_close(GError **error)
287 { 290 {
288 delete KWalletPlugin::engine::Instance(); 291 if (!KWalletPlugin::engine::Instance()->closing)
292 delete KWalletPlugin::engine::Instance();
289 } 293 }
290 294
291 static gboolean 295 static gboolean
292 kwallet_import(PurpleAccount *account, 296 kwallet_import(PurpleAccount *account,
293 const char *mode, 297 const char *mode,

mercurial