Sun, 07 Dec 2025 20:00:33 +0100
fix settings dialog doesn't open when there is no .dav/config.xml file
/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2025 Olaf Wintermann. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #import "toolkit.h" #import "Container.h" #import "../ui/tree.h" #import "ListDataSource.h" @interface UiDropDown : NSObject<NSComboBoxDelegate> @property UiObject *obj; @property ui_callback onactivate; @property void *onactivatedata; @property ui_callback onselection; @property void *onselectiondata; @property ui_getvaluefunc2 getvalue; @property void *getvaluedata; @property UiVar *var; @property (weak) NSComboBox *combobox; - (id)init:(UiObject*)obj; @end void ui_tableview_update(UiList *list, int i); UiListSelection ui_tableview_getselection(UiList *list); void ui_tableview_setselection(UiList *list, UiListSelection selection); void ui_dropdown_update(UiList *list, int i); UiListSelection ui_dropdown_getselection(UiList *list); void ui_dropdown_setselection(UiList *list, UiListSelection selection); @class UiSourceList; @interface UiSourceListItem : NSObject @property (weak) UiSourceList *sourcelist; @property (weak) UiSourceListItem *parent; @property (strong) NSString *label; @property (strong) NSString *badge; @property (strong) NSMutableArray<UiSourceListItem*> *items; @property UiVar *var; @property UiSubList *sublist; @property int sublistIndex; @property int sublistStartRow; @property int rownum; @property void *eventdata; /* * Initialize a section item */ - (id)init:(UiSubListItem*)item parent:(UiSourceListItem*)parent; /* * Initialize a child item */ - (id)init:(UiSourceList*)sourcelist sublist:(UiSubList*)sublist; - (BOOL)isSection; - (void)update:(int)row; @end @interface UiSourceList : NSObject <NSOutlineViewDataSource, NSOutlineViewDelegate> @property UiObject *obj; @property (weak) NSOutlineView *outlineView; @property CxList *sublists; @property UiVar *dynamic_sublists; @property ui_sublist_getvalue_func getvalue; @property void *getvaluedata; @property ui_callback onactivate; @property void *onactivatedata; @property ui_callback onbuttonclick; @property void *onbuttonclickdata; @property (strong) NSMutableArray<UiSourceListItem*> *sections; - (id)init:(UiObject*)obj outline:(NSOutlineView*)view; - (void)update:(int)row; @end @interface UiSourceListRow : NSTableRowView @property NSTrackingArea *trackingArea; @property NSView *disclosureButton; @property BOOL hover; @property BOOL showDisclosureButton; @end void ui_sourcelist_update(UiList *list, int row);