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,7 +6,7 @@ Project web site: http://www.randomfield.com/programs/typica/
6 6
 
7 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 11
 Permission is hereby granteed, free of charge, to any person obtaining a copy
12 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,7 +43,7 @@
43 43
                     unitEdit.text = TTR("editBatchDetails", "Kg");
44 44
                     conversion = 2.2;
45 45
                 } else {
46
-                    unitEdit.text = TTR("editBatchDetails", "Lb";
46
+                    unitEdit.text = TTR("editBatchDetails", "Lb");
47 47
                 }
48 48
             };
49 49
             submit.clicked.connect(function() {

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

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

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

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

+ 0
- 1
docs/documentation.html View File

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

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

@@ -16,7 +16,6 @@
16 16
 					<a class="tab" href="../downloads.html" >Downloads</a>
17 17
 					<a class="tab active" href="../documentation.html" >Documentation</a>
18 18
 					<a class="tab" href="../screenshots.html" >Screenshots and Videos</a>
19
-					<a class="tab" href="../involvement.html" >Get Involved</a>
20 19
 					<a href="http://appliedcoffeetechnology.tumblr.com/tagged/Typica" class="tab">Blog</a>
21 20
 				</div>
22 21
 			</div>
@@ -27,24 +26,21 @@
27 26
 				<ul>
28 27
 					<li><a href="part2/application.html">Opening the Application</a></li>
29 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 31
 						<ul>
33 32
 							<li><a href="part2/argument-c.html">Eliminating the Configuration Prompt</a></li>
34 33
 						</ul>
35
-						<li><a>Choose Your Path</a></li>
34
+						<li><a href="windowreference/navigation.html">Main navigation window</a></li>
36 35
 					</ul>
37 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 38
 					<li><a>Purchase Green Coffee</a></li>
40 39
 					<li><a>Manage Roasted Coffee Items</a></li>
41 40
 					<li><a>Update Inventory</a></li>
42
-					<li><a>Batch Log</a></li>
43 41
 					<li><a>Cupping</a></li>
44 42
 					<li><a>Import Target Roast Profiles</a></li>
45
-					<li><a>Invoice List</a></li>
46 43
 					<li><a>Enter Green Coffee Sales</a></li>
47
-					<li><a>Reports</a></li>
48 44
 				</ul>
49 45
 			</div>
50 46
 		</div>

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

@@ -0,0 +1,79 @@
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

@@ -0,0 +1,202 @@
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

@@ -0,0 +1,156 @@
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

@@ -0,0 +1,38 @@
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,3 +44,5 @@ RESOURCES += \
44 44
 RC_FILE = typica.rc
45 45
 ICON = resources/icons/appicons/logo.icns
46 46
 QMAKE_INFO_PLIST = resources/Info.plist
47
+
48
+CODECFORTR = UTF-8

+ 5
- 5
src/abouttypica.cpp View File

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

+ 2
- 2
src/abouttypica.h View File

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

+ 20
- 20
src/daterangeselector.cpp View File

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

+ 4
- 4
src/daterangeselector.h View File

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

+ 2
- 2
src/draglabel.cpp View File

@@ -1,4 +1,4 @@
1
-/*992:*/
1
+/*1002:*/
2 2
 #line 33 "./scales.w"
3 3
 
4 4
 #include "draglabel.h"
@@ -26,4 +26,4 @@ drag->exec();
26 26
 }
27 27
 }
28 28
 
29
-/*:992*/
29
+/*:1002*/

+ 2
- 2
src/draglabel.h View File

@@ -1,4 +1,4 @@
1
-/*991:*/
1
+/*1001:*/
2 2
 #line 13 "./scales.w"
3 3
 
4 4
 #ifndef TypicaDragLabelInclude
@@ -17,4 +17,4 @@ void mousePressEvent(QMouseEvent*event);
17 17
 
18 18
 #endif
19 19
 
20
-/*:991*/
20
+/*:1001*/

+ 7
- 7
src/helpmenu.cpp View File

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

+ 2
- 2
src/helpmenu.h View File

@@ -1,4 +1,4 @@
1
-/*193:*/
1
+/*203:*/
2 2
 #line 16 "./helpmenu.w"
3 3
 
4 4
 #include <QMenu> 
@@ -18,4 +18,4 @@ void displayLicenseWindow();
18 18
 
19 19
 #endif
20 20
 
21
-/*:193*/
21
+/*:203*/

