diff --git a/Display/CConfigDlg.cpp b/Display/CConfigDlg.cpp index 288850e..5845773 100644 --- a/Display/CConfigDlg.cpp +++ b/Display/CConfigDlg.cpp @@ -28,6 +28,11 @@ QFont CConfigDlg::getSymbolDefaultFont() return symbolDefaultFont_; } +QFont CConfigDlg::getSymbolAutoCompleteDefaultFont() +{ + return symbolAutoCompleteDefaultFont_; +} + void CConfigDlg::loadSetting() { CConfigManager* confManager; @@ -64,6 +69,18 @@ void CConfigDlg::loadSetting() QString symbolFontTextToDisplay = symbolDefaultFont_.family() + ", " + QString::number(symbolDefaultFont_.pointSize()); symbolFont_lineEdit->setText(symbolFontTextToDisplay); + // Symbol Auto Complete font + QString symbolAutoCompleteFontStr = confManager->getAppSettingValue("SymbolAutoCompleteFont").toString(); + if (symbolAutoCompleteFontStr != "") { // load from setting + symbolAutoCompleteDefaultFont_.fromString(symbolAutoCompleteFontStr); + } else { + symbolAutoCompleteDefaultFont_ = QApplication::font(); // using application font as default font + } + + // update symbol auto complete font in setting display + QString symbolAutoCompleteFontTextToDisplay = symbolAutoCompleteDefaultFont_.family() + ", " + QString::number(symbolAutoCompleteDefaultFont_.pointSize()); + symbolAutoCompleteFont_lineEdit->setText(symbolAutoCompleteFontTextToDisplay); + // Editor font QString editorFontStr = confManager->getAppSettingValue("EditorFont").toString(); if (editorFontStr != "") { // load from setting @@ -109,6 +126,8 @@ void CConfigDlg::saveSetting() confManager->setAppSettingValue("ProjectFont", projectDefaultFont_.toString()); confManager->setAppSettingValue("SymbolFont", symbolDefaultFont_.toString()); + confManager->setAppSettingValue("SymbolAutoCompleteFont", symbolAutoCompleteDefaultFont_.toString()); + confManager->setAppSettingValue("EditorFont", editorDefaultFont_.toString()); confManager->setAppSettingValue("UseExternalEditor", useExternalEditor_checkBox->isChecked()); @@ -131,6 +150,7 @@ void CConfigDlg::createActions() QObject::connect(timeoutRunExtProgram_lineEdit, SIGNAL(textChanged(QString)), this, SLOT(configContentChanged())); QObject::connect(projectFont_lineEdit, SIGNAL(textChanged(QString)), this, SLOT(configContentChanged())); QObject::connect(symbolFont_lineEdit, SIGNAL(textChanged(QString)), this, SLOT(configContentChanged())); + QObject::connect(symbolAutoCompleteFont_lineEdit, SIGNAL(textChanged(QString)), this, SLOT(configContentChanged())); QObject::connect(editorFont_lineEdit, SIGNAL(textChanged(QString)), this, SLOT(configContentChanged())); QObject::connect(useExternalEditor_checkBox, &QCheckBox::stateChanged, this, &CConfigDlg::configContentChanged); @@ -230,6 +250,21 @@ void CConfigDlg::on_symbolFont_toolBn_clicked() } } +void CConfigDlg::on_symbolAutoCompleteFont_toolBn_clicked() +{ + bool bOkClicked; + QFont selectedFont = QFontDialog::getFont( + &bOkClicked, symbolAutoCompleteDefaultFont_, this); + + if (bOkClicked) { + symbolAutoCompleteDefaultFont_ = selectedFont; + + // update symbol font setting display + QString fontTextToDisplay = symbolAutoCompleteDefaultFont_.family() + ", " + QString::number(symbolAutoCompleteDefaultFont_.pointSize()); + symbolAutoCompleteFont_lineEdit->setText(fontTextToDisplay); + } +} + void CConfigDlg::on_editorFont_toolBn_clicked() { bool bOkClicked; diff --git a/Display/CConfigDlg.h b/Display/CConfigDlg.h index 62f9086..fd8762c 100644 --- a/Display/CConfigDlg.h +++ b/Display/CConfigDlg.h @@ -15,6 +15,7 @@ class CConfigDlg : public QDialog, private Ui::configDialog QFont getProjectDefaultFont(); QFont getSymbolDefaultFont(); + QFont getSymbolAutoCompleteDefaultFont(); private slots: void changePage(QListWidgetItem *current, QListWidgetItem *previous); @@ -26,6 +27,8 @@ private slots: void on_projectFont_toolBn_clicked(); void on_symbolFont_toolBn_clicked(); + void on_symbolAutoCompleteFont_toolBn_clicked(); + void on_editorFont_toolBn_clicked(); void on_tagDir_toolBn_clicked(); @@ -41,6 +44,7 @@ private slots: QFont projectDefaultFont_; QFont symbolDefaultFont_; + QFont symbolAutoCompleteDefaultFont_; QFont editorDefaultFont_; diff --git a/Display/CFindReplaceDlg.cpp b/Display/CFindReplaceDlg.cpp index 47c1db3..3931475 100644 --- a/Display/CFindReplaceDlg.cpp +++ b/Display/CFindReplaceDlg.cpp @@ -79,6 +79,7 @@ void CFindReplaceDlg::on_replaceButton_clicked() if (!bLetterNumOrUnderscore) { QMessageBox::information(this, "File Replaces", "Only letter, number or underscore is supported for match whole word", QMessageBox::Ok); + return; } } diff --git a/Display/CMainWindow.cpp b/Display/CMainWindow.cpp index a1f212c..f12d96c 100644 --- a/Display/CMainWindow.cpp +++ b/Display/CMainWindow.cpp @@ -268,20 +268,20 @@ bTagBuildInProgress_(false) setSymbolFont(QApplication::font()); // using system font by default } - // Editor font - QString editorFontSettingStr; - QFont editorFont; + // Symbol Auto Complete font + QString symbolAutoCompleteFontSettingStr; + QFont symbolAutoCompleteFont; - editorFontSettingStr = confManager_->getAppSettingValue("EditorFont").toString(); - editorFont.fromString(editorFontSettingStr); + symbolAutoCompleteFontSettingStr = confManager_->getAppSettingValue("SymbolAutoCompleteFont").toString(); + symbolAutoCompleteFont.fromString(symbolAutoCompleteFontSettingStr); - /* - if (editorFontSettingStr != "") { - setEditorFont(editorFont); + if (symbolAutoCompleteFontSettingStr != "") { + setSymbolAutoCompleteFont(symbolAutoCompleteFont); } else { - setEditorFont(QApplication::font()); // using system font by default + setSymbolAutoCompleteFont(QApplication::font()); // using system font by default } - */ + + // editor font set directly in CEditor::CEditor // case sensitive bSymbolSearchCaseSensitive = confManager_->getAppSettingValue("SymbolSearchCaseSensitive", false).toBool(); @@ -398,6 +398,11 @@ void CMainWindow::setSymbolFont(QFont symbolFont) textDocument_.setDefaultStyleSheet(textDocumentSyleStr); } +void CMainWindow::setSymbolAutoCompleteFont(QFont symbolAutoCompleteFont) +{ + completer_.popup()->setFont(symbolAutoCompleteFont); +} + void CMainWindow::loadProjectList() { QStringList projectList; @@ -1289,11 +1294,14 @@ void CMainWindow::on_actionSetting_triggered() group_listView->updateGroupFont(updatedProjectFont); file_listView->updateOutputFont(updatedProjectFont); - QFont updatedSymbolFont = static_cast (dialog)->getSymbolDefaultFont(); - editor_.updateAllEditorFont(); + QFont updatedSymbolFont = static_cast (dialog)->getSymbolDefaultFont(); setSymbolFont(updatedSymbolFont); + + QFont updatedSymbolAutoCompleteFont = static_cast (dialog)->getSymbolAutoCompleteDefaultFont(); + setSymbolAutoCompleteFont(updatedSymbolAutoCompleteFont); + // update symbol panel on_searchButton_clicked(); } @@ -1579,7 +1587,7 @@ void CMainWindow::searchLineEditChanged() } QStringList tagList; - QMap tagMap; + QMultiMap tagMap; bool bFuzzyAutoComplete = confManager_->getAppSettingValue("FuzzyAutoComplete", true).toBool(); @@ -2049,7 +2057,6 @@ void CMainWindow::queryTagRowLimit(const QString& tag, unsigned int limitSearchR QString tagToQuery = tagToQueryFiltered.toHtmlEscaped(); resultHtml = ""; - //resultHtml += ""; resultHtml += ""; resultHtml += "
";
 
diff --git a/Display/CMainWindow.h b/Display/CMainWindow.h
index 0447846..78b1054 100644
--- a/Display/CMainWindow.h
+++ b/Display/CMainWindow.h
@@ -154,6 +154,7 @@ private slots:
 	void updateFileListWidget();
 
 	void setSymbolFont(QFont symbolFont);
+	void setSymbolAutoCompleteFont(QFont symbolFont);
     void createActions();
 
     QStringList getSelectedProjectItemNameList();
diff --git a/Model/qTagger/qTagger.cpp b/Model/qTagger/qTagger.cpp
index 144d91c..040a421 100644
--- a/Model/qTagger/qTagger.cpp
+++ b/Model/qTagger/qTagger.cpp
@@ -562,13 +562,13 @@ bool QTagger::fuzzyMatch(const QString& targetInput, const QString& patternInput
 	}
 }
 
-int QTagger::getFuzzyMatchedTags(const QString& tagToQuery, QMap& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity)
+int QTagger::getFuzzyMatchedTags(const QString& tagToQuery, QMultiMap& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity)
 {
 	QStringList result;
 	foreach (const CTagItem &tagItem, tagList_) {
 		if (fuzzyMatch(tagItem.tag_, tagToQuery, caseSensitivity)) {
 			int distance = levenshteinDistance(tagToQuery, tagItem.tag_);
-			matchedTokenList[distance] = tagItem.tag_;
+			matchedTokenList.insert(distance, tagItem.tag_);
 		}
 
 		if (matchedTokenList.size() > 500) {
@@ -579,13 +579,13 @@ int QTagger::getFuzzyMatchedTags(const QString& tagToQuery, QMap&
 	return 0;
 }
 
-int QTagger::getMatchedTags(const QString& tagToQuery, QMap& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity)
+int QTagger::getMatchedTags(const QString& tagToQuery, QMultiMap& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity)
 {
 	QStringList result;
 	foreach (const CTagItem &tagItem, tagList_) {
 		if (tagItem.tag_.contains(tagToQuery, caseSensitivity)) {
 			int distance = levenshteinDistance(tagToQuery, tagItem.tag_);
-			matchedTokenList[distance] = tagItem.tag_;
+			matchedTokenList.insert(distance, tagItem.tag_);
 		}
 
 		if (matchedTokenList.size() > 500) {
diff --git a/Model/qTagger/qTagger.h b/Model/qTagger/qTagger.h
index be2394c..db13dc8 100644
--- a/Model/qTagger/qTagger.h
+++ b/Model/qTagger/qTagger.h
@@ -40,9 +40,9 @@ class QTagger
 	int levenshteinDistance(const QString &source, const QString &target);
 
 	bool fuzzyMatch(const QString& targetInput, const QString& patternInput, const Qt::CaseSensitivity& caseSensitivity);
-	int getFuzzyMatchedTags(const QString& tagToQuery, QMap& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity);
+	int getFuzzyMatchedTags(const QString& tagToQuery, QMultiMap& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity);
 
-	int getMatchedTags(const QString& tagToQuery, QMap& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity);
+	int getMatchedTags(const QString& tagToQuery, QMultiMap& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity);
 
 	int queryTagLoadedSymbol(const T_FileItemList& inputFileItemList, const QString& tagToQuery,
 					QString& tagToQueryFiltered, QList& resultList, const Qt::CaseSensitivity& caseSensitivity, bool symbolRegularExpression, unsigned long limitSearchRow);
diff --git a/Resources/Forms/aboutDialog.ui b/Resources/Forms/aboutDialog.ui
index 5a8127f..e9d48e4 100644
--- a/Resources/Forms/aboutDialog.ui
+++ b/Resources/Forms/aboutDialog.ui
@@ -67,7 +67,7 @@
        
         
          
-          Blink v1.7.3
+          Blink v1.7.4
          
         
        
diff --git a/Resources/Forms/configDialog.ui b/Resources/Forms/configDialog.ui
index bcfc597..684f39d 100644
--- a/Resources/Forms/configDialog.ui
+++ b/Resources/Forms/configDialog.ui
@@ -163,10 +163,10 @@
             
             
              
-              
-               
+              
+               
                 
-                 Symbol font:
+                 Project/File font:
                 
                
               
@@ -180,6 +180,13 @@
                 
                
               
+              
+               
+                
+                 true
+                
+               
+              
               
                
                 
@@ -190,22 +197,15 @@
                 
                
               
-              
+              
                
                 
                  Editor font:
                 
                
               
-              
-               
-                
-                 Project/File font:
-                
-               
-              
-              
-               
+              
+               
                 
                  true
                 
@@ -218,15 +218,35 @@
                 
                
               
-              
-               
-                
+              
+               
+                
+                 Symbol font:
+                
+               
+              
+              
+               
+                
+                 ...
+                
+                
                  true
                 
                
               
+              
+               
+                
+                 Symbol auto complete font:
+                
+               
+              
+              
+               
+              
               
-               
+               
                 
                  ...