Browse Source

Merge branch 'master' into development

Neal Wilson 8 years ago
parent
commit
340871df88
65 changed files with 43179 additions and 34359 deletions
  1. 1
    1
      README
  2. BIN
      config/Translations/config.de.qm
  3. 2810
    0
      config/Translations/config.de.ts
  4. 2309
    0
      config/Translations/config.ts
  5. 1
    1
      config/Windows/editbatchdetails.xml
  6. 1
    2
      config/Windows/greeninventory.xml
  7. 1
    1
      config/Windows/newbatch.xml
  8. 0
    1
      docs/documentation.html
  9. 4
    8
      docs/documentation/part2.html
  10. 79
    0
      docs/documentation/windowreference/databaseconnection.html
  11. BIN
      docs/documentation/windowreference/databaseconnection.png
  12. BIN
      docs/documentation/windowreference/databasemenu.png
  13. BIN
      docs/documentation/windowreference/inventoryreports.png
  14. 202
    0
      docs/documentation/windowreference/logging.html
  15. BIN
      docs/documentation/windowreference/logging.png
  16. BIN
      docs/documentation/windowreference/loggingbatch.png
  17. BIN
      docs/documentation/windowreference/loggingfile.png
  18. BIN
      docs/documentation/windowreference/logginggraph.png
  19. BIN
      docs/documentation/windowreference/logginglog.png
  20. 156
    0
      docs/documentation/windowreference/navigation.html
  21. BIN
      docs/documentation/windowreference/navigation.png
  22. 38
    0
      docs/documentation/windowreference/openconfigurationfile.html
  23. BIN
      docs/documentation/windowreference/openconfigurationfile.png
  24. BIN
      docs/documentation/windowreference/productionreports.png
  25. BIN
      docs/documentation/windowreference/purchasereports.png
  26. BIN
      docs/documentation/windowreference/reportsmenu.png
  27. BIN
      docs/documentation/windowreference/salesreport.png
  28. 1396
    0
      src/Translations/Typica.ts
  29. BIN
      src/Translations/Typica_de.qm
  30. 1396
    0
      src/Translations/Typica_de.ts
  31. 2
    0
      src/Typica.pro
  32. 5
    5
      src/abouttypica.cpp
  33. 2
    2
      src/abouttypica.h
  34. 20
    20
      src/daterangeselector.cpp
  35. 4
    4
      src/daterangeselector.h
  36. 2
    2
      src/draglabel.cpp
  37. 2
    2
      src/draglabel.h
  38. 7
    7
      src/helpmenu.cpp
  39. 2
    2
      src/helpmenu.h
  40. 69
    0
      src/licensewindow.cpp
  41. 24
    0
      src/licensewindow.h
  42. 6
    3
      src/moc_helpmenu.cpp
  43. 15
    6
      src/moc_typica.cpp
  44. 31810
    31572
      src/qrc_resources.cpp
  45. 6
    6
      src/resources/Info.plist
  46. 7
    83
      src/resources/html/about.html
  47. 6
    6
      src/scale.cpp
  48. 2
    2
      src/scale.h
  49. 2697
    2453
      src/typica.cpp
  50. 6
    6
      src/typica.rc
  51. 9
    8
      src/typica.w
  52. 6
    6
      src/units.cpp
  53. 2
    2
      src/units.h
  54. 5
    5
      src/webelement.cpp
  55. 2
    2
      src/webelement.h
  56. 11
    11
      src/webview.cpp
  57. 2
    2
      src/webview.h
  58. 11
    31
      web/output/download-mac-latest.html
  59. 11
    31
      web/output/download-windows-latest.html
  60. 3
    3
      web/output/downloads.html
  61. 8
    13
      web/output/index.html
  62. 1
    1
      web/src/pages/download-mac-latest.m4
  63. 1
    1
      web/src/pages/download-windows-latest.m4
  64. 10
    33
      web/src/pages/fragments/downloadfragment.m4
  65. 9
    15
      web/src/pages/index.m4

+ 1
- 1
README View File

6
 
6
 
7
 Typica is free software released under the MIT license as follows:
7
 Typica is free software released under the MIT license as follows:
8
 
8
 
9
-Copyright 2007-2015 Neal Evan Wilson
9
+Copyright 2007-2016 Neal Evan Wilson
10
 
10
 
11
 Permission is hereby granteed, free of charge, to any person obtaining a copy
11
 Permission is hereby granteed, free of charge, to any person obtaining a copy
12
 of this software and associated documentation files (the "Software"), to deal
12
 of this software and associated documentation files (the "Software"), to deal

BIN
config/Translations/config.de.qm View File


+ 2810
- 0
config/Translations/config.de.ts
File diff suppressed because it is too large
View File


+ 2309
- 0
config/Translations/config.ts
File diff suppressed because it is too large
View File


+ 1
- 1
config/Windows/editbatchdetails.xml View File

43
                     unitEdit.text = TTR("editBatchDetails", "Kg");
43
                     unitEdit.text = TTR("editBatchDetails", "Kg");
44
                     conversion = 2.2;
44
                     conversion = 2.2;
45
                 } else {
45
                 } else {
46
-                    unitEdit.text = TTR("editBatchDetails", "Lb";
46
+                    unitEdit.text = TTR("editBatchDetails", "Lb");
47
                 }
47
                 }
48
             };
48
             };
49
             submit.clicked.connect(function() {
49
             submit.clicked.connect(function() {

+ 1
- 2
config/Windows/greeninventory.xml View File

31
         <![CDATA[
31
         <![CDATA[
32
             var types = findChildObject(this, 'transactiontype');
32
             var types = findChildObject(this, 'transactiontype');
33
             types.addItem(TTR("inventory", "inventory"));
33
             types.addItem(TTR("inventory", "inventory"));
34
-            types.addItem(TTR("inventory", "loss");
34
+            types.addItem(TTR("inventory", "loss"));
35
             var optionalDisplay = findChildObject(this, 'optional');
35
             var optionalDisplay = findChildObject(this, 'optional');
36
             var units = findChildObject(this, 'units');
36
             var units = findChildObject(this, 'units');
37
             units.addItem(TTR("inventory", "bag"));
37
             units.addItem(TTR("inventory", "bag"));
62
             var value = findChildObject(this, 'quantity');
62
             var value = findChildObject(this, 'quantity');
63
             var reason = findChildObject(this, 'reason');
63
             var reason = findChildObject(this, 'reason');
64
             var reasonlabel = findChildObject(this, 'reasonlabel');
64
             var reasonlabel = findChildObject(this, 'reasonlabel');
65
-            reason.enabled = false;
66
             button.clicked.connect(function() {
65
             button.clicked.connect(function() {
67
                 q = "INSERT INTO ";
66
                 q = "INSERT INTO ";
68
                 q += (types.currentIndex == 0 ?
67
                 q += (types.currentIndex == 0 ?

+ 1
- 1
config/Windows/newbatch.xml View File

243
                                     displayValue = convertFromPounds(displayValue, "oz");
243
                                     displayValue = convertFromPounds(displayValue, "oz");
244
                                     break;
244
                                     break;
245
                             }
245
                             }
246
-                            displayValue = "" + displayValue + " (" + bagCount + " bags)";
246
+                            displayValue = "" + Number(displayValue).toFixed(3) + " (" + Number(bagCount).toFixed(3) + " bags)";
247
                             if(table.data(r, 2, 0) != displayValue)
247
                             if(table.data(r, 2, 0) != displayValue)
248
                             {
248
                             {
249
                                 table.setData(r, 2, displayValue, 0);
249
                                 table.setData(r, 2, displayValue, 0);

+ 0
- 1
docs/documentation.html View File

16
 					<a class="tab" href="downloads.html" >Downloads</a>
16
 					<a class="tab" href="downloads.html" >Downloads</a>
17
 					<a class="tab active" >Documentation</a>
17
 					<a class="tab active" >Documentation</a>
18
 					<a class="tab" href="screenshots.html" >Screenshots and Videos</a>
18
 					<a class="tab" href="screenshots.html" >Screenshots and Videos</a>
19
-					<a class="tab" href="involvement.html" >Get Involved</a>
20
 					<a href="http://appliedcoffeetechnology.tumblr.com/tagged/Typica" class="tab">Blog</a>
19
 					<a href="http://appliedcoffeetechnology.tumblr.com/tagged/Typica" class="tab">Blog</a>
21
 				</div>
20
 				</div>
22
 			</div>
21
 			</div>

+ 4
- 8
docs/documentation/part2.html View File

16
 					<a class="tab" href="../downloads.html" >Downloads</a>
16
 					<a class="tab" href="../downloads.html" >Downloads</a>
17
 					<a class="tab active" href="../documentation.html" >Documentation</a>
17
 					<a class="tab active" href="../documentation.html" >Documentation</a>
18
 					<a class="tab" href="../screenshots.html" >Screenshots and Videos</a>
18
 					<a class="tab" href="../screenshots.html" >Screenshots and Videos</a>
19
-					<a class="tab" href="../involvement.html" >Get Involved</a>
20
 					<a href="http://appliedcoffeetechnology.tumblr.com/tagged/Typica" class="tab">Blog</a>
19
 					<a href="http://appliedcoffeetechnology.tumblr.com/tagged/Typica" class="tab">Blog</a>
21
 				</div>
20
 				</div>
22
 			</div>
21
 			</div>
27
 				<ul>
26
 				<ul>
28
 					<li><a href="part2/application.html">Opening the Application</a></li>
27
 					<li><a href="part2/application.html">Opening the Application</a></li>
29
 					<ul>
28
 					<ul>
30
-						<li><a href="part2/database-connection.html">Database Connection Settings</a></li>
31
-						<li><a href="part2/open-configuration.html">Open Configuration File</a></li>
29
+						<li><a href="windowreference/databaseconnection.html">Connecting to a database</a></li>
30
+						<li><a href="windowreference/openconfigurationfile">Open Configuration File</a></li>
32
 						<ul>
31
 						<ul>
33
 							<li><a href="part2/argument-c.html">Eliminating the Configuration Prompt</a></li>
32
 							<li><a href="part2/argument-c.html">Eliminating the Configuration Prompt</a></li>
34
 						</ul>
33
 						</ul>
35
-						<li><a>Choose Your Path</a></li>
34
+						<li><a href="windowreference/navigation.html">Main navigation window</a></li>
36
 					</ul>
35
 					</ul>
37
 					<li><a>Configure Roasters</a></li>
36
 					<li><a>Configure Roasters</a></li>
38
-					<li><a>Roast Coffee</a></li>
37
+					<li><a href="windowreference/logging.html">The Logging View</a></li>
39
 					<li><a>Purchase Green Coffee</a></li>
38
 					<li><a>Purchase Green Coffee</a></li>
40
 					<li><a>Manage Roasted Coffee Items</a></li>
39
 					<li><a>Manage Roasted Coffee Items</a></li>
41
 					<li><a>Update Inventory</a></li>
40
 					<li><a>Update Inventory</a></li>
42
-					<li><a>Batch Log</a></li>
43
 					<li><a>Cupping</a></li>
41
 					<li><a>Cupping</a></li>
44
 					<li><a>Import Target Roast Profiles</a></li>
42
 					<li><a>Import Target Roast Profiles</a></li>
45
-					<li><a>Invoice List</a></li>
46
 					<li><a>Enter Green Coffee Sales</a></li>
43
 					<li><a>Enter Green Coffee Sales</a></li>
47
-					<li><a>Reports</a></li>
48
 				</ul>
44
 				</ul>
49
 			</div>
45
 			</div>
50
 		</div>
46
 		</div>

+ 79
- 0
docs/documentation/windowreference/databaseconnection.html View File

1
+<html>
2
+    <head>
3
+        <title>Typica - Connecting to a database</title>
4
+        <link rel="stylesheet" type="text/css" href="../../style.css">
5
+    </head>
6
+    <body>
7
+        <div id="page">
8
+            <div id="topmatter">
9
+                <div id="topbanner">
10
+                    <img src="../../logo96.png" height="96px" width="96px" alt="Typica logo" />
11
+                    <h1>Typica</h1>
12
+                    <h2>Data for Coffee Roasters</h2>
13
+                </div>
14
+                <div id="menu">
15
+                    <a class="tab" href="../../index.html">Project Home</a>
16
+                    <a class="tab" href="../../downloads.html" >Downloads</a>
17
+                    <a class="tab active" >Documentation</a>
18
+                    <a class="tab" href="../../screenshots.html" >Screenshots and Videos</a>
19
+                    <a href="http://appliedcoffeetechnology.tumblr.com/tagged/Typica" class="tab">Blog</a>
20
+                </div>
21
+            </div>
22
+            <div id="maintext">
23
+                <h1>Connecting to a database</h1>
24
+                <p>When opening Typica, if you have not previously connected to
25
+                a database, you will be prompted for information needed to
26
+                connect to that database.</p>
27
+
28
+                <img src="databaseconnection.png"/>
29
+                
30
+                <p>If you do not want to connect to a database, you can click
31
+                the Cancel button, but doing so means that most of the features
32
+                of Typica will not work. Clicking the Connect button will cause
33
+                Typica to attempt to connect to the database with the
34
+                information provided in the fields. An error message will be
35
+                presented if that connection attempt fails.</p>
36
+                
37
+                <p>After either successfully connecting to a database or
38
+                cancelling, you will be prompted to
39
+                <a href="openconfigurationfile.html">open a configuration
40
+                file.</a></p>
41
+                
42
+                <h2>Field descriptions</h2>
43
+                
44
+                <h3>Database driver</h3>
45
+                <p>Currently the only database supported is PostgreSQL.</p>
46
+                
47
+                <h3>Host name</h3>
48
+                <p>This identifies the computer the database is installed on.
49
+                If the database is on the same computer as Typica, this can be
50
+                <tt>localhost</tt> otherwise it will most likely be an IP
51
+                address for another computer on your network.</p>
52
+                
53
+                <h3>Port number</h3>
54
+                <p>PostgreSQL normally communicates on port 5432 but if you
55
+                have PostgreSQL configured to communicate over a different port
56
+                this field should be changed to match.</p>
57
+                
58
+                <h3>Database name</h3>
59
+                <p>During installation, the PostgreSQL installer creates a
60
+                database called <tt>postgres</tt>. If you've created a new
61
+                database for use with Typica, its name should be used.</p>
62
+                
63
+                <h3>User name</h3>
64
+                <p>During installation, the PostgreSQL installer creates a
65
+                database user called <tt>postgres</tt>. If you don't want to
66
+                create separate users, this account can be used. Typica keeps
67
+                track of which database user performed many data entry tasks so
68
+                it is recommended to create new users for everybody who will be
69
+                using Typica.</p>
70
+                
71
+                <h3>Password</h3>
72
+                <p>This is the password previously set for the database user.
73
+                If you are using the <tt>postgres</tt> user, this was set
74
+                during PostgreSQL installation.</p>
75
+
76
+            </div>
77
+        </div>
78
+    </body>
79
+</html>

BIN
docs/documentation/windowreference/databaseconnection.png View File


BIN
docs/documentation/windowreference/databasemenu.png View File


BIN
docs/documentation/windowreference/inventoryreports.png View File


+ 202
- 0
docs/documentation/windowreference/logging.html View File

1
+<html>
2
+    <head>
3
+        <title>Typica - The Logging View</title>
4
+        <link rel="stylesheet" type="text/css" href="../../style.css">
5
+    </head>
6
+    <body>
7
+        <div id="page">
8
+            <div id="topmatter">
9
+                <div id="topbanner">
10
+                    <img src="../../logo96.png" height="96px" width="96px" alt="Typica logo" />
11
+                    <h1>Typica</h1>
12
+                    <h2>Data for Coffee Roasters</h2>
13
+                </div>
14
+                <div id="menu">
15
+                    <a class="tab" href="../../index.html">Project Home</a>
16
+                    <a class="tab" href="../../downloads.html" >Downloads</a>
17
+                    <a class="tab active" >Documentation</a>
18
+                    <a class="tab" href="../../screenshots.html" >Screenshots and Videos</a>
19
+                    <a href="http://appliedcoffeetechnology.tumblr.com/tagged/Typica" class="tab">Blog</a>
20
+                </div>
21
+            </div>
22
+            <div id="maintext">
23
+                <h1>The Logging View</h1>
24
+                <p>The appearance of the logging view depends on how the selected
25
+                roaster was configured, but there are a few main areas where
26
+                different interface items are located.</p>
27
+
28
+                <img src="logging.png"/>
29
+                
30
+                <p>The window title will change to reflect a loaded target roast
31
+                profile and can provide the name of the coffee being roasted.</p>
32
+
33
+                <p>The menu bar provides access to a number of operations such
34
+                as saving or loading data on disk, entering new batch information,
35
+                clearing recorded data, changing how data is displayed, and more.
36
+                Note that on a Mac the menu bar will be at the top of the screen
37
+                and not within the window as is normal on that platform.</p>
38
+
39
+                <p>Continuing down the window is the indicator panel. This is
40
+                where current temperature indicators, rate of change information,
41
+                and timers will be displayed. The number, type, and order of
42
+                indicators depends on the roaster configuration. There are
43
+                splitter handles between each indicator which can be used to
44
+                control the width of each indicator. The last indicator should
45
+                always be the batch timer. If you don't see this, there should
46
+                be a splitter handle to the right of the last visible indicator
47
+                which can be dragged left to reveal additional indicators. A
48
+                splitter handle at the bottom can be used to control the height
49
+                of all indicators.</p>
50
+
51
+                <p>Next is a row of buttons. At minimum this will include buttons
52
+                for starting and stopping the batch, but a number of other
53
+                controls for inserting notes in the log can also be configured
54
+                to appear here. Under these buttons is another splitter handle
55
+                that can be used to control the height of to table and graph
56
+                below.</p>
57
+
58
+                <p>Below this and on the left is a table view showing times,
59
+                temperatures, and notes for both a target profile if one is
60
+                loaded and the current batch if one is being recorded.</p>
61
+
62
+                <p>To the right of the table view is a graph showing both
63
+                loaded target profiles, if any, and current batch data.</p>
64
+
65
+                <h2>Buttons</h2>
66
+
67
+                <h3>Start Batch</h3>
68
+                <p>This button starts recording roasting data. If the New Batch
69
+                or New Sample Batch windows were used, the roasting data can be
70
+                associated with a batch in the database. Clicking this will
71
+                also start the batch timer from 00:00, start any other timers
72
+                that have been configured to start from the start of the batch,
73
+                and create any annotations that have been configured for entry
74
+                at the start of the batch if any.</p>
75
+
76
+                <h3>Stop Batch</h3>
77
+                <p>This button stops the batch timer, stops recording roasting
78
+                data, and if the New Batch or New Sample Batch windows were
79
+                used, the window with data associated with the finished batch
80
+                will be raised.</p>
81
+
82
+                <h3>Additional Buttons</h3>
83
+                <p>Additional buttons and controls will appear if these have
84
+                been configured.</p>
85
+
86
+                <h2>The File Menu</h2>
87
+
88
+                <img src="loggingfile.png" />
89
+
90
+                <h3>Open...</h3>
91
+                <p>This can be used to load roasting data previously saved to
92
+                disk. This is mainly useful when receiving roasting data that
93
+                has been shared from another roaster. In normal use it is much
94
+                better to use information saved to the database instead of
95
+                managing files manually.</p>
96
+
97
+                <h3>Save...</h3>
98
+                <p>This can be used to save roasting data to disk. This is
99
+                mainly useful to share roasting data with another person using
100
+                Typica. For other uses it is much better to use the New Batch
101
+                and New Sample Batch windows to have roasting data saved to the
102
+                database.</p>
103
+
104
+                <h3>Print...</h3>
105
+                <p>This can be used to print roasting data. The print window
106
+                will appear, allowing the information printed to be
107
+                customized.</p>
108
+
109
+                <h3>Export CSV...</h3>
110
+                <p>This can be used to export roasting data as a CSV file which
111
+                can be opened in all popular spreadsheet applications or used
112
+                with a wide variety of other tools. If this is something that
113
+                you frequently require, it may be a good idea to reach out to
114
+                the author with your use case and see if there is a way to do
115
+                what you want within Typica or if Typica should be extended to
116
+                support your use case.</p>
117
+
118
+                <h3>Export XHTML+SVG</h3>
119
+                <p>This can be used to produce the same information that can be
120
+                printed, but produces that as an XHTML+SVG document.</p>
121
+
122
+                <h3>Quit</h3>
123
+                <p>On some platforms this might be called Exit and on the Mac
124
+                this will be moved under the Typica menu. It is used to quit
125
+                Typica.</p>
126
+                
127
+                <h2>The Batch Menu</h2>
128
+                
129
+                <img src="loggingbatch.png" />
130
+                
131
+                <h3>New Batch...</h3>
132
+                <p>This is the preferred way to enter the details of a
133
+                production roast such that recorded roasting data can be
134
+                associated with a batch and green coffee inventory can be
135
+                adjusted. Selecting this will open the New Batch window.</p>
136
+                
137
+                <h3>New Sample Batch...</h3>
138
+                <p>When roasting a green coffee not in inventory such as
139
+                pre-purchase samples, you can use this menu item to open the
140
+                New Sample Batch window and associate the roasting data with
141
+                additional information about the coffee.</p>
142
+                
143
+                <h3>Load Additional Profiles...</h3>
144
+                <p>If you do not have a target roast profile for the roasted
145
+                coffee item you are producing but have a batch that you would
146
+                like to have available for reference previously saved in the
147
+                database, you can use this menu item to load that information
148
+                as a target roast profile.</p>
149
+                
150
+                <h2>The Log Menu</h2>
151
+                
152
+                <img src="logginglog.png" />
153
+                
154
+                <h3>Display Celsius</h3>
155
+                <p>This menu item can be used to change displayed temperature
156
+                measurements to Celsius.</p>
157
+                
158
+                <h3>Display Fahrenheit</h3>
159
+                <p>This menu item can be used to change displayed temperature
160
+                measurements to Fahrenheit.</p>
161
+                
162
+                <h3>New Sample Parameters</h3>
163
+                <p>If a Counting Button has been configured, this menu item
164
+                will be available to change the annotation text or reset the
165
+                number used in annotations when that button is activated.</p>
166
+                
167
+                <h3>Clear Log</h3>
168
+                <p>This menu item removes all information currently visible in
169
+                the table and graph views.</p>
170
+                
171
+                <h3>Millisecond View</h3>
172
+                <h3>1 Second View</h3>
173
+                <h3>5 Second View</h3>
174
+                <h3>10 Second View</h3>
175
+                <h3>15 Second View</h3>
176
+                <h3>30 Second View</h3>
177
+                <h3>1 Minute View</h3>
178
+                
179
+                <p>These items affect the table view. The millisecond view will
180
+                show every measurement in the table while the other views will
181
+                limit the entries shown to one per indicated interval with the
182
+                exception of times associated with an annotation which will
183
+                always be shown regardless of the selected view.</p>
184
+                
185
+                <h3>Manual Entry</h3>
186
+                <p>This can be used for entering roasting data collected when
187
+                not connected to a roaster. The utility of this feature is
188
+                somewhat limited and generally not worth using.</p>
189
+                
190
+                <h2> The Graph Menu</h2>
191
+                
192
+                <img src="logginggraph.png" />
193
+                
194
+                <h3>Reset Translation</h3>
195
+                <p>If the roaster in use has been configured to use roast
196
+                profile translation, this item can be used to reset any
197
+                currently applied translation transformation in the graph.</p>
198
+                
199
+            </div>
200
+        </div>
201
+    </body>
202
+</html>

BIN
docs/documentation/windowreference/logging.png View File


BIN
docs/documentation/windowreference/loggingbatch.png View File


BIN
docs/documentation/windowreference/loggingfile.png View File


BIN
docs/documentation/windowreference/logginggraph.png View File


BIN
docs/documentation/windowreference/logginglog.png View File


+ 156
- 0
docs/documentation/windowreference/navigation.html View File

1
+<html>
2
+    <head>
3
+        <title>Typica - Choose Your Path</title>
4
+        <link rel="stylesheet" type="text/css" href="../../style.css">
5
+    </head>
6
+    <body>
7
+        <div id="page">
8
+            <div id="topmatter">
9
+                <div id="topbanner">
10
+                    <img src="../../logo96.png" height="96px" width="96px" alt="Typica logo" />
11
+                    <h1>Typica</h1>
12
+                    <h2>Data for Coffee Roasters</h2>
13
+                </div>
14
+                <div id="menu">
15
+                    <a class="tab" href="../../index.html">Project Home</a>
16
+                    <a class="tab" href="../../downloads.html" >Downloads</a>
17
+                    <a class="tab active" >Documentation</a>
18
+                    <a class="tab" href="../../screenshots.html" >Screenshots and Videos</a>
19
+                    <a href="http://appliedcoffeetechnology.tumblr.com/tagged/Typica" class="tab">Blog</a>
20
+                </div>
21
+            </div>
22
+            <div id="maintext">
23
+                <h1>Main navigation window</h1>
24
+                <p>Most of the functionality in Typica is available through the
25
+                main navigation window.</p>
26
+
27
+                <img src="navigation.png"/>
28
+                
29
+                <h2>Buttons</h2>
30
+                
31
+                <h3>Configure Roasters</h3>
32
+                
33
+                <p>Typica can communicate with different pieces of data
34
+                acquisition hardware which must be configured before use.
35
+                Various features related to recording roasting data can be
36
+                set in the configuration
37
+                window.
38
+                
39
+                <h3>Roast Coffee</h3>
40
+                
41
+                <p>Once at least one coffee roaster has been configured, it
42
+                will be available from the selector next to the Roast Coffee
43
+                button. When you want to roast coffee, select the machine
44
+                you'll be using and click the Roast Coffee button. This will
45
+                take you to <a href="logging.html">the logging view.</a></p>
46
+                
47
+                <h3>Purchase Green Coffee</h3>
48
+                
49
+                <p>Typica tracks green coffee inventory. This button allows
50
+                you to enter the details of green coffee purchases.</p>
51
+                
52
+                <h3>Manage Roasted Coffee Items</h3>
53
+                
54
+                <p>When entering the details of a new production batch, you
55
+                will want to select a roasted coffee item. This is connected
56
+                to the green coffee(s) used, a target roast profile and
57
+                roasting specification if set. This button allows you to create
58
+                new roasted coffee items, discontinue items so that they will
59
+                not show up in lists, and bring back old items.</p>
60
+                
61
+                <h3>Edit Roasting Specification</h3>
62
+                
63
+                <p>Expected percent weight loss and other information can be
64
+                presented when roasting coffee for use in determining if a
65
+                batch matches its product specification.</p>
66
+                
67
+                <h3>Update Inventory</h3>
68
+                
69
+                <p>Inventory and loss transactions can be used to adjust
70
+                green coffee inventory.</p>
71
+                
72
+                <h3>New Cupping Session</h3>
73
+                <h3>Join Cupping Session</h3>
74
+                <h3>Summarize Cupping Session</h3>
75
+                
76
+                <p>Typica includes a set of cupping features. Some people use
77
+                this, but the author does not recommend it. Something much
78
+                better will be available in the future.</p>
79
+                
80
+                <h3>View Target Roast Profiles</h3>
81
+                
82
+                <p>Any data ever saved as a target roast profile for roasted
83
+                coffee items can be seen here.</p>
84
+                
85
+                <h3>Import Target Roast Profiles</h3>
86
+                
87
+                <p>It is possible to save batch data to disk instead of or in
88
+                addition to saving that to the database. These files can be
89
+                shared with other people using Typica. If you want to set data
90
+                from one of these files as a target roast profile for a given
91
+                roasted coffee item, this is where you do that.
92
+                
93
+                <h3>Enter Green Coffee Sales</h3>
94
+                
95
+                <p>If you sell green coffee, the inventory can be adjusted to
96
+                reflect that here.</p>
97
+                
98
+                <h2>Reports Menu</h2>
99
+                
100
+                <img src="reportsmenu.png" />
101
+                
102
+                <h3>Production</h3>
103
+                
104
+                <p>Production reports present information related to coffee
105
+                roasting activity.</p>
106
+                
107
+                <img src="productionreports.png" />
108
+                
109
+                <h3>Average Use and Cost by Origin</h3>
110
+                <h3>Previous Year Production Comparison</h3>
111
+                <h3>Cost of Green Coffee for Roasted Coffee</h3>
112
+                <h3>Daily Production Report (Detailed)</h3>
113
+                <h3>Batch Log</h3>
114
+                <h3>Previous Year Production Comparison By Month</h3>
115
+                <h3>Production Summary</h3>
116
+                <h3>Reminders</h3>
117
+                <h3>Recent Average Coffee Production</h3>
118
+                
119
+                <h3>Purchase</h3>
120
+                
121
+                <p>Purchase reports present information related to green coffee
122
+                purchases.</p>
123
+                
124
+                <img src="purchasereports.png" />
125
+                
126
+                <h3>Coffee Purchase Previous Years Comparison</h3>
127
+                <h3>Invoices</h3>
128
+                
129
+                <h3>Sales</h3>
130
+                
131
+                <p>Sales reports present information related to sales.</p>
132
+                
133
+                <img src="salesreport.png" />
134
+                
135
+                <h3>Green Coffee Sales</h3>
136
+                
137
+                <h3>Inventory</h3>
138
+                
139
+                <p>Inventory reports present information on inventory.</p>
140
+                
141
+                <img src="inventoryreports.png" />
142
+                
143
+                <h3>Inventory Change Summary</h3>
144
+                <h3>Current Inventory and Availability Projection</h3>
145
+                <h3>Item Transactions</h3>
146
+                
147
+                <h2>Database Menu</h2>
148
+                <h3>Forget Connection Details</h3>
149
+                <p>This menu item can be used to force Typica to prompt for
150
+                database connection information the next time Typica is
151
+                opened.</p>
152
+                
153
+            </div>
154
+        </div>
155
+    </body>
156
+</html>

BIN
docs/documentation/windowreference/navigation.png View File


+ 38
- 0
docs/documentation/windowreference/openconfigurationfile.html View File

1
+<html>
2
+    <head>
3
+        <title>Typica - Open Configuration File</title>
4
+        <link rel="stylesheet" type="text/css" href="../../style.css">
5
+    </head>
6
+    <body>
7
+        <div id="page">
8
+            <div id="topmatter">
9
+                <div id="topbanner">
10
+                    <img src="../../logo96.png" height="96px" width="96px" alt="Typica logo" />
11
+                    <h1>Typica</h1>
12
+                    <h2>Data for Coffee Roasters</h2>
13
+                </div>
14
+                <div id="menu">
15
+                    <a class="tab" href="../../index.html">Project Home</a>
16
+                    <a class="tab" href="../../downloads.html" >Downloads</a>
17
+                    <a class="tab active" >Documentation</a>
18
+                    <a class="tab" href="../../screenshots.html" >Screenshots and Videos</a>
19
+                    <a href="http://appliedcoffeetechnology.tumblr.com/tagged/Typica" class="tab">Blog</a>
20
+                </div>
21
+            </div>
22
+            <div id="maintext">
23
+                <h1>Open Configuration File</h1>
24
+                <p>Most of Typica's appearance and functionality is controlled
25
+                by a set of configuration files. This documentation covers an
26
+                example configuration included with Typica. When prompted to
27
+                open a configuration file, select the config.xml file included
28
+                with Typica. When switching to a new version of Typica, it is
29
+                important to use the configuration file included with the new
30
+                version and not the old one. Opening that file will open the
31
+                <a href="navigation.html">main navigation window.</a></p>
32
+
33
+                <img src="openconfigurationfile.png"/>
34
+                
35
+            </div>
36
+        </div>
37
+    </body>
38
+</html>

BIN
docs/documentation/windowreference/openconfigurationfile.png View File


BIN
docs/documentation/windowreference/productionreports.png View File


BIN
docs/documentation/windowreference/purchasereports.png View File


BIN
docs/documentation/windowreference/reportsmenu.png View File


BIN
docs/documentation/windowreference/salesreport.png View File


+ 1396
- 0
src/Translations/Typica.ts
File diff suppressed because it is too large
View File


BIN
src/Translations/Typica_de.qm View File


+ 1396
- 0
src/Translations/Typica_de.ts
File diff suppressed because it is too large
View File


+ 2
- 0
src/Typica.pro View File

44
 RC_FILE = typica.rc
44
 RC_FILE = typica.rc
45
 ICON = resources/icons/appicons/logo.icns
45
 ICON = resources/icons/appicons/logo.icns
46
 QMAKE_INFO_PLIST = resources/Info.plist
46
 QMAKE_INFO_PLIST = resources/Info.plist
47
+
48
+CODECFORTR = UTF-8

+ 5
- 5
src/abouttypica.cpp View File

1
-/*265:*/
1
+/*275:*/
2
 #line 33 "./abouttypica.w"
2
 #line 33 "./abouttypica.w"
3
 
3
 
4
 #include "abouttypica.h"
4
 #include "abouttypica.h"
5
 
5
 
6
-/*266:*/
6
+/*276:*/
7
 #line 42 "./abouttypica.w"
7
 #line 42 "./abouttypica.w"
8
 
8
 
9
 AboutTypica::AboutTypica():QMainWindow(NULL)
9
 AboutTypica::AboutTypica():QMainWindow(NULL)
17
 setCentralWidget(banner);
17
 setCentralWidget(banner);
18
 }
18
 }
19
 
19
 
20
-#line 6404 "./typica.w"
20
+#line 6592 "./typica.w"
21
 
21
 
22
-/*:266*/
22
+/*:276*/
23
 #line 36 "./abouttypica.w"
23
 #line 36 "./abouttypica.w"
24
 
24
 
25
 
25
 
26
-/*:265*/
26
+/*:275*/

+ 2
- 2
src/abouttypica.h View File

1
-/*264:*/
1
+/*274:*/
2
 #line 14 "./abouttypica.w"
2
 #line 14 "./abouttypica.w"
3
 
3
 
4
 #include <QMainWindow> 
4
 #include <QMainWindow> 
17
 
17
 
18
 #endif
18
 #endif
19
 
19
 
20
-/*:264*/
20
+/*:274*/

+ 20
- 20
src/daterangeselector.cpp View File

1
-/*656:*/
1
+/*666:*/
2
 #line 70 "./daterangeselector.w"
2
 #line 70 "./daterangeselector.w"
3
 
3
 
4
 #include <QCalendarWidget> 
4
 #include <QCalendarWidget> 
11
 
11
 
12
 #include "daterangeselector.h"
12
 #include "daterangeselector.h"
13
 
13
 
14
-/*658:*/
14
+/*668:*/
15
 #line 115 "./daterangeselector.w"
15
 #line 115 "./daterangeselector.w"
16
 
16
 
17
 CustomDateRangePopup::CustomDateRangePopup(QWidget*parent):
17
 CustomDateRangePopup::CustomDateRangePopup(QWidget*parent):
55
 setLayout(outerLayout);
55
 setLayout(outerLayout);
56
 }
56
 }
57
 
57
 
58
-/*:658*//*659:*/
58
+/*:668*//*669:*/
59
 #line 163 "./daterangeselector.w"
59
 #line 163 "./daterangeselector.w"
60
 
60
 
61
 void CustomDateRangePopup::hideEvent(QHideEvent*)
61
 void CustomDateRangePopup::hideEvent(QHideEvent*)
63
 emit hidingPopup();
63
 emit hidingPopup();
64
 }
64
 }
65
 
65
 
66
-/*:659*//*660:*/
66
+/*:669*//*670:*/
67
 #line 172 "./daterangeselector.w"
67
 #line 172 "./daterangeselector.w"
68
 
68
 
69
 void CustomDateRangePopup::applyRange()
69
 void CustomDateRangePopup::applyRange()
78
 hide();
78
 hide();
79
 }
79
 }
80
 
80
 
81
-/*:660*//*661:*/
81
+/*:670*//*671:*/
82
 #line 189 "./daterangeselector.w"
82
 #line 189 "./daterangeselector.w"
83
 
83
 
84
 void CustomDateRangePopup::validateRange()
84
 void CustomDateRangePopup::validateRange()
93
 }
93
 }
94
 }
94
 }
95
 
95
 
96
-/*:661*/
96
+/*:671*/
97
 #line 81 "./daterangeselector.w"
97
 #line 81 "./daterangeselector.w"
98
 
98
 
99
-/*662:*/
99
+/*672:*/
100
 #line 207 "./daterangeselector.w"
100
 #line 207 "./daterangeselector.w"
101
 
101
 
102
 DateRangeSelector::DateRangeSelector(QWidget*parent):
102
 DateRangeSelector::DateRangeSelector(QWidget*parent):
108
 QDate currentDate= QDate::currentDate();
108
 QDate currentDate= QDate::currentDate();
109
 
109
 
110
 QHBoxLayout*layout= new QHBoxLayout;
110
 QHBoxLayout*layout= new QHBoxLayout;
111
-/*663:*/
111
+/*673:*/
112
 #line 236 "./daterangeselector.w"
112
 #line 236 "./daterangeselector.w"
113
 
113
 
114
 quickSelector->addItem("Yesterday",QVariant(QStringList()<<
114
 quickSelector->addItem("Yesterday",QVariant(QStringList()<<
188
 quickSelector->addItem("Lifetime");
188
 quickSelector->addItem("Lifetime");
189
 quickSelector->addItem("Custom");
189
 quickSelector->addItem("Custom");
190
 
190
 
191
-/*:663*/
191
+/*:673*/
192
 #line 217 "./daterangeselector.w"
192
 #line 217 "./daterangeselector.w"
193
 
193
 
194
 QToolButton*customButton= new QToolButton;
194
 QToolButton*customButton= new QToolButton;
201
 connect(customButton,SIGNAL(clicked()),this,SLOT(toggleCustom()));
201
 connect(customButton,SIGNAL(clicked()),this,SLOT(toggleCustom()));
202
 }
202
 }
203
 
203
 
204
-/*:662*//*664:*/
204
+/*:672*//*674:*/
205
 #line 319 "./daterangeselector.w"
205
 #line 319 "./daterangeselector.w"
206
 
206
 
207
 void DateRangeSelector::updateRange(int index)
207
 void DateRangeSelector::updateRange(int index)
217
 }
217
 }
218
 }
218
 }
219
 
219
 
220
-/*:664*//*665:*/
220
+/*:674*//*675:*/
221
 #line 336 "./daterangeselector.w"
221
 #line 336 "./daterangeselector.w"
222
 
222
 
223
 void DateRangeSelector::popupHidden()
223
 void DateRangeSelector::popupHidden()
227
 quickSelector->setCurrentIndex(lastIndex);
227
 quickSelector->setCurrentIndex(lastIndex);
228
 }
228
 }
229
 
229
 
230
-/*:665*//*666:*/
230
+/*:675*//*676:*/
231
 #line 347 "./daterangeselector.w"
231
 #line 347 "./daterangeselector.w"
232
 
232
 
233
 void DateRangeSelector::setCustomRange(QVariant range)
233
 void DateRangeSelector::setCustomRange(QVariant range)
238
 quickSelector->setCurrentIndex(lastIndex);
238
 quickSelector->setCurrentIndex(lastIndex);
239
 }
239
 }
240
 
240
 
241
-/*:666*//*667:*/
241
+/*:676*//*677:*/
242
 #line 362 "./daterangeselector.w"
242
 #line 362 "./daterangeselector.w"
243
 
243
 
244
 void DateRangeSelector::toggleCustom()
244
 void DateRangeSelector::toggleCustom()
279
 }
279
 }
280
 }
280
 }
281
 
281
 
282
-/*:667*//*668:*/
282
+/*:677*//*678:*/
283
 #line 404 "./daterangeselector.w"
283
 #line 404 "./daterangeselector.w"
284
 
284
 
285
 QVariant DateRangeSelector::currentRange()
285
 QVariant DateRangeSelector::currentRange()
287
 return quickSelector->itemData(lastIndex);
287
 return quickSelector->itemData(lastIndex);
288
 }
288
 }
289
 
289
 
290
-/*:668*//*669:*/
290
+/*:678*//*679:*/
291
 #line 412 "./daterangeselector.w"
291
 #line 412 "./daterangeselector.w"
292
 
292
 
293
 void DateRangeSelector::setCurrentIndex(int index)
293
 void DateRangeSelector::setCurrentIndex(int index)
300
 return quickSelector->currentIndex();
300
 return quickSelector->currentIndex();
301
 }
301
 }
302
 
302
 
303
-/*:669*//*670:*/
303
+/*:679*//*680:*/
304
 #line 432 "./daterangeselector.w"
304
 #line 432 "./daterangeselector.w"
305
 
305
 
306
 void DateRangeSelector::setLifetimeRange(QString startDate,QString endDate)
306
 void DateRangeSelector::setLifetimeRange(QString startDate,QString endDate)
309
 QVariant(QStringList()<<startDate<<endDate));
309
 QVariant(QStringList()<<startDate<<endDate));
310
 }
310
 }
311
 
311
 
312
-/*:670*//*671:*/
312
+/*:680*//*681:*/
313
 #line 442 "./daterangeselector.w"
313
 #line 442 "./daterangeselector.w"
314
 
314
 
315
 void DateRangeSelector::removeIndex(int index)
315
 void DateRangeSelector::removeIndex(int index)
317
 quickSelector->removeItem(index);
317
 quickSelector->removeItem(index);
318
 }
318
 }
319
 
319
 
320
-/*:671*/
320
+/*:681*/
321
 #line 82 "./daterangeselector.w"
321
 #line 82 "./daterangeselector.w"
322
 
322
 
323
 
323
 
324
-#if 0
324
+#ifdef __unix__
325
 #include "moc_daterangeselector.cpp"
325
 #include "moc_daterangeselector.cpp"
326
 #endif
326
 #endif
327
 
327
 
328
-/*:656*/
328
+/*:666*/

+ 4
- 4
src/daterangeselector.h View File

1
-/*655:*/
1
+/*665:*/
2
 #line 30 "./daterangeselector.w"
2
 #line 30 "./daterangeselector.w"
3
 
3
 
4
 
4
 
9
 #ifndef TypicaDateRangeSelectorHeader
9
 #ifndef TypicaDateRangeSelectorHeader
10
 #define TypicaDateRangeSelectorHeader
10
 #define TypicaDateRangeSelectorHeader
11
 
11
 
12
-/*657:*/
12
+/*667:*/
13
 #line 91 "./daterangeselector.w"
13
 #line 91 "./daterangeselector.w"
14
 
14
 
15
 class CustomDateRangePopup:public QWidget
15
 class CustomDateRangePopup:public QWidget
31
 QPushButton*applyButton;
31
 QPushButton*applyButton;
32
 };
32
 };
33
 
33
 
34
-/*:657*/
34
+/*:667*/
35
 #line 39 "./daterangeselector.w"
35
 #line 39 "./daterangeselector.w"
36
 
36
 
37
 
37
 
62
 
62
 
63
 #endif
63
 #endif
64
 
64
 
65
-/*:655*/
65
+/*:665*/

+ 2
- 2
src/draglabel.cpp View File

1
-/*992:*/
1
+/*1002:*/
2
 #line 33 "./scales.w"
2
 #line 33 "./scales.w"
3
 
3
 
4
 #include "draglabel.h"
4
 #include "draglabel.h"
26
 }
26
 }
27
 }
27
 }
28
 
28
 
29
-/*:992*/
29
+/*:1002*/

+ 2
- 2
src/draglabel.h View File

1
-/*991:*/
1
+/*1001:*/
2
 #line 13 "./scales.w"
2
 #line 13 "./scales.w"
3
 
3
 
4
 #ifndef TypicaDragLabelInclude
4
 #ifndef TypicaDragLabelInclude
17
 
17
 
18
 #endif
18
 #endif
19
 
19
 
20
-/*:991*/
20
+/*:1001*/

+ 7
- 7
src/helpmenu.cpp View File

1
-/*194:*/
1
+/*204:*/
2
 #line 36 "./helpmenu.w"
2
 #line 36 "./helpmenu.w"
3
 
3
 
4
 #include "helpmenu.h"
4
 #include "helpmenu.h"
5
 #include "abouttypica.h"
5
 #include "abouttypica.h"
6
 #include "licensewindow.h"
6
 #include "licensewindow.h"
7
 
7
 
8
-/*195:*/
8
+/*205:*/
9
 #line 46 "./helpmenu.w"
9
 #line 46 "./helpmenu.w"
10
 
10
 
11
 HelpMenu::HelpMenu():QMenu()
11
 HelpMenu::HelpMenu():QMenu()
24
 #endif
24
 #endif
25
 }
25
 }
26
 
26
 
27
-/*:195*//*196:*/
27
+/*:205*//*206:*/
28
 #line 66 "./helpmenu.w"
28
 #line 66 "./helpmenu.w"
29
 
29
 
30
 void HelpMenu::displayAboutTypica()
30
 void HelpMenu::displayAboutTypica()
33
 aboutBox->show();
33
 aboutBox->show();
34
 }
34
 }
35
 
35
 
36
-/*:196*//*197:*/
36
+/*:206*//*207:*/
37
 #line 76 "./helpmenu.w"
37
 #line 76 "./helpmenu.w"
38
 
38
 
39
 void HelpMenu::displayLicenseWindow()
39
 void HelpMenu::displayLicenseWindow()
42
 window->show();
42
 window->show();
43
 }
43
 }
44
 
44
 
45
-#line 4615 "./typica.w"
45
+#line 4772 "./typica.w"
46
 
46
 
47
 #line 1 "./licensewindow.w"
47
 #line 1 "./licensewindow.w"
48
-/*:197*/
48
+/*:207*/
49
 #line 41 "./helpmenu.w"
49
 #line 41 "./helpmenu.w"
50
 
50
 
51
 
51
 
52
-/*:194*/
52
+/*:204*/

+ 2
- 2
src/helpmenu.h View File

1
-/*193:*/
1
+/*203:*/
2
 #line 16 "./helpmenu.w"
2
 #line 16 "./helpmenu.w"
3
 
3
 
4
 #include <QMenu> 
4
 #include <QMenu> 
18
 
18
 
19
 #endif
19
 #endif
20
 
20
 
21
-/*:193*/
21
+/*:203*/

+ 69
- 0
src/licensewindow.cpp View File

1
+/*209:*/
2
+#line 36 "./licensewindow.w"
3
+
4
+/*213:*/
5
+#line 97 "./licensewindow.w"
6
+
7
+#include "licensewindow.h"
8
+
9
+#include <QSplitter> 
10
+#include <QListWidget> 
11
+#include <QVariant> 
12
+#include <QUrl> 
13
+
14
+#line 4774 "./typica.w"
15
+
16
+/*:213*/
17
+#line 37 "./licensewindow.w"
18
+
19
+/*210:*/
20
+#line 43 "./licensewindow.w"
21
+
22
+LicenseWindow::LicenseWindow()
23
+:QMainWindow(NULL),view(new QWebView)
24
+{
25
+QSplitter*split= new QSplitter;
26
+QListWidget*projects= new QListWidget;
27
+
28
+/*212:*/
29
+#line 79 "./licensewindow.w"
30
+
31
+QListWidgetItem*item= new QListWidgetItem("Typica",projects);
32
+item->setData(Qt::UserRole,QVariant(QUrl("qrc:/resources/html/licenses/typica.html")));
33
+projects->setCurrentItem(item);
34
+setWebView(item,NULL);
35
+item= new QListWidgetItem("d3.js",projects);
36
+item->setData(Qt::UserRole,QVariant(QUrl("qrc:/resources/html/licenses/d3.html")));
37
+item= new QListWidgetItem("Entypo",projects);
38
+item->setData(Qt::UserRole,QVariant(QUrl("qrc:/resources/html/licenses/entypo.html")));
39
+item= new QListWidgetItem("Tango Desktop Project",projects);
40
+item->setData(Qt::UserRole,QVariant(QUrl("qrc:/resources/html/licenses/tango.html")));
41
+item= new QListWidgetItem("QextSerialPort",projects);
42
+item->setData(Qt::UserRole,QVariant(QUrl("qrc:/resources/html/licenses/qextserialport.html")));
43
+item= new QListWidgetItem("Qt",projects);
44
+item->setData(Qt::UserRole,QVariant(QUrl("qrc:/resources/html/licenses/qt.html")));
45
+
46
+/*:212*/
47
+#line 50 "./licensewindow.w"
48
+
49
+connect(projects,SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
50
+this,SLOT(setWebView(QListWidgetItem*,QListWidgetItem*)));
51
+
52
+split->addWidget(projects);
53
+split->addWidget(view);
54
+setCentralWidget(split);
55
+}
56
+
57
+/*:210*//*211:*/
58
+#line 64 "./licensewindow.w"
59
+
60
+void LicenseWindow::setWebView(QListWidgetItem*current,QListWidgetItem*)
61
+{
62
+view->load(current->data(Qt::UserRole).toUrl());
63
+}
64
+
65
+/*:211*/
66
+#line 38 "./licensewindow.w"
67
+
68
+
69
+/*:209*/

+ 24
- 0
src/licensewindow.h View File

1
+/*208:*/
2
+#line 13 "./licensewindow.w"
3
+
4
+#include <QMainWindow> 
5
+#include <QListWidgetItem> 
6
+#include <QWebView> 
7
+
8
+#ifndef TypicaLicenseHeader
9
+#define TypicaLicenseHeader
10
+
11
+class LicenseWindow:public QMainWindow
12
+{
13
+Q_OBJECT
14
+public:
15
+LicenseWindow();
16
+private slots:
17
+void setWebView(QListWidgetItem*current,QListWidgetItem*);
18
+private:
19
+QWebView*view;
20
+};
21
+
22
+#endif
23
+
24
+/*:208*/

+ 6
- 3
src/moc_helpmenu.cpp View File

22
        6,       // revision
22
        6,       // revision
23
        0,       // classname
23
        0,       // classname
24
        0,    0, // classinfo
24
        0,    0, // classinfo
25
-       1,   14, // methods
25
+       2,   14, // methods
26
        0,    0, // properties
26
        0,    0, // properties
27
        0,    0, // enums/sets
27
        0,    0, // enums/sets
28
        0,    0, // constructors
28
        0,    0, // constructors
31
 
31
 
32
  // slots: signature, parameters, type, tag, flags
32
  // slots: signature, parameters, type, tag, flags
33
       10,    9,    9,    9, 0x0a,
33
       10,    9,    9,    9, 0x0a,
34
+      31,    9,    9,    9, 0x0a,
34
 
35
 
35
        0        // eod
36
        0        // eod
36
 };
37
 };