+ 69
- 0
src/licensewindow.cpp View File

@@ -0,0 +1,69 @@
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

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

+ 15
- 6
src/moc_typica.cpp View File

@@ -3759,25 +3759,31 @@ static const uint qt_meta_data_RoasterConfWidget[] = {
3759 3759
        6,       // revision
3760 3760
        0,       // classname
3761 3761
        0,    0, // classinfo
3762
-       1,   14, // methods
3762
+       4,   14, // methods
3763 3763
        0,    0, // properties
3764 3764
        0,    0, // enums/sets
3765
-       1,   19, // constructors
3765
+       1,   34, // constructors
3766 3766
        0,       // flags
3767 3767
        0,       // signalCount
3768 3768
 
3769 3769
  // slots: signature, parameters, type, tag, flags
3770 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 3775
  // constructors: signature, parameters, type, tag, flags
3773
-      55,   43,   18,   18, 0x0e,
3776
+     138,  126,   18,   18, 0x0e,
3774 3777
 
3775 3778
        0        // eod
3776 3779
 };
3777 3780
 
3778 3781
 static const char qt_meta_stringdata_RoasterConfWidget[] = {
3779 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 3789
 void RoasterConfWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
@@ -3792,6 +3798,9 @@ void RoasterConfWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, in
3792 3798
         RoasterConfWidget *_t = static_cast<RoasterConfWidget *>(_o);
3793 3799
         switch (_id) {
3794 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 3804
         default: ;
3796 3805
         }
3797 3806
     }
@@ -3829,9 +3838,9 @@ int RoasterConfWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
3829 3838
     if (_id < 0)
3830 3839
         return _id;
3831 3840
     if (_c == QMetaObject::InvokeMetaMethod) {
3832
-        if (_id < 1)
3841
+        if (_id < 4)
3833 3842
             qt_static_metacall(this, _c, _id, _a);
3834
-        _id -= 1;
3843
+        _id -= 4;
3835 3844
     }
3836 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,13 +1,13 @@
1 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 4
 <dict>
5 5
 	<key>CFBundleIconFile</key>
6 6
 	<string>@ICON@</string>
7 7
 	<key>CFBundlePackageType</key>
8 8
 	<string>APPL</string>
9 9
 	<key>CFBundleGetInfoString</key>
10
-	<string>Typica 1.6.4</string>
10
+	<string>Typica 1.7.0</string>
11 11
 	<key>CFBundleSignature</key>
12 12
 	<string>@TYPEINFO@</string>
13 13
 	<key>CFBundleExecutable</key>
@@ -17,10 +17,10 @@
17 17
 	<key>CFBundleDisplayName</key>
18 18
 	<string>Typica</string>
19 19
 	<key>CFBundleShortVersionString</key>
20
-	<string>1.6.4</string>
20
+	<string>1.7.0</string>
21 21
 	<key>CFBundleVersion</key>
22
-	<string>1.6.4</string>
22
+	<string>1.7.0</string>
23 23
 	<key>NSHumanReadableCopyright</key>
24
-	<string>© 2007–2015 Neal Wilson</string>
24
+	<string>© 2007–2016 Neal Wilson</string>
25 25
 </dict>
26 26
 </plist>

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

@@ -10,10 +10,10 @@
10 10
 				<div class="topbanner">
11 11
 					<a href="http://www.randomfield.com/programs/typica/"><img src="../icons/appicons/logo96.png" height="96px" width="96px" alt="Typica logo" /></a>
12 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 14
 				</div>
15 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 17
 					<span class="icons">
18 18
 						<a href="mailto:roaster@wilsonscoffee.com?subject=Thanks%20for%20Typica&amp;body=Message%20initiated%20from%20Typica.">&#9993;</a>
19 19
 						<a href="https://twitter.com/N3Roaster">&#62217;</a>
@@ -22,87 +22,11 @@
22 22
 						<a href="http://www.linkedin.com/profile/view?id=179814079">&#62232;</a>
23 23
 					</span>
24 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 31
 				<h3>License Information</h3>
108 32
 				<p>Permission is hereby granted, free of charge, to any person

+ 6
- 6
src/scale.cpp View File

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

+ 2
- 2
src/scale.h View File

@@ -1,4 +1,4 @@
1
-/*997:*/
1
+/*1007:*/
2 2
 #line 103 "./scales.w"
3 3
 
4 4
 #ifndef TypicaScaleInclude
