Scid  4.7.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
search.tcl
Go to the documentation of this file.
1 ###
2 ### search.tcl: Search routines for Scid.
3 ###
4 
5 namespace eval ::search {}
6 
7 # searchType: set to Header or Material in a SearchOptions file
8 set searchType 0
9 
10 set ::search::filter::operation 2
11 
12 
13 # search::filter::reset
14 # TODO: remove this function
15 proc ::search::filter::reset {} {
17 }
18 
19 # ::search::addFilterOpFrame
20 #
21 # Adds a search filter operation selection frame to the window.
22 # Adds a frame of radiobuttons allowing the filter operation
23 # (AND with current filter, OR with current filter, or RESET filter)
24 # to be chosen.
25 # The default value for the first search is RESET:
26 proc ::search::addFilterOpFrame {w {small 0}} {
27  ttk::labelframe $w.filterop -text $::tr(FilterOperation)
28  set f $w.filterop
29  pack $f -side top -fill x
30 
31  set regular TRadiobutton
32  set bold Bold.TRadiobutton
33  if {$small} {
34  set regular Small.TRadiobutton
35  set bold SmallBold.TRadiobutton
36  }
37 
38  ttk::frame $f.b
39  ttk::radiobutton $f.b.and -textvar ::tr(FilterAnd) -variable ::search::filter::operation -value 0 -style $regular
40  ttk::radiobutton $f.b.or -textvar ::tr(FilterOr) -variable ::search::filter::operation -value 1 -style $regular
41  ttk::radiobutton $f.b.ignore -textvar ::tr(FilterIgnore) -variable ::search::filter::operation -value 2 -style $regular
42  pack $f.b -anchor w -side top
43  pack $f.b.and $f.b.or $f.b.ignore -side left -padx 5
44 }
45 
46 
47 # ::search::Config
48 #
49 # Sets state of Search button in Header, Board and Material windows
50 #
51 proc ::search::Config {{state ""}} {
52  if {$state == ""} {
53  set state disabled
54  if {[sc_base inUse]} { set state normal}
55  }
56  catch {.sh.b.search configure -state $state}
57  catch {.sb.b.search configure -state $state}
58  catch {.sm.b3.search configure -state $state}
59 }
60 
61 
62 proc ::search::usefile {} {
63  set ftype { { "Scid SearchOption files" {".sso"} } }
64  set ::fName [tk_getOpenFile -initialdir $::initialDir(base) \
65  -filetypes $ftype -title "Select a SearchOptions file"]
66  if {$::fName == ""} { return}
67 
68  if {[catch {uplevel "#0" {source $::fName}}]} {
69  tk_messageBox -title "Scid: Error reading file" -type ok -icon warning \
70  -message "Unable to open or read SearchOptions file: $fName"
71  } else {
72  switch -- $::searchType {
73  "Material" { ::search::material}
74  "Header" { ::search::header}
75  default { return}
76  }
77  }
78 }