Commit 37afc9c1 authored by Ruben Daniels's avatar Ruben Daniels
Browse files

fix filterpanel being auto closed

parent 31a6a863
Showing with 18 additions and 16 deletions
+18 -16
......@@ -8,21 +8,21 @@ import Foundation
import SwiftUI
import RealmSwift
public class CascadableDict: Cascadable, CustomStringConvertible, Subscriptable {
class ItemReference {
let uid:Int
let type:Item.Type
init (to: Item) {
uid = to.uid.value ?? -1
type = to.getType() ?? Item.self
}
func resolve() -> Item? {
DatabaseController.read { $0.object(ofType: type, forPrimaryKey: uid) }
}
class ItemReference {
let uid:Int
let type:Item.Type
init (to: Item) {
uid = to.uid.value ?? -1
type = to.getType() ?? Item.self
}
func resolve() -> Item? {
DatabaseController.read { $0.object(ofType: type, forPrimaryKey: uid) }
}
}
public class CascadableDict: Cascadable, CustomStringConvertible, Subscriptable {
func get<T>(_ name:String, type:T.Type = T.self) -> T? {
guard let value = cascadeProperty(name, type: Any?.self) else {
return nil
......
......@@ -26,6 +26,8 @@ class CVUSerializer {
return p.toCVUString(depth + 1, tab)
} else if let p = p as? Item, let uid = p.uid.value {
return "{{ item(\(p.genericType), \(uid)) }}"
} else if p is ItemReference, let p = (p as? ItemReference)?.resolve(), let uid = p.uid.value {
return "{{ item(\(p.genericType), \(uid)) }}"
} else if let p = p as? Color {
return String(p.description.lowercased().prefix(7))
} else if let p = p as? Double {
......
......@@ -190,7 +190,7 @@ public final class Session : Equatable, Subscriptable {
state = try Cache.createItem(CVUStateDefinition.self, values: [:])
guard let uid = state?.uid.value else {
throw "Exception: could not create stored definition"
throw "Exception: could not create state definition"
}
self.uid = uid
......@@ -225,7 +225,7 @@ public final class Session : Equatable, Subscriptable {
_ = try state?.link(s, type: "view", sequence: .last, overwrite: false)
}
else {
debugHistory.warn("Unable to store view. Missing stored CVU")
debugHistory.warn("Unable to store view. Missing state CVU")
}
}
}
......@@ -285,7 +285,7 @@ public final class Session : Equatable, Subscriptable {
// hide filterpanel if view doesnt have a button to open it
if showFilterPanel {
if currentView?.filterButtons.first(where: { $0.name == .toggleFilterPanel }) != nil {
if currentView?.filterButtons.first(where: { $0.name == .toggleFilterPanel }) == nil {
showFilterPanel = false
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment