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)
|
QString LoggingManager::getDirectoryForChannel(const QString &channelName)
|
||||||
{
|
{
|
||||||
|
auto customPath = getApp()->settings->logPath;
|
||||||
|
|
||||||
if (channelName.startsWith("/whispers")) {
|
if (channelName.startsWith("/whispers")) {
|
||||||
|
if (customPath != "")
|
||||||
|
return customPath + "/Whispers";
|
||||||
return this->pathManager->whispersLogsFolderPath;
|
return this->pathManager->whispersLogsFolderPath;
|
||||||
} else if (channelName.startsWith("/mentions")) {
|
} else if (channelName.startsWith("/mentions")) {
|
||||||
|
if (customPath != "")
|
||||||
|
return customPath + "/Mentions";
|
||||||
return this->pathManager->mentionsLogsFolderPath;
|
return this->pathManager->mentionsLogsFolderPath;
|
||||||
} else {
|
} 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() +
|
QString logPath(this->pathManager->channelsLogsFolderPath + QDir::separator() +
|
||||||
channelName);
|
channelName);
|
||||||
|
|
||||||
|
@ -55,5 +70,12 @@ QString LoggingManager::getDirectoryForChannel(const QString &channelName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LoggingManager::refreshLoggingPath()
|
||||||
|
{
|
||||||
|
// if (app->settings->logPath == "") {
|
||||||
|
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace singletons
|
} // namespace singletons
|
||||||
} // namespace chatterino
|
} // namespace chatterino
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
|
|
||||||
namespace chatterino {
|
namespace chatterino {
|
||||||
namespace singletons {
|
namespace singletons {
|
||||||
|
|
||||||
class PathManager;
|
class PathManager;
|
||||||
|
|
||||||
class LoggingManager
|
class LoggingManager
|
||||||
|
@ -23,6 +22,8 @@ public:
|
||||||
|
|
||||||
void addMessage(const QString &channelName, messages::MessagePtr message);
|
void addMessage(const QString &channelName, messages::MessagePtr message);
|
||||||
|
|
||||||
|
void refreshLoggingPath();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::map<QString, std::unique_ptr<LoggingChannel>> loggingChannels;
|
std::map<QString, std::unique_ptr<LoggingChannel>> loggingChannels;
|
||||||
QString getDirectoryForChannel(const QString &channelName);
|
QString getDirectoryForChannel(const QString &channelName);
|
||||||
|
|
|
@ -101,6 +101,10 @@ public:
|
||||||
/// Logging
|
/// Logging
|
||||||
BoolSetting enableLogging = {"/logging/enabled", false};
|
BoolSetting enableLogging = {"/logging/enabled", false};
|
||||||
|
|
||||||
|
BoolSetting customLogPath = {"/logging/customPath", false};
|
||||||
|
|
||||||
|
QStringSetting logPath = {"/logging/path", ""};
|
||||||
|
|
||||||
QStringSetting pathHighlightSound = {"/highlighting/highlightSoundPath",
|
QStringSetting pathHighlightSound = {"/highlighting/highlightSoundPath",
|
||||||
"qrc:/sounds/ping2.wav"};
|
"qrc:/sounds/ping2.wav"};
|
||||||
QStringSetting highlightUserBlacklist = {"/highlighting/blacklistedUsers", ""};
|
QStringSetting highlightUserBlacklist = {"/highlighting/blacklistedUsers", ""};
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "moderationpage.hpp"
|
#include "moderationpage.hpp"
|
||||||
|
|
||||||
#include "application.hpp"
|
#include "application.hpp"
|
||||||
|
#include "singletons/loggingmanager.hpp"
|
||||||
#include "singletons/pathmanager.hpp"
|
#include "singletons/pathmanager.hpp"
|
||||||
#include "util/layoutcreator.hpp"
|
#include "util/layoutcreator.hpp"
|
||||||
|
|
||||||
|
@ -35,10 +36,14 @@ ModerationPage::ModerationPage()
|
||||||
auto layout = layoutCreator.setLayoutType<QVBoxLayout>();
|
auto layout = layoutCreator.setLayoutType<QVBoxLayout>();
|
||||||
{
|
{
|
||||||
// Logs (copied from LoggingMananger)
|
// Logs (copied from LoggingMananger)
|
||||||
auto logPath = app->paths->logsFolderPath;
|
|
||||||
|
|
||||||
auto created = layout.emplace<QLabel>();
|
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->setTextFormat(Qt::RichText);
|
||||||
created->setTextInteractionFlags(Qt::TextBrowserInteraction |
|
created->setTextInteractionFlags(Qt::TextBrowserInteraction |
|
||||||
Qt::LinksAccessibleByKeyboard |
|
Qt::LinksAccessibleByKeyboard |
|
||||||
|
@ -47,6 +52,45 @@ ModerationPage::ModerationPage()
|
||||||
layout.append(this->createCheckBox("Enable logging", app->settings->enableLogging));
|
layout.append(this->createCheckBox("Enable logging", app->settings->enableLogging));
|
||||||
|
|
||||||
layout->addStretch(1);
|
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
|
// Logs end
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
|
|
Loading…
Reference in a new issue