Take session name from device model.

This commit is contained in:
John Preston 2021-11-16 18:42:33 +04:00
parent aab4dbb7cf
commit a511681113
4 changed files with 15 additions and 24 deletions

View File

@ -46,12 +46,10 @@ Authorizations::Entry ParseEntry(const MTPDauthorization &data) {
return version; return version;
}(); }();
result.name = QString("%1%2").arg( result.name = qs(data.vdevice_model());
appName,
appVer.isEmpty() ? QString() : (' ' + appVer));
const auto country = qs(data.vcountry()); const auto country = qs(data.vcountry());
const auto platform = qs(data.vplatform()); //const auto platform = qs(data.vplatform());
//const auto &countries = countriesByISO2(); //const auto &countries = countriesByISO2();
//const auto j = countries.constFind(country); //const auto j = countries.constFind(country);
//if (j != countries.cend()) { //if (j != countries.cend()) {
@ -61,14 +59,10 @@ Authorizations::Entry ParseEntry(const MTPDauthorization &data) {
result.activeTime = data.vdate_active().v result.activeTime = data.vdate_active().v
? data.vdate_active().v ? data.vdate_active().v
: data.vdate_created().v; : data.vdate_created().v;
result.info = QString("%1, %2%3").arg( result.info = QString("%1%2").arg(
qs(data.vdevice_model()), appName,
platform.isEmpty() ? QString() : platform + ' ', appVer.isEmpty() ? QString() : (' ' + appVer));
qs(data.vsystem_version())); result.ip = qs(data.vip());
result.ip = qs(data.vip())
+ (country.isEmpty()
? QString()
: QString::fromUtf8(" \xe2\x80\x93 ") + country);
if (!result.hash) { if (!result.hash) {
result.active = tr::lng_status_online(tr::now); result.active = tr::lng_status_online(tr::now);
} else { } else {
@ -85,6 +79,10 @@ Authorizations::Entry ParseEntry(const MTPDauthorization &data) {
result.active = lastDate.toString(cDateFormat()); result.active = lastDate.toString(cDateFormat());
} }
} }
result.location = (country.isEmpty() ? result.ip : country)
+ (result.hash
? (QString::fromUtf8(" \xe2\x80\x93 ") + result.active)
: QString());
return result; return result;
} }

View File

@ -22,7 +22,7 @@ public:
bool incomplete = false; bool incomplete = false;
TimeId activeTime = 0; TimeId activeTime = 0;
QString name, active, info, ip; QString name, active, info, ip, location;
}; };
using List = std::vector<Entry>; using List = std::vector<Entry>;

View File

@ -291,7 +291,7 @@ sessionWhenFont: msgDateFont;
sessionWhenFg: windowSubTextFg; sessionWhenFg: windowSubTextFg;
sessionInfoFont: msgFont; sessionInfoFont: msgFont;
sessionInfoFg: windowSubTextFg; sessionInfoFg: windowSubTextFg;
sessionTerminateTop: 28px; sessionTerminateTop: 9px;
sessionTerminateSkip: 22px; sessionTerminateSkip: 22px;
sessionNamePadding: margins(0px, 0px, 5px, 0px); sessionNamePadding: margins(0px, 0px, 5px, 0px);
sessionTerminate: IconButton { sessionTerminate: IconButton {

View File

@ -49,16 +49,15 @@ private:
, incomplete(entry.incomplete) , incomplete(entry.incomplete)
, activeTime(entry.activeTime) , activeTime(entry.activeTime)
, name(st::sessionNameStyle, entry.name) , name(st::sessionNameStyle, entry.name)
, active(st::sessionWhenStyle, entry.active)
, info(st::sessionInfoStyle, entry.info) , info(st::sessionInfoStyle, entry.info)
, ip(st::sessionInfoStyle, entry.ip) { , ip(st::sessionInfoStyle, entry.location) {
}; };
uint64 hash = 0; uint64 hash = 0;
bool incomplete = false; bool incomplete = false;
TimeId activeTime = 0; TimeId activeTime = 0;
Ui::Text::String name, active, info, ip; Ui::Text::String name, info, ip;
}; };
struct Full { struct Full {
Entry current; Entry current;
@ -496,17 +495,11 @@ void SessionsContent::List::paintEvent(QPaintEvent *e) {
for (auto i = from; i != till; ++i) { for (auto i = from; i != till; ++i) {
const auto &entry = _items[i]; const auto &entry = _items[i];
const auto activeW = entry.active.maxWidth(); const auto nameW = _rowWidth.info;
const auto nameW = available
- activeW
- st::sessionNamePadding.right();
const auto nameH = entry.name.style()->font->height; const auto nameH = entry.name.style()->font->height;
const auto infoW = entry.hash ? _rowWidth.info : available; const auto infoW = entry.hash ? _rowWidth.info : available;
const auto infoH = entry.info.style()->font->height; const auto infoH = entry.info.style()->font->height;
p.setPen(entry.hash ? st::sessionWhenFg : st::contactsStatusFgOnline);
entry.active.drawRight(p, xact, y, activeW, w);
p.setPen(st::sessionNameFg); p.setPen(st::sessionNameFg);
entry.name.drawLeftElided(p, x, y, nameW, w); entry.name.drawLeftElided(p, x, y, nameW, w);