Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Donald Haase
Cockatrice
Commits
207d10d3
Commit
207d10d3
authored
Dec 01, 2009
by
Max-Wilhelm Bruker
Browse files
XML fix
parent
e51aa204
Changes
9
Hide whitespace changes
Inline
Side-by-side
cockatrice/src/client.cpp
View file @
207d10d3
...
...
@@ -58,33 +58,28 @@ void Client::readData()
qDebug
()
<<
data
;
xmlReader
->
addData
(
data
);
if
(
topLevelItem
)
topLevelItem
->
read
(
xmlReader
);
else
{
while
(
!
xmlReader
->
atEnd
())
{
xmlReader
->
readNext
();
if
(
xmlReader
->
isStartElement
()
&&
(
xmlReader
->
name
().
toString
()
==
"cockatrice_server_stream"
))
{
int
serverVersion
=
xmlReader
->
attributes
().
value
(
"version"
).
toString
().
toInt
();
if
(
serverVersion
!=
ProtocolItem
::
protocolVersion
)
{
emit
protocolVersionMismatch
(
ProtocolItem
::
protocolVersion
,
serverVersion
);
disconnectFromServer
();
return
;
}
xmlWriter
->
writeStartDocument
();
xmlWriter
->
writeStartElement
(
"cockatrice_client_stream"
);
xmlWriter
->
writeAttribute
(
"version"
,
QString
::
number
(
ProtocolItem
::
protocolVersion
));
topLevelItem
=
new
TopLevelProtocolItem
;
connect
(
topLevelItem
,
SIGNAL
(
protocolItemReceived
(
ProtocolItem
*
)),
this
,
SLOT
(
processProtocolItem
(
ProtocolItem
*
)));
setStatus
(
StatusLoggingIn
);
Command_Login
*
cmdLogin
=
new
Command_Login
(
userName
,
password
);
connect
(
cmdLogin
,
SIGNAL
(
finished
(
ResponseCode
)),
this
,
SLOT
(
loginResponse
(
ResponseCode
)));
sendCommand
(
cmdLogin
);
if
(
topLevelItem
)
topLevelItem
->
read
(
xmlReader
);
while
(
!
xmlReader
->
atEnd
())
{
xmlReader
->
readNext
();
if
(
topLevelItem
)
topLevelItem
->
readElement
(
xmlReader
);
else
if
(
xmlReader
->
isStartElement
()
&&
(
xmlReader
->
name
().
toString
()
==
"cockatrice_server_stream"
))
{
int
serverVersion
=
xmlReader
->
attributes
().
value
(
"version"
).
toString
().
toInt
();
if
(
serverVersion
!=
ProtocolItem
::
protocolVersion
)
{
emit
protocolVersionMismatch
(
ProtocolItem
::
protocolVersion
,
serverVersion
);
disconnectFromServer
();
return
;
}
xmlWriter
->
writeStartDocument
();
xmlWriter
->
writeStartElement
(
"cockatrice_client_stream"
);
xmlWriter
->
writeAttribute
(
"version"
,
QString
::
number
(
ProtocolItem
::
protocolVersion
));
topLevelItem
=
new
TopLevelProtocolItem
;
connect
(
topLevelItem
,
SIGNAL
(
protocolItemReceived
(
ProtocolItem
*
)),
this
,
SLOT
(
processProtocolItem
(
ProtocolItem
*
)));
setStatus
(
StatusLoggingIn
);
Command_Login
*
cmdLogin
=
new
Command_Login
(
userName
,
password
);
connect
(
cmdLogin
,
SIGNAL
(
finished
(
ResponseCode
)),
this
,
SLOT
(
loginResponse
(
ResponseCode
)));
sendCommand
(
cmdLogin
);
}
}
if
(
status
==
StatusDisconnecting
)
...
...
cockatrice/src/tab_deck_storage.cpp
View file @
207d10d3
...
...
@@ -102,6 +102,12 @@ void TabDeckStorage::actUpload()
DeckList
*
deck
=
new
DeckList
;
if
(
!
deck
->
loadFromFile
(
filePath
,
DeckList
::
CockatriceFormat
))
return
;
if
(
deck
->
getName
().
isEmpty
())
{
QString
deckName
=
QInputDialog
::
getText
(
this
,
tr
(
"Enter deck name"
),
tr
(
"This decklist does not have a name.
\n
Please enter a name:"
),
QLineEdit
::
Normal
,
tr
(
"Unnamed deck"
));
if
(
deckName
.
isEmpty
())
deckName
=
tr
(
"Unnamed deck"
);
deck
->
setName
(
deckName
);
}
QString
targetPath
;
QTreeWidgetItem
*
curRight
=
serverDirView
->
currentItem
();
...
...
common/decklist.cpp
View file @
207d10d3
...
...
@@ -5,6 +5,7 @@
#include
<QXmlStreamWriter>
#include
<QVariant>
#include
"decklist.h"
#include
<QDebug>
AbstractDecklistNode
::
AbstractDecklistNode
(
InnerDecklistNode
*
_parent
)
:
parent
(
_parent
),
currentItem
(
0
)
...
...
@@ -212,7 +213,7 @@ DeckList::~DeckList()
delete
root
;
}
void
DeckList
::
readElement
(
QXmlStreamReader
*
xml
)
bool
DeckList
::
readElement
(
QXmlStreamReader
*
xml
)
{
if
(
currentZone
)
{
if
(
currentZone
->
readElement
(
xml
))
...
...
@@ -228,6 +229,7 @@ void DeckList::readElement(QXmlStreamReader *xml)
currentZone
=
new
InnerDecklistNode
(
xml
->
attributes
().
value
(
"name"
).
toString
(),
root
);
else
if
(
xml
->
isCharacters
()
&&
!
xml
->
isWhitespace
())
currentElementText
=
xml
->
text
().
toString
();
return
SerializableItem
::
readElement
(
xml
);
}
void
DeckList
::
writeElement
(
QXmlStreamWriter
*
xml
)
...
...
common/decklist.h
View file @
207d10d3
...
...
@@ -107,7 +107,7 @@ public:
QString
getLastFileName
()
const
{
return
lastFileName
;
}
FileFormat
getLastFileFormat
()
const
{
return
lastFileFormat
;
}
void
readElement
(
QXmlStreamReader
*
xml
);
bool
readElement
(
QXmlStreamReader
*
xml
);
void
writeElement
(
QXmlStreamWriter
*
xml
);
void
loadFromXml
(
QXmlStreamReader
*
xml
);
...
...
common/protocol.cpp
View file @
207d10d3
...
...
@@ -53,7 +53,7 @@ TopLevelProtocolItem::TopLevelProtocolItem()
bool
TopLevelProtocolItem
::
readCurrentItem
(
QXmlStreamReader
*
xml
)
{
if
(
currentItem
)
{
if
(
currentItem
->
read
(
xml
))
{
if
(
currentItem
->
read
Element
(
xml
))
{
emit
protocolItemReceived
(
currentItem
);
currentItem
=
0
;
}
...
...
@@ -62,7 +62,7 @@ bool TopLevelProtocolItem::readCurrentItem(QXmlStreamReader *xml)
return
false
;
}
void
TopLevelProtocolItem
::
readElement
(
QXmlStreamReader
*
xml
)
bool
TopLevelProtocolItem
::
readElement
(
QXmlStreamReader
*
xml
)
{
if
(
!
readCurrentItem
(
xml
)
&&
(
xml
->
isStartElement
()))
{
QString
childName
=
xml
->
name
().
toString
();
...
...
@@ -74,6 +74,7 @@ void TopLevelProtocolItem::readElement(QXmlStreamReader *xml)
readCurrentItem
(
xml
);
}
return
SerializableItem
::
readElement
(
xml
);
}
void
TopLevelProtocolItem
::
writeElement
(
QXmlStreamWriter
*
/*xml*/
)
...
...
common/protocol.h
View file @
207d10d3
...
...
@@ -58,11 +58,10 @@ signals:
private:
ProtocolItem
*
currentItem
;
bool
readCurrentItem
(
QXmlStreamReader
*
xml
);
protected:
void
readElement
(
QXmlStreamReader
*
xml
);
void
writeElement
(
QXmlStreamWriter
*
xml
);
public:
TopLevelProtocolItem
();
bool
readElement
(
QXmlStreamReader
*
xml
);
void
writeElement
(
QXmlStreamWriter
*
xml
);
};
// ----------------
...
...
common/serializable_item.cpp
View file @
207d10d3
...
...
@@ -17,14 +17,10 @@ void SerializableItem::registerSerializableItem(const QString &name, NewItemFunc
itemNameHash
.
insert
(
name
,
func
);
}
bool
SerializableItem
::
read
(
QXmlStreamReader
*
xml
)
bool
SerializableItem
::
read
Element
(
QXmlStreamReader
*
xml
)
{
while
(
!
xml
->
atEnd
())
{
xml
->
readNext
();
readElement
(
xml
);
if
(
xml
->
isEndElement
()
&&
(
xml
->
name
()
==
itemType
))
return
true
;
}
if
(
xml
->
isEndElement
()
&&
(
xml
->
name
()
==
itemType
))
return
true
;
return
false
;
}
...
...
@@ -46,12 +42,14 @@ SerializableItem_Map::~SerializableItem_Map()
delete
itemList
[
i
];
}
void
SerializableItem_Map
::
readElement
(
QXmlStreamReader
*
xml
)
bool
SerializableItem_Map
::
readElement
(
QXmlStreamReader
*
xml
)
{
if
(
currentItem
)
{
if
(
currentItem
->
read
(
xml
))
if
(
currentItem
->
read
Element
(
xml
))
currentItem
=
0
;
}
else
if
(
xml
->
isEndElement
()
&&
(
xml
->
name
()
==
itemType
))
}
else
if
(
firstItem
)
firstItem
=
false
;
else
if
(
xml
->
isEndElement
()
&&
(
xml
->
name
()
==
itemType
))
extractData
();
else
if
(
xml
->
isStartElement
())
{
QString
childName
=
xml
->
name
().
toString
();
...
...
@@ -63,9 +61,10 @@ void SerializableItem_Map::readElement(QXmlStreamReader *xml)
if
(
!
currentItem
)
currentItem
=
new
SerializableItem_Invalid
(
childName
);
}
if
(
currentItem
->
read
(
xml
))
if
(
currentItem
->
read
Element
(
xml
))
currentItem
=
0
;
}
return
SerializableItem
::
readElement
(
xml
);
}
void
SerializableItem_Map
::
writeElement
(
QXmlStreamWriter
*
xml
)
...
...
@@ -77,10 +76,11 @@ void SerializableItem_Map::writeElement(QXmlStreamWriter *xml)
itemList
[
i
]
->
write
(
xml
);
}
void
SerializableItem_String
::
readElement
(
QXmlStreamReader
*
xml
)
bool
SerializableItem_String
::
readElement
(
QXmlStreamReader
*
xml
)
{
if
(
xml
->
isCharacters
()
&&
!
xml
->
isWhitespace
())
data
=
xml
->
text
().
toString
();
return
SerializableItem
::
readElement
(
xml
);
}
void
SerializableItem_String
::
writeElement
(
QXmlStreamWriter
*
xml
)
...
...
@@ -88,7 +88,7 @@ void SerializableItem_String::writeElement(QXmlStreamWriter *xml)
xml
->
writeCharacters
(
data
);
}
void
SerializableItem_Int
::
readElement
(
QXmlStreamReader
*
xml
)
bool
SerializableItem_Int
::
readElement
(
QXmlStreamReader
*
xml
)
{
if
(
xml
->
isCharacters
()
&&
!
xml
->
isWhitespace
())
{
bool
ok
;
...
...
@@ -96,6 +96,7 @@ void SerializableItem_Int::readElement(QXmlStreamReader *xml)
if
(
!
ok
)
data
=
-
1
;
}
return
SerializableItem
::
readElement
(
xml
);
}
void
SerializableItem_Int
::
writeElement
(
QXmlStreamWriter
*
xml
)
...
...
@@ -103,10 +104,11 @@ void SerializableItem_Int::writeElement(QXmlStreamWriter *xml)
xml
->
writeCharacters
(
QString
::
number
(
data
));
}
void
SerializableItem_Bool
::
readElement
(
QXmlStreamReader
*
xml
)
bool
SerializableItem_Bool
::
readElement
(
QXmlStreamReader
*
xml
)
{
if
(
xml
->
isCharacters
()
&&
!
xml
->
isWhitespace
())
data
=
xml
->
text
().
toString
()
==
"1"
;
return
SerializableItem
::
readElement
(
xml
);
}
void
SerializableItem_Bool
::
writeElement
(
QXmlStreamWriter
*
xml
)
...
...
@@ -124,13 +126,14 @@ QColor SerializableItem_Color::colorFromInt(int colorValue) const
return
QColor
(
colorValue
/
65536
,
(
colorValue
%
65536
)
/
256
,
colorValue
%
256
);
}
void
SerializableItem_Color
::
readElement
(
QXmlStreamReader
*
xml
)
bool
SerializableItem_Color
::
readElement
(
QXmlStreamReader
*
xml
)
{
if
(
xml
->
isCharacters
()
&&
!
xml
->
isWhitespace
())
{
bool
ok
;
int
colorValue
=
xml
->
text
().
toString
().
toInt
(
&
ok
);
data
=
ok
?
colorFromInt
(
colorValue
)
:
Qt
::
black
;
}
return
SerializableItem
::
readElement
(
xml
);
}
void
SerializableItem_Color
::
writeElement
(
QXmlStreamWriter
*
xml
)
...
...
@@ -138,13 +141,14 @@ void SerializableItem_Color::writeElement(QXmlStreamWriter *xml)
xml
->
writeCharacters
(
QString
::
number
(
colorToInt
(
data
)));
}
void
SerializableItem_DateTime
::
readElement
(
QXmlStreamReader
*
xml
)
bool
SerializableItem_DateTime
::
readElement
(
QXmlStreamReader
*
xml
)
{
if
(
xml
->
isCharacters
()
&&
!
xml
->
isWhitespace
())
{
bool
ok
;
unsigned
int
dateTimeValue
=
xml
->
text
().
toString
().
toUInt
(
&
ok
);
data
=
ok
?
QDateTime
::
fromTime_t
(
dateTimeValue
)
:
QDateTime
();
}
return
SerializableItem
::
readElement
(
xml
);
}
void
SerializableItem_DateTime
::
writeElement
(
QXmlStreamWriter
*
xml
)
...
...
common/serializable_item.h
View file @
207d10d3
...
...
@@ -18,23 +18,22 @@ protected:
static
QHash
<
QString
,
NewItemFunction
>
itemNameHash
;
QString
itemType
,
itemSubType
;
bool
firstItem
;
public:
SerializableItem
(
const
QString
&
_itemType
,
const
QString
&
_itemSubType
=
QString
())
:
QObject
(),
itemType
(
_itemType
),
itemSubType
(
_itemSubType
)
{
}
:
QObject
(),
itemType
(
_itemType
),
itemSubType
(
_itemSubType
)
,
firstItem
(
true
)
{
}
static
void
registerSerializableItem
(
const
QString
&
name
,
NewItemFunction
func
);
static
SerializableItem
*
getNewItem
(
const
QString
&
name
);
const
QString
&
getItemType
()
const
{
return
itemType
;
}
const
QString
&
getItemSubType
()
const
{
return
itemSubType
;
}
virtual
void
readElement
(
QXmlStreamReader
*
xml
)
=
0
;
virtual
bool
readElement
(
QXmlStreamReader
*
xml
);
virtual
void
writeElement
(
QXmlStreamWriter
*
xml
)
=
0
;
bool
read
(
QXmlStreamReader
*
xml
);
void
write
(
QXmlStreamWriter
*
xml
);
};
class
SerializableItem_Invalid
:
public
SerializableItem
{
public:
SerializableItem_Invalid
(
const
QString
&
_itemType
)
:
SerializableItem
(
_itemType
)
{
}
void
readElement
(
QXmlStreamReader
*
/*xml*/
)
{
}
void
writeElement
(
QXmlStreamWriter
*
/*xml*/
)
{
}
};
...
...
@@ -65,7 +64,7 @@ public:
{
}
~
SerializableItem_Map
();
void
readElement
(
QXmlStreamReader
*
xml
);
bool
readElement
(
QXmlStreamReader
*
xml
);
void
writeElement
(
QXmlStreamWriter
*
xml
);
void
appendItem
(
SerializableItem
*
item
)
{
itemList
.
append
(
item
);
}
};
...
...
@@ -74,7 +73,7 @@ class SerializableItem_String : public SerializableItem {
private:
QString
data
;
protected:
void
readElement
(
QXmlStreamReader
*
xml
);
bool
readElement
(
QXmlStreamReader
*
xml
);
void
writeElement
(
QXmlStreamWriter
*
xml
);
public:
SerializableItem_String
(
const
QString
&
_itemType
,
const
QString
&
_data
)
...
...
@@ -87,7 +86,7 @@ class SerializableItem_Int : public SerializableItem {
private:
int
data
;
protected:
void
readElement
(
QXmlStreamReader
*
xml
);
bool
readElement
(
QXmlStreamReader
*
xml
);
void
writeElement
(
QXmlStreamWriter
*
xml
);
public:
SerializableItem_Int
(
const
QString
&
_itemType
,
int
_data
)
...
...
@@ -100,7 +99,7 @@ class SerializableItem_Bool : public SerializableItem {
private:
bool
data
;
protected:
void
readElement
(
QXmlStreamReader
*
xml
);
bool
readElement
(
QXmlStreamReader
*
xml
);
void
writeElement
(
QXmlStreamWriter
*
xml
);
public:
SerializableItem_Bool
(
const
QString
&
_itemType
,
bool
_data
)
...
...
@@ -115,7 +114,7 @@ private:
int
colorToInt
(
const
QColor
&
color
)
const
;
QColor
colorFromInt
(
int
colorValue
)
const
;
protected:
void
readElement
(
QXmlStreamReader
*
xml
);
bool
readElement
(
QXmlStreamReader
*
xml
);
void
writeElement
(
QXmlStreamWriter
*
xml
);
public:
SerializableItem_Color
(
const
QString
&
_itemType
,
const
QColor
&
_data
)
...
...
@@ -128,7 +127,7 @@ class SerializableItem_DateTime : public SerializableItem {
private:
QDateTime
data
;
protected:
void
readElement
(
QXmlStreamReader
*
xml
);
bool
readElement
(
QXmlStreamReader
*
xml
);
void
writeElement
(
QXmlStreamWriter
*
xml
);
public:
SerializableItem_DateTime
(
const
QString
&
_itemType
,
const
QDateTime
&
_data
)
...
...
servatrice/src/serversocketinterface.cpp
View file @
207d10d3
...
...
@@ -73,18 +73,15 @@ void ServerSocketInterface::readClient()
qDebug
()
<<
data
;
xmlReader
->
addData
(
data
);
if
(
topLevelItem
)
topLevelItem
->
read
(
xmlReader
);
else
while
(
!
xmlReader
->
atEnd
())
{
xmlReader
->
readNext
();
if
(
xmlReader
->
isStartElement
()
&&
(
xmlReader
->
name
().
toString
()
==
"cockatrice_client_stream"
))
{
topLevelItem
=
new
TopLevelProtocolItem
;
connect
(
topLevelItem
,
SIGNAL
(
protocolItemReceived
(
ProtocolItem
*
)),
this
,
SLOT
(
processProtocolItem
(
ProtocolItem
*
)));
topLevelItem
->
read
(
xmlReader
);
}
while
(
!
xmlReader
->
atEnd
())
{
xmlReader
->
readNext
();
if
(
topLevelItem
)
topLevelItem
->
readElement
(
xmlReader
);
else
if
(
xmlReader
->
isStartElement
()
&&
(
xmlReader
->
name
().
toString
()
==
"cockatrice_client_stream"
))
{
topLevelItem
=
new
TopLevelProtocolItem
;
connect
(
topLevelItem
,
SIGNAL
(
protocolItemReceived
(
ProtocolItem
*
)),
this
,
SLOT
(
processProtocolItem
(
ProtocolItem
*
)));
}
}
}
void
ServerSocketInterface
::
catchSocketError
(
QAbstractSocket
::
SocketError
socketError
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment