]> git.lyx.org Git - features.git/commitdiff
* some cleanups
authorAbdelrazak Younes <younes@lyx.org>
Thu, 7 Feb 2008 14:44:17 +0000 (14:44 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Thu, 7 Feb 2008 14:44:17 +0000 (14:44 +0000)
* some compile fixes on Windows (char_type is not automatically casted to uint)
* take care of higher ucs4 characters.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22838 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiSymbols.cpp
src/frontends/qt4/GuiSymbols.h

index 96f8f1f9c81f5008bb9dc1cae3aac3408c2e58d6..c1a911616d6dadbb9cd597f18468529ba275f0a7 100644 (file)
 
 #include "GuiSymbols.h"
 
-#include "Buffer.h"
-#include "BufferView.h"
-
 #include "GuiApplication.h"
 #include "GuiView.h"
-
 #include "qt_helpers.h"
 
+#include "Buffer.h"
+#include "BufferView.h"
 #include "Encoding.h"
+
 #include "support/gettext.h"
 
 #include <QPixmap>
 #include <QListWidgetItem>
 
-// Set to zero if unicode symbols are preferred.
-#define USE_PIXMAP 1
-
 using namespace std;
 
 namespace lyx {
@@ -161,18 +157,28 @@ GuiSymbols::GuiSymbols(GuiView & lv)
        int size = font.pointSize() + 3;
        font.setPointSize(size);
        symbolsLW->setFont(font);
-
-       okPB->setEnabled(!chosenLE->text().isEmpty() &&
-               !bufferview()->buffer().isReadonly());
-       applyPB->setEnabled(!chosenLE->text().isEmpty() &&
-               !bufferview()->buffer().isReadonly());
 }
 
 
 void GuiSymbols::updateView()
 {
        chosenLE->clear();
-       initialiseParams(bufferview()->cursor().getEncoding()->name());
+
+       string const & new_encoding = bufferview()->cursor().getEncoding()->name();
+       if (new_encoding == encoding_)
+               // everything up to date
+               return;
+       if (!new_encoding.empty())
+               encoding_ = new_encoding;
+       updateSymbolList();
+}
+
+
+void GuiSymbols::enableView(bool enable)
+{
+       chosenLE->setEnabled(enable);
+       okPB->setEnabled(enable);
+       applyPB->setEnabled(enable);
 }
 
 
@@ -203,8 +209,9 @@ void GuiSymbols::on_symbolsLW_itemActivated(QListWidgetItem *)
 
 void GuiSymbols::on_chosenLE_textChanged(QString const & text)
 {
-       okPB->setEnabled(!text.isEmpty() && !bufferview()->buffer().isReadonly());
-       applyPB->setEnabled(!text.isEmpty() && !bufferview()->buffer().isReadonly());
+       bool const empty_sel = text.isEmpty();
+       okPB->setEnabled(!empty_sel);
+       applyPB->setEnabled(!empty_sel);
 }
 
 
@@ -245,11 +252,12 @@ void GuiSymbols::updateSymbolList()
        SymbolsList::const_iterator const end = symbols.end();
        for (SymbolsList::const_iterator it = symbols.begin(); it != end; ++it) {
                char_type c = *it;
+               QChar::Category cat = QChar::category((uint) c);
                // we do not want control or space characters
-               if (QChar(c).category() == QChar::Other_Control ||
-                   QChar(c).category() == QChar::Separator_Space)
+               if (cat == QChar::Other_Control || cat == QChar::Separator_Space)
                        continue;
-               QListWidgetItem * lwi = new QListWidgetItem(QChar(c));
+               QListWidgetItem * lwi = new QListWidgetItem(
+                       QString::fromUcs4((uint const *) &c, 1));
                lwi->setTextAlignment(Qt::AlignCenter);
                symbolsLW->addItem(lwi);
                QString block = getBlock(c);
@@ -275,19 +283,6 @@ QString const GuiSymbols::getBlock(char_type c) const
 }
 
 
-
-bool GuiSymbols::initialiseParams(string const & data)
-{
-       if (data == encoding_)
-               // everything up to date
-               return true;
-       if (!data.empty())
-               encoding_ = data;
-       updateSymbolList();
-       return true;
-}
-
-
 void GuiSymbols::dispatchParams()
 {
        dispatch(FuncRequest(LFUN_SELF_INSERT, fromqstr(chosenLE->text())));
index 33eff14fa0d60a2b516d87ae9d91ef33224bc1a5..9dce0e292073da8d5203a3ea4678a6bcfb33be90 100644 (file)
 
 #include "DialogView.h"
 #include "ui_SymbolsUi.h"
-#include "Encoding.h"
 
 class QListWidgetItem;
-class Encoding;
 
 namespace lyx {
 namespace frontend {
@@ -33,8 +31,7 @@ public:
        //@{
        void updateView();
        void dispatchParams();
-       bool initialiseParams(std::string const & data);
-       void clearParams() {}
+       void enableView(bool enable);
        bool isBufferDependent() const { return true; }
        //@}