diff --git a/history.txt b/history.txt
index 34ab54521..a55ca4724 100644
--- a/history.txt
+++ b/history.txt
@@ -1,3 +1,12 @@
+2012-04-12 zzz
+ * Console:
+ - Try again to fix console on Windows w/o IPv6
+ by starting connectors individually
+ - Fix whitespace issues on several pages
+ - Prevent rare early NPE
+ - Non-default theme cleanups
+ - Theme and translate home page logo
+
2012-03-28 zzz
* RouterInfo: Fix fatal NPE in last checkin
diff --git a/installer/resources/themes/console/classic/console.css b/installer/resources/themes/console/classic/console.css
index 74c894e8b..36bfd84e1 100644
--- a/installer/resources/themes/console/classic/console.css
+++ b/installer/resources/themes/console/classic/console.css
@@ -620,61 +620,85 @@ th {
border-bottom: 1px solid #89f;
}
-/***********************************************************************************/
+/* begin home page */
#appsummary {
- margin-top: 53px;
+ clear: none;
+ float: none;
+ left: 10px;
+ margin: 0;
+ position: absolute;
+ top: 10px;
+}
+
+#homemain {
+ left: 217px;
+ margin: 0 10px 10px 0;
+ position: absolute;
+ text-align: center;
+ top: 10px;
+}
+
+#homenews {
+ margin: 0 10px 5px 0;
}
h2.app {
- margin: 15px 10px 15px 0 !important;
+ border-radius: 8px;
+ margin: 1px 10px 15px 0 !important;
}
h4.app {
+ margin: 0 10px 2px 10px;
+ padding: 10px 0 8px 0;
+}
+
+h4.app2 {
clear: left;
- margin: 12px 4px;
- padding: 20px 0 8px 0;
- text-align:center;
+ margin: 0 4px 2px 0;
+ padding: 16px 0 8px 0;
+}
+
+div.ag2 {
+ margin: 0;
}
div.app {
float: left;
- padding: 8px;
- height: 100px;
+ padding: 2px;
+ height: 84px;
width: 112px;
- text-align:center;
}
div.appgroup {
- clear: left;
- margin: 4px 20px;
+ margin: 0;
padding: 16px 8px;
width: auto;
}
div.search {
- margin: 20px 20px 20px 240px;
- padding: 8px;
+ margin: 10px 10px 0 0;
+ padding: 8px 8px 0 8px;
width: auto;
}
table.search {
background: none;
- padding: 8px;
- width: auto;
margin-left:auto;
margin-right:auto;
+ padding: 8px;
+ width: auto;
}
img.app {
- height: 40px;
- width: 40px;
- padding: 8px;
+ height: 32px;
+ width: 32px;
+ padding: 6px;
}
img.app2p {
- height: 48px;
- padding: 3px 8px;
+ height: 40px;
+ padding: 3px 6px 0 6px;
}
table.app {
@@ -709,7 +733,7 @@ div.applabel {
text-align: center;
}
-/***********************************************************************************/
+/* end home page */
tt {
font-size: 8pt;
diff --git a/installer/resources/themes/console/dark/console.css b/installer/resources/themes/console/dark/console.css
index 9d8f48e35..525ef98d5 100644
--- a/installer/resources/themes/console/dark/console.css
+++ b/installer/resources/themes/console/dark/console.css
@@ -756,12 +756,72 @@ button, button:visited {
color: #494;
}
+button.accept {
+ background: #ffe url('../images/accept.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.add {
+ background: #ffe url('../images/add.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.cancel {
+ background: #ffe url('../images/cancel.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.check {
+ background: #ffe url('../images/tick.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.delete {
+ background: #ffe url('../images/delete.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.download {
+ background: #ffe url('../images/arrow_down.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.go {
+ background: #ffe url('../images/arrow_right.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.reload {
+ background: #ffe url('../images/arrow_refresh.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.search {
+ background: #ffe url('../images/magnifier.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.stop {
+ background: #ffe url('../images/stop.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
button:hover {
border: 1px solid #f60;
-moz-box-shadow: inset 0px 1px 1px 0px #EE9;
-khtml-box-shadow: inset 0px 1px 1px 0px #EE9;
box-shadow: inset 0px 1px 1px 0px #EE9;
- background: #000;
+ background-color: #000;
color: #f60;
}
@@ -834,8 +894,68 @@ input {
-khtml-border-radius: 4px;
}
+input.accept {
+ background: #ffe url('../images/accept.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.add {
+ background: #ffe url('../images/add.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.cancel {
+ background: #ffe url('../images/cancel.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.check {
+ background: #ffe url('../images/tick.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.delete {
+ background: #ffe url('../images/delete.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.download {
+ background: #ffe url('../images/arrow_down.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.go {
+ background: #ffe url('../images/arrow_right.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.reload {
+ background: #ffe url('../images/arrow_refresh.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.search[type="text"] {
+ background: #001 url('../images/magnifier.png') no-repeat 2px center;
+ padding: 2px 3px 2px 24px;
+ min-height: 22px;
+}
+
+input.stop {
+ background: #ffe url('../images/stop.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
input:hover {
- background: #000;
+ background-color: #000;
color: #f60;
border: 1px solid #f60;
-moz-box-shadow: inset 0px 1px 1px 0px #9e9;
@@ -843,12 +963,6 @@ input:hover {
box-shadow: inset 0px 1px 1px 0px #9e9;
}
-input:active {
- background: #000;
- color: #f30;
- border: 1px solid #f30;
-}
-
input:active {
border: 1px inset #f60;
background: #f60;
@@ -871,10 +985,6 @@ input[type=text], input[type=password] {
box-shadow: inset 1px 1px 1px 0px #000;
}
-input[type=text]:active, input[type=text]:hover, input[type=password]:active, input[type=password]:hover {
- background: #000;
-}
-
fieldset {
overflow: hidden;
position: relative;
@@ -1068,39 +1178,65 @@ div.footnote hr{
margin-bottom: -5px;
margin-right: 5px;
}
-/***********************************************************************************/
+
+/* begin home page */
#appsummary {
- margin-top: 53px;
+ clear: none;
+ float: none;
+ left: 10px;
+ margin: 0;
+ position: absolute;
+ top: 10px;
+}
+
+#homemain {
+ left: 217px;
+ margin: 0 10px 10px 0;
+ position: absolute;
+ top: 10px;
+}
+
+#homenews {
+ margin: 0 10px 5px 0;
}
h2.app {
- margin: 15px 10px 15px 0 !important;
+ border-radius: 8px;
+ margin: 1px 10px 15px 0 !important;
}
h4.app {
+ margin: 0 10px 2px 10px;
+ padding: 10px 0 8px 0;
+}
+
+h4.app2 {
clear: left;
- margin: 12px 4px;
- padding: 20px 0 8px 0;
+ margin: 0 4px 2px 0;
+ padding: 16px 0 8px 0;
+}
+
+div.ag2 {
+ margin: 0;
}
div.app {
float: left;
- padding: 8px;
- height: 100px;
+ padding: 2px;
+ height: 84px;
width: 112px;
}
div.appgroup {
- clear: left;
- margin: 4px 20px;
+ margin: 0;
padding: 16px 8px;
width: auto;
}
div.search {
- margin: 20px 20px 20px 240px;
- padding: 8px;
+ margin: 10px 10px 0 0;
+ padding: 8px 8px 0 8px;
width: auto;
}
@@ -1113,14 +1249,14 @@ table.search {
}
img.app {
- height: 40px;
- width: 40px;
- padding: 8px;
+ height: 32px;
+ width: 32px;
+ padding: 6px;
}
img.app2p {
- height: 48px;
- padding: 3px 8px;
+ height: 40px;
+ padding: 3px 6px 0 6px;
}
table.app {
@@ -1155,4 +1291,4 @@ div.applabel {
text-align: center;
}
-/***********************************************************************************/
+/* end home page */
diff --git a/installer/resources/themes/console/midnight/console.css b/installer/resources/themes/console/midnight/console.css
index c0a9cf601..3fb56cfd0 100644
--- a/installer/resources/themes/console/midnight/console.css
+++ b/installer/resources/themes/console/midnight/console.css
@@ -628,61 +628,85 @@ th {
font-size: 8pt !important;
}
-/***********************************************************************************/
+/* begin home page */
#appsummary {
- margin-top: 53px;
+ clear: none;
+ float: none;
+ left: 10px;
+ margin: 0;
+ position: absolute;
+ top: 10px;
+}
+
+#homemain {
+ left: 217px;
+ margin: 0 10px 10px 0;
+ position: absolute;
+ text-align: center;
+ top: 10px;
+}
+
+#homenews {
+ margin: 0 10px 5px 0;
}
h2.app {
- margin: 15px 10px 15px 0 !important;
+ border-radius: 8px;
+ margin: 1px 10px 15px 0 !important;
}
h4.app {
+ margin: 0 10px 2px 10px;
+ padding: 10px 0 8px 0;
+}
+
+h4.app2 {
clear: left;
- margin: 12px 4px;
- padding: 20px 0 8px 0;
- text-align:center;
+ margin: 0 4px 2px 0;
+ padding: 16px 0 8px 0;
+}
+
+div.ag2 {
+ margin: 0;
}
div.app {
float: left;
- padding: 8px;
- height: 100px;
+ padding: 2px;
+ height: 84px;
width: 112px;
- text-align:center;
}
div.appgroup {
- clear: left;
- margin: 4px 20px;
+ margin: 0;
padding: 16px 8px;
width: auto;
}
div.search {
- margin: 20px 20px 20px 240px;
- padding: 8px;
+ margin: 10px 10px 0 0;
+ padding: 8px 8px 0 8px;
width: auto;
}
table.search {
background: none;
- margin-left: auto;
+ margin-left:auto;
margin-right:auto;
padding: 8px;
width: auto;
}
img.app {
- height: 40px;
- width: 40px;
- padding: 8px;
+ height: 32px;
+ width: 32px;
+ padding: 6px;
}
img.app2p {
- height: 48px;
- padding: 3px 8px;
+ height: 40px;
+ padding: 3px 6px 0 6px;
}
table.app {
@@ -717,21 +741,7 @@ div.applabel {
text-align: center;
}
-
-button.search {
- background: #ffe url('../images/magnifier.png') no-repeat 2px center;
- padding: 2px 3px 2px 20px;
- min-height: 22px;
-}
-
-
-input.search[type="text"] {
- background: #ffe url('../images/magnifier.png') no-repeat 2px center;
- padding: 2px 3px 2px 24px;
- min-height: 22px;
-}
-
-/***********************************************************************************/
+/* end home page */
tt {
font-size: 8pt;
@@ -834,11 +844,178 @@ div.joblog ol {
margin-bottom: 0px;
}
+button, button:visited {
+ font: bold 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
+ border: 1px outset #66a;
+ padding: 1px 3px;
+ background: #ffe;
+ text-decoration: none;
+ border-radius: 4px;
+ -moz-border-radius: 4px;
+ -khtml-border-radius: 4px;
+ font-size: 8pt;
+ font-weight: bold;
+ margin: 2px;
+ text-align: center;
+ min-width: 60px;
+ -moz-box-shadow: inset 0px 0px 2px 1px #fff;
+ -khtml-box-shadow: inset 0px 2px 8px 0px #fff;
+ box-shadow: inset 0px 2px 8px 0px #fff;
+ color: #316;
+}
+
+button.accept {
+ background: #ffe url('../images/accept.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.add {
+ background: #ffe url('../images/add.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.cancel {
+ background: #ffe url('../images/cancel.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.check {
+ background: #ffe url('../images/tick.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.delete {
+ background: #ffe url('../images/delete.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.download {
+ background: #ffe url('../images/arrow_down.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.go {
+ background: #ffe url('../images/arrow_right.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.reload {
+ background: #ffe url('../images/arrow_refresh.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.search {
+ background: #ffe url('../images/magnifier.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button.stop {
+ background: #ffe url('../images/stop.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+button:hover {
+ border: 1px solid #f60;
+ background-color: #f60 !important;
+ color: #fff;
+ -moz-box-shadow: inset 0px 0px 0px 1px #fff;
+ -khtml-box-shadow: inset 0px 0px 0px 1px #fff;
+ box-shadow: inset 0px 0px 0px 1px #fff;
+}
+
+button:active {
+ border: 1px solid #f60;
+ background: #202 !important;
+ color: #f60;
+ -moz-box-shadow: inset 0px 0px 0px 1px #f60;
+ box-shadow: inset 0px 0px 0px 1px #f60;
+ -khtml-box-shadow: inset 0px 0px 0px 1px #f60;
+}
+
input {
margin: 3px 5px 3px 0;
vertical-align: middle;
}
+input.accept {
+ background: #ffe url('../images/accept.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.add {
+ background: #ffe url('../images/add.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.cancel {
+ background: #ffe url('../images/cancel.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.check {
+ background: #ffe url('../images/tick.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.delete {
+ background: #ffe url('../images/delete.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.download {
+ background: #ffe url('../images/arrow_down.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.go {
+ background: #ffe url('../images/arrow_right.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.reload {
+ background: #ffe url('../images/arrow_refresh.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input.search[type="text"] {
+ background: #001 url('../images/magnifier.png') no-repeat 2px center;
+ padding: 2px 3px 2px 24px;
+ min-height: 22px;
+}
+
+input.stop {
+ background: #ffe url('../images/stop.png') no-repeat 2px center;
+ padding: 2px 3px 2px 20px;
+ min-height: 22px;
+}
+
+input:hover {
+ background-color: #f60;
+ color: #fff;
+ border: 1px solid #f60;
+ opacity: 1.0;
+ -moz-box-shadow: inset 0px 0px 0px 1px #fff;
+
+}
+
input[type=text], input[type=password] {
margin: 3px 5px 3px 5px;
vertical-align: middle;
diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java
index b7509f1d3..5f540c84e 100644
--- a/router/java/src/net/i2p/router/RouterVersion.java
+++ b/router/java/src/net/i2p/router/RouterVersion.java
@@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */
public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION;
- public final static long BUILD = 25;
+ public final static long BUILD = 26;
/** for example "-test" */
public final static String EXTRA = "";