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);
107 tocTV->setModel(form_->tocModel());
112 void QTocDialog::on_moveUpPB_clicked()
114 enableButtons(false);
115 QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
122 void QTocDialog::on_moveDownPB_clicked()
124 enableButtons(false);
125 QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
127 form_->outlineDown();
132 void QTocDialog::on_moveInPB_clicked()
134 enableButtons(false);
135 QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
142 void QTocDialog::on_moveOutPB_clicked()
144 enableButtons(false);
145 QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
152 void QTocDialog::select(QModelIndex const & index)
154 // tocTV->setModel(form_->tocModel());
156 if (!index.isValid()) {
158 << "QTocDialog::select(): QModelIndex is invalid!" << endl;
162 tocTV->scrollTo(index);
163 tocTV->selectionModel()->select(index, QItemSelectionModel::Select);
167 void QTocDialog::enableButtons(bool enable)
169 updatePB->setEnabled(enable);
171 if (!form_->canOutline())
174 moveUpPB->setEnabled(enable);
175 moveDownPB->setEnabled(enable);
176 moveInPB->setEnabled(enable);
177 moveOutPB->setEnabled(enable);
181 void QTocDialog::update()
188 void QTocDialog::updateGui()
190 QStringListModel * type_model = form_->typeModel();
191 if (type_model->stringList().isEmpty())
194 typeCO->setModel(type_model);
195 tocTV->setModel(new QStandardItemModel);
199 typeCO->setModel(type_model);
201 if (form_->tocModel())
202 tocTV->setModel(form_->tocModel());
203 tocTV->showColumn(0);
204 // hide the pointless QHeader for now
205 // in the future, new columns may appear
206 // like labels, bookmarks, etc...
207 // tocTV->header()->hide();
208 tocTV->header()->setVisible(false);
211 connect(tocTV->selectionModel(),
212 SIGNAL(currentChanged(const QModelIndex &,
213 const QModelIndex &)),
214 this, SLOT(selectionChanged(const QModelIndex &,
215 const QModelIndex &)));
217 select(form_->getCurrentIndex());
220 << "form_->tocModel()->rowCount " << form_->tocModel()->rowCount()
221 << "\nform_->tocModel()->columnCount " << form_->tocModel()->columnCount()
223 // setTitle(form_->guiname())
227 void QTocDialog::apply()
229 // Nothing to do here... for now.
230 // Ideas welcome... (Abdel, 17042006)
234 void QTocDialog::hide()
240 void QTocDialog::show()
247 bool QTocDialog::isVisible() const
249 return QDialog::isVisible();
253 } // namespace frontend
256 #include "QTocDialog_moc.cpp"