summaryrefslogtreecommitdiff
path: root/src/ui/uploadwidget.c
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2021-09-17 09:20:49 +0300
committerJaakko Keränen <jaakko.keranen@iki.fi>2021-09-17 09:20:49 +0300
commit596c61c125ab9c796d4294b1762b65119c65f1d2 (patch)
tree3cef70f815efeaec991ed36968039ad16f7b25f0 /src/ui/uploadwidget.c
parent4651a6bef1c89542d01f9e14096208628e6ed24b (diff)
UploadWidget: Updating the identities dropdown
Diffstat (limited to 'src/ui/uploadwidget.c')
-rw-r--r--src/ui/uploadwidget.c29
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
107static const iArray *makeIdentityItems_UploadWidget_(const iUploadWidget *d) { 107static 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
263static 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
270static 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
263static uint16_t titanPortForUrl_(const iString *url) { 279static 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
290void setUrl_UploadWidget(iUploadWidget *d, const iString *url) { 306void 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
294void setResponseViewer_UploadWidget(iUploadWidget *d, iDocumentWidget *doc) { 312void 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
314static 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
323static void updateFileInfo_UploadWidget_(iUploadWidget *d) { 332static 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)) {