3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
7 * \author Abdelrazak Younes
9 * Full author contact details are available in file CREDITS.
14 #include "QTocDialog.h"
17 #include "qt_helpers.h"
18 #include "controllers/ControlToc.h"
22 #include <QTreeWidgetItem>
23 #include <QPushButton>
24 #include <QCloseEvent>
25 #include <QHeaderView>
41 QTocDialog::QTocDialog(Dialog & dialog, QToc * form)
42 : Dialog::View(dialog, _("Toc")), form_(form), depth_(2)
48 connect(tocTV->selectionModel(),
49 SIGNAL(currentChanged(const QModelIndex &,
50 const QModelIndex &)),
51 this, SLOT(selectionChanged(const QModelIndex &,
52 const QModelIndex &)));
56 QTocDialog::~QTocDialog()
62 void QTocDialog::selectionChanged(const QModelIndex & current,
63 const QModelIndex & /*previous*/)
66 << "selectionChanged index " << current.row()
67 << ", " << current.column()
74 void QTocDialog::on_closePB_clicked()
80 void QTocDialog::on_updatePB_clicked()
86 void QTocDialog::on_depthSL_valueChanged(int depth)
96 if (iter->depth() > depth_)
97 tocTV->collapseItem(topLevelItem);
98 else if (iter->depth() <= depth_)
99 tocTV->expandItem(topLevelItem);
104 void QTocDialog::on_typeCO_activated(int value)
106 form_->setTocModel(value);
111 void QTocDialog::on_moveUpPB_clicked()
113 enableButtons(false);
114 QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
121 void QTocDialog::on_moveDownPB_clicked()
123 enableButtons(false);
124 QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
126 form_->outlineDown();
131 void QTocDialog::on_moveInPB_clicked()
133 enableButtons(false);
134 QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
141 void QTocDialog::on_moveOutPB_clicked()
143 enableButtons(false);
144 QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
151 void QTocDialog::select(QModelIndex const & index)
153 // tocTV->setModel(form_->tocModel());
155 if (!index.isValid()) {
157 << "QTocDialog::select(): QModelIndex is invalid!" << endl;
161 tocTV->scrollTo(index);
162 tocTV->selectionModel()->select(index, QItemSelectionModel::Select);
166 void QTocDialog::enableButtons(bool enable)
168 updatePB->setEnabled(enable);
170 if (!form_->canOutline())
173 moveUpPB->setEnabled(enable);
174 moveDownPB->setEnabled(enable);
175 moveInPB->setEnabled(enable);
176 moveOutPB->setEnabled(enable);
180 void QTocDialog::update()
187 void QTocDialog::updateGui()
189 QStringListModel * type_model = form_->typeModel();
190 if (type_model->stringList().isEmpty())
193 typeCO->setModel(type_model);
194 tocTV->setModel(new QStandardItemModel);
198 typeCO->setModel(type_model);
200 if (form_->tocModel())
201 tocTV->setModel(form_->tocModel());
202 tocTV->showColumn(0);
203 // hide the pointless QHeader for now
204 // in the future, new columns may appear
205 // like labels, bookmarks, etc...
206 // tocTV->header()->hide();
207 tocTV->header()->setVisible(true);
210 connect(tocTV->selectionModel(),
211 SIGNAL(currentChanged(const QModelIndex &,
212 const QModelIndex &)),
213 this, SLOT(selectionChanged(const QModelIndex &,
214 const QModelIndex &)));
216 select(form_->getCurrentIndex());
219 << "form_->tocModel()->rowCount " << form_->tocModel()->rowCount()
220 << "\nform_->tocModel()->columnCount " << form_->tocModel()->columnCount()
222 // setTitle(form_->guiname())
226 void QTocDialog::apply()
228 // Nothing to do here... for now.
229 // Ideas welcome... (Abdel, 17042006)
233 void QTocDialog::hide()
239 void QTocDialog::show()
246 bool QTocDialog::isVisible() const
248 return QDialog::isVisible();
252 } // namespace frontend
255 #include "QTocDialog_moc.cpp"