UltraScan III
us_settings.cpp
Go to the documentation of this file.
1 #include "us_settings.h"
2 #include "us_defines.h"
3 
4 // Programs
5 QString US_Settings::browser( void )
6 {
7  QSettings settings( US3, "UltraScan" );
8  return settings.value( "browser", "/usr/bin/firefox" ).toString();
9 }
10 
11 void US_Settings::set_browser( const QString& browser )
12 {
13  QSettings settings( US3, "UltraScan" );
14  settings.setValue( "browser", browser );
15 }
16 
17 // Directories
18 
19 // Work base directory (where archive,results,reports,etc hang)
20 QString US_Settings::workBaseDir( void )
21 {
22  QSettings settings( US3, "UltraScan" );
23  return settings.value( "workBaseDir",
24  QDir::homePath() + "/ultrascan" ).toString();
25 }
26 
27 void US_Settings::set_workBaseDir( const QString& dir )
28 {
29  QSettings settings( US3, "UltraScan" );
30  if ( dir == QDir::homePath() + "/ultrascan" )
31  settings.remove( "workBaseDir" );
32  else
33  settings.setValue( "workBaseDir", dir );
34 }
35 
36 // importDir
37 QString US_Settings::importDir( void )
38 {
39  QSettings settings( US3, "UltraScan" );
40  return settings.value( "importDir", workBaseDir() + "/imports" ).toString();
41 }
42 
43 void US_Settings::set_importDir( const QString& dir )
44 {
45  QSettings settings( US3, "UltraScan" );
46  if ( dir == workBaseDir() + "/imports" )
47  settings.remove( "importDir" );
48  else
49  settings.setValue( "importDir", dir );
50 }
51 
52 // tmpDir
53 QString US_Settings::tmpDir( void )
54 {
55  QSettings settings( US3, "UltraScan" );
56  return settings.value( "tmpDir", workBaseDir() + "/tmp" ).toString();
57 }
58 
59 void US_Settings::set_tmpDir( const QString& dir )
60 {
61  QSettings settings( US3, "UltraScan" );
62  if ( dir == workBaseDir() + "/tmp" )
63  settings.remove( "tmpDir" );
64  else
65  settings.setValue( "tmpDir", dir );
66 }
67 
68 // dataDir
69 QString US_Settings::dataDir( void )
70 {
71  return ( workBaseDir() + "/data" );
72 }
73 
74 // archiveDir
75 QString US_Settings::archiveDir( void )
76 {
77  return ( workBaseDir() + "/archive" );
78 }
79 
80 // resultDir
81 QString US_Settings::resultDir( void )
82 {
83  return ( workBaseDir() + "/results" );
84 }
85 
86 // reportDir
87 QString US_Settings::reportDir( void )
88 {
89  return ( workBaseDir() + "/reports" );
90 }
91 
92 // etcDir
93 QString US_Settings::etcDir( void )
94 {
95  return ( workBaseDir() + "/etc" );
96 }
97 
98 // Base to application directory
99 QString US_Settings::appBaseDir( void )
100 {
101  QString base = qApp->applicationDirPath().remove( QRegExp( "/bin$" ) );
102 
103  if ( base.contains( ".app/Contents" ) )
104  { // For Mac, move up path to where ./bin exists
105  int ii = base.lastIndexOf( "/bin/" );
106 
107  if ( ii > 0 )
108  base = base.left( ii );
109  }
110 
111  return base;
112 }
113 
114 
115 // License
116 QStringList US_Settings::license( void )
117 {
118  QSettings settings( US3, "UltraScan" );
119  return settings.value( "license", QStringList() ).toStringList();
120 }
121 
122 void US_Settings::set_license( const QStringList& license )
123 {
124  QSettings settings( US3, "UltraScan" );
125  settings.setValue( "license", license );
126 }
127 
128 // Master Password
129 QByteArray US_Settings::UltraScanPW( void )
130 {
131  QSettings settings( US3, "UltraScan" );
132  return settings.value( "UltraScanPW" ).toByteArray(); // No default
133 }
134 
135 void US_Settings::set_UltraScanPW( const QByteArray& hash )
136 {
137  QSettings settings( US3, "UltraScan" );
138  settings.setValue( "UltraScanPW", hash );
139 }
140 
141 // Temperature Tolerance
143 {
144  QSettings settings( US3, "UltraScan" );
145  return settings.value( "tempTolerance", 0.5 ).toDouble(); // No default
146 }
147 
148 void US_Settings::set_tempTolerance( double tempTolerance )
149 {
150  QSettings settings( US3, "UltraScan" );
151  if ( tempTolerance == 0.5 )
152  settings.remove( "tempTolerance" );
153  else
154  settings.setValue( "tempTolerance", tempTolerance );
155 }
156 
157 // Beckman Bug
159 {
160  QSettings settings( US3, "UltraScan" );
161  return settings.value( "beckmanBug", false ).toBool(); // No default
162 }
163 
164 void US_Settings::set_beckmanBug( bool setBug )
165 {
166  QSettings settings( US3, "UltraScan" );
167  if ( ! setBug )
168  settings.remove( "beckmanBug" );
169  else
170  settings.setValue( "beckmanBug", true );
171 }
172 
173 // Default data location 1 = DB, 2 = Disk
175 {
176  QSettings settings( US3, "UltraScan" );
177  return settings.value( "dataLocation", 2 ).toInt();
178 }
179 
181 {
182  QSettings settings( US3, "UltraScan" );
183  if ( location == 2 )
184  settings.remove( "dataLocation" );
185  else
186  settings.setValue( "dataLocation", location );
187 }
188 
189 // us_debug
190 #ifdef NO_DB
191 static int us_settings_debug = 0;
192 int US_Settings::us_debug( void )
193 {
194  return us_settings_debug;
195 }
196 
197 void US_Settings::set_us_debug( int level )
198 {
199  us_settings_debug = level;
200 }
201 #else
203 {
204  QSettings settings( US3, "UltraScan" );
205  return settings.value( "us_debug", 0 ).toInt();
206 }
207 
208 void US_Settings::set_us_debug( int level )
209 {
210  QSettings settings( US3, "UltraScan" );
211  if ( level == 0 )
212  settings.remove( "us_debug" );
213  else
214  settings.setValue( "us_debug", level );
215 }
216 #endif
217 
218 // debug text
219 QStringList US_Settings::debug_text( void )
220 {
221  QSettings settings( US3, "UltraScan" );
222  return settings.value( "debug_text", "" ).toStringList();
223 }
224 
225 bool US_Settings::debug_match( QString match )
226 {
227  return debug_text().contains( match, Qt::CaseInsensitive );
228 }
229 
230 void US_Settings::set_debug_text( QStringList debuglist )
231 {
232  QSettings settings( US3, "UltraScan" );
233  if ( debuglist.count() == 0 )
234  settings.remove( "debug_text" );
235  else
236  settings.setValue( "debug_text", debuglist );
237 }
238 
239 // Investigator
241 {
242  QSettings settings( US3, "UltraScan" );
243  return settings.value( "us_investigator_name", "Not Available" ).toString();
244 }
245 
246 void US_Settings::set_us_inv_name( const QString& name )
247 {
248  QSettings settings( US3, "UltraScan" );
249  if ( name == "" )
250  settings.remove( "us_investigator_name" );
251  else
252  settings.setValue( "us_investigator_name", name );
253 }
254 
256 {
257  QSettings settings( US3, "UltraScan" );
258  return settings.value( "us_investigator_ID", -1 ).toInt();
259 }
260 
262 {
263  QSettings settings( US3, "UltraScan" );
264  if ( id == -1 )
265  settings.remove( "us_investigator_ID" );
266  else
267  settings.setValue( "us_investigator_ID", id );
268 }
269 
271 {
272  QSettings settings( US3, "UltraScan" );
273  return settings.value( "us_investigator_level", 0 ).toInt();
274 }
275 
277 {
278  QSettings settings( US3, "UltraScan" );
279  if ( level == 0 )
280  settings.remove( "us_investigator_level" );
281  else
282  settings.setValue( "us_investigator_level", level );
283 }
284 
285 // advanced level
287 {
288  QSettings settings( US3, "UltraScan" );
289  return settings.value( "advanced_level", 0 ).toInt();
290 }
291 
293 {
294  QSettings settings( US3, "UltraScan" );
295  if ( level == 0 )
296  settings.remove( "advanced_level" );
297  else
298  settings.setValue( "advanced_level", level );
299 }
300 
301 // Threads
303 {
304  QSettings settings( US3, "UltraScan" );
305  return settings.value( "threads", 1 ).toInt(); // No default
306 }
307 
308 void US_Settings::set_threads( int threads )
309 {
310  QSettings settings( US3, "UltraScan" );
311  if ( threads == 1 )
312  settings.remove( "threads" );
313  else
314  settings.setValue( "threads", threads );
315 }
316 
317 // Database Entries
318 
319 QList<QStringList> US_Settings::databases( void )
320 {
321  QSettings settings( US3, "UltraScan" );
322  QList<QStringList> dblist;
323  int dbCount = settings.value( "dbCount", 0 ).toInt();
324 
325  for ( int i = 0; i < dbCount; i++ )
326  {
327  QString key = QString( "dblist%1" ).arg( i );
328  dblist << settings.value( key ).toStringList();
329  }
330 
331  return dblist;
332 }
333 
334 void US_Settings::set_databases( const QList<QStringList>& dblist )
335 {
336  QSettings settings( US3, "UltraScan" );
337 
338  // First remove any existing database entries
339  if ( settings.contains( "dbCount" ) )
340  {
341  int count = settings.value( "dbCount" ).toInt();
342  for ( int i = 0; i < count; i++ )
343  {
344  QString key = QString( "dblist%1" ).arg( i );
345  settings.remove( key );
346  }
347  }
348 
349  int dbCount = dblist.size();
350 
351  for ( int i = 0; i < dbCount; i++ )
352  {
353  QString key = QString( "dblist%1" ).arg( i );
354  settings.setValue( key, dblist.at( i ) );
355  }
356 
357  settings.setValue( "dbCount", dbCount );
358 }
359 
360 QStringList US_Settings::defaultDB( void )
361 {
362  QSettings settings( US3, "UltraScan" );
363  return settings.value( "defaultDB", QStringList() ).toStringList();
364 }
365 
366 void US_Settings::set_defaultDB( const QStringList& defaultDB )
367 {
368  QSettings settings( US3, "UltraScan" );
369  if ( defaultDB.isEmpty() )
370  settings.remove( "defaultDB" );
371  else
372  settings.setValue( "defaultDB", defaultDB );
373 }