summaryrefslogtreecommitdiff
path: root/boardmanager.cpp
diff options
context:
space:
mode:
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