summaryrefslogtreecommitdiff
path: root/boardmanager.cpp
diff options
context:
space:
mode:
authorJavier S. Pedro <maemo@javispedro.com>2013-04-04 00:00:38 +0200
committerJavier S. Pedro <maemo@javispedro.com>2013-04-04 00:00:38 +0200
commit5d8d6fed3fd7dd796a5a3093a7dbd46fab8d380a (patch)
tree56d1aa55260d0081cfd99b52c53f5ddc78cba200 /boardmanager.cpp
parenta6d8b23fd03993c0b94d21806ac3a36e251c8b9c (diff)
downloadtapasboard-5d8d6fed3fd7dd796a5a3093a7dbd46fab8d380a.tar.gz
tapasboard-5d8d6fed3fd7dd796a5a3093a7dbd46fab8d380a.zip
pass Board objects instead of boardUrls around QML
Diffstat (limited to 'boardmanager.cpp')
-rw-r--r--boardmanager.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/boardmanager.cpp b/boardmanager.cpp
index 5fbcf07..ca4dad1 100644
--- a/boardmanager.cpp
+++ b/boardmanager.cpp
@@ -10,15 +10,21 @@ BoardManager::BoardManager(QObject *parent) :
{
}
-Board* BoardManager::getBoard(const QString &url)
+Board* BoardManager::getBoard(const QUrl &url, const QString& username, const QString& password)
{
- QHash<QString, Board*>::iterator i = _boards.find(url);
+ Board *b;
+ QHash<QUrl, Board*>::iterator i = _boards.find(url);
if (i != _boards.end()) {
- return i.value();
+ b = i.value();
+ if (!b->loggedIn() && !username.isEmpty()) {
+ // If requested to login but wasn't before, login now.
+ b->login(username, password);
+ }
+ } else {
+ b = new Board(url, username, password, this);
+ _boards.insert(url, b);
}
- Board *db = new Board(url, this);
- _boards.insert(url, db);
- return db;
+ return b;
}
QString BoardManager::getCachePath() const