texteditsetwin.cpp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. #include "texteditsetwin.h"
  2. #include "scintillaeditview.h"
  3. #include "ccnotepad.h"
  4. #include "qtlangset.h"
  5. #include <QFontDialog>
  6. #include <QColorDialog>
  7. TextEditSetWin::TextEditSetWin(QWidget *parent)
  8. : QWidget(parent), m_notepadWin(nullptr)
  9. {
  10. ui.setupUi(this);
  11. if (ScintillaEditView::s_tabLens >= 0 && ScintillaEditView::s_tabLens <= 16)
  12. {
  13. ui.spinBoxTabLens->setValue(ScintillaEditView::s_tabLens);
  14. }
  15. ui.checkBoxReplaceTabToSpace->setChecked(ScintillaEditView::s_noUseTab);
  16. ui.BigTextSizeLimit->setValue(ScintillaEditView::s_bigTextSize);
  17. ui.restoreFile->setChecked((CCNotePad::s_restoreLastFile == 1));
  18. QPalette pal = QApplication::palette();
  19. QPixmap f(32, 32);
  20. f.fill(pal.text().color());
  21. ui.appFontColorLabel->setPixmap(f);
  22. //ui.appFontColorLabel
  23. }
  24. TextEditSetWin::~TextEditSetWin()
  25. {
  26. save();
  27. }
  28. void TextEditSetWin::setNotePadWin(QWidget *w)
  29. {
  30. m_notepadWin = w;
  31. }
  32. #if 0
  33. //弹出对话框时,默认初始化该值
  34. void TextEditSetWin::setProgramLangFont(QFont &font)
  35. {
  36. if (m_curProLangFont != font)
  37. {
  38. m_curProLangFont = font;
  39. }
  40. ui.curProLangFontEdit->setText(font.toString());
  41. }
  42. #endif
  43. void TextEditSetWin::save()
  44. {
  45. bool lenChange = false;
  46. if (ui.spinBoxTabLens->value() != ScintillaEditView::s_tabLens)
  47. {
  48. ScintillaEditView::s_tabLens = ui.spinBoxTabLens->value();
  49. lenChange = true;
  50. }
  51. bool useChange = false;
  52. if (ui.checkBoxReplaceTabToSpace->isChecked() != ScintillaEditView::s_noUseTab)
  53. {
  54. ScintillaEditView::s_noUseTab = ui.checkBoxReplaceTabToSpace->isChecked();
  55. useChange = true;
  56. }
  57. if (lenChange || useChange)
  58. {
  59. emit sendTabFormatChange(lenChange, useChange);
  60. }
  61. if (ui.BigTextSizeLimit->value() != ScintillaEditView::s_bigTextSize)
  62. {
  63. ScintillaEditView::s_bigTextSize = ui.BigTextSizeLimit->value();
  64. }
  65. int restoreFile = ui.restoreFile->isChecked() ? 1 : 0;
  66. if (restoreFile != CCNotePad::s_restoreLastFile)
  67. {
  68. CCNotePad::s_restoreLastFile = restoreFile;
  69. }
  70. }
  71. void TextEditSetWin::slot_txtFontSet()
  72. {
  73. CCNotePad* pMainWin = dynamic_cast<CCNotePad*>(m_notepadWin);
  74. if (pMainWin == nullptr)
  75. {
  76. //是从对比规则里面弹出来的,不进行文本的设置
  77. return;
  78. }
  79. QtLangSet* pWin = pMainWin->getLangSet();
  80. #if 0
  81. QtLangSet* pWin = new QtLangSet(QString("txt"), this);
  82. pWin->setAttribute(Qt::WA_DeleteOnClose);
  83. connect(pWin, &QtLangSet::viewStyleChange, pMainWin, &CCNotePad::slot_viewStyleChange);
  84. connect(pWin, &QtLangSet::viewLexerChange, pMainWin, &CCNotePad::slot_viewLexerChange);
  85. pWin->show();
  86. #endif
  87. if (pWin != nullptr)
  88. {
  89. pWin->selectInitLangTag("txt");
  90. }
  91. }
  92. #if 0
  93. //app字体颜色设置
  94. void TextEditSetWin::slot_appFontColor()
  95. {
  96. QPalette pal = qApp->palette();
  97. QColor oldColor = pal.text().color();
  98. QColor color = QColorDialog::getColor(pal.text().color(), this, tr("App Font Foreground Color"));
  99. if (color.isValid() && color != oldColor)
  100. {
  101. pal.setColor(QPalette::WindowText, color);//设置颜色
  102. pal.setColor(QPalette::Text, color);//设置颜色
  103. pal.setColor(QPalette::ButtonText, color);//设置颜色
  104. pal.setColor(QPalette::ToolTipText, color);
  105. qApp->setPalette(pal);
  106. QPixmap f(32, 32);
  107. f.fill(pal.text().color());
  108. ui.appFontColorLabel->setPixmap(f);
  109. //发现如果修改APP字体颜色后,必须要把存在的窗口关闭一下,否则存在的窗口的字体颜色无法生效。
  110. CCNotePad* pMainWin = dynamic_cast<CCNotePad*>(m_notepadWin);
  111. if (pMainWin != nullptr)
  112. {
  113. //是从主界面调用的,执行一下颜色的更新
  114. pMainWin->changeAppFontColor(color);
  115. return;
  116. }
  117. }
  118. }
  119. #endif
  120. #if 0
  121. //不能整体修改QApplication::font(),会引发语法里面的文字重叠破坏。
  122. //只针对菜单和状态栏,查找框字体进行修改。
  123. void TextEditSetWin::slot_selectAppFont()
  124. {
  125. QFont ft;
  126. QFont curAppFont = QApplication::font();
  127. bool ok = false;//定义bool型输出变量
  128. ft = QFontDialog::getFont(&ok, curAppFont, this,tr("The App Font"));
  129. if (ok)
  130. {
  131. ui.appFontEdit->setText(ft.toString());
  132. if (curAppFont != ft)
  133. {
  134. //emit signAppFontChange(ft);
  135. QApplication::setFont(ft,"FindResultWin");
  136. }
  137. }
  138. }
  139. #endif
  140. #if 0
  141. void TextEditSetWin::slot_selectProLangFont()
  142. {
  143. #if defined(Q_OS_WIN)
  144. QFont ft("Courier New", QsciLexer::s_defaultFontSize);
  145. #elif defined(Q_OS_MAC)
  146. QFont ft("Menlo", s_defaultFontSize);
  147. #else
  148. QFont ft("Bitstream Vera Sans", 9);
  149. #endif
  150. bool ok = false;//定义bool型输出变量
  151. ft = QFontDialog::getFont(&ok, m_curProLangFont, this, tr("User define Txt Font"));
  152. if (ok)
  153. {
  154. ui.curProLangFontEdit->setText(ft.toString());
  155. if (m_curProLangFont != ft)
  156. {
  157. m_curProLangFont = ft;
  158. emit signProLangFontChange(ft);
  159. }
  160. }
  161. else
  162. {
  163. ui.curProLangFontEdit->setText(ft.toString());
  164. m_curProLangFont = ft;
  165. }
  166. }
  167. #endif