37
 
38
 
38
 static const char qt_meta_stringdata_HelpMenu[] = {
39
 static const char qt_meta_stringdata_HelpMenu[] = {
39
     "HelpMenu\0\0displayAboutTypica()\0"
40
     "HelpMenu\0\0displayAboutTypica()\0"
41
+    "displayLicenseWindow()\0"
40
 };
42
 };
41
 
43
 
42
 void HelpMenu::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
44
 void HelpMenu::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
46
         HelpMenu *_t = static_cast<HelpMenu *>(_o);
48
         HelpMenu *_t = static_cast<HelpMenu *>(_o);
47
         switch (_id) {
49
         switch (_id) {
48
         case 0: _t->displayAboutTypica(); break;
50
         case 0: _t->displayAboutTypica(); break;
51
+        case 1: _t->displayLicenseWindow(); break;
49
         default: ;
52
         default: ;
50
         }
53
         }
51
     }
54
     }
84
     if (_id < 0)
87
     if (_id < 0)
85
         return _id;
88
         return _id;
86
     if (_c == QMetaObject::InvokeMetaMethod) {
89
     if (_c == QMetaObject::InvokeMetaMethod) {
87
-        if (_id < 1)
90
+        if (_id < 2)
88
             qt_static_metacall(this, _c, _id, _a);
91
             qt_static_metacall(this, _c, _id, _a);
89
-        _id -= 1;
92
+        _id -= 2;
90
     }
93
     }
91
     return _id;
94
     return _id;
92
 }
95
 }

+ 15
- 6
src/moc_typica.cpp View File

3759
        6,       // revision
3759
        6,       // revision
3760
        0,       // classname
3760
        0,       // classname
3761
        0,    0, // classinfo
3761
        0,    0, // classinfo
3762
-       1,   14, // methods
3762
+       4,   14, // methods
3763
        0,    0, // properties
3763
        0,    0, // properties
3764
        0,    0, // enums/sets
3764
        0,    0, // enums/sets
3765
-       1,   19, // constructors
3765
+       1,   34, // constructors
3766
        0,       // flags
3766
        0,       // flags
3767
        0,       // signalCount
3767
        0,       // signalCount
3768
 
3768
 
3769
  // slots: signature, parameters, type, tag, flags
3769
  // slots: signature, parameters, type, tag, flags
3770
       22,   19,   18,   18, 0x08,
3770
       22,   19,   18,   18, 0x08,
3771
+      49,   43,   18,   18, 0x08,
3772
+      74,   43,   18,   18, 0x08,
3773
+      98,   43,   18,   18, 0x08,
3771
 
3774
 
3772
  // constructors: signature, parameters, type, tag, flags
3775
  // constructors: signature, parameters, type, tag, flags
3773
-      55,   43,   18,   18, 0x0e,
3776
+     138,  126,   18,   18, 0x0e,
3774
 
3777
 
3775
        0        // eod
3778
        0        // eod
3776
 };
3779
 };
3777
 
3780
 
3778
 static const char qt_meta_stringdata_RoasterConfWidget[] = {
3781
 static const char qt_meta_stringdata_RoasterConfWidget[] = {
3779
     "RoasterConfWidget\0\0id\0updateRoasterId(int)\0"
3782
     "RoasterConfWidget\0\0id\0updateRoasterId(int)\0"
3780
-    "model,index\0RoasterConfWidget(DeviceTreeModel*,QModelIndex)\0"
3783
+    "value\0updateCapacityCheck(int)\0"
3784
+    "updateCapacity(QString)\0"
3785
+    "updateCapacityUnit(QString)\0model,index\0"
3786
+    "RoasterConfWidget(DeviceTreeModel*,QModelIndex)\0"
3781
 };
3787
 };
3782
 
3788
 
3783
 void RoasterConfWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
3789
 void RoasterConfWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
3792
         RoasterConfWidget *_t = static_cast<RoasterConfWidget *>(_o);
3798
         RoasterConfWidget *_t = static_cast<RoasterConfWidget *>(_o);
3793
         switch (_id) {
3799
         switch (_id) {
3794
         case 0: _t->updateRoasterId((*reinterpret_cast< int(*)>(_a[1]))); break;
3800
         case 0: _t->updateRoasterId((*reinterpret_cast< int(*)>(_a[1]))); break;
3801
+        case 1: _t->updateCapacityCheck((*reinterpret_cast< int(*)>(_a[1]))); break;
3802
+        case 2: _t->updateCapacity((*reinterpret_cast< const QString(*)>(_a[1]))); break;
3803
+        case 3: _t->updateCapacityUnit((*reinterpret_cast< const QString(*)>(_a[1]))); break;
3795
         default: ;
3804
         default: ;
3796
         }
3805
         }
3797
     }
3806
     }
3829
     if (_id < 0)
3838
     if (_id < 0)
3830
         return _id;
3839
         return _id;
3831
     if (_c == QMetaObject::InvokeMetaMethod) {
3840
     if (_c == QMetaObject::InvokeMetaMethod) {
3832
-        if (_id < 1)
3841
+        if (_id < 4)
3833
             qt_static_metacall(this, _c, _id, _a);
3842
             qt_static_metacall(this, _c, _id, _a);
3834
-        _id -= 1;
3843
+        _id -= 4;
3835
     }
3844
     }
3836
     return _id;
3845
     return _id;
3837
 }
3846
 }

+ 31810
- 31572
src/qrc_resources.cpp
File diff suppressed because it is too large
View File


+ 6
- 6
src/resources/Info.plist View File

1
 <?xml version="1.0" encoding="UTF-8"?>
1
 <?xml version="1.0" encoding="UTF-8"?>
2
-<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
3
-<plist version="0.9">
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
 <dict>
4
 <dict>
5
 	<key>CFBundleIconFile</key>
5
 	<key>CFBundleIconFile</key>
6
 	<string>@ICON@</string>
6
 	<string>@ICON@</string>
7
 	<key>CFBundlePackageType</key>
7
 	<key>CFBundlePackageType</key>
8
 	<string>APPL</string>
8
 	<string>APPL</string>
9
 	<key>CFBundleGetInfoString</key>
9
 	<key>CFBundleGetInfoString</key>
10
-	<string>Typica 1.6.4</string>
10
+	<string>Typica 1.7.0</string>
11
 	<key>CFBundleSignature</key>
11
 	<key>CFBundleSignature</key>
12
 	<string>@TYPEINFO@</string>
12
 	<string>@TYPEINFO@</string>
13
 	<key>CFBundleExecutable</key>
13
 	<key>CFBundleExecutable</key>
17
 	<key>CFBundleDisplayName</key>
17
 	<key>CFBundleDisplayName</key>
18
 	<string>Typica</string>
18
 	<string>Typica</string>
19
 	<key>CFBundleShortVersionString</key>
19
 	<key>CFBundleShortVersionString</key>
20
-	<string>1.6.4</string>
20
+	<string>1.7.0</string>
21
 	<key>CFBundleVersion</key>
21
 	<key>CFBundleVersion</key>
22
-	<string>1.6.4</string>
22
+	<string>1.7.0</string>
23
 	<key>NSHumanReadableCopyright</key>
23
 	<key>NSHumanReadableCopyright</key>
24
-	<string>© 2007–2015 Neal Wilson</string>
24
+	<string>© 2007–2016 Neal Wilson</string>
25
 </dict>
25
 </dict>
26
 </plist>
26
 </plist>

+ 7
- 83
src/resources/html/about.html View File

10
 				<div class="topbanner">
10
 				<div class="topbanner">
11
 					<a href="http://www.randomfield.com/programs/typica/"><img src="../icons/appicons/logo96.png" height="96px" width="96px" alt="Typica logo" /></a>
11
 					<a href="http://www.randomfield.com/programs/typica/"><img src="../icons/appicons/logo96.png" height="96px" width="96px" alt="Typica logo" /></a>
12
 					<h1><a href="http://www.randomfield.com/programs/typica/">Typica</a></h1>
12
 					<h1><a href="http://www.randomfield.com/programs/typica/">Typica</a></h1>
13
-					<h2>Version 1.6.4</h2>
13
+					<h2>Version 1.7.0</h2>
14
 				</div>
14
 				</div>
15
 			<div id="maintext">
15
 			<div id="maintext">
16
-				<p>Copyright &copy; 2007&ndash;2015 Neal Evan Wilson
16
+				<p>Copyright &copy; 2007&ndash;2016 Neal Evan Wilson
17
 					<span class="icons">
17
 					<span class="icons">
18
 						<a href="mailto:roaster@wilsonscoffee.com?subject=Thanks%20for%20Typica&amp;body=Message%20initiated%20from%20Typica.">&#9993;</a>
18
 						<a href="mailto:roaster@wilsonscoffee.com?subject=Thanks%20for%20Typica&amp;body=Message%20initiated%20from%20Typica.">&#9993;</a>
19
 						<a href="https://twitter.com/N3Roaster">&#62217;</a>
19
 						<a href="https://twitter.com/N3Roaster">&#62217;</a>
22
 						<a href="http://www.linkedin.com/profile/view?id=179814079">&#62232;</a>
22
 						<a href="http://www.linkedin.com/profile/view?id=179814079">&#62232;</a>
23
 					</span>
23
 					</span>
24
 				</p>
24
 				</p>
25
-				<h3>Special Thanks</h3>
26
-				<p>Ongoing development of Typica is made possible through the
27
-				generous financial contributions from the following:</p>
28
-				
29
-				<p>La Cosecha Coffee Roasters</p>
30
-				<p>Pinnacle Coffee Roasting</p>
31
-				<p>Water Street Coffee Roaster</p>
32
-				<p>Anonymous Funders</p>
33
-				
34
-				<p>Hardware for developing Phidgets 1048 support was provided
35
-				by Phidgets, Inc.</p>
36
-				
37
-				<p>Special thanks also to all who have sent bug reports and
38
-				feature requests.</p>
39
-
40
-				<div class="nbg">
41
-				<div class="nextversion">
42
-				<div class="nextbanner">
43
-					<img src="typica2logo96.png" height="96px" width="96px" alt="Typica 2.0 logo" />
44
-					<h1>Preview of the Next Episode</h3>
45
-				</div>
46
-				<p>This will likely be one of the last releases in the 1.x
47
-				series. Typica 1.0 was released in 2007 and I've learned a
48
-				lot from developing this, using it, and having conversations
49
-				with others about how they're using this. While there is the
50
-				possibility of further improvements, I believe Typica has
51
-				reached a point of maturity with a feature set appropriate for
52
-				many coffee roasting firms.</p>
53
-
54
-				<p>There is a large set of features and extensions that I have
55
-				avoided implementing because the changes would have been too
56
-				intrusive for the code base as it currently exists, but that
57
-				feature set has become too compelling for me to leave undone.
58
-				I am, therefore, attempting to spend as much time as I can on
59
-				the development of Typica 2.0. This removes many of the legacy
60
-				considerations and modernizes the tools and techniques used. I
61
-				hope that the result is a better and more broadly useful Typica
62
-				that can be maintained for another several years.</p>
63
-				
64
-				<p>While Typica is free and will continue to be made freely
65
-				available complete with all source code, there are still costs
66
-				associated with ongoing development and keeping the software
67
-				available. Some of the costs include:
68
-					<ul>
69
-						<li>Obtaining and maintaining hardware appropriate for
70
-						building and testing new releases</li>
71
-						<li>Building and maintaining test rigs for various
72
-						types of data acquisition hardware</li>
73
-						<li>Maintaining the ability to test on new operating
74
-						system releases</li>
75
-						<li>Hosting service</li>
76
-					</ul>
77
-				There is also a huge commitment of time in developing, testing,
78
-				and supporting this.</p>
79
-
80
-				<p>Financial support to date does not come close to covering
81
-				these costs, nor has it been enough that I could consider
82
-				hiring people to improve the pace and quality of ongoing
83
-				development. This is fine. I have no intention of halting work
84
-				on the project as my work has benefitted greatly from having
85
-				this software and I expect even greater benefit from the next
86
-				major release. Personally I find the new feature set exciting
87
-				to work on and am willing to cover funding shortfalls when I
88
-				can afford to do so.</p>
89
-				
90
-				<p>That said, if you're finding this software to be useful in
91
-				your business, if you've had a good support experience, or if
92
-				you'd like to help me continue to develop this software, please
93
-				consider providing some financial support to:</p>
94
-				
95
-				<p>Neal Wilson<br />
96
-				c/o Wilson's Coffee &amp; Tea<br />
97
-				3306 Washington Ave.<br />
98
-				Racine, WI 53405<br />
99
-				USA</p>
100
-				
101
-				<p>Another great way to help Typica right now is to reach out
102
-				to your professional colleagues and let them know that you're
103
-				using Typica and what you like about it.</p>
104
-				</div>
105
-				</div>
25
+				<p>German Translation: Mario Champignon
26
+                                    <span class="icons">
27
+                                        <a href="mailto:mario_champignon@hotmail.com">&#9993;</a>
28
+                                    </span>
29
+                                </p>
106
 				
