Display the list of conversations.

This commit is contained in:
Pierre HUBERT
2018-12-07 11:31:42 +01:00
parent 3d9748ad62
commit 1df359735d
24 changed files with 484 additions and 11 deletions

46
utils/timeutils.cpp Normal file
View File

@ -0,0 +1,46 @@
#include <QDateTime>
#include "timeutils.h"
TimeUtils::TimeUtils()
{
}
QString TimeUtils::TimeDiffToString(qint64 time)
{
qint64 diffTime = QDateTime::currentSecsSinceEpoch() - time;
if(diffTime < 60)
return QObject::tr("%1s ago").arg(diffTime);
diffTime = diffTime/60;
if(diffTime < 60)
return QObject::tr("%1m ago").arg(diffTime);
diffTime = diffTime/60;
if(diffTime < 24)
return QObject::tr("%1h ago").arg(diffTime);
diffTime = diffTime/24;
if(diffTime < 30){
if(diffTime == 1)
return QObject::tr("1 day ago");
else
return QObject::tr("%1 days ago").arg(diffTime);
}
diffTime = diffTime/30;
if(diffTime < 12){
if(diffTime == 1)
return QObject::tr("1 month ago");
else
return QObject::tr("%1 months ago").arg(diffTime);
}
diffTime = diffTime/12;
if(diffTime == 1)
return QObject::tr("1 year ago");
else
return QObject::tr("%1 years ago").arg(diffTime);
}

27
utils/timeutils.h Normal file
View File

@ -0,0 +1,27 @@
/**
* Time utilities
*
* @author Pierre HUBERT
*/
#ifndef TIMEUTILS_H
#define TIMEUTILS_H
#include <QObject>
class TimeUtils
{
public:
TimeUtils();
/**
* Turn a timestamp into a diff string, in order to
* be shown to the user
*
* @param time The time to convert
* @return Generated string
*/
static QString TimeDiffToString(qint64 time);
};
#endif // TIMEUTILS_H

24
utils/uiutils.cpp Normal file
View File

@ -0,0 +1,24 @@
#include <QLayout>
#include <QWidget>
#include "uiutils.h"
UiUtils::UiUtils()
{
}
void UiUtils::emptyLayout(QLayout *layout)
{
while(layout->count() > 0){
QLayoutItem *item = layout->itemAt(0);
if(item->layout() != nullptr)
emptyLayout(item->layout());
if(item->widget() != nullptr)
item->widget()->deleteLater();
layout->removeItem(item);
}
}

25
utils/uiutils.h Normal file
View File

@ -0,0 +1,25 @@
/**
* UI utilities
*
* @author Pierre HUBERT
*/
#ifndef UIUTILS_H
#define UIUTILS_H
class QLayout;
class UiUtils
{
public:
UiUtils();
/**
* Remove all the items of a layout
*
* @param layout The layout to process
*/
static void emptyLayout(QLayout *layout);
};
#endif // UIUTILS_H