diff options
Diffstat (limited to 'boardmanager.cpp')
-rw-r--r-- | boardmanager.cpp | 18 |
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 |