[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [gcompris/gsoc_pulkit_digital_electricity] src/activities/digital_electricity: digital_electricity,
From: Pulkit Gupta <pulkitnsit () gmail ! com>
Date: 2016-08-31 21:09:03
Message-ID: E1bfCkp-0006U7-Qd () code ! kde ! org
[Download RAW message or body]
Git commit d08800c98d7dae5242cb3f3d26279a26acfd1427 by Pulkit Gupta.
Committed on 31/08/2016 at 21:06.
Pushed by pulkitgupta into branch 'gsoc_pulkit_digital_electricity'.
digital_electricity, update wire color, and fix some other minor issues.
M +1 -1 src/activities/digital_electricity/DragListItem.qml
M +2 -2 src/activities/digital_electricity/Wire.qml
M +1 -1 src/activities/digital_electricity/components/BCDToSevenSegment.qml
M +25 -21 src/activities/digital_electricity/components/SignalGenerator.qml
M +15 -6 src/activities/digital_electricity/digital_electricity.js
M +43 -43 src/activities/digital_electricity/resource/BCDTo7Segment.svg
M +15 -15 src/activities/digital_electricity/resource/BCDTo7SegmentDropped.svg
M +6 -6 src/activities/digital_electricity/resource/signalGenerator.svg
http://commits.kde.org/gcompris/d08800c98d7dae5242cb3f3d26279a26acfd1427
diff --git a/src/activities/digital_electricity/DragListItem.qml \
b/src/activities/digital_electricity/DragListItem.qml index f0917f5..fc002b3 100644
--- a/src/activities/digital_electricity/DragListItem.qml
+++ b/src/activities/digital_electricity/DragListItem.qml
@@ -129,7 +129,7 @@ Item {
//console.log("coord.x",coord.x,"coord.y",coord.y)
//console.log("dropped",terminalSize)
if(coord.x > 0 && (backgroundContainer.width - coord.x > \
tileImage.fullWidth))
- Activity.createComponent(coord.x, coord.y, imgName)
+ Activity.createComponent(coord.x, coord.y, componentSrc)
tileImage.anchors.centerIn = tile
tileImage.toSmall()
toolTip.show("")
diff --git a/src/activities/digital_electricity/Wire.qml \
b/src/activities/digital_electricity/Wire.qml index 72760de..bf0d340 100644
--- a/src/activities/digital_electricity/Wire.qml
+++ b/src/activities/digital_electricity/Wire.qml
@@ -27,12 +27,12 @@ import GCompris 1.0
Rectangle {
id: wire
- property string wireColor
+ //property string wireColor
property QtObject from
property QtObject to
height: 5
- color: wireColor
+ color: from.value == 0 ? "Red" : "Green" //wireColor
radius: height / 2
transformOrigin: Item.Left
diff --git a/src/activities/digital_electricity/components/BCDToSevenSegment.qml \
b/src/activities/digital_electricity/components/BCDToSevenSegment.qml index \
559d9e6..e282dc0 100644
--- a/src/activities/digital_electricity/components/BCDToSevenSegment.qml
+++ b/src/activities/digital_electricity/components/BCDToSevenSegment.qml
@@ -48,7 +48,7 @@ ElectricalComponent {
"display the decimal number (represented by the BCD number) on \
the 7 segment display. " +
"The truth table for BCD To 7 Segment converted is:")
- truthTable: [['A','B','C','D','a','b','c','d','e','f','g'],
+ truthTable: [['D','C','B','A','a','b','c','d','e','f','g'],
['0','0','0','0','1','1','1','1','1','1','0'],
['0','0','0','1','0','1','1','0','0','0','0'],
['0','0','1','0','1','1','0','1','1','0','1'],
diff --git a/src/activities/digital_electricity/components/SignalGenerator.qml \
b/src/activities/digital_electricity/components/SignalGenerator.qml index \
85b4ce4..78c7d87 100644
--- a/src/activities/digital_electricity/components/SignalGenerator.qml
+++ b/src/activities/digital_electricity/components/SignalGenerator.qml
@@ -30,21 +30,23 @@ ElectricalComponent {
imgHeight: 0.18
imgSrc: "signalGenerator.svg"
toolTipTxt: qsTr("Signal Generator")
- terminalSize: 0.451
+ terminalSize: 0.24
noOfInputs: 0
noOfOutputs: 1
information: qsTr("Signal Generator is used to generate alternating signals of 0 \
and 1. " +
- "It takes frequency as input, and generate outputs \
accordingly. Frequency " +
- "refers to the number of times the output will change in 1 \
second. So 1 Hz " +
- "means that the output will change after every 1 second, 0.5 \
Hz means that " +
- "the output will change after every 2 seconds, and so on. For \
the demonstration " +
- "purpose, the minimum frequency of signal generator in this \
activity is " +
- "0.25 Hz, and maximum frequency is 2 Hz. The frequency can be \
changed by clicking " + + "It takes period as input, and \
generate outputs accordingly. Period " + + "refers to the number \
of seconds after which the output will. So 1s " + + "means that \
the output will change after every 1 second, 0.5s means that " + + \
"the output will change after every 0.5 seconds, and so on. For the demonstration " + \
+ "purpose, the minimum period of signal generator in this \
activity is " + + "0.25s, and maximum period is 2s. The period \
can be changed by clicking " + "on the arrows on the signal generator")
property alias outputTerminals: outputTerminals
- property double frequency: 0.25
+ property double period: 1
+ property variant periodFraction: ["1/4","1/2","1","2"]
+ property int periodIndex: 2
Repeater {
id: outputTerminals
@@ -53,8 +55,8 @@ ElectricalComponent {
Component {
id: outputTerminal
TerminalPoint {
- posX: 0.914
- posY: 0.512
+ posX: 0.95
+ posY: 0.504
value: 0
type: "Out"
}
@@ -81,7 +83,7 @@ ElectricalComponent {
Timer {
id: timer
- interval: 1000 / signalGenerator.frequency
+ interval: 1000 * signalGenerator.period
running: true
repeat: true
onTriggered: Activity.updateComponent(signalGenerator.index)
@@ -91,7 +93,7 @@ ElectricalComponent {
source: Activity.url + "arrowUp.svg"
height: 0.339 * parent.height
width: 0.123 * parent.width
- property double posX: 0.632
+ property double posX: 0.688
property double posY: 0.284
x: (parent.width - parent.paintedWidth) / 2 + posX * parent.paintedWidth - \
width / 2
y: (parent.height - parent.paintedHeight) / 2 + posY * parent.paintedHeight \
- height / 2 @@ -101,10 +103,11 @@ ElectricalComponent {
MouseArea {
anchors.fill: parent
anchors.centerIn: parent
- enabled: signalGenerator.frequency != 2
+ enabled: signalGenerator.period != 2
onPressed: {
//console.log("Up pressed")
- signalGenerator.frequency += 0.25
+ signalGenerator.period *= 2
+ periodIndex++
timer.restart()
outputTerminals.itemAt(0).value = 1
Activity.updateComponent(signalGenerator.index)
@@ -115,8 +118,8 @@ ElectricalComponent {
Image {
source: Activity.url + "arrowDown.svg"
height: 0.339 * parent.height
- width: 0.123 * parent.width
- property double posX: 0.632
+ width: 0.133 * parent.width
+ property double posX: 0.688
property double posY: 0.713
x: (parent.width - parent.paintedWidth) / 2 + posX * parent.paintedWidth - \
width / 2
y: (parent.height - parent.paintedHeight) / 2 + posY * parent.paintedHeight \
- height / 2 @@ -126,10 +129,11 @@ ElectricalComponent {
MouseArea {
anchors.fill: parent
anchors.centerIn: parent
- enabled: signalGenerator.frequency != 0.25
+ enabled: signalGenerator.period != 0.25
onPressed: {
//console.log("Down pressed")
- signalGenerator.frequency -= 0.25
+ signalGenerator.period /= 2
+ periodIndex--
timer.restart()
outputTerminals.itemAt(0).value = 1
Activity.updateComponent(signalGenerator.index)
@@ -141,8 +145,8 @@ ElectricalComponent {
//id: valueContainer
source: Activity.url + "valueContainer.svg"
sourceSize.height: 0.818 * parent.height
- sourceSize.width: 0.512 * parent.width
- property double posX: 0.306
+ sourceSize.width: 0.557 * parent.width
+ property double posX: 0.333
property double posY: 0.503
x: (parent.width - parent.paintedWidth) / 2 + posX * parent.paintedWidth - \
width / 2
y: (parent.height - parent.paintedHeight) / 2 + posY * parent.paintedHeight \
- height / 2 @@ -160,7 +164,7 @@ ElectricalComponent {
verticalAlignment: Text.AlignVCenter
height: parent.height - 10
width: parent.width - 10
- text: qsTr("%1 Hz").arg(signalGenerator.frequency.toFixed(2))
+ text: qsTr("%1s").arg(signalGenerator.periodFraction[periodIndex])
}
}
}
diff --git a/src/activities/digital_electricity/digital_electricity.js \
b/src/activities/digital_electricity/digital_electricity.js index 47403dc..f3f661f \
100644
--- a/src/activities/digital_electricity/digital_electricity.js
+++ b/src/activities/digital_electricity/digital_electricity.js
@@ -34,7 +34,7 @@ var selectedTerminal
var deletedIndex = []
var components = []
var connected = []
-var colors = ["red","green","blue","blueviolet","silver"]
+//var colors = ["red","green","blue","blueviolet","silver"]
function start(items_) {
@@ -43,42 +43,49 @@ function start(items_) {
items.availablePieces.model.append( {
"imgName": "zero.svg",
+ "componentSrc": "Zero.qml",
"imgWidth": 0.12,
"imgHeight": 0.2,
"toolTipText": qsTr("Zero input")
})
items.availablePieces.model.append( {
"imgName": "one.svg",
+ "componentSrc": "One.qml",
"imgWidth": 0.12,
"imgHeight": 0.2,
"toolTipText": qsTr("One input")
})
items.availablePieces.model.append( {
"imgName": "gateAnd.svg",
+ "componentSrc": "AndGate.qml",
"imgWidth": 0.15,
"imgHeight": 0.12,
"toolTipText": qsTr("AND gate")
})
items.availablePieces.model.append( {
"imgName": "BCDTo7Segment.svg",
+ "componentSrc": "BCDToSevenSegment.qml",
"imgWidth": 0.3,
"imgHeight": 0.4,
"toolTipText": qsTr("BCD To 7 Segment")
})
items.availablePieces.model.append( {
"imgName": "sevenSegmentDisplay.svgz",
+ "componentSrc": "SevenSegment.qml",
"imgWidth": 0.18,
"imgHeight": 0.4,
"toolTipText": qsTr("7 Segment Display")
})
items.availablePieces.model.append( {
"imgName": "DigitalLightOff.svg",
+ "componentSrc": "DigitalLight.qml",
"imgWidth": 0.2,
"imgHeight": 0.18,
"toolTipText": qsTr("Digital Light")
})
items.availablePieces.model.append( {
"imgName": "signalGenerator.svg",
+ "componentSrc": "SignalGenerator.qml",
"imgWidth": 0.25,
"imgHeight": 0.18,
"toolTipText": qsTr("Signal Generator")
@@ -134,7 +141,7 @@ function createComponent(x, y, src) {
else
index = components.length
- var electricComponent
+ /*var electricComponent
var componentLocation = \
"qrc:/gcompris/src/activities/digital_electricity/components/" if(src == "one.svg")
electricComponent = Qt.createComponent(componentLocation + "One.qml")
@@ -149,7 +156,9 @@ function createComponent(x, y, src) {
else if(src == "DigitalLightOff.svg")
electricComponent = Qt.createComponent(componentLocation + \
"DigitalLight.qml") else if(src == "signalGenerator.svg")
- electricComponent = Qt.createComponent(componentLocation + \
"SignalGenerator.qml") + electricComponent = \
Qt.createComponent(componentLocation + "SignalGenerator.qml")*/ +
+ var electricComponent = \
Qt.createComponent("qrc:/gcompris/src/activities/digital_electricity/components/" + \
src)
//console.log("Error loading component:", electricComponent.errorString())
components[index] = electricComponent.createObject(
@@ -176,12 +185,12 @@ function terminalPointSelected(terminal) {
//console.log("in2")
var wireComponent = \
Qt.createComponent("qrc:/gcompris/src/activities/digital_electricity/Wire.qml")
- var colorIndex = Math.floor(Math.random() * colors.length)
+ //var colorIndex = Math.floor(Math.random() * colors.length)
var wire = wireComponent.createObject(
items.backgroundContainer, {
"from": outTerminal,
- "to": inTerminal,
- "wireColor": colors[colorIndex]
+ "to": inTerminal
+ //"wireColor": colors[colorIndex]
//"index": index
});
inTerminal.value = outTerminal.value
diff --git a/src/activities/digital_electricity/resource/BCDTo7Segment.svg \
b/src/activities/digital_electricity/resource/BCDTo7Segment.svg index \
0e3e22b..b7972f3 100644
--- a/src/activities/digital_electricity/resource/BCDTo7Segment.svg
+++ b/src/activities/digital_electricity/resource/BCDTo7Segment.svg
@@ -15,7 +15,7 @@
id="svg4252"
version="1.1"
inkscape:version="0.91 r13725"
- sodipodi:docname="BCDTo7Segment2.svg">
+ sodipodi:docname="BCDTo7Segment.svg">
<defs
id="defs4254" />
<sodipodi:namedview
@@ -26,7 +26,7 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.35"
- inkscape:cx="-20.262202"
+ inkscape:cx="-441.69077"
inkscape:cy="324.81282"
inkscape:document-units="px"
inkscape:current-layer="layer1"
@@ -48,7 +48,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -229,42 +229,6 @@
cx="846.90234"
cy="830.2597"
r="23.867764" />
- <text
- xml:space="preserve"
- style="font-style:normal;font-weight:normal;font-size:46.22131729px;line-heigh \
t:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-op \
acity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- x="197.50136"
- y="496.16302"
- id="text4869"
- sodipodi:linespacing="125%"
- transform="scale(0.96378613,1.0375746)"><tspan
- sodipodi:role="line"
- id="tspan4871"
- x="197.50136"
- y="496.16302">B</tspan></text>
- <text
- xml:space="preserve"
- style="font-style:normal;font-weight:normal;font-size:46.22131729px;line-heigh \
t:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-op \
acity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- x="198.15585"
- y="656.99432"
- id="text4994"
- sodipodi:linespacing="125%"
- transform="scale(0.96378613,1.0375746)"><tspan
- sodipodi:role="line"
- id="tspan4996"
- x="198.15585"
- y="656.99432">C</tspan></text>
- <text
- xml:space="preserve"
- style="font-style:normal;font-weight:normal;font-size:46.22131729px;line-heigh \
t:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-op \
acity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- x="195.97795"
- y="804.9201"
- id="text5000"
- sodipodi:linespacing="125%"
- transform="scale(0.96378613,1.0375746)"><tspan
- sodipodi:role="line"
- id="tspan5002"
- x="195.97795"
- y="804.9201">D</tspan></text>
<circle
style="opacity:0.64899998;fill:#000000;fill-opacity:0.93377482;stroke:#000000; \
stroke-width:5.94054413;stroke-miterlimit:3.54999995;stroke-dasharray:none;stroke-opacity:0.05298013"
id="path5637-5"
@@ -311,14 +275,50 @@
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:46.22131729px;line-heigh \
t:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-op \
acity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="197.45729"
+ y="654.72266"
+ id="text4869"
+ sodipodi:linespacing="125%"
+ transform="scale(0.96378613,1.0375746)"><tspan
+ sodipodi:role="line"
+ id="tspan4871"
+ x="197.45729"
+ y="654.72266">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:46.22131729px;line-heigh \
t:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-op \
acity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="198.11142"
+ y="492.67239"
+ id="text4994"
+ sodipodi:linespacing="125%"
+ transform="scale(0.96378613,1.0375746)"><tspan
+ sodipodi:role="line"
+ id="tspan4996"
+ x="198.11142"
+ y="492.67239">C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:46.22131729px;line-heigh \
t:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-op \
acity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="195.93365"
+ y="344.1127"
+ id="text5000"
+ sodipodi:linespacing="125%"
+ transform="scale(0.96378613,1.0375746)"><tspan
+ sodipodi:role="line"
+ id="tspan5002"
+ x="195.93365"
+ y="344.1127">D</tspan></text>
+ <text
+ xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:45.46774292px;line-heigh \
t:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-op \
acity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- x="194.28792"
- y="360.03229"
+ x="190.24521"
+ y="832.1756"
id="text4608"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4610"
- x="194.28792"
- y="360.03229">A</tspan></text>
+ x="190.24521"
+ y="832.1756">A</tspan></text>
</g>
</svg>
diff --git a/src/activities/digital_electricity/resource/BCDTo7SegmentDropped.svg \
b/src/activities/digital_electricity/resource/BCDTo7SegmentDropped.svg index \
81ffcb1..b46d186 100644
--- a/src/activities/digital_electricity/resource/BCDTo7SegmentDropped.svg
+++ b/src/activities/digital_electricity/resource/BCDTo7SegmentDropped.svg
@@ -15,7 +15,7 @@
id="svg4252"
version="1.1"
inkscape:version="0.91 r13725"
- sodipodi:docname="BCDTo7Segment.svg">
+ sodipodi:docname="BCDTo7SegmentDropped.svg">
<defs
id="defs4254" />
<sodipodi:namedview
@@ -156,38 +156,38 @@
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:46.22131729px;line-heigh \
t:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-op \
acity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="197.50136"
- y="496.16302"
+ y="657.60394"
id="text4869"
sodipodi:linespacing="125%"
transform="scale(0.96378613,1.0375746)"><tspan
sodipodi:role="line"
id="tspan4871"
x="197.50136"
- y="496.16302">B</tspan></text>
+ y="657.60394">B</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:46.22131729px;line-heigh \
t:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-op \
acity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- x="198.15585"
- y="656.99432"
+ x="198.15549"
+ y="495.55365"
id="text4994"
sodipodi:linespacing="125%"
transform="scale(0.96378613,1.0375746)"><tspan
sodipodi:role="line"
id="tspan4996"
- x="198.15585"
- y="656.99432">C</tspan></text>
+ x="198.15549"
+ y="495.55365">C</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:46.22131729px;line-heigh \
t:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-op \
acity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- x="195.97795"
- y="804.9201"
+ x="195.97772"
+ y="346.99399"
id="text5000"
sodipodi:linespacing="125%"
transform="scale(0.96378613,1.0375746)"><tspan
sodipodi:role="line"
id="tspan5002"
- x="195.97795"
- y="804.9201">D</tspan></text>
+ x="195.97772"
+ y="346.99399">D</tspan></text>
<circle
style="opacity:0.64899998;fill:#000000;fill-opacity:0.93377482;stroke:#000000; \
stroke-width:5.94054413;stroke-miterlimit:3.54999995;stroke-dasharray:none;stroke-opacity:0.05298013"
id="path5637-5"
@@ -235,13 +235,13 @@
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:45.46774292px;line-heigh \
t:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-op \
acity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- x="194.28792"
- y="360.03229"
+ x="190.28769"
+ y="835.16516"
id="text4608"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4610"
- x="194.28792"
- y="360.03229">A</tspan></text>
+ x="190.28769"
+ y="835.16516">A</tspan></text>
</g>
</svg>
diff --git a/src/activities/digital_electricity/resource/signalGenerator.svg \
b/src/activities/digital_electricity/resource/signalGenerator.svg index \
ec6081b..09270c3 100644
--- a/src/activities/digital_electricity/resource/signalGenerator.svg
+++ b/src/activities/digital_electricity/resource/signalGenerator.svg
@@ -13,14 +13,14 @@
id="svg47331"
sodipodi:docname="signalGenerator.svg"
inkscape:export-filename="/home/cats/Desktop/computer.png"
- viewBox="0 0 883.94856 337.58"
+ viewBox="0 0 812.57893 337.58"
sodipodi:version="0.32"
inkscape:export-xdpi="150"
version="1.0"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-ydpi="150"
inkscape:version="0.91 r13725"
- width="883.94855"
+ width="812.57892"
height="337.57999">
<title
id="title3204">Function Generator</title>
@@ -380,7 +380,7 @@
showgrid="false"
borderopacity="1.0"
inkscape:current-layer="layer1"
- inkscape:cx="322.74115"
+ inkscape:cx="515.7122"
inkscape:cy="197.9809"
showguides="true"
inkscape:window-y="-8"
@@ -432,9 +432,9 @@
<circle
style="opacity:0.64899998;fill:#000000;fill-opacity:0.93377482;stroke:#000000; \
stroke-width:0;stroke-miterlimit:3.54999995;stroke-dasharray:none;stroke-opacity:0.05298013"
id="path5637-8"
- cx="862.08008"
- cy="287.5553"
- r="76.178482" />
+ cx="826.39526"
+ cy="284.87033"
+ r="40.493652" />
<g
transform="matrix(3.1703101,0,0,3.1703101,555.71881,150.6584)"
id="g4207">
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic