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:
Eberhard Graether
2017-04-07 17:14:34 +02:00
parent 5570458e53
commit 6ba93ca39f
12 changed files with 70 additions and 33 deletions
@@ -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;
}
+6 -6
View File
@@ -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());
+1 -1
View File
@@ -7,8 +7,8 @@
enum LanguageType
{
LANGUAGE_C,
LANGUAGE_CPP,
LANGUAGE_C,
LANGUAGE_JAVA,
LANGUAGE_UNKNOWN
};
+22
View File
@@ -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))
+1
View File
@@ -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
+24 -10
View File
@@ -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);
}
}
);
+4
View File
@@ -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));