src: more bug fixes
* fixed snippets added twice on token reactivation for errors and fulltext search results * fixed colorscheme gets refreshed when cancelling preferences * scroll to first line in errors table after indexing and showing view * fixed file not properly expanded when snippet covers full file * fixed project type naming in project setup * fixed set delimiter of NameHierarchy for projects that can't be loaded yet * changed language order for project setup
This commit is contained in:
@@ -366,7 +366,8 @@ void CodeController::handleMessage(MessageShowErrors* message)
|
||||
|
||||
view->clear();
|
||||
view->setErrorInfos(errors);
|
||||
view->showCodeSnippets(snippets, std::vector<Id>(), !message->errorId);
|
||||
view->showCodeSnippets(
|
||||
snippets, std::vector<Id>(), !message->errorId && (!message->isReplayed() || message->isReplayCleared()));
|
||||
|
||||
showContents(message);
|
||||
}
|
||||
@@ -385,7 +386,8 @@ void CodeController::handleMessage(MessageSearchFullText* message)
|
||||
view->clear();
|
||||
|
||||
m_collection = m_storageAccess->getFullTextSearchLocations(message->searchTerm, message->caseSensitive);
|
||||
view->showCodeSnippets(getSnippetsForCollection(m_collection, true), std::vector<Id>(), true);
|
||||
view->showCodeSnippets(
|
||||
getSnippetsForCollection(m_collection, true), std::vector<Id>(), !message->isReplayed() || message->isReplayCleared());
|
||||
|
||||
showContents(message);
|
||||
}
|
||||
|
||||
@@ -40,12 +40,11 @@ void ErrorController::handleMessage(MessageShowErrors* message)
|
||||
clear();
|
||||
|
||||
std::vector<ErrorInfo> errors = m_storageAccess->getErrors();
|
||||
getView()->addErrors(errors, false);
|
||||
|
||||
if (errors.size())
|
||||
{
|
||||
getView()->showDockWidget();
|
||||
}
|
||||
getView()->addErrors(errors, false);
|
||||
}
|
||||
|
||||
ErrorView* ErrorController::getView() const
|
||||
|
||||
@@ -151,11 +151,6 @@ std::shared_ptr<SourceLocationFile> SourceLocationFile::getFilteredByLines(size_
|
||||
}
|
||||
}
|
||||
|
||||
if (isWhole() && ret->getSourceLocationCount() == getSourceLocationCount())
|
||||
{
|
||||
ret->setIsWhole(true);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -171,11 +166,6 @@ std::shared_ptr<SourceLocationFile> SourceLocationFile::getFilteredByType(Locati
|
||||
}
|
||||
}
|
||||
|
||||
if (isWhole() && ret->getSourceLocationCount() == getSourceLocationCount())
|
||||
{
|
||||
ret->setIsWhole(true);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -224,14 +224,14 @@ void Project::load()
|
||||
canLoad = true;
|
||||
}
|
||||
|
||||
m_sourceGroups = SourceGroupFactory::getInstance()->createSourceGroups(m_settings->getAllSourceGroupSettings());
|
||||
if (!m_sourceGroups.empty())
|
||||
{
|
||||
NameHierarchy::setDelimiter(getSymbolNameDelimiterForLanguage(m_sourceGroups.front()->getLanguage()));
|
||||
}
|
||||
|
||||
if (canLoad)
|
||||
{
|
||||
m_sourceGroups = SourceGroupFactory::getInstance()->createSourceGroups(m_settings->getAllSourceGroupSettings());
|
||||
if (!m_sourceGroups.empty())
|
||||
{
|
||||
NameHierarchy::setDelimiter(getSymbolNameDelimiterForLanguage(m_sourceGroups.front()->getLanguage()));
|
||||
}
|
||||
|
||||
m_storage->setMode(SqliteStorage::STORAGE_MODE_READ);
|
||||
m_storage->buildCaches();
|
||||
m_storageAccessProxy->setSubject(m_storage.get());
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
|
||||
enum LanguageType
|
||||
{
|
||||
LANGUAGE_C,
|
||||
LANGUAGE_CPP,
|
||||
LANGUAGE_C,
|
||||
LANGUAGE_JAVA,
|
||||
LANGUAGE_UNKNOWN
|
||||
};
|
||||
|
||||
@@ -22,6 +22,28 @@ std::string sourceGroupTypeToString(SourceGroupType v)
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
std::string sourceGroupTypeToProjectSetupString(SourceGroupType v)
|
||||
{
|
||||
switch (v)
|
||||
{
|
||||
case SOURCE_GROUP_C_EMPTY:
|
||||
return "Empty C Project";
|
||||
case SOURCE_GROUP_CPP_EMPTY:
|
||||
return "Empty C++ Project";
|
||||
case SOURCE_GROUP_CXX_CDB:
|
||||
return "C/C++ from Compilation Database";
|
||||
case SOURCE_GROUP_CXX_VS:
|
||||
return "C/C++ from Visual Studio";
|
||||
case SOURCE_GROUP_JAVA_EMPTY:
|
||||
return "Empty Java Project";
|
||||
case SOURCE_GROUP_JAVA_MAVEN:
|
||||
return "Java Project from Maven";
|
||||
case SOURCE_GROUP_UNKNOWN:
|
||||
break;
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
SourceGroupType stringToSourceGroupType(std::string v)
|
||||
{
|
||||
if (v == sourceGroupTypeToString(SOURCE_GROUP_C_EMPTY))
|
||||
|
||||
@@ -15,6 +15,7 @@ enum SourceGroupType
|
||||
};
|
||||
|
||||
std::string sourceGroupTypeToString(SourceGroupType v);
|
||||
std::string sourceGroupTypeToProjectSetupString(SourceGroupType v);
|
||||
SourceGroupType stringToSourceGroupType(std::string v);
|
||||
|
||||
#endif // SOURCE_GROUP_TYPE_H
|
||||
|
||||
@@ -165,18 +165,32 @@ void QtCodeNavigator::addFile(std::shared_ptr<SourceLocationFile> locationFile,
|
||||
locationFile->forEachStartSourceLocation(
|
||||
[&](SourceLocation* location)
|
||||
{
|
||||
if (!location->isScopeLocation())
|
||||
if (location->isScopeLocation())
|
||||
{
|
||||
for (Id i : location->getTokenIds())
|
||||
{
|
||||
Reference ref;
|
||||
ref.filePath = location->getFilePath();
|
||||
ref.tokenId = i;
|
||||
ref.locationId = location->getLocationId();
|
||||
ref.locationType = location->getType();
|
||||
return;
|
||||
}
|
||||
|
||||
m_references.push_back(ref);
|
||||
}
|
||||
if (!location->getTokenIds().size())
|
||||
{
|
||||
Reference ref;
|
||||
ref.filePath = location->getFilePath();
|
||||
ref.tokenId = 0;
|
||||
ref.locationId = location->getLocationId();
|
||||
ref.locationType = location->getType();
|
||||
|
||||
m_references.push_back(ref);
|
||||
return;
|
||||
}
|
||||
|
||||
for (Id i : location->getTokenIds())
|
||||
{
|
||||
Reference ref;
|
||||
ref.filePath = location->getFilePath();
|
||||
ref.tokenId = i;
|
||||
ref.locationId = location->getLocationId();
|
||||
ref.locationType = location->getType();
|
||||
|
||||
m_references.push_back(ref);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
@@ -167,6 +167,10 @@ void QtErrorView::doAddErrors(const std::vector<ErrorInfo>& errors, bool scrollT
|
||||
{
|
||||
m_table->showLastRow();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_table->showFirstRow();
|
||||
}
|
||||
}
|
||||
|
||||
void QtErrorView::doSetErrorId(Id errorId)
|
||||
|
||||
@@ -12,6 +12,7 @@ QtProjectWizzardContentPreferences::QtProjectWizzardContentPreferences(
|
||||
)
|
||||
: QtProjectWizzardContent(window)
|
||||
, m_oldColorSchemeIndex(-1)
|
||||
, m_newColorSchemeIndex(-1)
|
||||
{
|
||||
std::vector<std::string> colorSchemePaths =
|
||||
FileSystem::getFileNamesFromDirectory(ResourcePaths::getColorSchemesPath(), std::vector<std::string>(1, ".xml"));
|
||||
@@ -23,7 +24,7 @@ QtProjectWizzardContentPreferences::QtProjectWizzardContentPreferences(
|
||||
|
||||
QtProjectWizzardContentPreferences::~QtProjectWizzardContentPreferences()
|
||||
{
|
||||
if (m_oldColorSchemeIndex != -1)
|
||||
if (m_oldColorSchemeIndex != -1 && m_oldColorSchemeIndex != m_newColorSchemeIndex)
|
||||
{
|
||||
colorSchemeChanged(m_oldColorSchemeIndex);
|
||||
}
|
||||
@@ -212,6 +213,7 @@ void QtProjectWizzardContentPreferences::load()
|
||||
{
|
||||
m_colorSchemes->setCurrentIndex(i);
|
||||
m_oldColorSchemeIndex = i;
|
||||
m_newColorSchemeIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -294,6 +296,7 @@ bool QtProjectWizzardContentPreferences::check()
|
||||
|
||||
void QtProjectWizzardContentPreferences::colorSchemeChanged(int index)
|
||||
{
|
||||
m_newColorSchemeIndex = index;
|
||||
MessageSwitchColorScheme(m_colorSchemePaths[index]).dispatch();
|
||||
}
|
||||
|
||||
|
||||
@@ -52,6 +52,8 @@ private:
|
||||
QComboBox* m_colorSchemes;
|
||||
std::vector<FilePath> m_colorSchemePaths;
|
||||
int m_oldColorSchemeIndex;
|
||||
int m_newColorSchemeIndex;
|
||||
|
||||
QCheckBox* m_useAnimations;
|
||||
QCheckBox* m_loggingEnabled;
|
||||
QCheckBox* m_verboseIndexerLoggingEnabled;
|
||||
|
||||
@@ -110,7 +110,7 @@ void QtProjectWizzardContentSelect::populate(QGridLayout* layout, int& row)
|
||||
for (auto projectIt: languageIt.second)
|
||||
{
|
||||
QToolButton* b = createProjectButton(
|
||||
utility::insertLineBreaksAtBlankSpaces(sourceGroupTypeToString(projectIt.type), 15).c_str(),
|
||||
utility::insertLineBreaksAtBlankSpaces(sourceGroupTypeToProjectSetupString(projectIt.type), 15).c_str(),
|
||||
(ResourcePaths::getGuiPath() + "icon/" + m_projectTypeIconName[projectIt.type] + ".png").c_str()
|
||||
);
|
||||
b->setProperty("source_group_type", int(projectIt.type));
|
||||
|
||||
Reference in New Issue
Block a user