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
f3140574
Commit
f3140574
authored
Nov 19, 2009
by
Max-Wilhelm Bruker
Browse files
initial commit for deck repository tab
parent
c0e64f3f
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
cockatrice/cockatrice.pro
View file @
f3140574
...
@@ -43,6 +43,7 @@ HEADERS += src/counter.h \
...
@@ -43,6 +43,7 @@ HEADERS += src/counter.h \
src
/
tab_server
.
h
\
src
/
tab_server
.
h
\
src
/
tab_chatchannel
.
h
\
src
/
tab_chatchannel
.
h
\
src
/
tab_game
.
h
\
src
/
tab_game
.
h
\
src
/
tab_deck_storage
.
h
\
src
/
tab_supervisor
.
h
\
src
/
tab_supervisor
.
h
\
..
/
common
/
decklist
.
h
\
..
/
common
/
decklist
.
h
\
..
/
common
/
protocol
.
h
\
..
/
common
/
protocol
.
h
\
...
@@ -86,6 +87,7 @@ SOURCES += src/counter.cpp \
...
@@ -86,6 +87,7 @@ SOURCES += src/counter.cpp \
src
/
tab_server
.
cpp
\
src
/
tab_server
.
cpp
\
src
/
tab_chatchannel
.
cpp
\
src
/
tab_chatchannel
.
cpp
\
src
/
tab_game
.
cpp
\
src
/
tab_game
.
cpp
\
src
/
tab_deck_storage
.
cpp
\
src
/
tab_supervisor
.
cpp
\
src
/
tab_supervisor
.
cpp
\
..
/
common
/
decklist
.
cpp
\
..
/
common
/
decklist
.
cpp
\
..
/
common
/
protocol
.
cpp
\
..
/
common
/
protocol
.
cpp
\
...
...
cockatrice/cockatrice.qrc
View file @
f3140574
...
@@ -20,10 +20,11 @@
...
@@ -20,10 +20,11 @@
<file>translations/cockatrice_de.qm</file>
<file>translations/cockatrice_de.qm</file>
<file>translations/cockatrice_en.qm</file>
<file>translations/cockatrice_en.qm</file>
<file>resources/icon.svg</file>
<file>resources/icon.svg</file>
<file>resources/add_to_deck.svg</file>
<file>resources/add_to_sideboard.svg</file>
<file>resources/add_to_sideboard.svg</file>
<file>resources/decrement.svg</file>
<file>resources/decrement.svg</file>
<file>resources/increment.svg</file>
<file>resources/increment.svg</file>
<file>resources/remove_row.svg</file>
<file>resources/remove_row.svg</file>
<file>resources/arrow_left_green.svg</file>
<file>resources/arrow_right_green.svg</file>
</qresource>
</qresource>
</RCC>
</RCC>
cockatrice/resources/arrow_left_green.svg
0 → 100644
View file @
f3140574
This diff is collapsed.
Click to expand it.
cockatrice/resources/a
dd_to_deck
.svg
→
cockatrice/resources/a
rrow_right_green
.svg
View file @
f3140574
File moved
cockatrice/src/tab_deck_storage.cpp
0 → 100644
View file @
f3140574
#include
<QtGui>
#include
<QDebug>
#include
"tab_deck_storage.h"
#include
"client.h"
#include
"decklist.h"
#include
"protocol_items.h"
enum
{
TWIFolderType
=
QTreeWidgetItem
::
UserType
+
1
,
TWIDeckType
=
QTreeWidgetItem
::
UserType
+
2
};
TabDeckStorage
::
TabDeckStorage
(
Client
*
_client
)
:
QWidget
(),
client
(
_client
)
{
localDirModel
=
new
QFileSystemModel
(
this
);
QSettings
settings
;
localDirModel
->
setRootPath
(
settings
.
value
(
"paths/decks"
).
toString
());
sortFilter
=
new
QSortFilterProxyModel
(
this
);
sortFilter
->
setSourceModel
(
localDirModel
);
sortFilter
->
setDynamicSortFilter
(
true
);
localDirView
=
new
QTreeView
;
localDirView
->
setModel
(
sortFilter
);
localDirView
->
setColumnHidden
(
1
,
true
);
localDirView
->
setRootIndex
(
sortFilter
->
mapFromSource
(
localDirModel
->
index
(
localDirModel
->
rootPath
(),
0
)));
localDirView
->
setSortingEnabled
(
true
);
localDirView
->
header
()
->
setResizeMode
(
QHeaderView
::
ResizeToContents
);
QVBoxLayout
*
leftVbox
=
new
QVBoxLayout
;
leftVbox
->
addWidget
(
localDirView
);
leftGroupBox
=
new
QGroupBox
;
leftGroupBox
->
setLayout
(
leftVbox
);
toolBar
=
new
QToolBar
;
toolBar
->
setOrientation
(
Qt
::
Vertical
);
toolBar
->
setIconSize
(
QSize
(
24
,
24
));
serverDirView
=
new
QTreeWidget
;
serverDirView
->
header
()
->
setResizeMode
(
QHeaderView
::
ResizeToContents
);
serverDirView
->
setColumnCount
(
3
);
QVBoxLayout
*
rightVbox
=
new
QVBoxLayout
;
rightVbox
->
addWidget
(
serverDirView
);
rightGroupBox
=
new
QGroupBox
;
rightGroupBox
->
setLayout
(
rightVbox
);
QHBoxLayout
*
hbox
=
new
QHBoxLayout
;
hbox
->
addWidget
(
leftGroupBox
);
hbox
->
addWidget
(
toolBar
);
hbox
->
addWidget
(
rightGroupBox
);
aUpload
=
new
QAction
(
this
);
aUpload
->
setIcon
(
QIcon
(
":/resources/arrow_right_green.svg"
));
connect
(
aUpload
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
actUpload
()));
aDownload
=
new
QAction
(
this
);
aDownload
->
setIcon
(
QIcon
(
":/resources/arrow_left_green.svg"
));
connect
(
aDownload
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
actDownload
()));
aNewFolder
=
new
QAction
(
this
);
connect
(
aNewFolder
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
actNewFolder
()));
aDelete
=
new
QAction
(
this
);
aDelete
->
setIcon
(
QIcon
(
":/resources/remove_row.svg"
));
connect
(
aDelete
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
actDelete
()));
toolBar
->
addAction
(
aUpload
);
toolBar
->
addAction
(
aDownload
);
toolBar
->
addAction
(
aNewFolder
);
toolBar
->
addAction
(
aDelete
);
retranslateUi
();
setLayout
(
hbox
);
refreshServerList
();
}
void
TabDeckStorage
::
retranslateUi
()
{
leftGroupBox
->
setTitle
(
tr
(
"Local file system"
));
rightGroupBox
->
setTitle
(
tr
(
"Server deck storage"
));
aUpload
->
setText
(
tr
(
"Upload deck"
));
aDownload
->
setText
(
tr
(
"Download deck"
));
aNewFolder
->
setText
(
tr
(
"New folder"
));
aDelete
->
setText
(
tr
(
"Delete"
));
QTreeWidgetItem
*
header
=
serverDirView
->
headerItem
();
header
->
setText
(
0
,
tr
(
"Name"
));
header
->
setText
(
1
,
tr
(
"ID"
));
header
->
setText
(
2
,
tr
(
"Upload time"
));
header
->
setTextAlignment
(
1
,
Qt
::
AlignRight
);
}
void
TabDeckStorage
::
refreshServerList
()
{
Command_DeckList
*
command
=
new
Command_DeckList
;
connect
(
command
,
SIGNAL
(
finished
(
ProtocolResponse
*
)),
this
,
SLOT
(
deckListFinished
(
ProtocolResponse
*
)));
client
->
sendCommand
(
command
);
}
void
TabDeckStorage
::
populateDeckList
(
Response_DeckList
::
Directory
*
folder
,
QTreeWidgetItem
*
parent
)
{
QFileIconProvider
fip
;
QTreeWidgetItem
*
newItem
=
new
QTreeWidgetItem
(
TWIFolderType
);
newItem
->
setIcon
(
0
,
fip
.
icon
(
QFileIconProvider
::
Folder
));
newItem
->
setText
(
0
,
parent
?
folder
->
getName
()
:
"/"
);
QString
parentPath
;
if
(
parent
)
{
parent
->
addChild
(
newItem
);
parentPath
=
parent
->
data
(
0
,
Qt
::
UserRole
).
toString
();
}
else
serverDirView
->
addTopLevelItem
(
newItem
);
newItem
->
setData
(
0
,
Qt
::
UserRole
,
parentPath
+
"/"
+
folder
->
getName
());
for
(
int
i
=
0
;
i
<
folder
->
size
();
++
i
)
{
Response_DeckList
::
Directory
*
subFolder
=
dynamic_cast
<
Response_DeckList
::
Directory
*>
(
folder
->
at
(
i
));
if
(
subFolder
)
populateDeckList
(
subFolder
,
newItem
);
else
{
Response_DeckList
::
File
*
file
=
dynamic_cast
<
Response_DeckList
::
File
*>
(
folder
->
at
(
i
));
QTreeWidgetItem
*
newDeck
=
new
QTreeWidgetItem
(
TWIDeckType
);
newDeck
->
setIcon
(
0
,
fip
.
icon
(
QFileIconProvider
::
File
));
newDeck
->
setData
(
0
,
Qt
::
DisplayRole
,
file
->
getName
());
newDeck
->
setData
(
1
,
Qt
::
DisplayRole
,
file
->
getId
());
newDeck
->
setTextAlignment
(
1
,
Qt
::
AlignRight
);
newDeck
->
setData
(
2
,
Qt
::
DisplayRole
,
file
->
getUploadTime
());
newItem
->
addChild
(
newDeck
);
}
}
}
void
TabDeckStorage
::
deckListFinished
(
ProtocolResponse
*
r
)
{
Response_DeckList
*
resp
=
qobject_cast
<
Response_DeckList
*>
(
r
);
if
(
!
resp
)
return
;
serverDirView
->
clear
();
populateDeckList
(
resp
->
getRoot
(),
0
);
}
void
TabDeckStorage
::
actUpload
()
{
QModelIndex
cur
=
sortFilter
->
mapToSource
(
localDirView
->
selectionModel
()
->
currentIndex
());
if
(
localDirModel
->
isDir
(
cur
))
return
;
QString
filePath
=
localDirModel
->
filePath
(
cur
);
DeckList
*
deck
=
new
DeckList
;
if
(
!
deck
->
loadFromFile
(
filePath
,
DeckList
::
CockatriceFormat
))
return
;
QString
targetPath
;
QTreeWidgetItem
*
curRight
=
serverDirView
->
currentItem
();
while
((
curRight
!=
0
)
&&
(
curRight
->
type
()
!=
TWIFolderType
))
curRight
=
curRight
->
parent
();
if
(
curRight
)
targetPath
=
curRight
->
data
(
0
,
Qt
::
UserRole
).
toString
();
qDebug
()
<<
"targetPath:"
<<
targetPath
;
Command_DeckUpload
*
command
=
new
Command_DeckUpload
(
-
1
,
deck
,
targetPath
);
connect
(
command
,
SIGNAL
(
finished
(
ProtocolResponse
*
)),
this
,
SLOT
(
uploadFinished
(
ProtocolResponse
*
)));
client
->
sendCommand
(
command
);
}
void
TabDeckStorage
::
uploadFinished
(
ProtocolResponse
*
r
)
{
qDebug
()
<<
"buh"
;
}
void
TabDeckStorage
::
actDownload
()
{
}
void
TabDeckStorage
::
actNewFolder
()
{
}
void
TabDeckStorage
::
actDelete
()
{
}
cockatrice/src/tab_deck_storage.h
0 → 100644
View file @
f3140574
#ifndef TAB_DECK_STORAGE_H
#define TAB_DECK_STORAGE_H
#include
<QWidget>
#include
"protocol.h"
class
Client
;
class
QTreeView
;
class
QFileSystemModel
;
class
QSortFilterProxyModel
;
class
QToolBar
;
class
QTreeWidget
;
class
QTreeWidgetItem
;
class
QGroupBox
;
class
TabDeckStorage
:
public
QWidget
{
Q_OBJECT
private:
Client
*
client
;
QTreeView
*
localDirView
;
QFileSystemModel
*
localDirModel
;
QSortFilterProxyModel
*
sortFilter
;
QToolBar
*
toolBar
;
QTreeWidget
*
serverDirView
;
QGroupBox
*
leftGroupBox
,
*
rightGroupBox
;
QAction
*
aUpload
,
*
aDownload
,
*
aNewFolder
,
*
aDelete
;
void
populateDeckList
(
Response_DeckList
::
Directory
*
folder
,
QTreeWidgetItem
*
parent
);
void
refreshServerList
();
private
slots
:
void
deckListFinished
(
ProtocolResponse
*
r
);
void
actUpload
();
void
uploadFinished
(
ProtocolResponse
*
r
);
void
actDownload
();
void
actNewFolder
();
void
actDelete
();
public:
TabDeckStorage
(
Client
*
_client
);
void
retranslateUi
();
};
#endif
cockatrice/src/tab_supervisor.cpp
View file @
f3140574
...
@@ -3,10 +3,11 @@
...
@@ -3,10 +3,11 @@
#include
"tab_server.h"
#include
"tab_server.h"
#include
"tab_chatchannel.h"
#include
"tab_chatchannel.h"
#include
"tab_game.h"
#include
"tab_game.h"
#include
"tab_deck_storage.h"
#include
"protocol_items.h"
#include
"protocol_items.h"
TabSupervisor
::
TabSupervisor
(
QWidget
*
parent
)
TabSupervisor
::
TabSupervisor
(
QWidget
*
parent
)
:
QTabWidget
(
parent
),
client
(
0
),
tabServer
(
0
)
:
QTabWidget
(
parent
),
client
(
0
),
tabServer
(
0
)
,
tabDeckStorage
(
0
)
{
{
}
}
...
@@ -15,6 +16,8 @@ void TabSupervisor::retranslateUi()
...
@@ -15,6 +16,8 @@ void TabSupervisor::retranslateUi()
{
{
if
(
tabServer
)
if
(
tabServer
)
setTabText
(
0
,
tr
(
"Server"
));
setTabText
(
0
,
tr
(
"Server"
));
if
(
tabDeckStorage
)
setTabText
(
1
,
tr
(
"Deck storage"
));
}
}
void
TabSupervisor
::
start
(
Client
*
_client
)
void
TabSupervisor
::
start
(
Client
*
_client
)
...
@@ -27,8 +30,10 @@ void TabSupervisor::start(Client *_client)
...
@@ -27,8 +30,10 @@ void TabSupervisor::start(Client *_client)
tabServer
=
new
TabServer
(
client
);
tabServer
=
new
TabServer
(
client
);
connect
(
tabServer
,
SIGNAL
(
gameJoined
(
int
)),
this
,
SLOT
(
addGameTab
(
int
)));
connect
(
tabServer
,
SIGNAL
(
gameJoined
(
int
)),
this
,
SLOT
(
addGameTab
(
int
)));
connect
(
tabServer
,
SIGNAL
(
chatChannelJoined
(
const
QString
&
)),
this
,
SLOT
(
addChatChannelTab
(
const
QString
&
)));
connect
(
tabServer
,
SIGNAL
(
chatChannelJoined
(
const
QString
&
)),
this
,
SLOT
(
addChatChannelTab
(
const
QString
&
)));
addTab
(
tabServer
,
QString
());
addTab
(
tabServer
,
QString
());
tabDeckStorage
=
new
TabDeckStorage
(
client
);
addTab
(
tabDeckStorage
,
QString
());
retranslateUi
();
retranslateUi
();
}
}
...
@@ -45,6 +50,9 @@ void TabSupervisor::stop()
...
@@ -45,6 +50,9 @@ void TabSupervisor::stop()
delete
tabServer
;
delete
tabServer
;
tabServer
=
0
;
tabServer
=
0
;
delete
tabDeckStorage
;
tabDeckStorage
=
0
;
QMapIterator
<
QString
,
TabChatChannel
*>
chatChannelIterator
(
chatChannelTabs
);
QMapIterator
<
QString
,
TabChatChannel
*>
chatChannelIterator
(
chatChannelTabs
);
while
(
chatChannelIterator
.
hasNext
())
while
(
chatChannelIterator
.
hasNext
())
delete
chatChannelIterator
.
next
().
value
();
delete
chatChannelIterator
.
next
().
value
();
...
...
cockatrice/src/tab_supervisor.h
View file @
f3140574
...
@@ -8,6 +8,7 @@ class Client;
...
@@ -8,6 +8,7 @@ class Client;
class
TabServer
;
class
TabServer
;
class
TabChatChannel
;
class
TabChatChannel
;
class
TabGame
;
class
TabGame
;
class
TabDeckStorage
;
class
ChatEvent
;
class
ChatEvent
;
class
GameEvent
;
class
GameEvent
;
class
Event_GameJoined
;
class
Event_GameJoined
;
...
@@ -17,6 +18,7 @@ class TabSupervisor : public QTabWidget {
...
@@ -17,6 +18,7 @@ class TabSupervisor : public QTabWidget {
private:
private:
Client
*
client
;
Client
*
client
;
TabServer
*
tabServer
;
TabServer
*
tabServer
;
TabDeckStorage
*
tabDeckStorage
;
QMap
<
QString
,
TabChatChannel
*>
chatChannelTabs
;
QMap
<
QString
,
TabChatChannel
*>
chatChannelTabs
;
QMap
<
int
,
TabGame
*>
gameTabs
;
QMap
<
int
,
TabGame
*>
gameTabs
;
public:
public:
...
...
cockatrice/src/window_deckeditor.cpp
View file @
f3140574
...
@@ -141,7 +141,7 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
...
@@ -141,7 +141,7 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
aAddCard
=
new
QAction
(
tr
(
"Add card to &maindeck"
),
this
);
aAddCard
=
new
QAction
(
tr
(
"Add card to &maindeck"
),
this
);
aAddCard
->
setShortcuts
(
QList
<
QKeySequence
>
()
<<
QKeySequence
(
tr
(
"Return"
))
<<
QKeySequence
(
tr
(
"Enter"
)));
aAddCard
->
setShortcuts
(
QList
<
QKeySequence
>
()
<<
QKeySequence
(
tr
(
"Return"
))
<<
QKeySequence
(
tr
(
"Enter"
)));
aAddCard
->
setIcon
(
QIcon
(
":/resources/a
dd_to_deck
.svg"
));
aAddCard
->
setIcon
(
QIcon
(
":/resources/a
rrow_right_green
.svg"
));
connect
(
aAddCard
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
actAddCard
()));
connect
(
aAddCard
,
SIGNAL
(
triggered
()),
this
,
SLOT
(
actAddCard
()));
aAddCardToSideboard
=
new
QAction
(
tr
(
"Add card to &sideboard"
),
this
);
aAddCardToSideboard
=
new
QAction
(
tr
(
"Add card to &sideboard"
),
this
);
aAddCardToSideboard
->
setIcon
(
QIcon
(
":/resources/add_to_sideboard.svg"
));
aAddCardToSideboard
->
setIcon
(
QIcon
(
":/resources/add_to_sideboard.svg"
));
...
...
common/protocol.cpp
View file @
f3140574
...
@@ -187,6 +187,7 @@ void Response_DeckList::File::writeElement(QXmlStreamWriter *xml)
...
@@ -187,6 +187,7 @@ void Response_DeckList::File::writeElement(QXmlStreamWriter *xml)
xml
->
writeStartElement
(
"file"
);
xml
->
writeStartElement
(
"file"
);
xml
->
writeAttribute
(
"name"
,
name
);
xml
->
writeAttribute
(
"name"
,
name
);
xml
->
writeAttribute
(
"id"
,
QString
::
number
(
id
));
xml
->
writeAttribute
(
"id"
,
QString
::
number
(
id
));
xml
->
writeAttribute
(
"upload_time"
,
QString
::
number
(
uploadTime
.
toTime_t
()));
xml
->
writeEndElement
();
xml
->
writeEndElement
();
}
}
...
@@ -207,7 +208,7 @@ bool Response_DeckList::Directory::readElement(QXmlStreamReader *xml)
...
@@ -207,7 +208,7 @@ bool Response_DeckList::Directory::readElement(QXmlStreamReader *xml)
currentItem
=
new
Directory
(
xml
->
attributes
().
value
(
"name"
).
toString
());
currentItem
=
new
Directory
(
xml
->
attributes
().
value
(
"name"
).
toString
());
append
(
currentItem
);
append
(
currentItem
);
}
else
if
(
xml
->
isStartElement
()
&&
(
xml
->
name
()
==
"file"
))
{
}
else
if
(
xml
->
isStartElement
()
&&
(
xml
->
name
()
==
"file"
))
{
currentItem
=
new
File
(
xml
->
attributes
().
value
(
"name"
).
toString
(),
xml
->
attributes
().
value
(
"id"
).
toString
().
toInt
());
currentItem
=
new
File
(
xml
->
attributes
().
value
(
"name"
).
toString
(),
xml
->
attributes
().
value
(
"id"
).
toString
().
toInt
()
,
QDateTime
::
fromTime_t
(
xml
->
attributes
().
value
(
"upload_time"
).
toString
().
toUInt
())
);
append
(
currentItem
);
append
(
currentItem
);
}
else
if
(
xml
->
isEndElement
()
&&
(
xml
->
name
()
==
"directory"
))
}
else
if
(
xml
->
isEndElement
()
&&
(
xml
->
name
()
==
"directory"
))
return
true
;
return
true
;
...
...
common/protocol.h
View file @
f3140574
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
#include
<QHash>
#include
<QHash>
#include
<QObject>
#include
<QObject>
#include
<QDebug>
#include
<QDebug>
#include
<QDateTime>
#include
"protocol_item_ids.h"
#include
"protocol_item_ids.h"
#include
"protocol_datastructures.h"
#include
"protocol_datastructures.h"
...
@@ -180,10 +181,13 @@ public:
...
@@ -180,10 +181,13 @@ public:
virtual
void
writeElement
(
QXmlStreamWriter
*
xml
)
=
0
;
virtual
void
writeElement
(
QXmlStreamWriter
*
xml
)
=
0
;
};
};
class
File
:
public
TreeItem
{
class
File
:
public
TreeItem
{
private:
QDateTime
uploadTime
;
public:
public:
File
(
const
QString
&
_name
,
int
_id
)
:
TreeItem
(
_name
,
_id
)
{
}
File
(
const
QString
&
_name
,
int
_id
,
QDateTime
_uploadTime
)
:
TreeItem
(
_name
,
_id
),
uploadTime
(
_uploadTime
)
{
}
bool
readElement
(
QXmlStreamReader
*
xml
);
bool
readElement
(
QXmlStreamReader
*
xml
);
void
writeElement
(
QXmlStreamWriter
*
xml
);
void
writeElement
(
QXmlStreamWriter
*
xml
);
QDateTime
getUploadTime
()
const
{
return
uploadTime
;
}
};
};
class
Directory
:
public
TreeItem
,
public
QList
<
TreeItem
*>
{
class
Directory
:
public
TreeItem
,
public
QList
<
TreeItem
*>
{
private:
private:
...
...
servatrice/src/serversocketinterface.cpp
View file @
f3140574
...
@@ -151,13 +151,13 @@ bool ServerSocketInterface::deckListHelper(Response_DeckList::Directory *folder)
...
@@ -151,13 +151,13 @@ bool ServerSocketInterface::deckListHelper(Response_DeckList::Directory *folder)
return
false
;
return
false
;
}
}
query
.
prepare
(
"select id, name from decklist_files where id_folder = :id_folder"
);
query
.
prepare
(
"select id, name
, upload_time
from decklist_files where id_folder = :id_folder"
);
query
.
bindValue
(
":id_folder"
,
folder
->
getId
());
query
.
bindValue
(
":id_folder"
,
folder
->
getId
());
if
(
!
servatrice
->
execSqlQuery
(
query
))
if
(
!
servatrice
->
execSqlQuery
(
query
))
return
false
;
return
false
;
while
(
query
.
next
())
{
while
(
query
.
next
())
{
Response_DeckList
::
File
*
newFile
=
new
Response_DeckList
::
File
(
query
.
value
(
1
).
toString
(),
query
.
value
(
0
).
toInt
());
Response_DeckList
::
File
*
newFile
=
new
Response_DeckList
::
File
(
query
.
value
(
1
).
toString
(),
query
.
value
(
0
).
toInt
()
,
query
.
value
(
2
).
toDateTime
()
);
folder
->
append
(
newFile
);
folder
->
append
(
newFile
);
}
}
...
@@ -267,11 +267,15 @@ ResponseCode ServerSocketInterface::cmdDeckUpload(Command_DeckUpload *cmd)
...
@@ -267,11 +267,15 @@ ResponseCode ServerSocketInterface::cmdDeckUpload(Command_DeckUpload *cmd)
cmd
->
getDeck
()
->
writeElement
(
&
deckWriter
);
cmd
->
getDeck
()
->
writeElement
(
&
deckWriter
);
deckWriter
.
writeEndDocument
();
deckWriter
.
writeEndDocument
();
QString
deckName
=
cmd
->
getDeck
()
->
getName
();
if
(
deckName
.
isEmpty
())
deckName
=
"Unnamed deck"
;
QSqlQuery
query
;
QSqlQuery
query
;
query
.
prepare
(
"insert into decklist_files (id_folder, user, name, content) value(:id_folder, :user, :name, :content)"
);
query
.
prepare
(
"insert into decklist_files (id_folder, user, name,
upload_time,
content) value
s
(:id_folder, :user, :name,
NOW(),
:content)"
);
query
.
bindValue
(
":id_folder"
,
folderId
);
query
.
bindValue
(
":id_folder"
,
folderId
);
query
.
bindValue
(
":user"
,
playerName
);
query
.
bindValue
(
":user"
,
playerName
);
query
.
bindValue
(
":name"
,
cmd
->
getDeck
()
->
get
Name
()
);
query
.
bindValue
(
":name"
,
deck
Name
);
query
.
bindValue
(
":content"
,
deckContents
);
query
.
bindValue
(
":content"
,
deckContents
);
servatrice
->
execSqlQuery
(
query
);
servatrice
->
execSqlQuery
(
query
);
...
...
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