src: Added more status messages and some fixes

* Elide status bar messages to avoid window resize window
* Fixed status view clearing when switching projects
* Refactored app setting loading
* Replace newline characters with spaces in status view
This commit is contained in:
Eberhard Graether
2016-12-13 01:41:06 +01:00
parent 790afcf572
commit 48ece50eca
17 changed files with 100 additions and 48 deletions
+11 -7
View File
@@ -70,6 +70,8 @@ void Application::destroyInstance()
void Application::loadSettings()
{
MessageStatus("Load settings: " + UserPaths::getAppSettingsPath()).dispatch();
std::shared_ptr<ApplicationSettings> settings = ApplicationSettings::getInstance();
settings->load(FilePath(UserPaths::getAppSettingsPath()));
@@ -162,13 +164,13 @@ void Application::createAndLoadProject(const FilePath& projectSettingsFilePath)
else
{
LOG_ERROR_STREAM(<< "Failed to load project.");
MessageStatus("Failed to load project.", true).dispatch();
MessageStatus("Failed to load project: " + projectSettingsFilePath.str(), true).dispatch();
}
}
catch (...)
{
LOG_ERROR_STREAM(<< "Failed to load project.");
MessageStatus("Failed to load project.", true).dispatch();
MessageStatus("Failed to load project: " + projectSettingsFilePath.str(), true).dispatch();
}
}
@@ -198,6 +200,8 @@ void Application::handleMessage(MessageActivateWindow* message)
void Application::handleMessage(MessageEnteredLicense* message)
{
MessageStatus("Found valid license key, unlocked application.").dispatch();
m_isInTrial = false;
}
@@ -215,8 +219,6 @@ void Application::handleMessage(MessageLoadProject* message)
{
TRACE("app load project");
loadSettings();
FilePath projectSettingsFilePath(message->projectSettingsFilePath);
if (projectSettingsFilePath.empty())
{
@@ -241,9 +243,9 @@ void Application::handleMessage(MessageRefresh* message)
{
TRACE("app refresh");
if (message->reloadSettings)
if (message->loadStyle)
{
loadSettings();
loadStyle(ApplicationSettings::getInstance()->getColorSchemePath());
}
if (m_hasGUI)
@@ -259,8 +261,10 @@ void Application::handleMessage(MessageRefresh* message)
void Application::handleMessage(MessageSwitchColorScheme* message)
{
MessageStatus("Switch color scheme: " + message->colorSchemePath.str()).dispatch();
loadStyle(message->colorSchemePath);
MessageRefresh().refreshUiOnly().keepSettings().dispatch();
MessageRefresh().refreshUiOnly().noReloadStyle().dispatch();
}
void Application::startMessagingAndScheduling()
-4
View File
@@ -117,12 +117,8 @@ LicenseChecker::LicenseChecker()
void LicenseChecker::handleMessage(MessageDispatchWhenLicenseValid* message)
{
MessageStatus("preparing...", false, true).dispatch();
LicenseState state = checkCurrentLicense();
MessageStatus("ready").dispatch();
if (state == LICENSE_VALID)
{
message->content->dispatch();
+2
View File
@@ -308,6 +308,8 @@ bool Project::requestIndex(bool forceRefresh, bool needsFullRefresh)
return false;
}
MessageStatus((fullRefresh ? "Reindexing Project" : "Refreshing Project"), false, true).dispatch();
buildIndex(filesToClean, filesToIndex, fullRefresh);
return true;
@@ -139,6 +139,12 @@ void CodeController::handleMessage(MessageActivateTokens* message)
size_t referenceCount = m_collection->getTokenLocationCount();
std::stringstream ss;
if (message->unknownNames.size())
{
ss << "Activate \"" << message->unknownNames[0] << "\": ";
}
ss << message->tokenIds.size() << ' ';
ss << (message->tokenIds.size() == 1 ? "result" : "results");
@@ -270,8 +276,8 @@ void CodeController::handleMessage(MessageScrollToLine* message)
if (message->isModified)
{
MessageStatus(
"The file was modified, please refresh. Showing source location: " + message->filePath.str()
+ " : " + std::to_string(message->line),
"Showing source location: " + message->filePath.str()
+ " : " + std::to_string(message->line) + ". The file was modified, please refresh.",
true
).dispatch();
}
@@ -102,7 +102,9 @@ void IDECommunicationController::handleSetActiveTokenMessage(
if (selectedLocationIds.size() > 0)
{
MessageStatus("Activating a source location from plug-in succeeded.").dispatch();
MessageStatus("Activating source location from plug-in succeeded: " + message.fileLocation + ", row: " +
std::to_string(message.row) + ", col: " + std::to_string(message.column)).dispatch();
MessageDispatchWhenLicenseValid(
std::make_shared<MessageActivateTokenLocations>(selectedLocationIds)
).dispatch();
@@ -180,7 +182,7 @@ void IDECommunicationController::handlePing(const NetworkProtocolHelper::PingMes
}
// TODO: add the other ides
std::string message = ideName + " instance detected";
std::string message = ideName + " instance detected via plugin port";
MessageStatus(message, false, false).dispatch();
MessageDispatchWhenLicenseValid(msg).dispatch();
@@ -195,7 +197,7 @@ void IDECommunicationController::handleMessage(MessageIDECreateCDB* message)
{
std::string networkMessage = NetworkProtocolHelper::buildCreateCDBMessage();
MessageStatus("Requesting IDE to create CDB.").dispatch();
MessageStatus("Requesting IDE to create Compilation Database via plug-in.").dispatch();
sendMessage(networkMessage);
}
@@ -204,10 +206,10 @@ void IDECommunicationController::handleMessage(MessageMoveIDECursor* message)
{
std::string networkMessage = NetworkProtocolHelper::buildSetIDECursorMessage(
message->FilePosition, message->Row, message->Column
);
);
MessageStatus(
"Jumping the external tool to the following location: " + message->FilePosition + ", row: " +
"Jump to source location via plug-in: " + message->FilePosition + ", row: " +
std::to_string(message->Row) + ", col: " + std::to_string(message->Column)
).dispatch();
@@ -57,12 +57,10 @@ void StatusBarController::handleMessage(MessageStatus* message)
void StatusBarController::setStatus(const std::string& status, bool isError, bool showLoader)
{
std::string str = utility::replace(status, "\n", " ");
if (!str.empty())
if (!status.empty())
{
LOG_INFO_STREAM(<< "STATUS " << str);
LOG_INFO_STREAM(<< "STATUS " << status);
getView()->showMessage(str, isError, showLoader);
getView()->showMessage(status, isError, showLoader);
}
}
@@ -20,13 +20,12 @@ StatusView* StatusController::getView() const
void StatusController::clear()
{
m_status.clear();
getView()->clear();
}
void StatusController::handleMessage(MessageClearStatusView* message)
{
clear();
m_status.clear();
getView()->clear();
}
void StatusController::handleMessage(MessageShowStatus* message)
@@ -36,6 +35,11 @@ void StatusController::handleMessage(MessageShowStatus* message)
void StatusController::handleMessage(MessageStatus* message)
{
if (!message->status.size())
{
return;
}
std::vector<Status> status;
status.push_back(Status(message->status, message->isError));
@@ -25,7 +25,6 @@ public:
~StatusController();
private:
bool m_enabled;
StatusView* getView() const;
virtual void clear();
+14 -3
View File
@@ -4,6 +4,7 @@
#include "utility/logging/LogMessage.h"
#include "utility/logging/logging.h"
#include "utility/messaging/type/MessageStatus.h"
#include "utility/Version.h"
std::shared_ptr<LogManager> LogManager::createInstance()
@@ -31,11 +32,21 @@ LogManager::~LogManager()
void LogManager::setLoggingEnabled(bool enabled)
{
m_loggingEnabled = enabled;
if (m_loggingEnabled)
if (m_loggingEnabled != enabled)
{
LOG_INFO("Enabled logging for Coati " + Version::getApplicationVersion().toDisplayString());
if (enabled)
{
LOG_INFO("Enabled logging for Coati " + Version::getApplicationVersion().toDisplayString());
MessageStatus("Enabled console and file logging.").dispatch();
}
else
{
LOG_INFO("Disabled logging");
MessageStatus("Disabled console and file logging.").dispatch();
}
}
m_loggingEnabled = enabled;
}
void LogManager::addLogger(std::shared_ptr<Logger> logger)
@@ -3,13 +3,14 @@
#include "utility/messaging/Message.h"
class MessageRefresh: public Message<MessageRefresh>
class MessageRefresh
: public Message<MessageRefresh>
{
public:
MessageRefresh()
: uiOnly(false)
, all(false)
, reloadSettings(true)
, loadStyle(true)
{
}
@@ -30,9 +31,9 @@ public:
return *this;
}
MessageRefresh& keepSettings()
MessageRefresh& noReloadStyle()
{
reloadSettings = false;
loadStyle = false;
return *this;
}
@@ -50,7 +51,8 @@ public:
bool uiOnly;
bool all;
bool reloadSettings;
bool loadStyle;
};
#endif // MESSAGE_REFRESH_H
@@ -2,13 +2,14 @@
#define MESSAGE_STATUS_H
#include "utility/messaging/Message.h"
#include "utility/utilityString.h"
class MessageStatus
: public Message<MessageStatus>
{
public:
MessageStatus(const std::string& status, bool isError = false, bool showLoader = false)
: status(status)
: status(utility::replace(status, "\n", " "))
, isError(isError)
, showLoader(showLoader)
{