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()
61 void QTocDialog::selectionChanged(const QModelIndex & current,
62 const QModelIndex & previous)
65 << "selectionChanged index " << current.row() << ", " << current.column()
72 void QTocDialog::on_tocTV_clicked(const QModelIndex & index )
75 << "on_tocTV_clicked index " << index.row() << ", " << index.column()
82 void QTocDialog::on_closePB_clicked()
88 void QTocDialog::on_updatePB_clicked()
95 void QTocDialog::on_depthSL_valueChanged(int depth)
104 tocTv->setExpanded();
105 if (iter->depth > depth_)
106 tocTV->collapseItem(topLevelItem);
107 else if (iter->depth <= depth_)
108 tocTV->expandItem(topLevelItem);
113 void QTocDialog::on_typeCO_activated(int value)
115 form_->setTocModel(value);
120 void QTocDialog::on_moveUpPB_clicked()
126 void QTocDialog::on_moveDownPB_clicked()
132 void QTocDialog::on_moveInPB_clicked()
138 void QTocDialog::on_moveOutPB_clicked()
144 void QTocDialog::move(toc::OutlineOp const operation)
146 enableButtons(false);
147 QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
148 form_->move(operation, index);
153 void QTocDialog::select(QModelIndex const & index)
155 tocTV->setModel(form_->tocModel());
157 if (index.isValid()) {
158 tocTV->scrollTo(index);
159 tocTV->selectionModel()->select(index, QItemSelectionModel::Select);
163 void QTocDialog::enableButtons(bool enable)
165 updatePB->setEnabled(enable);
167 if (!form_->canOutline())
170 moveUpPB->setEnabled(enable);
171 moveDownPB->setEnabled(enable);
172 moveInPB->setEnabled(enable);
173 moveOutPB->setEnabled(enable);
177 void QTocDialog::update()
179 typeCO->setModel(form_->typeModel());
180 tocTV->setModel(form_->tocModel());
181 tocTV->showColumn(0);
182 // hide the pointless QHeader for now
183 // in the future, new columns may appear
184 // like labels, bookmarks, etc...
185 // tocTV->header()->hide();
186 tocTV->header()->setVisible(true);
189 connect(tocTV->selectionModel(),
190 SIGNAL(currentChanged(const QModelIndex &,
191 const QModelIndex &)),
192 this, SLOT(selectionChanged(const QModelIndex &,
193 const QModelIndex &)));
196 << "form_->tocModel()->rowCount " << form_->tocModel()->rowCount()
197 << "\nform_->tocModel()->columnCount " << form_->tocModel()->columnCount()
199 // setTitle(form_->guiname())
203 void QTocDialog::apply()
205 // Nothing to do here... for now.
206 // Ideas welcome... (Abdel, 17042006)
210 void QTocDialog::hide()
216 void QTocDialog::show()
224 bool QTocDialog::isVisible() const
226 return QDialog::isVisible();
230 } // namespace frontend