mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-21 22:24:07 +01:00
Added the functionality of having logs in custom folders as well as resetting the custom path to default.
This commit is contained in:
parent
454b6bcb70
commit
26a0d5bc26
4 changed files with 74 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);
|
||||
|
|
|
@ -101,6 +101,10 @@ public:
|
|||
/// Logging
|
||||
BoolSetting enableLogging = {"/logging/enabled", false};
|
||||
|
||||
BoolSetting customLogPath = {"/logging/customPath", false};
|
||||
|
||||
QStringSetting logPath = {"/logging/path", ""};
|
||||
|
||||
QStringSetting pathHighlightSound = {"/highlighting/highlightSoundPath",
|
||||
"qrc:/sounds/ping2.wav"};
|
||||
QStringSetting highlightUserBlacklist = {"/highlighting/blacklistedUsers", ""};
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "moderationpage.hpp"
|
||||
|
||||
#include "application.hpp"
|
||||
#include "singletons/loggingmanager.hpp"
|
||||
#include "singletons/pathmanager.hpp"
|
||||
#include "util/layoutcreator.hpp"
|
||||
|
||||
|
@ -35,10 +36,14 @@ ModerationPage::ModerationPage()
|
|||
auto layout = layoutCreator.setLayoutType<QVBoxLayout>();
|
||||
{
|
||||
// Logs (copied from LoggingMananger)
|
||||
auto logPath = app->paths->logsFolderPath;
|
||||
|
||||
auto created = layout.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 |
|
||||
|
@ -47,6 +52,45 @@ ModerationPage::ModerationPage()
|
|||
layout.append(this->createCheckBox("Enable logging", app->settings->enableLogging));
|
||||
|
||||
layout->addStretch(1);
|
||||
|
||||
auto selectDir = layout.emplace<QPushButton>("Logs");
|
||||
|
||||
QObject::connect(
|
||||
selectDir.getElement(), &QPushButton::clicked, this,
|
||||
[ this, created, app, dirMemory = QString{app->settings->logPath} ]() mutable {
|
||||
auto dirName = QFileDialog::getExistingDirectory();
|
||||
|
||||
created->setText("Logs are saved to " + CreateLink(dirName, true));
|
||||
app->settings->customLogPath = true;
|
||||
if (dirName == "" && dirMemory == "") {
|
||||
created->setText("Logs are saved to " +
|
||||
CreateLink(QCoreApplication::applicationDirPath(), true));
|
||||
app->settings->customLogPath = false;
|
||||
} else if (dirName == "") {
|
||||
dirName = dirMemory;
|
||||
created->setText("Logs are saved to " + CreateLink(dirName, true));
|
||||
}
|
||||
app->settings->logPath = dirName;
|
||||
|
||||
qDebug() << "dirMemory" << dirMemory;
|
||||
qDebug() << "dirName" << dirName;
|
||||
qDebug() << app->settings->logPath.getValue();
|
||||
qDebug() << app->settings->customLogPath.getValue();
|
||||
|
||||
dirMemory = dirName;
|
||||
app->logging->refreshLoggingPath();
|
||||
|
||||
});
|
||||
auto resetDir = layout.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(QCoreApplication::applicationDirPath(), true));
|
||||
app->settings->customLogPath = false;
|
||||
app->logging->refreshLoggingPath();
|
||||
});
|
||||
|
||||
// Logs end
|
||||
|
||||
// clang-format off
|
||||
|
|
Loading…
Reference in a new issue