diff options
author | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-09-17 09:20:49 +0300 |
---|---|---|
committer | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-09-17 09:20:49 +0300 |
commit | 596c61c125ab9c796d4294b1762b65119c65f1d2 (patch) | |
tree | 3cef70f815efeaec991ed36968039ad16f7b25f0 /src/ui/uploadwidget.c | |
parent | 4651a6bef1c89542d01f9e14096208628e6ed24b (diff) |
UploadWidget: Updating the identities dropdown
Diffstat (limited to 'src/ui/uploadwidget.c')
-rw-r--r-- | src/ui/uploadwidget.c | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/src/ui/uploadwidget.c b/src/ui/uploadwidget.c index c199990e..b8591b8f 100644 --- a/src/ui/uploadwidget.c +++ b/src/ui/uploadwidget.c | |||
@@ -106,7 +106,7 @@ static void updateInputMaxHeight_UploadWidget_(iUploadWidget *d) { | |||
106 | 106 | ||
107 | static const iArray *makeIdentityItems_UploadWidget_(const iUploadWidget *d) { | 107 | static const iArray *makeIdentityItems_UploadWidget_(const iUploadWidget *d) { |
108 | iArray *items = collectNew_Array(sizeof(iMenuItem)); | 108 | iArray *items = collectNew_Array(sizeof(iMenuItem)); |
109 | const iGmIdentity *urlId = identityForUrl_GmCerts(certs_App(), &d->url); | 109 | const iGmIdentity *urlId = identityForUrl_GmCerts(certs_App(), &d->url); |
110 | pushBack_Array(items, &(iMenuItem){ format_CStr("${dlg.upload.id.default} (%s)", | 110 | pushBack_Array(items, &(iMenuItem){ format_CStr("${dlg.upload.id.default} (%s)", |
111 | urlId ? cstr_String(name_GmIdentity(urlId)) : "${dlg.upload.id.none}"), | 111 | urlId ? cstr_String(name_GmIdentity(urlId)) : "${dlg.upload.id.none}"), |
112 | 0, 0, "upload.setid arg:1" }); | 112 | 0, 0, "upload.setid arg:1" }); |
@@ -260,6 +260,22 @@ void deinit_UploadWidget(iUploadWidget *d) { | |||
260 | iRelease(d->request); | 260 | iRelease(d->request); |
261 | } | 261 | } |
262 | 262 | ||
263 | static void remakeIdentityItems_UploadWidget_(iUploadWidget *d) { | ||
264 | iWidget *dropMenu= findChild_Widget(findChild_Widget(as_Widget(d), "upload.id"), "menu"); | ||
265 | releaseChildren_Widget(dropMenu); | ||
266 | const iArray *items = makeIdentityItems_UploadWidget_(d); | ||
267 | makeMenuItems_Widget(dropMenu, constData_Array(items), size_Array(items)); | ||
268 | } | ||
269 | |||
270 | static void updateIdentityDropdown_UploadWidget_(iUploadWidget *d) { | ||
271 | updateDropdownSelection_LabelWidget( | ||
272 | findChild_Widget(as_Widget(d), "upload.id"), | ||
273 | d->idMode == none_UploadIdentity ? " arg:0" | ||
274 | : d->idMode == defaultForUrl_UploadIdentity | ||
275 | ? " arg:1" | ||
276 | : format_CStr(" fp:%s", cstrCollect_String(hexEncode_Block(&d->idFingerprint)))); | ||
277 | } | ||
278 | |||
263 | static uint16_t titanPortForUrl_(const iString *url) { | 279 | static uint16_t titanPortForUrl_(const iString *url) { |
264 | uint16_t port = 0; | 280 | uint16_t port = 0; |
265 | const iString *root = collectNewRange_String(urlRoot_String(url)); | 281 | const iString *root = collectNewRange_String(urlRoot_String(url)); |
@@ -289,6 +305,8 @@ static void setUrlPort_UploadWidget_(iUploadWidget *d, const iString *url, uint1 | |||
289 | 305 | ||
290 | void setUrl_UploadWidget(iUploadWidget *d, const iString *url) { | 306 | void setUrl_UploadWidget(iUploadWidget *d, const iString *url) { |
291 | setUrlPort_UploadWidget_(d, url, 0); | 307 | setUrlPort_UploadWidget_(d, url, 0); |
308 | remakeIdentityItems_UploadWidget_(d); | ||
309 | updateIdentityDropdown_UploadWidget_(d); | ||
292 | } | 310 | } |
293 | 311 | ||
294 | void setResponseViewer_UploadWidget(iUploadWidget *d, iDocumentWidget *doc) { | 312 | void setResponseViewer_UploadWidget(iUploadWidget *d, iDocumentWidget *doc) { |
@@ -311,15 +329,6 @@ static void requestFinished_UploadWidget_(iUploadWidget *d, iGmRequest *req) { | |||
311 | postCommand_Widget(d, "upload.request.finished reqid:%u", id_GmRequest(req)); | 329 | postCommand_Widget(d, "upload.request.finished reqid:%u", id_GmRequest(req)); |
312 | } | 330 | } |
313 | 331 | ||
314 | static void updateIdentityDropdown_UploadWidget_(iUploadWidget *d) { | ||
315 | updateDropdownSelection_LabelWidget( | ||
316 | findChild_Widget(as_Widget(d), "upload.id"), | ||
317 | d->idMode == none_UploadIdentity ? " arg:0" | ||
318 | : d->idMode == defaultForUrl_UploadIdentity | ||
319 | ? " arg:1" | ||
320 | : format_CStr(" fp:%s", cstrCollect_String(hexEncode_Block(&d->idFingerprint)))); | ||
321 | } | ||
322 | |||
323 | static void updateFileInfo_UploadWidget_(iUploadWidget *d) { | 332 | static void updateFileInfo_UploadWidget_(iUploadWidget *d) { |
324 | iFileInfo *info = iClob(new_FileInfo(&d->filePath)); | 333 | iFileInfo *info = iClob(new_FileInfo(&d->filePath)); |
325 | if (isDirectory_FileInfo(info)) { | 334 | if (isDirectory_FileInfo(info)) { |