30
 				
107
 				<h3>License Information</h3>
31
 				<h3>License Information</h3>
108
 				<p>Permission is hereby granted, free of charge, to any person
32
 				<p>Permission is hereby granted, free of charge, to any person

+ 6
- 6
src/scale.cpp View File

1
-/*998:*/
1
+/*1008:*/
2
 #line 131 "./scales.w"
2
 #line 131 "./scales.w"
3
 
3
 
4
 #include "scale.h"
4
 #include "scale.h"
10
 connect(this,SIGNAL(readyRead()),this,SLOT(dataAvailable()));
10
 connect(this,SIGNAL(readyRead()),this,SLOT(dataAvailable()));
11
 }
11
 }
12
 
12
 
13
-/*:998*//*999:*/
13
+/*:1008*//*1009:*/
14
 #line 149 "./scales.w"
14
 #line 149 "./scales.w"
15
 
15
 
16
 void SerialScale::dataAvailable()
16
 void SerialScale::dataAvailable()
24
 }
24
 }
25
 else
25
 else
26
 {
26
 {
27
-/*1000:*/
27
+/*1010:*/
28
 #line 189 "./scales.w"
28
 #line 189 "./scales.w"
29
 
29
 
30
 QStringList responseParts= QString(responseBuffer.simplified()).split(' ');
30
 QStringList responseParts= QString(responseBuffer.simplified()).split(' ');
53
 }
53
 }
54
 emit newMeasurement(weight,unit);
54
 emit newMeasurement(weight,unit);
55
 
55
 
56
-/*:1000*/
56
+/*:1010*/
57
 #line 161 "./scales.w"
57
 #line 161 "./scales.w"
58
 
58
 
59
 responseBuffer.clear();
59
 responseBuffer.clear();
61
 }
61
 }
62
 }
62
 }
63
 
63
 
64
-/*:999*//*1001:*/
64
+/*:1009*//*1011:*/
65
 #line 220 "./scales.w"
65
 #line 220 "./scales.w"
66
 
66
 
67
 void SerialScale::tare()
67
 void SerialScale::tare()
74
 write("!KP\x0D");
74
 write("!KP\x0D");
75
 }
75
 }
76
 
76
 
77
-/*:1001*/
77
+/*:1011*/

+ 2
- 2
src/scale.h View File

1
-/*997:*/
1
+/*1007:*/
2
 #line 103 "./scales.w"
2
 #line 103 "./scales.w"
3
 
3
 
4
 #ifndef TypicaScaleInclude
4
 #ifndef TypicaScaleInclude
25
 
25
 
26
 #endif
26
 #endif
27
 
27
 
28
-/*:997*/
28
+/*:1007*/

+ 2697
- 2453
src/typica.cpp
File diff suppressed because it is too large
View File


+ 6
- 6
src/typica.rc View File

1
 #include <winver.h>
1
 #include <winver.h>
2
 VS_VERSION_INFO	VERSIONINFO
2
 VS_VERSION_INFO	VERSIONINFO
3
-FILEVERSION 	1,6,4,0
4
-PRODUCTVERSION 	1,6,4,0
3
+FILEVERSION 	1,7,0,0
4
+PRODUCTVERSION 	1,7,0,0
5
 FILEFLAGSMASK	0x3fL
5
 FILEFLAGSMASK	0x3fL
6
 #ifdef _DEBUG
6
 #ifdef _DEBUG
7
 	FILEFLAGS	VS_FF_DEBUG
7
 	FILEFLAGS	VS_FF_DEBUG
16
 		BLOCK "040904b0"
16
 		BLOCK "040904b0"
17
 		BEGIN
17
 		BEGIN
18
 			VALUE "CompanyName", "Wilson's Coffee & Tea\0"
18
 			VALUE "CompanyName", "Wilson's Coffee & Tea\0"
19
-			VALUE "FileDescription", "Typica 1.6.4\0"
20
-			VALUE "FileVersion", "1.6.4\0"
19
+			VALUE "FileDescription", "Typica 1.7.0\0"
20
+			VALUE "FileVersion", "1.7.0\0"
21
 			VALUE "InternalName", "Typica\0"
21
 			VALUE "InternalName", "Typica\0"
22
-			VALUE "LegalCopyright", "Copyright 2007-2015 Neal Evan Wilson\0"
22
+			VALUE "LegalCopyright", "Copyright 2007-2016 Neal Evan Wilson\0"
23
 			VALUE "OriginalFilename", "Typica.exe\0"
23
 			VALUE "OriginalFilename", "Typica.exe\0"
24
 			VALUE "ProductName", "Typica\0"
24
 			VALUE "ProductName", "Typica\0"
25
-			VALUE "ProductVersion", "1.6.4\0"
25
+			VALUE "ProductVersion", "1.7.0\0"
26
 		END
26
 		END
27
 	END
27
 	END
28
 	BLOCK "VarFileInfo"
28
 	BLOCK "VarFileInfo"

+ 9
- 8
src/typica.w View File

22
 \mark{\noexpand\nullsec0{A Note on Notation}}
22
 \mark{\noexpand\nullsec0{A Note on Notation}}
23
 \def\pn{Typica}
23
 \def\pn{Typica}
24
 \def\filebase{typica}
24
 \def\filebase{typica}
25
-\def\version{1.6.4 \number\year-\number\month-\number\day}
26
-\def\years{2007--2015}
25
+\def\version{1.7.0 \number\year-\number\month-\number\day}
26
+\def\years{2007--2016}
27
 \def\title{\pn{} (Version \version)}
27
 \def\title{\pn{} (Version \version)}
28
 \newskip\dangerskipb
28
 \newskip\dangerskipb
29
 \newskip\dangerskip
29
 \newskip\dangerskip
4299
 QScriptValue scriptTr(QScriptContext *context, QScriptEngine *)
4299
 QScriptValue scriptTr(QScriptContext *context, QScriptEngine *)
4300
 {
4300
 {
4301
     return QScriptValue(QCoreApplication::translate(
4301
     return QScriptValue(QCoreApplication::translate(
4302
-        argument<QString>(0, context).toAscii().data(),
4302
+        "configuration",
4303
         argument<QString>(1, context).toUtf8().data()));
4303
         argument<QString>(1, context).toUtf8().data()));
4304
 }
4304
 }
4305
 
4305
 
4351
     QFile file(filename);
4351
     QFile file(filename);
4352
     QFileInfo info(filename);
4352
     QFileInfo info(filename);
4353
     directory = info.dir();
4353
     directory = info.dir();
4354
+    QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
4354
     QTranslator *configtr = new QTranslator;
4355
     QTranslator *configtr = new QTranslator;
4355
     if(configtr->load(QString("config.%1").arg(QLocale::system().name()),
4356
     if(configtr->load(QString("config.%1").arg(QLocale::system().name()),
4356
                      QString("%1/Translations").arg(directory.canonicalPath())))
4357
                      QString("%1/Translations").arg(directory.canonicalPath())))
4714
 bar->setObjectName("menuBar");
4715
 bar->setObjectName("menuBar");
4715
 if(element.hasAttribute("name"))
4716
 if(element.hasAttribute("name"))
4716
 {
4717
 {
4717
-    QMenu *menu = bar->addMenu(QCoreApplication::translate(targetID.toAscii().data(),
4718
+    QMenu *menu = bar->addMenu(QCoreApplication::translate("configuration",
4718
                                                            element.attribute("name").toUtf8().data()));
4719
                                                            element.attribute("name").toUtf8().data()));
4719
     menu->setParent(bar);
4720
     menu->setParent(bar);
4720
     if(element.hasAttribute("type"))
4721
     if(element.hasAttribute("type"))
4747
         QDomElement itemElement = item.toElement();
4748
         QDomElement itemElement = item.toElement();
4748
         if(itemElement.tagName() == "item")
4749
         if(itemElement.tagName() == "item")
4749
         {
4750
         {
4750
-            QAction *itemAction = new QAction(QCoreApplication::translate(targetID.toAscii().data(),
4751
+            QAction *itemAction = new QAction(QCoreApplication::translate("configuration",
4751
                                               itemElement.text().toUtf8().data()), menu);
4752
                                               itemElement.text().toUtf8().data()), menu);
4752
             if(itemElement.hasAttribute("id"))
4753
             if(itemElement.hasAttribute("id"))
4753
             {
4754
             {
12625
 
12626
 
12626
 @<Load translation objects@>=
12627
 @<Load translation objects@>=
12627
 QTranslator *base = new QTranslator;
12628
 QTranslator *base = new QTranslator;
12628
-if(base->load(QString("qt_%1").arg(QLocale::system().name())))
12629
+if(base->load(QString("qt_%1").arg(QLocale::system().name()), QString("%1/Translations").arg(QCoreApplication::applicationDirPath())))
12629
 {
12630
 {
12630
     installTranslator(base);
12631
     installTranslator(base);
12631
 }
12632
 }
12632
 QTranslator *app = new QTranslator;
12633
 QTranslator *app = new QTranslator;
12633
-if(app->load(QString("%1_%2").arg("Typica").arg(QLocale::system().name())))
12634
+if(app->load(QString("%1_%2").arg("Typica").arg(QLocale::system().name()), QString("%1/Translations").arg(QCoreApplication::applicationDirPath())))
12634
 {
12635
 {
12635
     installTranslator(app);
12636
     installTranslator(app);
12636
 }
12637
 }
13928
     if(!titleNode.isNull())
13929
     if(!titleNode.isNull())
13929
     {
13930
     {
13930
         QDomElement titleElement = titleNode.toElement();
13931
         QDomElement titleElement = titleNode.toElement();
13931
-        QString title = QCoreApplication::translate(translationContext.toAscii().data(),
13932
+        QString title = QCoreApplication::translate("configuration",
13932
                                                     titleElement.text().toUtf8().data());
13933
                                                     titleElement.text().toUtf8().data());
13933
         if(!title.isEmpty())
13934
         if(!title.isEmpty())
13934
         {
13935
         {

+ 6
- 6
src/units.cpp View File

1
-/*269:*/
1
+/*279:*/
2
 #line 42 "./units.w"
2
 #line 42 "./units.w"
3
 
3
 
4
 #include "units.h"
4
 #include "units.h"
5
 #include <QtDebug> 
5
 #include <QtDebug> 
6
 
6
 
7
-/*:269*//*270:*/
7
+/*:279*//*280:*/
8
 #line 53 "./units.w"
8
 #line 53 "./units.w"
9
 
9
 
10
 bool Units::isTemperatureUnit(Unit unit)
10
 bool Units::isTemperatureUnit(Unit unit)
15
 unit==Rankine);
15
 unit==Rankine);
16
 }
16
 }
17
 
17
 
18
-/*:270*//*271:*/
18
+/*:280*//*281:*/
19
 #line 71 "./units.w"
19
 #line 71 "./units.w"
20
 
20
 
21
 double Units::convertTemperature(double value,Unit fromUnit,Unit toUnit)
21
 double Units::convertTemperature(double value,Unit fromUnit,Unit toUnit)
113
 return 0;
113
 return 0;
114
 }
114
 }
115
 
115
 
116
-/*:271*//*272:*/
116
+/*:281*//*282:*/
117
 #line 169 "./units.w"
117
 #line 169 "./units.w"
118
 
118
 
119
 double Units::convertRelativeTemperature(double value,Unit fromUnit,Unit toUnit)
119
 double Units::convertRelativeTemperature(double value,Unit fromUnit,Unit toUnit)
211
 return 0;
211
 return 0;
212
 }
212
 }
213
 
213
 
214
-/*:272*//*273:*/
214
+/*:282*//*283:*/
215
 #line 267 "./units.w"
215
 #line 267 "./units.w"
216
 
216
 
217
 double Units::convertWeight(double value,Unit fromUnit,Unit toUnit)
217
 double Units::convertWeight(double value,Unit fromUnit,Unit toUnit)
316
 unit==Gram);
316
 unit==Gram);
317
 }
317
 }
318
 
318
 
319
-/*:273*/
319
+/*:283*/

+ 2
- 2
src/units.h View File

1
-/*268:*/
1
+/*278:*/
2
 #line 8 "./units.w"
2
 #line 8 "./units.w"
3
 
3
 
4
 #include <QObject> 
4
 #include <QObject> 
32
 
32
 
33
 #endif
33
 #endif
34
 
34
 
35
-/*:268*/
35
+/*:278*/

+ 5
- 5
src/webelement.cpp View File

1
-/*563:*/
1
+/*573:*/
2
 #line 368 "./webview.w"
2
 #line 368 "./webview.w"
3
 
3
 
