Skip to content

Commit

Permalink
- auto complete font size configurable in setting
Browse files Browse the repository at this point in the history
- fix for missed suggestion in auto complete
- fix for replace in file match whole word checking
  • Loading branch information
ychclone committed Oct 20, 2021
1 parent ef36b20 commit 7fcabf0
Show file tree
Hide file tree
Showing 9 changed files with 106 additions and 38 deletions.
35 changes: 35 additions & 0 deletions Display/CConfigDlg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ QFont CConfigDlg::getSymbolDefaultFont()
return symbolDefaultFont_;
}

QFont CConfigDlg::getSymbolAutoCompleteDefaultFont()
{
return symbolAutoCompleteDefaultFont_;
}

void CConfigDlg::loadSetting()
{
CConfigManager* confManager;
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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());
Expand All @@ -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);
Expand Down Expand Up @@ -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;
Expand Down
4 changes: 4 additions & 0 deletions Display/CConfigDlg.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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();
Expand All @@ -41,6 +44,7 @@ private slots:

QFont projectDefaultFont_;
QFont symbolDefaultFont_;
QFont symbolAutoCompleteDefaultFont_;
QFont editorDefaultFont_;


Expand Down
1 change: 1 addition & 0 deletions Display/CFindReplaceDlg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}

Expand Down
35 changes: 21 additions & 14 deletions Display/CMainWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -1289,11 +1294,14 @@ void CMainWindow::on_actionSetting_triggered()
group_listView->updateGroupFont(updatedProjectFont);
file_listView->updateOutputFont(updatedProjectFont);

QFont updatedSymbolFont = static_cast<CConfigDlg*> (dialog)->getSymbolDefaultFont();

editor_.updateAllEditorFont();

QFont updatedSymbolFont = static_cast<CConfigDlg*> (dialog)->getSymbolDefaultFont();
setSymbolFont(updatedSymbolFont);

QFont updatedSymbolAutoCompleteFont = static_cast<CConfigDlg*> (dialog)->getSymbolAutoCompleteDefaultFont();
setSymbolAutoCompleteFont(updatedSymbolAutoCompleteFont);

// update symbol panel
on_searchButton_clicked();
}
Expand Down Expand Up @@ -1579,7 +1587,7 @@ void CMainWindow::searchLineEditChanged()
}

QStringList tagList;
QMap<int, QString> tagMap;
QMultiMap<int, QString> tagMap;

bool bFuzzyAutoComplete = confManager_->getAppSettingValue("FuzzyAutoComplete", true).toBool();

Expand Down Expand Up @@ -2049,7 +2057,6 @@ void CMainWindow::queryTagRowLimit(const QString& tag, unsigned int limitSearchR
QString tagToQuery = tagToQueryFiltered.toHtmlEscaped();

resultHtml = "<html>";
//resultHtml += "<head><link rel=\"stylesheet\" href=\"file:///" + QCoreApplication::applicationDirPath() + "/Html/style.css\" type=\"text/css\" media=\"screen\"/></head>";
resultHtml += "<body>";
resultHtml += "<pre>";

Expand Down
1 change: 1 addition & 0 deletions Display/CMainWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ private slots:
void updateFileListWidget();

void setSymbolFont(QFont symbolFont);
void setSymbolAutoCompleteFont(QFont symbolFont);
void createActions();

QStringList getSelectedProjectItemNameList();
Expand Down
8 changes: 4 additions & 4 deletions Model/qTagger/qTagger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -562,13 +562,13 @@ bool QTagger::fuzzyMatch(const QString& targetInput, const QString& patternInput
}
}

int QTagger::getFuzzyMatchedTags(const QString& tagToQuery, QMap<int, QString>& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity)
int QTagger::getFuzzyMatchedTags(const QString& tagToQuery, QMultiMap<int, QString>& 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) {
Expand All @@ -579,13 +579,13 @@ int QTagger::getFuzzyMatchedTags(const QString& tagToQuery, QMap<int, QString>&
return 0;
}

int QTagger::getMatchedTags(const QString& tagToQuery, QMap<int, QString>& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity)
int QTagger::getMatchedTags(const QString& tagToQuery, QMultiMap<int, QString>& 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) {
Expand Down
4 changes: 2 additions & 2 deletions Model/qTagger/qTagger.h
Original file line number Diff line number Diff line change
Expand Up @@ -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<int, QString>& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity);
int getFuzzyMatchedTags(const QString& tagToQuery, QMultiMap<int, QString>& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity);

int getMatchedTags(const QString& tagToQuery, QMap<int, QString>& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity);
int getMatchedTags(const QString& tagToQuery, QMultiMap<int, QString>& matchedTokenList, const Qt::CaseSensitivity& caseSensitivity);

int queryTagLoadedSymbol(const T_FileItemList& inputFileItemList, const QString& tagToQuery,
QString& tagToQueryFiltered, QList<CTagResultItem>& resultList, const Qt::CaseSensitivity& caseSensitivity, bool symbolRegularExpression, unsigned long limitSearchRow);
Expand Down
2 changes: 1 addition & 1 deletion Resources/Forms/aboutDialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>Blink v1.7.3</string>
<string>Blink v1.7.4</string>
</property>
</widget>
</item>
Expand Down
54 changes: 37 additions & 17 deletions Resources/Forms/configDialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -163,10 +163,10 @@
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<widget class="QLabel" name="label_7">
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Symbol font:</string>
<string>Project/File font:</string>
</property>
</widget>
</item>
Expand All @@ -180,6 +180,13 @@
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLineEdit" name="projectFont_lineEdit">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QToolButton" name="symbolFont_toolBn">
<property name="text">
Expand All @@ -190,22 +197,15 @@
</property>
</widget>
</item>
<item row="2" column="0">
<item row="3" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Editor font:</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Project/File font:</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLineEdit" name="projectFont_lineEdit">
<item row="3" column="2">
<widget class="QLineEdit" name="editorFont_lineEdit">
<property name="readOnly">
<bool>true</bool>
</property>
Expand All @@ -218,15 +218,35 @@
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="editorFont_lineEdit">
<property name="readOnly">
<item row="1" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Symbol font:</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QToolButton" name="editorFont_toolBn">
<property name="text">
<string>...</string>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Symbol auto complete font:</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="symbolAutoCompleteFont_lineEdit"/>
</item>
<item row="2" column="3">
<widget class="QToolButton" name="editorFont_toolBn">
<widget class="QToolButton" name="symbolAutoCompleteFont_toolBn">
<property name="text">
<string>...</string>
</property>
Expand Down

0 comments on commit 7fcabf0

Please sign in to comment.