mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-21 22:24:07 +01:00
Merge branch 'apa420-logging'
This commit is contained in:
commit
147e55e5a7
4 changed files with 72 additions and 3 deletions
|
@ -39,11 +39,26 @@ void LoggingManager::addMessage(const QString &channelName, messages::MessagePtr
|
|||
|
||||
QString LoggingManager::getDirectoryForChannel(const QString &channelName)
|
||||
{
|
||||
auto customPath = getApp()->settings->logPath;
|
||||
|
||||
if (channelName.startsWith("/whispers")) {
|
||||
if (customPath != "")
|
||||
return customPath + "/Whispers";
|
||||
return this->pathManager->whispersLogsFolderPath;
|
||||
} else if (channelName.startsWith("/mentions")) {
|
||||
if (customPath != "")
|
||||
return customPath + "/Mentions";
|
||||
return this->pathManager->mentionsLogsFolderPath;
|
||||
} else {
|
||||
if (customPath != "") {
|
||||
QString logPath(customPath + QDir::separator() + channelName);
|
||||
|
||||
if (!this->pathManager->createFolder(logPath)) {
|
||||
debug::Log("Error creating channel logs folder for channel {}", channelName);
|
||||
}
|
||||
|
||||
return logPath;
|
||||
}
|
||||
QString logPath(this->pathManager->channelsLogsFolderPath + QDir::separator() +
|
||||
channelName);
|
||||
|
||||
|
@ -55,5 +70,12 @@ QString LoggingManager::getDirectoryForChannel(const QString &channelName)
|
|||
}
|
||||
}
|
||||
|
||||
void LoggingManager::refreshLoggingPath()
|
||||
{
|
||||
// if (app->settings->logPath == "") {
|
||||
|
||||
//}
|
||||
}
|
||||
|
||||
} // namespace singletons
|
||||
} // namespace chatterino
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
namespace chatterino {
|
||||
namespace singletons {
|
||||
|
||||
class PathManager;
|
||||
|
||||
class LoggingManager
|
||||
|
@ -23,6 +22,8 @@ public:
|
|||
|
||||
void addMessage(const QString &channelName, messages::MessagePtr message);
|
||||
|
||||
void refreshLoggingPath();
|
||||
|
||||
private:
|
||||
std::map<QString, std::unique_ptr<LoggingChannel>> loggingChannels;
|
||||
QString getDirectoryForChannel(const QString &channelName);
|
||||
|
|
|
@ -105,6 +105,9 @@ public:
|
|||
/// Logging
|
||||
BoolSetting enableLogging = {"/logging/enabled", false};
|
||||
|
||||
QStringSetting logPath = {"/logging/path",
|
||||
QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)};
|
||||
|
||||
QStringSetting pathHighlightSound = {"/highlighting/highlightSoundPath",
|
||||
"qrc:/sounds/ping2.wav"};
|
||||
QStringSetting highlightUserBlacklist = {"/highlighting/blacklistedUsers", ""};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include "application.hpp"
|
||||
#include "controllers/taggedusers/taggeduserscontroller.hpp"
|
||||
#include "controllers/taggedusers/taggedusersmodel.hpp"
|
||||
#include "singletons/loggingmanager.hpp"
|
||||
#include "singletons/pathmanager.hpp"
|
||||
#include "util/layoutcreator.hpp"
|
||||
#include "widgets/helper/editablemodelview.hpp"
|
||||
|
@ -42,10 +43,15 @@ ModerationPage::ModerationPage()
|
|||
|
||||
auto logs = tabs.appendTab(new QVBoxLayout, "Logs");
|
||||
{
|
||||
auto logPath = app->paths->logsFolderPath;
|
||||
// Logs (copied from LoggingMananger)
|
||||
|
||||
auto created = logs.emplace<QLabel>();
|
||||
created->setText("Logs are saved to " + CreateLink(logPath, true));
|
||||
if (app->settings->logPath == "") {
|
||||
created->setText("Logs are saved to " +
|
||||
CreateLink(QCoreApplication::applicationDirPath(), true));
|
||||
} else {
|
||||
created->setText("Logs are saved to " + CreateLink(app->settings->logPath, true));
|
||||
}
|
||||
created->setTextFormat(Qt::RichText);
|
||||
created->setTextInteractionFlags(Qt::TextBrowserInteraction |
|
||||
Qt::LinksAccessibleByKeyboard |
|
||||
|
@ -54,6 +60,43 @@ ModerationPage::ModerationPage()
|
|||
logs.append(this->createCheckBox("Enable logging", app->settings->enableLogging));
|
||||
|
||||
logs->addStretch(1);
|
||||
|
||||
auto selectDir = logs.emplace<QPushButton>("Set custom logpath");
|
||||
|
||||
// Setting custom logpath
|
||||
QObject::connect(
|
||||
selectDir.getElement(), &QPushButton::clicked, this,
|
||||
[this, created, app, dirMemory = QString{app->settings->logPath}]() mutable {
|
||||
auto dirName = QFileDialog::getExistingDirectory(this);
|
||||
created->setText("Logs are saved to " + CreateLink(dirName, true));
|
||||
|
||||
if (dirName == "" && dirMemory == "") {
|
||||
created->setText("Logs are saved to " +
|
||||
CreateLink(QStandardPaths::writableLocation(
|
||||
QStandardPaths::AppDataLocation),
|
||||
true));
|
||||
} else if (dirName == "") {
|
||||
dirName = dirMemory;
|
||||
created->setText("Logs are saved to " + CreateLink(dirName, true));
|
||||
}
|
||||
|
||||
app->settings->logPath = dirName;
|
||||
dirMemory = dirName;
|
||||
app->logging->refreshLoggingPath();
|
||||
});
|
||||
// Reset custom logpath
|
||||
auto resetDir = logs.emplace<QPushButton>("Reset logpath");
|
||||
QObject::connect(
|
||||
resetDir.getElement(), &QPushButton::clicked, this, [this, created, app]() mutable {
|
||||
app->settings->logPath = "";
|
||||
created->setText(
|
||||
"Logs are saved to " +
|
||||
CreateLink(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation),
|
||||
true));
|
||||
app->logging->refreshLoggingPath();
|
||||
});
|
||||
|
||||
// Logs end
|
||||
}
|
||||
|
||||
auto modMode = tabs.appendTab(new QVBoxLayout, "Moderation mode");
|
||||
|
|
Loading…
Reference in a new issue