Merge pull request #194 from ctrlaltca/master_regression_180_tab

Room and Message tabs: focus input line when convenient; Fix #180
This commit is contained in:
Gavin Bisesi 2014-07-13 09:16:06 -04:00
commit 843eba817b
6 changed files with 16 additions and 9 deletions

View file

@ -31,6 +31,7 @@ public:
virtual QString getTabText() const = 0;
virtual void retranslateUi() = 0;
virtual void closeRequest() { }
virtual void tabActivated() { }
};
#endif

View file

@ -34,10 +34,6 @@ TabMessage::TabMessage(TabSupervisor *_tabSupervisor, AbstractClient *_client, c
retranslateUi();
setLayout(vbox);
setFocusProxy(sayEdit);
chatView->setFocusProxy(sayEdit);
sayEdit->setFocus();
}
TabMessage::~TabMessage()
@ -53,6 +49,12 @@ void TabMessage::retranslateUi()
aLeave->setText(tr("&Leave"));
}
void TabMessage::tabActivated()
{
if(!sayEdit->hasFocus())
sayEdit->setFocus();
}
QString TabMessage::getUserName() const
{
return QString::fromStdString(otherUserInfo->name());

View file

@ -34,6 +34,7 @@ public:
~TabMessage();
void retranslateUi();
void closeRequest();
void tabActivated();
QString getUserName() const;
QString getTabText() const;

View file

@ -9,7 +9,6 @@
#include <QLabel>
#include <QToolButton>
#include <QSplitter>
#include <QTimer>
#include "tab_supervisor.h"
#include "tab_room.h"
#include "tab_userlists.h"
@ -98,10 +97,6 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerI
const int gameListSize = info.game_list_size();
for (int i = 0; i < gameListSize; ++i)
gameSelector->processGameInfo(info.game_list(i));
setFocusProxy(sayEdit);
chatView->setFocusProxy(sayEdit);
QTimer::singleShot(0, sayEdit, SLOT(setFocus()));
}
TabRoom::~TabRoom()
@ -126,6 +121,12 @@ void TabRoom::closeRequest()
actLeaveRoom();
}
void TabRoom::tabActivated()
{
if(!sayEdit->hasFocus())
sayEdit->setFocus();
}
QString TabRoom::sanitizeHtml(QString dirty) const
{
return dirty

View file

@ -64,6 +64,7 @@ public:
~TabRoom();
void retranslateUi();
void closeRequest();
void tabActivated();
void processRoomEvent(const RoomEvent &event);
int getRoomId() const { return roomId; }
const QMap<int, QString> &getGameTypes() const { return gameTypes; }

View file

@ -479,6 +479,7 @@ void TabSupervisor::updateCurrent(int index)
tab->setContentsChanged(false);
}
emit setMenu(static_cast<Tab *>(widget(index))->getTabMenus());
tab->tabActivated();
} else
emit setMenu();
}