1 | /****************************************************************************
|
---|
2 | ** $Id: infodata.cpp 2 2005-11-16 15:49:26Z dmik $
|
---|
3 | **
|
---|
4 | ** Copyright (C) 1992-2002 Trolltech AS. All rights reserved.
|
---|
5 | **
|
---|
6 | ** This file is part of an example program for Qt. This example
|
---|
7 | ** program may be used, distributed and modified without limitation.
|
---|
8 | **
|
---|
9 | *****************************************************************************/
|
---|
10 |
|
---|
11 | #include "infodata.h"
|
---|
12 |
|
---|
13 |
|
---|
14 | // we hard code all nodes and data in InfoData class
|
---|
15 | InfoData::InfoData() :
|
---|
16 | nodes( 17, TRUE ), data( 17, TRUE )
|
---|
17 | {
|
---|
18 | nodes.setAutoDelete(TRUE);
|
---|
19 | data.setAutoDelete(TRUE);
|
---|
20 | QStringList *item;
|
---|
21 |
|
---|
22 | nodes.insert( "/", item = new QStringList( ) );
|
---|
23 | (*item) << "D network";
|
---|
24 | nodes.insert( "/network/", item = new QStringList() );
|
---|
25 | (*item) << "D workstations" << "D printers" << "D fax";
|
---|
26 | nodes.insert( "/network/workstations/", item = new QStringList() );
|
---|
27 | (*item) << "D nibble" << "D douglas";
|
---|
28 | nodes.insert( "/network/workstations/nibble/", item = new QStringList() );
|
---|
29 | (*item) << "F os" << "F cpu" << "F memory";
|
---|
30 | nodes.insert( "/network/workstations/douglas/", item = new QStringList() );
|
---|
31 | (*item) << "F os" << "F cpu" << "F memory";
|
---|
32 | nodes.insert( "/network/printers/", item = new QStringList() );
|
---|
33 | (*item) << "D overbitt" << "D kroksleiven";
|
---|
34 | nodes.insert( "/network/printers/overbitt/", item = new QStringList() );
|
---|
35 | (*item) << "D jobs" << "F type";
|
---|
36 | nodes.insert( "/network/printers/overbitt/jobs/", item = new QStringList() );
|
---|
37 | (*item) << "F job1" << "F job2";
|
---|
38 | nodes.insert( "/network/printers/kroksleiven/", item = new QStringList() );
|
---|
39 | (*item) << "D jobs" << "F type";
|
---|
40 | nodes.insert( "/network/printers/kroksleiven/jobs/", item = new QStringList() );
|
---|
41 | nodes.insert( "/network/fax/", item = new QStringList() );
|
---|
42 | (*item) << "F last_number";
|
---|
43 |
|
---|
44 | data.insert( "/network/workstations/nibble/os", new QString( "Linux" ) );
|
---|
45 | data.insert( "/network/workstations/nibble/cpu", new QString( "AMD Athlon 1000" ) );
|
---|
46 | data.insert( "/network/workstations/nibble/memory", new QString( "256 MB" ) );
|
---|
47 | data.insert( "/network/workstations/douglas/os", new QString( "Windows 2000" ) );
|
---|
48 | data.insert( "/network/workstations/douglas/cpu", new QString( "2 x Intel Pentium III 800" ) );
|
---|
49 | data.insert( "/network/workstations/douglas/memory", new QString( "256 MB" ) );
|
---|
50 | data.insert( "/network/printers/overbitt/type", new QString( "Lexmark Optra S 1255 PS" ) );
|
---|
51 | data.insert( "/network/printers/overbitt/jobs/job1",
|
---|
52 | new QString( "Qt manual\n" "A4 size\n" "3000 pages" ) );
|
---|
53 | data.insert( "/network/printers/overbitt/jobs/job2",
|
---|
54 | new QString( "Monthly report\n" "Letter size\n" "24 pages\n" "8 copies" ) );
|
---|
55 | data.insert( "/network/printers/kroksleiven/type", new QString( "HP C LaserJet 4500-PS" ) );
|
---|
56 | data.insert( "/network/fax/last_number", new QString( "22 22 22 22" ) );
|
---|
57 | }
|
---|
58 |
|
---|
59 | QStringList InfoData::list( QString path, bool *found ) const
|
---|
60 | {
|
---|
61 | if ( !path.endsWith( "/" ) )
|
---|
62 | path += "/";
|
---|
63 | if ( !path.startsWith( "/" ) )
|
---|
64 | path = "/" + path;
|
---|
65 | QStringList *list = nodes[ path ];
|
---|
66 | if ( list ) {
|
---|
67 | *found = TRUE;
|
---|
68 | return *list;
|
---|
69 | } else {
|
---|
70 | *found = FALSE;
|
---|
71 | QStringList empty;
|
---|
72 | return empty;
|
---|
73 | }
|
---|
74 | }
|
---|
75 |
|
---|
76 | QString InfoData::get( QString path, bool *found ) const
|
---|
77 | {
|
---|
78 | if ( !path.startsWith( "/" ) )
|
---|
79 | path = "/" + path;
|
---|
80 | QString *file = data[ path ];
|
---|
81 | if ( file ) {
|
---|
82 | *found = TRUE;
|
---|
83 | return *file;
|
---|
84 | } else {
|
---|
85 | *found = FALSE;
|
---|
86 | QString empty;
|
---|
87 | return empty;
|
---|
88 | }
|
---|
89 | }
|
---|