4
 #include "webelement.h"
4
 #include "webelement.h"
5
 
5
 
6
-/*561:*/
6
+/*571:*/
7
 #line 311 "./webview.w"
7
 #line 311 "./webview.w"
8
 
8
 
9
 TypicaWebElement::TypicaWebElement(QWebElement element):e(element)
9
 TypicaWebElement::TypicaWebElement(QWebElement element):e(element)
11
 
11
 
12
 }
12
 }
13
 
13
 
14
-/*:561*//*562:*/
14
+/*:571*//*572:*/
15
 #line 320 "./webview.w"
15
 #line 320 "./webview.w"
16
 
16
 
17
 void TypicaWebElement::appendInside(const QString&markup)
17
 void TypicaWebElement::appendInside(const QString&markup)
59
 e.setPlainText(text);
59
 e.setPlainText(text);
60
 }
60
 }
61
 
61
 
62
-/*:562*/
62
+/*:572*/
63
 #line 371 "./webview.w"
63
 #line 371 "./webview.w"
64
 
64
 
65
 
65
 
66
-/*:563*/
66
+/*:573*/

+ 2
- 2
src/webelement.h View File

1
-/*556:*/
1
+/*566:*/
2
 #line 248 "./webview.w"
2
 #line 248 "./webview.w"
3
 
3
 
4
 #include <QWebElement> 
4
 #include <QWebElement> 
27
 
27
 
28
 #endif
28
 #endif
29
 
29
 
30
-/*:556*/
30
+/*:566*/

+ 11
- 11
src/webview.cpp View File

1
-/*541:*/
1
+/*551:*/
2
 #line 50 "./webview.w"
2
 #line 50 "./webview.w"
3
 
3
 
4
 #include "webview.h"
4
 #include "webview.h"
5
 
5
 
6
-/*542:*/
6
+/*552:*/
7
 #line 57 "./webview.w"
7
 #line 57 "./webview.w"
8
 
8
 
9
 TypicaWebView::TypicaWebView():QWebView()
9
 TypicaWebView::TypicaWebView():QWebView()
12
 connect(page(),SIGNAL(linkClicked(QUrl)),this,SLOT(linkDelegate(QUrl)));
12
 connect(page(),SIGNAL(linkClicked(QUrl)),this,SLOT(linkDelegate(QUrl)));
13
 }
13
 }
14
 
14
 
15
-/*:542*//*543:*/
15
+/*:552*//*553:*/
16
 #line 73 "./webview.w"
16
 #line 73 "./webview.w"
17
 
17
 
18
 void TypicaWebView::linkDelegate(const QUrl&url)
18
 void TypicaWebView::linkDelegate(const QUrl&url)
20
 if(url.scheme()=="typica")
20
 if(url.scheme()=="typica")
21
 {
21
 {
22
 QString address(url.toEncoded());
22
 QString address(url.toEncoded());
23
-/*544:*/
23
+/*554:*/
24
 #line 91 "./webview.w"
24
 #line 91 "./webview.w"
25
 
25
 
26
 if(address=="typica://aboutqt")
26
 if(address=="typica://aboutqt")
29
 return;
29
 return;
30
 }
30
 }
31
 
31
 
32
-/*:544*/
32
+/*:554*/
33
 #line 79 "./webview.w"
33
 #line 79 "./webview.w"
34
 
34
 
35
-/*545:*/
35
+/*555:*/
36
 #line 100 "./webview.w"
36
 #line 100 "./webview.w"
37
 
37
 
38
 if(address.startsWith("typica://script/"))
38
 if(address.startsWith("typica://script/"))
41
 return;
41
 return;
42
 }
42
 }
43
 
43
 
44
-/*:545*/
44
+/*:555*/
45
 #line 80 "./webview.w"
45
 #line 80 "./webview.w"
46
 
46
 
47
 }
47
 }
51
 }
51
 }
52
 }
52
 }
53
 
53
 
54
-/*:543*//*546:*/
54
+/*:553*//*556:*/
55
 #line 112 "./webview.w"
55
 #line 112 "./webview.w"
56
 
56
 
57
 void TypicaWebView::load(const QString&url)
57
 void TypicaWebView::load(const QString&url)
88
 return page()->currentFrame()->documentElement().toOuterXml();
88
 return page()->currentFrame()->documentElement().toOuterXml();
89
 }
89
 }
90
 
90
 
91
-/*:546*//*552:*/
91
+/*:556*//*562:*/
92
 #line 205 "./webview.w"
92
 #line 205 "./webview.w"
93
 
93
 
94
 QWebElement TypicaWebView::documentElement()
94
 QWebElement TypicaWebView::documentElement()
101
 return page()->mainFrame()->findFirstElement(selector);
101
 return page()->mainFrame()->findFirstElement(selector);
102
 }
102
 }
103
 
103
 
104
-/*:552*/
104
+/*:562*/
105
 #line 53 "./webview.w"
105
 #line 53 "./webview.w"
106
 
106
 
107
 
107
 
108
-/*:541*/
108
+/*:551*/

+ 2
- 2
src/webview.h View File

1
-/*540:*/
1
+/*550:*/
2
 #line 14 "./webview.w"
2
 #line 14 "./webview.w"
3
 
3
 
4
 #include <QWebView> 
4
 #include <QWebView> 
34
 
34
 
35
 #endif
35
 #endif
36
 
36
 
37
-/*:540*/
37
+/*:550*/

+ 11
- 31
web/output/download-mac-latest.html View File

16
 	<div id="maintext">
16
 	<div id="maintext">
17
 <h1>Thank you for downloading Typica.</h1>
17
 <h1>Thank you for downloading Typica.</h1>
18
 <p>Your download from:</p>
18
 <p>Your download from:</p>
19
-<p><a href="http://www.randomfield.com/programs/typica/1.6/Typica-1.6.4.dmg">http://www.randomfield.com/programs/typica/1.6/Typica-1.6.4.dmg</a></p>
19
+<p><a href="http://www.randomfield.com/programs/typica/1.7/Typica-1.7.dmg">http://www.randomfield.com/programs/typica/1.7/Typica-1.7.dmg</a></p>
20
 <p>should begin automatically. If it does not,
20
 <p>should begin automatically. If it does not,
21
 please click the above link.</p>
21
 please click the above link.</p>
22
 <h2>Please Help Support Ongoing Development</h2>
22
 <h2>Please Help Support Ongoing Development</h2>
23
-<p>This will likely be one of the last releases in the 1.x
24
-series. Typica 1.0 was released in 2007 and I've learned a
25
-lot from developing this, using it, and having conversations
26
-with others about how they're using this. While there is the
27
-possibility of further improvements, I believe Typica has
28
-reached a point of maturity with a feature set appropriate for
29
-many coffee roasting firms.</p>
30
-<p>There is a large set of features and extensions that I have
31
-avoided implementing because the changes would have been too
32
-intrusive for the code base as it currently exists, but that
33
-feature set has become too compelling for me to leave undone.
34
-I am, therefore, attempting to spend as much time as I can on
35
-the development of Typica 2.0. This removes many of the legacy
36
-considerations and modernizes the tools and techniques used. I
37
-hope that the result is a better and more broadly useful Typica
38
-that can be maintained for another several years.</p>
39
 <p>While Typica is free and will continue to be made freely
23
 <p>While Typica is free and will continue to be made freely
40
 available complete with all source code, there are still costs
24
 available complete with all source code, there are still costs
41
 associated with ongoing development and keeping the software
25
 associated with ongoing development and keeping the software
51
 	</ul>
35
 	</ul>
52
 There is also a huge commitment of time in developing, testing,
36
 There is also a huge commitment of time in developing, testing,
53
 and supporting this.</p>
37
 and supporting this.</p>
54
-<p>Financial support to date does not come close to covering
55
-these costs, nor has it been enough that I could consider
56
-hiring people to improve the pace and quality of ongoing
57
-development. This is fine. I have no intention of halting work
58
-on the project as my work has benefitted greatly from having
59
-this software and I expect even greater benefit from the next
60
-major release. Personally I find the new feature set exciting
61
-to work on and am willing to cover funding shortfalls when I
62
-can afford to do so.</p>
63
-<p>That said, if you're finding this software to be useful in
64
-your business, if you've had a good support experience, or if
38
+<p>While Typica is for many uses a mature and reliable program,
39
+there are still a number of areas where the program can be
40
+improved and additional areas where I think it makes a lot of
41
+sense to extend the program. The limited funding for this work
42
+does slow progress. If you're finding this software to be useful
43
+in your business, if you've had a good support experience, or if
65
 you'd like to help me continue to develop this software, please
44
 you'd like to help me continue to develop this software, please
66
-consider providing some financial support to:</p>
45
+consider providing some financial support. Checks can be sent to:
67
 <p>Neal Wilson<br />
46
 <p>Neal Wilson<br />
68
 c/o Wilson's Coffee &amp; Tea<br />
47
 c/o Wilson's Coffee &amp; Tea<br />
69
 3306 Washington Ave.<br />
48
 3306 Washington Ave.<br />
70
 Racine, WI 53405<br />
49
 Racine, WI 53405<br />
71
 USA</p>
50
 USA</p>
51
+<p>or you can visit my <a href="http://youtube.com/users/N3Roaster">YouTube
52
+channel</a> and click the blue Support button on the right.</p>
72
 <p>Another great way to help Typica right now is to reach out
53
 <p>Another great way to help Typica right now is to reach out
73
 to your professional colleagues and let them know that you're
54
 to your professional colleagues and let them know that you're
74
 using Typica and what you like about it.</p>
55
 using Typica and what you like about it.</p>
75
-<p>Please note that I am unable to accept money through PayPal.</p>
76
-<iframe width="1" height="1" frameborder="0" src="http://www.randomfield.com/programs/typica/1.6/Typica-1.6.4.dmg"></iframe>
56
+<iframe width="1" height="1" frameborder="0" src="http://www.randomfield.com/programs/typica/1.7/Typica-1.7.dmg"></iframe>
77
 </div></div></body></html>
57
 </div></div></body></html>

+ 11
- 31
web/output/download-windows-latest.html View File

16
 	<div id="maintext">
16
 	<div id="maintext">
17
 <h1>Thank you for downloading Typica.</h1>
17
 <h1>Thank you for downloading Typica.</h1>
18
 <p>Your download from:</p>
18
 <p>Your download from:</p>
19
-<p><a href="http://www.randomfield.com/programs/typica/1.6/Typica-1.6.4.zip">http://www.randomfield.com/programs/typica/1.6/Typica-1.6.4.zip</a></p>
19
+<p><a href="http://www.randomfield.com/programs/typica/1.7/Typica-1.7.zip">http://www.randomfield.com/programs/typica/1.7/Typica-1.7.zip</a></p>
20
 <p>should begin automatically. If it does not,
20
 <p>should begin automatically. If it does not,
21
 please click the above link.</p>
21
 please click the above link.</p>
22
 <h2>Please Help Support Ongoing Development</h2>
22
 <h2>Please Help Support Ongoing Development</h2>
23
-<p>This will likely be one of the last releases in the 1.x
24
-series. Typica 1.0 was released in 2007 and I've learned a
25
-lot from developing this, using it, and having conversations
26
-with others about how they're using this. While there is the
27
-possibility of further improvements, I believe Typica has
28
-reached a point of maturity with a feature set appropriate for
29
-many coffee roasting firms.</p>
30
-<p>There is a large set of features and extensions that I have
31
-avoided implementing because the changes would have been too
32
-intrusive for the code base as it currently exists, but that
33
-feature set has become too compelling for me to leave undone.
34
-I am, therefore, attempting to spend as much time as I can on
35
-the development of Typica 2.0. This removes many of the legacy
36
-considerations and modernizes the tools and techniques used. I
37
-hope that the result is a better and more broadly useful Typica
38
-that can be maintained for another several years.</p>
39
 <p>While Typica is free and will continue to be made freely
23
 <p>While Typica is free and will continue to be made freely
40
 available complete with all source code, there are still costs
24
 available complete with all source code, there are still costs
41
 associated with ongoing development and keeping the software
25
 associated with ongoing development and keeping the software
51
 	</ul>
35
 	</ul>
52
 There is also a huge commitment of time in developing, testing,
36
 There is also a huge commitment of time in developing, testing,
53
 and supporting this.</p>
37
 and supporting this.</p>
54
-<p>Financial support to date does not come close to covering
55
-these costs, nor has it been enough that I could consider
56
-hiring people to improve the pace and quality of ongoing
57
-development. This is fine. I have no intention of halting work
58
-on the project as my work has benefitted greatly from having
59
-this software and I expect even greater benefit from the next
60
-major release. Personally I find the new feature set exciting
61
-to work on and am willing to cover funding shortfalls when I
62
-can afford to do so.</p>
63
-<p>That said, if you're finding this software to be useful in
64
-your business, if you've had a good support experience, or if
38
+<p>While Typica is for many uses a mature and reliable program,
39
+there are still a number of areas where the program can be
40
+improved and additional areas where I think it makes a lot of
41
+sense to extend the program. The limited funding for this work
42
+does slow progress. If you're finding this software to be useful
43
+in your business, if you've had a good support experience, or if
65
 you'd like to help me continue to develop this software, please
