mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-14 12:25:11 +00:00
TocWidget: Small reorg in order to fix http://bugzilla.lyx.org/show_bug.cgi?id=4940
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25230 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
ed12154445
commit
158863fd3b
@ -83,6 +83,7 @@ void GuiToc::dispatchParams()
|
|||||||
|
|
||||||
void GuiToc::enableView(bool enable)
|
void GuiToc::enableView(bool enable)
|
||||||
{
|
{
|
||||||
|
widget_->init(QString());
|
||||||
widget_->setEnabled(enable);
|
widget_->setEnabled(enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -676,7 +676,7 @@ void GuiView::on_lastWorkAreaRemoved()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
structureChanged();
|
d.toc_models_.reset(0);
|
||||||
// The document settings needs to be reinitialised.
|
// The document settings needs to be reinitialised.
|
||||||
updateDialog("document", "");
|
updateDialog("document", "");
|
||||||
updateDialogs();
|
updateDialogs();
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "LyXFunc.h"
|
#include "LyXFunc.h"
|
||||||
|
|
||||||
#include "support/debug.h"
|
#include "support/debug.h"
|
||||||
|
#include "support/lassert.h"
|
||||||
|
|
||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
@ -132,9 +133,9 @@ void TocWidget::setTreeDepth(int depth)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TocWidget::on_typeCO_currentIndexChanged(int value)
|
void TocWidget::on_typeCO_currentIndexChanged(int)
|
||||||
{
|
{
|
||||||
setTocModel(value);
|
updateView();
|
||||||
gui_view_.setFocus();
|
gui_view_.setFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,6 +210,7 @@ void TocWidget::enableControls(bool enable)
|
|||||||
void TocWidget::updateView()
|
void TocWidget::updateView()
|
||||||
{
|
{
|
||||||
LYXERR(Debug::GUI, "In TocWidget::updateView()");
|
LYXERR(Debug::GUI, "In TocWidget::updateView()");
|
||||||
|
setTocModel();
|
||||||
setTreeDepth(depth_);
|
setTreeDepth(depth_);
|
||||||
select(gui_view_.tocModels().currentIndex(typeCO->currentIndex()));
|
select(gui_view_.tocModels().currentIndex(typeCO->currentIndex()));
|
||||||
}
|
}
|
||||||
@ -219,12 +221,14 @@ void TocWidget::init(QString const & str)
|
|||||||
QStringList const & type_names = gui_view_.tocModels().typeNames();
|
QStringList const & type_names = gui_view_.tocModels().typeNames();
|
||||||
if (type_names.isEmpty()) {
|
if (type_names.isEmpty()) {
|
||||||
enableControls(false);
|
enableControls(false);
|
||||||
typeCO->clear();
|
typeCO->setEnabled(false);
|
||||||
tocTV->setModel(new QStandardItemModel);
|
tocTV->setModel(new QStandardItemModel);
|
||||||
tocTV->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
tocTV->setEnabled(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typeCO->setEnabled(true);
|
||||||
|
tocTV->setEnabled(true);
|
||||||
int selected_type = gui_view_.tocModels().decodeType(str);
|
int selected_type = gui_view_.tocModels().decodeType(str);
|
||||||
|
|
||||||
QString const current_text = typeCO->currentText();
|
QString const current_text = typeCO->currentText();
|
||||||
@ -244,36 +248,32 @@ void TocWidget::init(QString const & str)
|
|||||||
|
|
||||||
typeCO->blockSignals(false);
|
typeCO->blockSignals(false);
|
||||||
|
|
||||||
setTocModel(typeCO->currentIndex());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void TocWidget::setTocModel(size_t type)
|
|
||||||
{
|
|
||||||
bool controls_enabled = false;
|
|
||||||
QStandardItemModel * toc_model = gui_view_.tocModels().model(type);
|
|
||||||
if (toc_model) {
|
|
||||||
controls_enabled = toc_model->rowCount() > 0;
|
|
||||||
tocTV->setModel(toc_model);
|
|
||||||
tocTV->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
|
||||||
LYXERR(Debug::GUI, "tocModel()->rowCount "
|
|
||||||
<< toc_model->rowCount()
|
|
||||||
<< "\nform_->tocModel()->columnCount "
|
|
||||||
<< toc_model->columnCount());
|
|
||||||
}
|
|
||||||
|
|
||||||
enableControls(controls_enabled);
|
|
||||||
|
|
||||||
if (controls_enabled) {
|
|
||||||
depthSL->setMaximum(gui_view_.tocModels().depth(type));
|
|
||||||
depthSL->setValue(depth_);
|
|
||||||
}
|
|
||||||
|
|
||||||
// setTocModel produce QTreeView reset and setting depth again
|
// setTocModel produce QTreeView reset and setting depth again
|
||||||
// is needed. That must be done after all Qt updates are processed.
|
// is needed. That must be done after all Qt updates are processed.
|
||||||
QTimer::singleShot(0, this, SLOT(updateView()));
|
QTimer::singleShot(0, this, SLOT(updateView()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TocWidget::setTocModel()
|
||||||
|
{
|
||||||
|
int const toc_type = typeCO->currentIndex();
|
||||||
|
QStandardItemModel * toc_model = gui_view_.tocModels().model(toc_type);
|
||||||
|
LASSERT(toc_model, return);
|
||||||
|
|
||||||
|
if (tocTV->model() != toc_model) {
|
||||||
|
tocTV->setModel(toc_model);
|
||||||
|
tocTV->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool controls_enabled = toc_model->rowCount() > 0;;
|
||||||
|
enableControls(controls_enabled);
|
||||||
|
|
||||||
|
if (controls_enabled) {
|
||||||
|
depthSL->setMaximum(gui_view_.tocModels().depth(toc_type));
|
||||||
|
depthSL->setValue(depth_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace frontend
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ public Q_SLOTS:
|
|||||||
|
|
||||||
protected Q_SLOTS:
|
protected Q_SLOTS:
|
||||||
///
|
///
|
||||||
void setTocModel(size_t type);
|
void setTocModel();
|
||||||
///
|
///
|
||||||
void select(QModelIndex const & index);
|
void select(QModelIndex const & index);
|
||||||
///
|
///
|
||||||
|
Loading…
x
Reference in New Issue
Block a user