]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/TocModel.cpp
Fix the tab ordering of GuiDocument components.
[lyx.git] / src / frontends / qt4 / TocModel.cpp
index 4ace85c7a844495b5b192c508d7dfb10de73579d..508f333da8038b7b600360261a0d9fe00ce73f3b 100644 (file)
@@ -33,7 +33,7 @@ using namespace std;
 namespace lyx {
 namespace frontend {
 
-/// A QStandardItemModel that gives access to the reset method.
+/// A QStandardItemModel that gives access to the reset methods.
 /// This is needed in order to fix http://www.lyx.org/trac/ticket/3740
 class TocTypeModel : public QStandardItemModel
 {
@@ -41,7 +41,6 @@ public:
        ///
        TocTypeModel(QObject * parent) : QStandardItemModel(parent)
        {}
-
        ///
        void reset()
        {
@@ -60,7 +59,7 @@ public:
        #if QT_VERSION >= 0x040600
                QStandardItemModel::endResetModel(); 
        #else
-               reset();
+               QStandardItemModel::reset();
        #endif
        }
 };
@@ -149,6 +148,7 @@ void TocModel::updateItem(DocIterator const & dit)
        QModelIndex index = modelIndex(dit);
        TocItem const & toc_item = tocItem(index);
        model_->setData(index, toqstr(toc_item.str()), Qt::DisplayRole);
+       model_->setData(index, toqstr(toc_item.tooltip()), Qt::ToolTipRole);
 }
 
 
@@ -163,6 +163,7 @@ void TocModel::reset(Toc const & toc)
        }
 
        model_->blockSignals(true);
+       model_->beginResetModel();
        model_->insertColumns(0, 1);
        maxdepth_ = 0;
        mindepth_ = INT_MAX;
@@ -177,6 +178,7 @@ void TocModel::reset(Toc const & toc)
                QModelIndex top_level_item = model_->index(current_row, 0);
                model_->setData(top_level_item, toqstr(item.str()), Qt::DisplayRole);
                model_->setData(top_level_item, index, Qt::UserRole);
+               model_->setData(top_level_item, toqstr(item.tooltip()), Qt::ToolTipRole);
 
                LYXERR(Debug::GUI, "Toc: at depth " << item.depth()
                        << ", added item " << item.str());
@@ -190,7 +192,7 @@ void TocModel::reset(Toc const & toc)
        if (is_sorted_)
                sorted_model_->sort(0);
        model_->blockSignals(false);
-       reset();
+       model_->endResetModel();
 //     emit headerDataChanged();
 }
 
@@ -218,6 +220,7 @@ void TocModel::populate(unsigned int & index, QModelIndex const & parent)
                child_item = model_->index(current_row, 0, parent);
                model_->setData(child_item, toqstr(item.str()), Qt::DisplayRole);
                model_->setData(child_item, index, Qt::UserRole);
+               model_->setData(child_item, toqstr(item.tooltip()), Qt::ToolTipRole);
                populate(index, child_item);
                if (index >= end)
                        break;
@@ -243,7 +246,7 @@ TocModels::TocModels()
        : bv_(0)
 {
        names_ = new TocTypeModel(this);
-       names_sorted_ = new QSortFilterProxyModel(this);
+       names_sorted_ = new TocModelSortProxyModel(this);
        names_sorted_->setSourceModel(names_);
 #if QT_VERSION >= 0x040300
        names_sorted_->setSortLocaleAware(true);