@@ -25,4 +25,4 @@ QByteArray responseBuffer;
25 25
 
26 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,7 +1,7 @@
1 1
 #include <winver.h>
2 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 5
 FILEFLAGSMASK	0x3fL
6 6
 #ifdef _DEBUG
7 7
 	FILEFLAGS	VS_FF_DEBUG
@@ -16,13 +16,13 @@ BEGIN
16 16
 		BLOCK "040904b0"
17 17
 		BEGIN
18 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 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 23
 			VALUE "OriginalFilename", "Typica.exe\0"
24 24
 			VALUE "ProductName", "Typica\0"
25
-			VALUE "ProductVersion", "1.6.4\0"
25
+			VALUE "ProductVersion", "1.7.0\0"
26 26
 		END
27 27
 	END
28 28
 	BLOCK "VarFileInfo"

+ 9
- 8
src/typica.w View File

@@ -22,8 +22,8 @@
22 22
 \mark{\noexpand\nullsec0{A Note on Notation}}
23 23
 \def\pn{Typica}
24 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 27
 \def\title{\pn{} (Version \version)}
28 28
 \newskip\dangerskipb
29 29
 \newskip\dangerskip
@@ -4299,7 +4299,7 @@ translated into other languages.
4299 4299
 QScriptValue scriptTr(QScriptContext *context, QScriptEngine *)
4300 4300
 {
4301 4301
     return QScriptValue(QCoreApplication::translate(
4302
-        argument<QString>(0, context).toAscii().data(),
4302
+        "configuration",
4303 4303
         argument<QString>(1, context).toUtf8().data()));
4304 4304
 }
4305 4305
 
@@ -4351,6 +4351,7 @@ if(!filename.isEmpty())
4351 4351
     QFile file(filename);
4352 4352
     QFileInfo info(filename);
4353 4353
     directory = info.dir();
4354
+    QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
4354 4355
     QTranslator *configtr = new QTranslator;
4355 4356
     if(configtr->load(QString("config.%1").arg(QLocale::system().name()),
4356 4357
                      QString("%1/Translations").arg(directory.canonicalPath())))
@@ -4714,7 +4715,7 @@ bar->setParent(window);
4714 4715
 bar->setObjectName("menuBar");
4715 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 4719
                                                            element.attribute("name").toUtf8().data()));
4719 4720
     menu->setParent(bar);
4720 4721
     if(element.hasAttribute("type"))
@@ -4747,7 +4748,7 @@ while(j < menuItems.count())
4747 4748
         QDomElement itemElement = item.toElement();
4748 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 4752
                                               itemElement.text().toUtf8().data()), menu);
4752 4753
             if(itemElement.hasAttribute("id"))
4753 4754
             {
@@ -12625,12 +12626,12 @@ details, see the Qt Linguist manual.
12625 12626
 
12626 12627
 @<Load translation objects@>=
12627 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 12631
     installTranslator(base);
12631 12632
 }
12632 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 12636
     installTranslator(app);
12636 12637
 }
@@ -13928,7 +13929,7 @@ if(file.open(QIODevice::ReadOnly))
13928 13929
     if(!titleNode.isNull())
