Improved format of timestamp in point details widget.
This commit is contained in:
parent
3e55380eed
commit
b24be50afe
|
@ -14,6 +14,21 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "styles/style_statistics.h"
|
#include "styles/style_statistics.h"
|
||||||
|
|
||||||
namespace Statistic {
|
namespace Statistic {
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
[[nodiscard]] QString FormatTimestamp(
|
||||||
|
float64 timestamp,
|
||||||
|
const QString &longFormat,
|
||||||
|
const QString &shortFormat) {
|
||||||
|
const auto dateTime = QDateTime::fromSecsSinceEpoch(timestamp / 1000);
|
||||||
|
if (dateTime.toUTC().time().hour() || dateTime.toUTC().time().minute()) {
|
||||||
|
return QLocale().toString(dateTime, longFormat);
|
||||||
|
} else {
|
||||||
|
return QLocale().toString(dateTime.date(), shortFormat);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
PointDetailsWidget::PointDetailsWidget(
|
PointDetailsWidget::PointDetailsWidget(
|
||||||
not_null<Ui::RpWidget*> parent,
|
not_null<Ui::RpWidget*> parent,
|
||||||
|
@ -22,7 +37,9 @@ PointDetailsWidget::PointDetailsWidget(
|
||||||
: Ui::RpWidget(parent)
|
: Ui::RpWidget(parent)
|
||||||
, _chartData(chartData)
|
, _chartData(chartData)
|
||||||
, _textStyle(st::statisticsDetailsPopupStyle)
|
, _textStyle(st::statisticsDetailsPopupStyle)
|
||||||
, _headerStyle(st::semiboldTextStyle) {
|
, _headerStyle(st::semiboldTextStyle)
|
||||||
|
, _longFormat(u"ddd, MMM d hh:mm"_q)
|
||||||
|
, _shortFormat(u"ddd, MMM d"_q) {
|
||||||
const auto calculatedWidth = [&]{
|
const auto calculatedWidth = [&]{
|
||||||
const auto maxValueText = Ui::Text::String(
|
const auto maxValueText = Ui::Text::String(
|
||||||
_textStyle,
|
_textStyle,
|
||||||
|
@ -41,7 +58,10 @@ PointDetailsWidget::PointDetailsWidget(
|
||||||
{
|
{
|
||||||
const auto maxHeaderText = Ui::Text::String(
|
const auto maxHeaderText = Ui::Text::String(
|
||||||
_headerStyle,
|
_headerStyle,
|
||||||
_chartData.getDayString(0));
|
FormatTimestamp(
|
||||||
|
_chartData.x.front(),
|
||||||
|
_longFormat,
|
||||||
|
_shortFormat));
|
||||||
maxNameTextWidth = std::max(
|
maxNameTextWidth = std::max(
|
||||||
maxHeaderText.maxWidth()
|
maxHeaderText.maxWidth()
|
||||||
+ st::statisticsDetailsPopupPadding.left(),
|
+ st::statisticsDetailsPopupPadding.left(),
|
||||||
|
@ -92,7 +112,9 @@ void PointDetailsWidget::setXIndex(int xIndex) {
|
||||||
if (xIndex < 0) {
|
if (xIndex < 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_header.setText(_headerStyle, _chartData.getDayString(xIndex));
|
_header.setText(
|
||||||
|
_headerStyle,
|
||||||
|
FormatTimestamp(_chartData.x[xIndex], _longFormat, _shortFormat));
|
||||||
|
|
||||||
_lines.clear();
|
_lines.clear();
|
||||||
_lines.reserve(_chartData.lines.size());
|
_lines.reserve(_chartData.lines.size());
|
||||||
|
|
|
@ -31,6 +31,8 @@ private:
|
||||||
const Data::StatisticalChart &_chartData;
|
const Data::StatisticalChart &_chartData;
|
||||||
const style::TextStyle &_textStyle;
|
const style::TextStyle &_textStyle;
|
||||||
const style::TextStyle &_headerStyle;
|
const style::TextStyle &_headerStyle;
|
||||||
|
const QString _longFormat;
|
||||||
|
const QString _shortFormat;
|
||||||
Ui::Text::String _header;
|
Ui::Text::String _header;
|
||||||
|
|
||||||
[[nodiscard]] int lineYAt(int index) const;
|
[[nodiscard]] int lineYAt(int index) const;
|
||||||
|
|
Loading…
Reference in New Issue