]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiSymbols.cpp
On Linux show in crash message box the backtrace
[lyx.git] / src / frontends / qt4 / GuiSymbols.cpp
index 2fb1b3f170c2ade70bd4693c710d4d0c1d1fe200..1e7e7891bf2f73ac49ece06350475d533669cb5f 100644 (file)
@@ -153,6 +153,7 @@ const int no_blocks = sizeof(unicode_blocks) / sizeof(UnicodeBlocks);
 QString getBlock(char_type c)
 {
        // store an educated guess for the next search
+       // FIXME THREAD
        static int lastBlock = 0;
 
        // "clever reset"
@@ -198,7 +199,7 @@ class GuiSymbols::Model : public QAbstractItemModel
 {
 public:
        Model(GuiSymbols * parent)
-               : QAbstractItemModel(parent), parent_(parent)
+               : QAbstractItemModel(parent)
        {}
 
        QModelIndex index(int row, int column, QModelIndex const &) const
@@ -226,6 +227,7 @@ public:
                static QString const strCharacter = qt_("Character: ");
                static QString const strCodePoint = qt_("Code Point: ");
 
+               // FIXME THREAD
                static char codeName[10];
 
                char_type c = symbols_.at(index.row()); 
@@ -248,14 +250,14 @@ public:
 
        void setSymbols(QList<char_type> const & symbols)
        {
+               QAbstractItemModel::beginResetModel();
                symbols_ = symbols;
-               QAbstractItemModel::reset();
+               QAbstractItemModel::endResetModel();
        }
 
 private:
        friend class GuiSymbols;
-       GuiSymbols * parent_;
-       
+
        QList<char_type> symbols_;
 };
 
@@ -276,12 +278,16 @@ GuiSymbols::GuiSymbols(GuiView & lv)
 
        symbolsLW->setViewMode(QListView::IconMode);
        // increase the display size of the symbols a bit
-       QFont font= symbolsLW->font();
-       int size = font.pointSize() + 3;
+       QFont font = symbolsLW->font();
+       const int size = font.pointSize() + 3;
        font.setPointSize(size);
        symbolsLW->setFont(font);
        QFontMetrics fm(font);
-       symbolsLW->setGridSize(QSize(fm.maxWidth() + 2, fm.height() + 2));
+       const int cellHeight = fm.height() + 2;
+       // FIXME: using at least cellHeight because of
+       // QFontMetrics::maxWidth() is returning 0 with Qt/Cocoa on Mac OS
+       const int cellWidth = max(cellHeight, fm.maxWidth() + 2);
+       symbolsLW->setGridSize(QSize(cellWidth, cellHeight));
        symbolsLW->setModel(model_);
 }