13929 13930
     {
13930 13931
         QDomElement titleElement = titleNode.toElement();
13931
-        QString title = QCoreApplication::translate(translationContext.toAscii().data(),
13932
+        QString title = QCoreApplication::translate("configuration",
13932 13933
                                                     titleElement.text().toUtf8().data());
13933 13934
         if(!title.isEmpty())
13934 13935
         {

+ 6
- 6
src/units.cpp View File

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

+ 2
- 2
src/units.h View File

@@ -1,4 +1,4 @@
1
-/*268:*/
1
+/*278:*/
2 2
 #line 8 "./units.w"
3 3
 
4 4
 #include <QObject> 
@@ -32,4 +32,4 @@ static bool isWeightUnit(Unit unit);
32 32
 
33 33
 #endif
34 34
 
35
-/*:268*/
35
+/*:278*/

+ 5
- 5
src/webelement.cpp View File

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

+ 2
- 2
src/webelement.h View File

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

+ 11
- 11
src/webview.cpp View File

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

+ 2
- 2
src/webview.h View File

@@ -1,4 +1,4 @@
1
-/*540:*/
1
+/*550:*/
2 2
 #line 14 "./webview.w"
3 3
 
4 4
 #include <QWebView> 
@@ -34,4 +34,4 @@ void linkDelegate(const QUrl&url);
34 34
 
35 35
 #endif
36 36
 
37
-/*:540*/
37
+/*:550*/

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

@@ -16,26 +16,10 @@
16 16
 	<div id="maintext">
17 17
 <h1>Thank you for downloading Typica.</h1>
18 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 20
 <p>should begin automatically. If it does not,
21 21
 please click the above link.</p>
22 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 23
 <p>While Typica is free and will continue to be made freely
40 24
 available complete with all source code, there are still costs
41 25
 associated with ongoing development and keeping the software
@@ -51,27 +35,23 @@ available. Some of the costs include:
51 35
 	</ul>
52 36
 There is also a huge commitment of time in developing, testing,
53 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 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 46
 <p>Neal Wilson<br />
68 47
 c/o Wilson's Coffee &amp; Tea<br />
69 48
 3306 Washington Ave.<br />
70 49
 Racine, WI 53405<br />
71 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 53
 <p>Another great way to help Typica right now is to reach out
73 54
 to your professional colleagues and let them know that you're
74 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 57
 </div></div></body></html>

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

@@ -16,26 +16,10 @@
16 16
 	<div id="maintext">
17 17
 <h1>Thank you for downloading Typica.</h1>
18 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 20
 <p>should begin automatically. If it does not,
21 21
 please click the above link.</p>
22 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 23
 <p>While Typica is free and will continue to be made freely
40 24
 available complete with all source code, there are still costs
41 25
 associated with ongoing development and keeping the software
@@ -51,27 +35,23 @@ available. Some of the costs include:
51 35
 	</ul>
52 36
 There is also a huge commitment of time in developing, testing,
53 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 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 46
 <p>Neal Wilson<br />
68 47
 c/o Wilson's Coffee &amp; Tea<br />
69 48
 3306 Washington Ave.<br />
70 49
 Racine, WI 53405<br />
71 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 53
 <p>Another great way to help Typica right now is to reach out
73 54
 to your professional colleagues and let them know that you're
74 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 57
 </div></div></body></html>

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

@@ -14,10 +14,10 @@
14 14
 	</div>
15 15
 	</div>
16 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 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 21
 <p>The latest source code can always be found on
22 22
 <a href="https://github.com/N3Roaster/typica">GitHub</a>.</p>
23 23
 </div></div></body></html>

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

@@ -1,11 +1,6 @@
1 1
 <html><head>
2 2
 	<title>Typica - Data for Coffee Roasters</title>
3 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 4
 	</head><body><div id="page"><div id="topmatter">
10 5
 	<div id="topbanner">
11 6
 	<img src="logo96.png" height="96px" width="96px" alt="Typica logo" />
@@ -25,14 +20,14 @@ inventory, product development, improving production consistency,
25 20
 and more.</p>
26 21
 <p>The program is free open source software available under the
27 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 31
 <h1>Data Acquisition</h1>
37 32
 <p>Every batch of coffee you roast with Typica can be recorded for
38 33
 future reference. A practically unlimited number of target roast

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

@@ -1,5 +1,5 @@
1 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 5
 __PageEnd

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

@@ -1,5 +1,5 @@
1 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 5
 __PageEnd

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

@@ -5,24 +5,6 @@
5 5
 please click the above link.</p>
6 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 8
 <p>While Typica is free and will continue to be made freely
27 9
 available complete with all source code, there are still costs
28 10
 associated with ongoing development and keeping the software
@@ -39,20 +21,14 @@ available. Some of the costs include:
39 21
 There is also a huge commitment of time in developing, testing,
40 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 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 33
 <p>Neal Wilson<br />
58 34
 c/o Wilson's Coffee &amp; Tea<br />
@@ -60,10 +36,11 @@ c/o Wilson's Coffee &amp; Tea<br />
60 36
 Racine, WI 53405<br />
61 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 42
 <p>Another great way to help Typica right now is to reach out
64 43
 to your professional colleagues and let them know that you're
65 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 46
 <iframe width="1" height="1" frameborder="0" src="__DownloadUrl"></iframe>

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

@@ -1,11 +1,4 @@
1 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 3
 __PageStart
11 4
 
@@ -16,15 +9,16 @@ and more.</p>
16 9
 <p>The program is free open source software available under the
17 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 23
 <h1>Data Acquisition</h1>
30 24
 <p>Every batch of coffee you roast with Typica can be recorded for

Loading…
Cancel
Save