44
 you'd like to help me continue to develop this software, please
66
-consider providing some financial support to:</p>
45
+consider providing some financial support. Checks can be sent to:
67
 <p>Neal Wilson<br />
46
 <p>Neal Wilson<br />
68
 c/o Wilson's Coffee &amp; Tea<br />
47
 c/o Wilson's Coffee &amp; Tea<br />
69
 3306 Washington Ave.<br />
48
 3306 Washington Ave.<br />
70
 Racine, WI 53405<br />
49
 Racine, WI 53405<br />
71
 USA</p>
50
 USA</p>
51
+<p>or you can visit my <a href="http://youtube.com/users/N3Roaster">YouTube
52
+channel</a> and click the blue Support button on the right.</p>
72
 <p>Another great way to help Typica right now is to reach out
53
 <p>Another great way to help Typica right now is to reach out
73
 to your professional colleagues and let them know that you're
54
 to your professional colleagues and let them know that you're
74
 using Typica and what you like about it.</p>
55
 using Typica and what you like about it.</p>
75
-<p>Please note that I am unable to accept money through PayPal.</p>
76
-<iframe width="1" height="1" frameborder="0" src="http://www.randomfield.com/programs/typica/1.6/Typica-1.6.4.zip"></iframe>
56
+<iframe width="1" height="1" frameborder="0" src="http://www.randomfield.com/programs/typica/1.7/Typica-1.7.zip"></iframe>
77
 </div></div></body></html>
57
 </div></div></body></html>

+ 3
- 3
web/output/downloads.html View File

14
 	</div>
14
 	</div>
15
 	</div>
15
 	</div>
16
 	<div id="maintext">
16
 	<div id="maintext">
17
-<p>The latest release of Typica is version 1.6.4, released June 7, 2015.
17
+<p>The latest release of Typica is version 1.7, released January 24, 2016.
18
 This is available for Microsoft Windows, and Intel/Mac OS X.</p>
18
 This is available for Microsoft Windows, and Intel/Mac OS X.</p>
19
-<p><a href="download-mac-latest.html">Typica 1.6.4 for Intel/Mac OS X</a></p>
20
-<p><a href="download-windows-latest.html">Typica 1.6.4 for Microsoft Windows</a></p>
19
+<p><a href="download-mac-latest.html">Typica 1.7 for Intel/Mac OS X</a></p>
20
+<p><a href="download-windows-latest.html">Typica 1.7 for Microsoft Windows</a></p>
21
 <p>The latest source code can always be found on
21
 <p>The latest source code can always be found on
22
 <a href="https://github.com/N3Roaster/typica">GitHub</a>.</p>
22
 <a href="https://github.com/N3Roaster/typica">GitHub</a>.</p>
23
 </div></div></body></html>
23
 </div></div></body></html>

+ 8
- 13
web/output/index.html View File

1
 <html><head>
1
 <html><head>
2
 	<title>Typica - Data for Coffee Roasters</title>
2
 	<title>Typica - Data for Coffee Roasters</title>
3
 	<link rel="stylesheet" type="text/css" href="style.css">
3
 	<link rel="stylesheet" type="text/css" href="style.css">
4
-<meta name="twitter:card" content="summary_large_image">
5
-<meta name="twitter:site" content="@N3Roaster">
6
-<meta name="twitter:title" content="Typica 1.6.4 Now Available. Free Software for Coffee Roasters">
7
-<meta name="twitter:description" content="Typica is a cross-platform application for coffee roasters with features for recording your roasts, tracking green coffee inventory, product development, improving production consistency, and more.">
8
-<meta name="twitter:image" content="http://www.randomfield.com/programs/typica/release164tc.png">
9
 	</head><body><div id="page"><div id="topmatter">
4
 	</head><body><div id="page"><div id="topmatter">
10
 	<div id="topbanner">
5
 	<div id="topbanner">
11
 	<img src="logo96.png" height="96px" width="96px" alt="Typica logo" />
6
 	<img src="logo96.png" height="96px" width="96px" alt="Typica logo" />
25
 and more.</p>
20
 and more.</p>
26
 <p>The program is free open source software available under the
21
 <p>The program is free open source software available under the
27
 MIT license.</p>
22
 MIT license.</p>
28
-<h1>Typica 1.6.4 Now Available</h1>
29
-<p>The latest release of Typica includes bug fixes and minor
30
-feature updates. The most significant new feature is the
31
-ability to use three new types of timer in addition to the
32
-familiar batch timer. See the documentation for details on how to
33
-configure these or watch this new video describing each of the
34
-new timer types and why you might want to use them.</p>
35
-<iframe width="640" height="360" src="https://www.youtube.com/embed/2zt9XlQd9oY" frameborder="0" allowfullscreen></iframe>
23
+<h1>Typica 1.7 Now Available</h1>
24
+<iframe width="640" height="360" src="https://www.youtube.com/embed/U7xTefVLRfk" frameborder="0" allowfullscreen></iframe>
25
+<p>The latest release of Typica includes several new features
26
+such as support for more detailed roast specifications, ability
27
+to set reminders based on production, a new batch log with search
28
+and filter features, and more. This also marks the first release
29
+that includes a translation of the program to another language.
30
+People using a computer with German locale settings will see that.</p>
36
 <h1>Data Acquisition</h1>
31
 <h1>Data Acquisition</h1>
37
 <p>Every batch of coffee you roast with Typica can be recorded for
32
 <p>Every batch of coffee you roast with Typica can be recorded for
38
 future reference. A practically unlimited number of target roast
33
 future reference. A practically unlimited number of target roast

+ 1
- 1
web/src/pages/download-mac-latest.m4 View File

1
 __PageStart
1
 __PageStart
2
 
2
 
3
-__DownloadPage(`http://www.randomfield.com/programs/typica/1.6/Typica-1.6.4.dmg')
3
+__DownloadPage(`http://www.randomfield.com/programs/typica/1.7/Typica-1.7.dmg')
4
 
4
 
5
 __PageEnd
5
 __PageEnd

+ 1
- 1
web/src/pages/download-windows-latest.m4 View File

1
 __PageStart
1
 __PageStart
2
 
2
 
3
-__DownloadPage(`http://www.randomfield.com/programs/typica/1.6/Typica-1.6.4.zip')
3
+__DownloadPage(`http://www.randomfield.com/programs/typica/1.7/Typica-1.7.zip')
4
 
4
 
5
 __PageEnd
5
 __PageEnd

+ 10
- 33
web/src/pages/fragments/downloadfragment.m4 View File

5
 please click the above link.</p>
5
 please click the above link.</p>
6
 <h2>Please Help Support Ongoing Development</h2>
6
 <h2>Please Help Support Ongoing Development</h2>
7
 
7
 
8
-<p>This will likely be one of the last releases in the 1.x
9
-series. Typica 1.0 was released in 2007 and I've learned a
10
-lot from developing this, using it, and having conversations
11
-with others about how they're using this. While there is the
12
-possibility of further improvements, I believe Typica has
13
-reached a point of maturity with a feature set appropriate for
14
-many coffee roasting firms.</p>
15
-
16
-<p>There is a large set of features and extensions that I have
17
-avoided implementing because the changes would have been too
18
-intrusive for the code base as it currently exists, but that
19
-feature set has become too compelling for me to leave undone.
20
-I am, therefore, attempting to spend as much time as I can on
21
-the development of Typica 2.0. This removes many of the legacy
22
-considerations and modernizes the tools and techniques used. I
23
-hope that the result is a better and more broadly useful Typica
24
-that can be maintained for another several years.</p>
25
-
26
 <p>While Typica is free and will continue to be made freely
8
 <p>While Typica is free and will continue to be made freely
27
 available complete with all source code, there are still costs
9
 available complete with all source code, there are still costs
28
 associated with ongoing development and keeping the software
10
 associated with ongoing development and keeping the software
39
 There is also a huge commitment of time in developing, testing,
21
 There is also a huge commitment of time in developing, testing,
40
 and supporting this.</p>
22
 and supporting this.</p>
41
 
23
 
42
-<p>Financial support to date does not come close to covering
43
-these costs, nor has it been enough that I could consider
44
-hiring people to improve the pace and quality of ongoing
45
-development. This is fine. I have no intention of halting work
46
-on the project as my work has benefitted greatly from having
47
-this software and I expect even greater benefit from the next
48
-major release. Personally I find the new feature set exciting
49
-to work on and am willing to cover funding shortfalls when I
50
-can afford to do so.</p>
51
-
52
-<p>That said, if you're finding this software to be useful in
53
-your business, if you've had a good support experience, or if
24
+<p>While Typica is for many uses a mature and reliable program,
25
+there are still a number of areas where the program can be
26
+improved and additional areas where I think it makes a lot of
27
+sense to extend the program. The limited funding for this work
28
+does slow progress. If you're finding this software to be useful
29
+in your business, if you've had a good support experience, or if
54
 you'd like to help me continue to develop this software, please
30
 you'd like to help me continue to develop this software, please
55
-consider providing some financial support to:</p>
31
+consider providing some financial support. Checks can be sent to:
56
 
32
 
57
 <p>Neal Wilson<br />
33
 <p>Neal Wilson<br />
58
 c/o Wilson's Coffee &amp; Tea<br />
34
 c/o Wilson's Coffee &amp; Tea<br />
60
 Racine, WI 53405<br />
36
 Racine, WI 53405<br />
61
 USA</p>
37
 USA</p>
62
 
38
 
39
+<p>or you can visit my <a href="http://youtube.com/users/N3Roaster">YouTube
40
+channel</a> and click the blue Support button on the right.</p>
41
+
63
 <p>Another great way to help Typica right now is to reach out
42
 <p>Another great way to help Typica right now is to reach out
64
 to your professional colleagues and let them know that you're
43
 to your professional colleagues and let them know that you're
65
 using Typica and what you like about it.</p>
44
 using Typica and what you like about it.</p>
66
 
45
 
67
-<p>Please note that I am unable to accept money through PayPal.</p>
68
-
69
 <iframe width="1" height="1" frameborder="0" src="__DownloadUrl"></iframe>
46
 <iframe width="1" height="1" frameborder="0" src="__DownloadUrl"></iframe>

+ 9
- 15
web/src/pages/index.m4 View File

1
 define(`__PageType', `Main')
1
 define(`__PageType', `Main')
2
-define(`__TwitterCard', `
3
-<meta name="twitter:card" content="summary_large_image">
4
-<meta name="twitter:site" content="@N3Roaster">
5
-<meta name="twitter:title" content="Typica 1.6.4 Now Available. Free Software for Coffee Roasters">
6
-<meta name="twitter:description" content="Typica is a cross-platform application for coffee roasters with features for recording your roasts, tracking green coffee inventory, product development, improving production consistency, and more.">
7
-<meta name="twitter:image" content="http://www.randomfield.com/programs/typica/release164tc.png">
8
-')
9
 
2
 
10
 __PageStart
3
 __PageStart
11
 
4
 
16
 <p>The program is free open source software available under the
9
 <p>The program is free open source software available under the
17
 MIT license.</p>
10
 MIT license.</p>
18
 
11
 
19
-<h1>Typica 1.6.4 Now Available</h1>
20
-<p>The latest release of Typica includes bug fixes and minor
21
-feature updates. The most significant new feature is the
22
-ability to use three new types of timer in addition to the
23
-familiar batch timer. See the documentation for details on how to
24
-configure these or watch this new video describing each of the
25
-new timer types and why you might want to use them.</p>
12
+<h1>Typica 1.7 Now Available</h1>
26
 
13
 
27
-<iframe width="640" height="360" src="https://www.youtube.com/embed/2zt9XlQd9oY" frameborder="0" allowfullscreen></iframe>
14
+<iframe width="640" height="360" src="https://www.youtube.com/embed/U7xTefVLRfk" frameborder="0" allowfullscreen></iframe>
15
+
16
+<p>The latest release of Typica includes several new features
17
+such as support for more detailed roast specifications, ability
18
+to set reminders based on production, a new batch log with search
19
+and filter features, and more. This also marks the first release
20
+that includes a translation of the program to another language.
21
+People using a computer with German locale settings will see that.</p>
28
 
22
 
29
 <h1>Data Acquisition</h1>
23
 <h1>Data Acquisition</h1>
30
 <p>Every batch of coffee you roast with Typica can be recorded for
24
 <p>Every batch of coffee you roast with Typica can be recorded for

Loading…
Cancel
Save