logic: More fixes for release
* Fixed crash on undoing aggregation edge * Avoid mutex locking in logging classes when logging is disabled * Readded dark color scheme * Fixed font size of type label in autocompletion list * Fixed text drawing in autocompletion list * Only give camelcase score when no noletter score was given * Added MessageShowErrors to undo stack * Select error line in table when undoing MessageShowErrors * Notify user about new Plugin in description of From Visual Studio project setup * Fixed row height of Project File Location label in project setup
This commit is contained in:
@@ -42,6 +42,10 @@ void ErrorController::handleMessage(MessageShowErrors* message)
|
||||
{
|
||||
if (message->errorId)
|
||||
{
|
||||
if (message->isReplayed())
|
||||
{
|
||||
getView()->setErrorId(message->errorId);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "utility/messaging/type/MessageActivateTokens.h"
|
||||
#include "utility/messaging/type/MessageChangeFileView.h"
|
||||
#include "utility/messaging/type/MessageColorSchemeTest.h"
|
||||
#include "utility/messaging/type/MessageFlushUpdates.h"
|
||||
#include "utility/messaging/type/MessageRefresh.h"
|
||||
#include "utility/messaging/type/MessageShowErrors.h"
|
||||
#include "utility/messaging/type/MessageStatus.h"
|
||||
@@ -138,8 +139,9 @@ void FeatureController::handleMessage(MessageSearch* message)
|
||||
case SearchMatch::COMMAND_ERROR:
|
||||
{
|
||||
MessageShowErrors msg(m_storageAccess->getErrorCount());
|
||||
msg.setIsReplayed(message->isReplayed());
|
||||
msg.dispatchImmediately();
|
||||
msg.setIsReplayed(true);
|
||||
msg.dispatch();
|
||||
MessageFlushUpdates().dispatch();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -235,6 +235,18 @@ void UndoRedoController::handleMessage(MessageSearchFullText* message)
|
||||
processCommand(command);
|
||||
}
|
||||
|
||||
void UndoRedoController::handleMessage(MessageShowErrors* message)
|
||||
{
|
||||
if (sameMessageTypeAsLast(message) &&
|
||||
static_cast<MessageShowErrors*>(lastMessage())->errorId == message->errorId)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Command command(std::make_shared<MessageShowErrors>(*message), Command::ORDER_ACTIVATE);
|
||||
processCommand(command);
|
||||
}
|
||||
|
||||
void UndoRedoController::handleMessage(MessageShowScope* message)
|
||||
{
|
||||
Command command(std::make_shared<MessageShowScope>(*message), Command::ORDER_VIEW);
|
||||
@@ -347,6 +359,11 @@ void UndoRedoController::replayCommands(std::list<Command>::iterator it)
|
||||
|
||||
void UndoRedoController::processCommand(Command command)
|
||||
{
|
||||
if (command.message->isReplayed())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (command.order != Command::ORDER_ACTIVATE && m_iterator == m_list.begin())
|
||||
{
|
||||
return;
|
||||
@@ -357,40 +374,37 @@ void UndoRedoController::processCommand(Command command)
|
||||
command.order = Command::ORDER_ADAPT;
|
||||
}
|
||||
|
||||
if (!command.message->isReplayed())
|
||||
if (command.order == Command::ORDER_ACTIVATE)
|
||||
{
|
||||
if (command.order == Command::ORDER_ACTIVATE)
|
||||
m_iterator = m_list.erase(m_iterator, m_list.end());
|
||||
}
|
||||
else if (command.order == Command::ORDER_ADAPT)
|
||||
{
|
||||
std::list<Command>::iterator end = m_iterator;
|
||||
while (end != m_list.end())
|
||||
{
|
||||
m_iterator = m_list.erase(m_iterator, m_list.end());
|
||||
}
|
||||
else if (command.order == Command::ORDER_ADAPT)
|
||||
{
|
||||
std::list<Command>::iterator end = m_iterator;
|
||||
while (end != m_list.end())
|
||||
if (end->order == Command::ORDER_ACTIVATE)
|
||||
{
|
||||
if (end->order == Command::ORDER_ACTIVATE)
|
||||
{
|
||||
break;
|
||||
}
|
||||
std::advance(end, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
m_iterator = m_list.erase(m_iterator, end);
|
||||
std::advance(end, 1);
|
||||
}
|
||||
|
||||
m_list.insert(m_iterator, command);
|
||||
m_iterator = m_list.erase(m_iterator, end);
|
||||
}
|
||||
|
||||
if (command.order != Command::ORDER_VIEW)
|
||||
m_list.insert(m_iterator, command);
|
||||
|
||||
if (command.order != Command::ORDER_VIEW)
|
||||
{
|
||||
if (m_list.begin() != std::prev(m_iterator))
|
||||
{
|
||||
if (m_list.begin() != std::prev(m_iterator))
|
||||
{
|
||||
getView()->setUndoButtonEnabled(true);
|
||||
}
|
||||
getView()->setUndoButtonEnabled(true);
|
||||
}
|
||||
|
||||
if (m_list.end() == m_iterator)
|
||||
{
|
||||
getView()->setRedoButtonEnabled(false);
|
||||
}
|
||||
if (m_list.end() == m_iterator)
|
||||
{
|
||||
getView()->setRedoButtonEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "utility/messaging/type/MessageScrollCode.h"
|
||||
#include "utility/messaging/type/MessageSearch.h"
|
||||
#include "utility/messaging/type/MessageSearchFullText.h"
|
||||
#include "utility/messaging/type/MessageShowErrors.h"
|
||||
#include "utility/messaging/type/MessageShowScope.h"
|
||||
#include "utility/messaging/type/MessageUndo.h"
|
||||
|
||||
@@ -45,6 +46,7 @@ class UndoRedoController
|
||||
, public MessageListener<MessageScrollCode>
|
||||
, public MessageListener<MessageSearch>
|
||||
, public MessageListener<MessageSearchFullText>
|
||||
, public MessageListener<MessageShowErrors>
|
||||
, public MessageListener<MessageShowScope>
|
||||
, public MessageListener<MessageUndo>
|
||||
{
|
||||
@@ -88,6 +90,7 @@ private:
|
||||
virtual void handleMessage(MessageScrollCode* message);
|
||||
virtual void handleMessage(MessageSearch* message);
|
||||
virtual void handleMessage(MessageSearchFullText* message);
|
||||
virtual void handleMessage(MessageShowErrors* message);
|
||||
virtual void handleMessage(MessageShowScope* message);
|
||||
virtual void handleMessage(MessageUndo* message);
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ public:
|
||||
virtual void clear() = 0;
|
||||
|
||||
virtual void addError(const StorageError& error) = 0;
|
||||
virtual void setErrorId(Id errorId) = 0;
|
||||
};
|
||||
|
||||
#endif // ERROR_VIEW_H
|
||||
|
||||
Reference in New Issue
Block a user