mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
feat: add action "Go to current date"
This commit is contained in:
parent
8c4b1e00a1
commit
2a9648d12c
|
@ -220,6 +220,15 @@ std::vector<IChatLog::DateChatLogIdxPair> ChatHistory::getDateIdxs(const QDate&
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::size_t ChatHistory::size() const
|
||||||
|
{
|
||||||
|
if (canUseHistory()) {
|
||||||
|
return history->getNumMessagesForFriend(f.getPublicKey());
|
||||||
|
}
|
||||||
|
|
||||||
|
return sessionChatLog.size();
|
||||||
|
}
|
||||||
|
|
||||||
void ChatHistory::onFileUpdated(const ToxPk& sender, const ToxFile& file)
|
void ChatHistory::onFileUpdated(const ToxPk& sender, const ToxFile& file)
|
||||||
{
|
{
|
||||||
if (canUseHistory()) {
|
if (canUseHistory()) {
|
||||||
|
|
|
@ -42,6 +42,7 @@ public:
|
||||||
ChatLogIdx getFirstIdx() const override;
|
ChatLogIdx getFirstIdx() const override;
|
||||||
ChatLogIdx getNextIdx() const override;
|
ChatLogIdx getNextIdx() const override;
|
||||||
std::vector<DateChatLogIdxPair> getDateIdxs(const QDate& startDate, size_t maxDates) const override;
|
std::vector<DateChatLogIdxPair> getDateIdxs(const QDate& startDate, size_t maxDates) const override;
|
||||||
|
std::size_t size() const override;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void onFileUpdated(const ToxPk& sender, const ToxFile& file);
|
void onFileUpdated(const ToxPk& sender, const ToxFile& file);
|
||||||
|
|
|
@ -138,6 +138,8 @@ public:
|
||||||
virtual std::vector<DateChatLogIdxPair> getDateIdxs(const QDate& startDate,
|
virtual std::vector<DateChatLogIdxPair> getDateIdxs(const QDate& startDate,
|
||||||
size_t maxDates) const = 0;
|
size_t maxDates) const = 0;
|
||||||
|
|
||||||
|
virtual std::size_t size() const = 0;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void itemUpdated(ChatLogIdx idx);
|
void itemUpdated(ChatLogIdx idx);
|
||||||
};
|
};
|
||||||
|
|
|
@ -289,6 +289,11 @@ std::vector<IChatLog::DateChatLogIdxPair> SessionChatLog::getDateIdxs(const QDat
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::size_t SessionChatLog::size() const
|
||||||
|
{
|
||||||
|
return items.size();
|
||||||
|
}
|
||||||
|
|
||||||
void SessionChatLog::insertMessageAtIdx(ChatLogIdx idx, ToxPk sender, QString senderName,
|
void SessionChatLog::insertMessageAtIdx(ChatLogIdx idx, ToxPk sender, QString senderName,
|
||||||
ChatLogMessage message)
|
ChatLogMessage message)
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,6 +45,7 @@ public:
|
||||||
ChatLogIdx getFirstIdx() const override;
|
ChatLogIdx getFirstIdx() const override;
|
||||||
ChatLogIdx getNextIdx() const override;
|
ChatLogIdx getNextIdx() const override;
|
||||||
std::vector<DateChatLogIdxPair> getDateIdxs(const QDate& startDate, size_t maxDates) const override;
|
std::vector<DateChatLogIdxPair> getDateIdxs(const QDate& startDate, size_t maxDates) const override;
|
||||||
|
std::size_t size() const override;
|
||||||
|
|
||||||
void insertMessageAtIdx(ChatLogIdx idx, ToxPk sender, QString senderName, ChatLogMessage message);
|
void insertMessageAtIdx(ChatLogIdx idx, ToxPk sender, QString senderName, ChatLogMessage message);
|
||||||
void insertFileAtIdx(ChatLogIdx idx, ToxPk sender, QString senderName, ChatLogFile file);
|
void insertFileAtIdx(ChatLogIdx idx, ToxPk sender, QString senderName, ChatLogFile file);
|
||||||
|
|
|
@ -328,6 +328,13 @@ GenericChatForm::GenericChatForm(const Contact* contact, IChatLog& chatLog,
|
||||||
quoteAction = menu.addAction(QIcon(), QString(), this, SLOT(quoteSelectedText()),
|
quoteAction = menu.addAction(QIcon(), QString(), this, SLOT(quoteSelectedText()),
|
||||||
QKeySequence(Qt::ALT + Qt::Key_Q));
|
QKeySequence(Qt::ALT + Qt::Key_Q));
|
||||||
addAction(quoteAction);
|
addAction(quoteAction);
|
||||||
|
|
||||||
|
menu.addSeparator();
|
||||||
|
|
||||||
|
goCurrentDateAction = menu.addAction(QIcon(), QString(), this, SLOT(goToCurrentDate()),
|
||||||
|
QKeySequence(Qt::CTRL + Qt::Key_G));
|
||||||
|
addAction(goCurrentDateAction);
|
||||||
|
|
||||||
menu.addSeparator();
|
menu.addSeparator();
|
||||||
|
|
||||||
searchAction = menu.addAction(QIcon(), QString(), this, SLOT(searchFormShow()),
|
searchAction = menu.addAction(QIcon(), QString(), this, SLOT(searchFormShow()),
|
||||||
|
@ -1004,6 +1011,16 @@ void GenericChatForm::renderMessages(ChatLogIdx begin, ChatLogIdx end,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GenericChatForm::goToCurrentDate()
|
||||||
|
{
|
||||||
|
chatWidget->clear();
|
||||||
|
messages.clear();
|
||||||
|
auto end = ChatLogIdx(chatLog.size() - 1);
|
||||||
|
auto begin = end.get() > 100 ? ChatLogIdx(end.get() - 100) : ChatLogIdx(0);
|
||||||
|
|
||||||
|
renderMessages(begin, end);
|
||||||
|
}
|
||||||
|
|
||||||
void GenericChatForm::loadHistoryLower()
|
void GenericChatForm::loadHistoryLower()
|
||||||
{
|
{
|
||||||
auto end = messages.begin()->first;
|
auto end = messages.begin()->first;
|
||||||
|
@ -1050,6 +1067,7 @@ void GenericChatForm::retranslateUi()
|
||||||
quoteAction->setText(tr("Quote selected text"));
|
quoteAction->setText(tr("Quote selected text"));
|
||||||
copyLinkAction->setText(tr("Copy link address"));
|
copyLinkAction->setText(tr("Copy link address"));
|
||||||
searchAction->setText(tr("Search in text"));
|
searchAction->setText(tr("Search in text"));
|
||||||
|
goCurrentDateAction->setText(tr("Go to current date"));
|
||||||
loadHistoryAction->setText(tr("Load chat history..."));
|
loadHistoryAction->setText(tr("Load chat history..."));
|
||||||
exportChatAction->setText(tr("Export to file"));
|
exportChatAction->setText(tr("Export to file"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,6 +126,7 @@ protected slots:
|
||||||
void renderMessage(ChatLogIdx idx);
|
void renderMessage(ChatLogIdx idx);
|
||||||
void renderMessages(ChatLogIdx begin, ChatLogIdx end,
|
void renderMessages(ChatLogIdx begin, ChatLogIdx end,
|
||||||
std::function<void(void)> onCompletion = std::function<void(void)>());
|
std::function<void(void)> onCompletion = std::function<void(void)>());
|
||||||
|
void goToCurrentDate();
|
||||||
|
|
||||||
void loadHistoryLower();
|
void loadHistoryLower();
|
||||||
void loadHistoryUpper();
|
void loadHistoryUpper();
|
||||||
|
@ -165,6 +166,7 @@ protected:
|
||||||
QAction* searchAction;
|
QAction* searchAction;
|
||||||
QAction* loadHistoryAction;
|
QAction* loadHistoryAction;
|
||||||
QAction* exportChatAction;
|
QAction* exportChatAction;
|
||||||
|
QAction* goCurrentDateAction;
|
||||||
|
|
||||||
ToxPk previousId;
|
ToxPk previousId;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user