mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-29 13:04:58 +00:00
* ControlToc:
- initialiseParams(): overload ControlCommand::initialiseParams() so that we can update the model at this point (QToc is the controller _and_ the model). - update(): new - updateBackend(): new protected method to update the TocBackend (called for the "Update" button). * QToc: - is now a QObject - modelReset: new Qt signal to indicate a model reset to associated dialog(s). - QToc(): avoid the duplicate update() call that will be done in the show command anyway. * Dialogs.C - use new TocWidget in a DockView. * TocWidget.[Ch]: renamed from QTocDialog. This striped down widget is only a widget that connects to the 'QToc' model/controller. * DockView.h: new template class that encapsulates a given Widget inside a DockWidget and presents a Dialog::View interface. * QTocUi.ui: - now is a simple Widget. - rearrange the buttons a bit - get rid of the unneeded close button. - modify the shortcut to "Promote" to 'r' because of a clash with "Alt-p" number (we really need real, always valid, shortcuts for all outline action!) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17416 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
d1d4e6d48f
commit
cb81965b1e
@ -726,7 +726,8 @@ src_frontends_qt4_moc_files = Split('''
|
||||
QTexinfoDialog.C
|
||||
QThesaurusDialog.C
|
||||
TocModel.C
|
||||
QTocDialog.C
|
||||
TocWidget.C
|
||||
QToc.C
|
||||
GuiView.C
|
||||
QURLDialog.C
|
||||
QVSpaceDialog.C
|
||||
@ -743,6 +744,7 @@ src_frontends_qt4_header_files = Split('''
|
||||
BiblioModuleBase.h
|
||||
BulletsModule.h
|
||||
ColorCache.h
|
||||
DockView.h
|
||||
FileDialog_private.h
|
||||
GuiApplication.h
|
||||
GuiClipboard.h
|
||||
@ -831,7 +833,6 @@ src_frontends_qt4_header_files = Split('''
|
||||
QThesaurus.h
|
||||
QThesaurusDialog.h
|
||||
QToc.h
|
||||
QTocDialog.h
|
||||
QURLDialog.h
|
||||
QVSpace.h
|
||||
QVSpaceDialog.h
|
||||
@ -841,6 +842,7 @@ src_frontends_qt4_header_files = Split('''
|
||||
QWrapDialog.h
|
||||
Qt2BC.h
|
||||
TocModel.h
|
||||
TocWidget.h
|
||||
UrlView.h
|
||||
checkedwidgets.h
|
||||
emptytable.h
|
||||
@ -953,7 +955,6 @@ src_frontends_qt4_files = Split('''
|
||||
QThesaurus.C
|
||||
QThesaurusDialog.C
|
||||
QToc.C
|
||||
QTocDialog.C
|
||||
QURLDialog.C
|
||||
QVSpace.C
|
||||
QVSpaceDialog.C
|
||||
@ -963,6 +964,7 @@ src_frontends_qt4_files = Split('''
|
||||
QWrapDialog.C
|
||||
Qt2BC.C
|
||||
TocModel.C
|
||||
TocWidget.C
|
||||
UrlView.C
|
||||
checkedwidgets.C
|
||||
emptytable.C
|
||||
|
@ -37,9 +37,16 @@ namespace frontend {
|
||||
|
||||
ControlToc::ControlToc(Dialog & d)
|
||||
: ControlCommand(d, "tableofcontents", "toc")
|
||||
{}
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool ControlToc::initialiseParams(string const & data)
|
||||
{
|
||||
update();
|
||||
return ControlCommand::initialiseParams(data);
|
||||
}
|
||||
|
||||
void ControlToc::goTo(TocItem const & item)
|
||||
{
|
||||
string const tmp = convert<string>(item.id());
|
||||
@ -83,6 +90,12 @@ vector<string> const & ControlToc::getTypes() const
|
||||
}
|
||||
|
||||
|
||||
void ControlToc::updateBackend()
|
||||
{
|
||||
kernel().buffer().tocBackend().update();
|
||||
}
|
||||
|
||||
|
||||
TocIterator const ControlToc::getCurrentTocItem(
|
||||
string const & type) const
|
||||
{
|
||||
|
@ -27,6 +27,11 @@ class ControlToc : public ControlCommand {
|
||||
public:
|
||||
///
|
||||
ControlToc(Dialog &);
|
||||
///
|
||||
virtual ~ControlToc() {}
|
||||
|
||||
/// \c ControlCommand inherited method.
|
||||
bool initialiseParams(std::string const & data);
|
||||
|
||||
/// Goto this paragraph id
|
||||
void goTo(TocItem const &);
|
||||
@ -51,9 +56,14 @@ public:
|
||||
void outlineIn();
|
||||
///
|
||||
void outlineOut();
|
||||
|
||||
/// Test if outlining operation is possible
|
||||
bool canOutline(std::string const & type);
|
||||
///
|
||||
void updateBackend();
|
||||
|
||||
public:
|
||||
/// Update the model data if needed.
|
||||
virtual void update() = 0;
|
||||
};
|
||||
|
||||
} // namespace frontend
|
||||
|
@ -44,6 +44,8 @@
|
||||
|
||||
#include "Qt2BC.h"
|
||||
#include "ButtonController.h"
|
||||
#include "DockView.h"
|
||||
#include "GuiView.h"
|
||||
#include "QAbout.h"
|
||||
#include "QBibitem.h"
|
||||
#include "QBibtex.h"
|
||||
@ -78,7 +80,7 @@
|
||||
#include "QTabularCreate.h"
|
||||
#include "QTexinfo.h"
|
||||
#include "QToc.h"
|
||||
#include "QTocDialog.h"
|
||||
#include "TocWidget.h"
|
||||
#include "UrlView.h"
|
||||
#include "QVSpace.h"
|
||||
#include "QWrap.h"
|
||||
@ -92,7 +94,6 @@
|
||||
|
||||
#include <boost/assert.hpp>
|
||||
|
||||
|
||||
using std::string;
|
||||
|
||||
using namespace lyx::frontend;
|
||||
@ -131,6 +132,7 @@ private:
|
||||
|
||||
namespace lyx {
|
||||
|
||||
|
||||
bool Dialogs::isValidName(string const & name) const
|
||||
{
|
||||
return std::find_if(dialognames, end_dialognames,
|
||||
@ -300,7 +302,9 @@ Dialogs::DialogPtr Dialogs::build(string const & name)
|
||||
} else if (name == "toc") {
|
||||
QToc * qtoc = new QToc(*dialog);
|
||||
dialog->setController(qtoc);
|
||||
dialog->setView(new QTocDialog(*dialog, qtoc));
|
||||
GuiView & gui_view = static_cast<GuiView &>(lyxview_);
|
||||
dialog->setView(new DockView<QToc, TocWidget>(
|
||||
*dialog, qtoc, &gui_view, _("Toc")));
|
||||
dialog->bc().bp(new OkCancelPolicy);
|
||||
} else if (name == "url") {
|
||||
dialog->setController(new ControlCommand(*dialog, name, name));
|
||||
|
67
src/frontends/qt4/DockView.h
Normal file
67
src/frontends/qt4/DockView.h
Normal file
@ -0,0 +1,67 @@
|
||||
// -*- C++ -*-
|
||||
/**
|
||||
* \file DockView.h
|
||||
* This file is part of LyX, the document processor.
|
||||
* Licence details can be found in the file COPYING.
|
||||
*
|
||||
* \author Abdelrazak Younes
|
||||
*
|
||||
* Full author contact details are available in file CREDITS.
|
||||
*/
|
||||
|
||||
#ifndef DOCK_VIEW_H
|
||||
#define DOCK_VIEW_H
|
||||
|
||||
#include "controllers/dialog.h"
|
||||
|
||||
#include <boost/scoped_ptr.hpp>
|
||||
|
||||
#include <QDockWidget>
|
||||
#include <QMainWindow>
|
||||
|
||||
namespace lyx {
|
||||
namespace frontend {
|
||||
|
||||
/// Dock Widget container for LyX dialogs.
|
||||
/// This template class that encapsulates a given Widget inside a
|
||||
/// DockWidget and presents a Dialog::View interface
|
||||
template<class Controller, class Widget>
|
||||
class DockView : public QDockWidget, public Dialog::View
|
||||
{
|
||||
public:
|
||||
DockView(
|
||||
Dialog & dialog, ///< The (one) parent Dialog class.
|
||||
Controller * form, ///< Associated model/controller
|
||||
QMainWindow * parent, ///< the main window where to dock.
|
||||
docstring const & title ///< Window title (shown in the top title bar).
|
||||
)
|
||||
: QDockWidget(toqstr(title), parent), Dialog::View(dialog, title)
|
||||
{
|
||||
widget_.reset(new Widget(form));
|
||||
setWidget(widget_.get());
|
||||
parent->addDockWidget(Qt::LeftDockWidgetArea, this);
|
||||
}
|
||||
|
||||
/// Dialog::View inherited methods
|
||||
//@{
|
||||
void apply() {}
|
||||
void hide() { QDockWidget::hide(); }
|
||||
void show() { QDockWidget::show(); }
|
||||
bool isVisible() const
|
||||
{ return QDockWidget::isVisible(); }
|
||||
void redraw() {}
|
||||
void update()
|
||||
{
|
||||
widget_->update();
|
||||
QDockWidget::update();
|
||||
}
|
||||
//@}
|
||||
private:
|
||||
/// The encapsulated widget.
|
||||
boost::scoped_ptr<Widget> widget_;
|
||||
};
|
||||
|
||||
} // frontend
|
||||
} // lyx
|
||||
|
||||
#endif // TOC_WIDGET_H
|
@ -32,6 +32,7 @@ AM_CPPFLAGS += \
|
||||
libqt4_la_SOURCES = \
|
||||
Alert_pimpl.C \
|
||||
ColorCache.h ColorCache.C \
|
||||
DockView.h \
|
||||
Dialogs.C \
|
||||
FileDialog.C \
|
||||
GuiClipboard.h GuiClipboard.C \
|
||||
@ -78,7 +79,6 @@ libqt4_la_SOURCES = \
|
||||
QTabularCreate.C QTabularCreate.h \
|
||||
QTexinfo.C QTexinfo.h \
|
||||
QThesaurus.C QThesaurus.h \
|
||||
QToc.C QToc.h \
|
||||
QVSpace.C QVSpace.h \
|
||||
QWrap.C QWrap.h \
|
||||
Qt2BC.C Qt2BC.h \
|
||||
|
@ -131,7 +131,8 @@ MOCFILES = \
|
||||
QTexinfoDialog.C QTexinfoDialog.h \
|
||||
QThesaurusDialog.C QThesaurusDialog.h \
|
||||
TocModel.C TocModel.h \
|
||||
QTocDialog.C QTocDialog.h \
|
||||
TocWidget.C TocWidget.h \
|
||||
QToc.C QToc.h \
|
||||
QURLDialog.C QURLDialog.h \
|
||||
QVSpaceDialog.C QVSpaceDialog.h \
|
||||
QWrapDialog.C QWrapDialog.h \
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include <config.h>
|
||||
|
||||
#include "QToc.h"
|
||||
|
||||
#include "TocModel.h"
|
||||
#include "Qt2BC.h"
|
||||
#include "qt_helpers.h"
|
||||
@ -35,7 +36,6 @@ namespace frontend {
|
||||
QToc::QToc(Dialog & parent)
|
||||
: ControlToc(parent)
|
||||
{
|
||||
update();
|
||||
}
|
||||
|
||||
|
||||
@ -130,6 +130,7 @@ void QToc::update()
|
||||
{
|
||||
updateType();
|
||||
updateToc();
|
||||
modelReset();
|
||||
}
|
||||
|
||||
|
||||
@ -184,3 +185,5 @@ void QToc::updateToc()
|
||||
|
||||
} // namespace frontend
|
||||
} // namespace lyx
|
||||
|
||||
#include "QToc_moc.cpp"
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
#include "ControlToc.h"
|
||||
|
||||
#include <QObject>
|
||||
#include <QStandardItemModel>
|
||||
#include <QStringListModel>
|
||||
|
||||
@ -25,8 +26,9 @@ namespace frontend {
|
||||
class ControlToc;
|
||||
class TocModel;
|
||||
|
||||
class QToc : public ControlToc
|
||||
class QToc : public QObject, public ControlToc
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
QToc(Dialog &);
|
||||
@ -54,14 +56,17 @@ public:
|
||||
///
|
||||
int getTocDepth();
|
||||
|
||||
Q_SIGNALS:
|
||||
/// Signal that the internal toc_models_ has been reset.
|
||||
void modelReset();
|
||||
|
||||
private:
|
||||
|
||||
///
|
||||
std::vector<TocModel *> toc_models_;
|
||||
|
||||
///
|
||||
QStringListModel type_model_;
|
||||
|
||||
///
|
||||
int type_;
|
||||
int outline_type_;
|
||||
};
|
||||
|
||||
} // namespace frontend
|
||||
|
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* \file QTocDialog.C
|
||||
* \file TocWidget.C
|
||||
* This file is part of LyX, the document processor.
|
||||
* Licence details can be found in the file COPYING.
|
||||
*
|
||||
@ -11,18 +11,16 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "QTocDialog.h"
|
||||
#include "TocWidget.h"
|
||||
|
||||
#include "QToc.h"
|
||||
#include "Qt2BC.h"
|
||||
#include "qt_helpers.h"
|
||||
#include "controllers/ControlToc.h"
|
||||
|
||||
#include "debug.h"
|
||||
|
||||
#include <QTreeWidgetItem>
|
||||
#include <QPushButton>
|
||||
#include <QCloseEvent>
|
||||
#include <QHeaderView>
|
||||
#include <QPushButton>
|
||||
#include <QTreeWidgetItem>
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
@ -38,28 +36,29 @@ using std::string;
|
||||
namespace lyx {
|
||||
namespace frontend {
|
||||
|
||||
QTocDialog::QTocDialog(Dialog & dialog, QToc * form)
|
||||
: Dialog::View(dialog, _("Toc")), form_(form), depth_(2)
|
||||
|
||||
TocWidget::TocWidget(QToc * form, QMainWindow * parent)
|
||||
: QWidget(parent), form_(form), depth_(0)
|
||||
{
|
||||
setupUi(this);
|
||||
|
||||
updateGui();
|
||||
connect(form, SIGNAL(modelReset()),
|
||||
SLOT(updateGui()));
|
||||
|
||||
connect(tocTV->selectionModel(),
|
||||
SIGNAL(currentChanged(const QModelIndex &,
|
||||
const QModelIndex &)),
|
||||
this, SLOT(selectionChanged(const QModelIndex &,
|
||||
const QModelIndex &)));
|
||||
// avoid flickering
|
||||
tocTV->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
||||
|
||||
tocTV->showColumn(0);
|
||||
|
||||
// hide the pointless QHeader for now
|
||||
// in the future, new columns may appear
|
||||
// like labels, bookmarks, etc...
|
||||
// tocTV->header()->hide();
|
||||
tocTV->header()->setVisible(false);
|
||||
}
|
||||
|
||||
|
||||
QTocDialog::~QTocDialog()
|
||||
{
|
||||
accept();
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::selectionChanged(const QModelIndex & current,
|
||||
void TocWidget::selectionChanged(const QModelIndex & current,
|
||||
const QModelIndex & /*previous*/)
|
||||
{
|
||||
lyxerr[Debug::GUI]
|
||||
@ -71,14 +70,10 @@ void QTocDialog::selectionChanged(const QModelIndex & current,
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::on_closePB_clicked()
|
||||
{
|
||||
accept();
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::on_updatePB_clicked()
|
||||
void TocWidget::on_updatePB_clicked()
|
||||
{
|
||||
form_->updateBackend();
|
||||
form_->update();
|
||||
update();
|
||||
}
|
||||
|
||||
@ -88,14 +83,14 @@ opinion, somebody should derive a new qvariant class for tocModelItem
|
||||
which saves the string data and depth information. that will save the
|
||||
depth calculation.
|
||||
*/
|
||||
int QTocDialog::getIndexDepth(QModelIndex const & index, int depth)
|
||||
int TocWidget::getIndexDepth(QModelIndex const & index, int depth)
|
||||
{
|
||||
++depth;
|
||||
return (index.parent() == QModelIndex())? depth : getIndexDepth(index.parent(),depth);
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::on_depthSL_valueChanged(int depth)
|
||||
void TocWidget::on_depthSL_valueChanged(int depth)
|
||||
{
|
||||
if (depth == depth_)
|
||||
return;
|
||||
@ -103,9 +98,8 @@ void QTocDialog::on_depthSL_valueChanged(int depth)
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::setTreeDepth(int depth)
|
||||
void TocWidget::setTreeDepth(int depth)
|
||||
{
|
||||
if(depth!=-1)
|
||||
depth_ = depth;
|
||||
|
||||
// expanding and then collapsing is probably better,
|
||||
@ -127,72 +121,81 @@ void QTocDialog::setTreeDepth(int depth)
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::on_typeCO_activated(int value)
|
||||
void TocWidget::on_typeCO_activated(int value)
|
||||
{
|
||||
form_->setTocModel(value);
|
||||
tocTV->setModel(form_->tocModel());
|
||||
reconnectSelectionModel();
|
||||
enableButtons();
|
||||
update();
|
||||
updateGui();
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::on_moveUpPB_clicked()
|
||||
void TocWidget::on_moveUpPB_clicked()
|
||||
{
|
||||
enableButtons(false);
|
||||
QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
|
||||
form_->goTo(index);
|
||||
QModelIndexList const & list = tocTV->selectionModel()->selectedIndexes();
|
||||
if (!list.isEmpty()) {
|
||||
enableButtons(false);
|
||||
form_->goTo(list[0]);
|
||||
form_->outlineUp();
|
||||
update();
|
||||
enableButtons(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::on_moveDownPB_clicked()
|
||||
void TocWidget::on_moveDownPB_clicked()
|
||||
{
|
||||
enableButtons(false);
|
||||
QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
|
||||
form_->goTo(index);
|
||||
QModelIndexList const & list = tocTV->selectionModel()->selectedIndexes();
|
||||
if (!list.isEmpty()) {
|
||||
enableButtons(false);
|
||||
form_->goTo(list[0]);
|
||||
form_->outlineDown();
|
||||
update();
|
||||
enableButtons(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::on_moveInPB_clicked()
|
||||
void TocWidget::on_moveInPB_clicked()
|
||||
{
|
||||
enableButtons(false);
|
||||
QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
|
||||
form_->goTo(index);
|
||||
QModelIndexList const & list = tocTV->selectionModel()->selectedIndexes();
|
||||
if (!list.isEmpty()) {
|
||||
enableButtons(false);
|
||||
form_->goTo(list[0]);
|
||||
form_->outlineIn();
|
||||
update();
|
||||
enableButtons(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::on_moveOutPB_clicked()
|
||||
void TocWidget::on_moveOutPB_clicked()
|
||||
{
|
||||
QModelIndexList const & list = tocTV->selectionModel()->selectedIndexes();
|
||||
if (!list.isEmpty()) {
|
||||
enableButtons(false);
|
||||
QModelIndex index = tocTV->selectionModel()->selectedIndexes()[0];
|
||||
form_->goTo(index);
|
||||
form_->goTo(list[0]);
|
||||
form_->outlineOut();
|
||||
update();
|
||||
enableButtons(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::select(QModelIndex const & index)
|
||||
void TocWidget::select(QModelIndex const & index)
|
||||
{
|
||||
// tocTV->setModel(form_->tocModel());
|
||||
|
||||
if (!index.isValid()) {
|
||||
lyxerr[Debug::GUI]
|
||||
<< "QTocDialog::select(): QModelIndex is invalid!" << endl;
|
||||
<< "TocWidget::select(): QModelIndex is invalid!" << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
tocTV->selectionModel()->blockSignals(true);
|
||||
tocTV->scrollTo(index);
|
||||
tocTV->selectionModel()->select(index, QItemSelectionModel::Select);
|
||||
tocTV->selectionModel()->setCurrentIndex(index,
|
||||
QItemSelectionModel::ClearAndSelect);
|
||||
tocTV->selectionModel()->blockSignals(false);
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::enableButtons(bool enable)
|
||||
void TocWidget::enableButtons(bool enable)
|
||||
{
|
||||
updatePB->setEnabled(enable);
|
||||
|
||||
@ -206,18 +209,18 @@ void QTocDialog::enableButtons(bool enable)
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::update()
|
||||
void TocWidget::update()
|
||||
{
|
||||
form_->updateToc();
|
||||
updateGui();
|
||||
select(form_->getCurrentIndex());
|
||||
QWidget::update();
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::updateGui()
|
||||
void TocWidget::updateGui()
|
||||
{
|
||||
QStringListModel * type_model = form_->typeModel();
|
||||
if (type_model->stringList().isEmpty()) {
|
||||
enableButtons();
|
||||
enableButtons(false);
|
||||
typeCO->setModel(type_model);
|
||||
tocTV->setModel(new QStandardItemModel);
|
||||
tocTV->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
@ -228,35 +231,29 @@ void QTocDialog::updateGui()
|
||||
typeCO->setModel(type_model);
|
||||
typeCO->setCurrentIndex(form_->getType());
|
||||
|
||||
bool buttons_enabled = false;
|
||||
if (form_->tocModel()) {
|
||||
buttons_enabled = form_->tocModel()->rowCount() > 0;
|
||||
tocTV->setModel(form_->tocModel());
|
||||
tocTV->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
}
|
||||
// avoid flickering
|
||||
tocTV-> setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
||||
tocTV->showColumn(0);
|
||||
// hide the pointless QHeader for now
|
||||
// in the future, new columns may appear
|
||||
// like labels, bookmarks, etc...
|
||||
// tocTV->header()->hide();
|
||||
tocTV->header()->setVisible(false);
|
||||
enableButtons();
|
||||
|
||||
enableButtons(buttons_enabled);
|
||||
|
||||
reconnectSelectionModel();
|
||||
depthSL->setEnabled(true);
|
||||
depthSL->setMaximum(form_->getTocDepth());
|
||||
setTreeDepth();
|
||||
depthSL->setValue(depth_);
|
||||
select(form_->getCurrentIndex());
|
||||
|
||||
lyxerr[Debug::GUI]
|
||||
<< "form_->tocModel()->rowCount " << form_->tocModel()->rowCount()
|
||||
<< "\nform_->tocModel()->columnCount " << form_->tocModel()->columnCount()
|
||||
<< endl;
|
||||
// setTitle(form_->guiname())
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::reconnectSelectionModel()
|
||||
void TocWidget::reconnectSelectionModel()
|
||||
{
|
||||
connect(tocTV->selectionModel(),
|
||||
SIGNAL(currentChanged(const QModelIndex &,
|
||||
@ -265,34 +262,7 @@ void QTocDialog::reconnectSelectionModel()
|
||||
const QModelIndex &)));
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::apply()
|
||||
{
|
||||
// Nothing to do here... for now.
|
||||
// Ideas welcome... (Abdel, 17042006)
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::hide()
|
||||
{
|
||||
accept();
|
||||
}
|
||||
|
||||
|
||||
void QTocDialog::show()
|
||||
{
|
||||
form_->update();
|
||||
QDialog::show();
|
||||
}
|
||||
|
||||
|
||||
bool QTocDialog::isVisible() const
|
||||
{
|
||||
return QDialog::isVisible();
|
||||
}
|
||||
|
||||
|
||||
} // namespace frontend
|
||||
} // namespace lyx
|
||||
|
||||
#include "QTocDialog_moc.cpp"
|
||||
#include "TocWidget_moc.cpp"
|
@ -1,6 +1,6 @@
|
||||
// -*- C++ -*-
|
||||
/**
|
||||
* \file QTocDialog.h
|
||||
* \file TocWidget.h
|
||||
* This file is part of LyX, the document processor.
|
||||
* Licence details can be found in the file COPYING.
|
||||
*
|
||||
@ -10,56 +10,35 @@
|
||||
* Full author contact details are available in file CREDITS.
|
||||
*/
|
||||
|
||||
#ifndef QTOCDIALOG_H
|
||||
#define QTOCDIALOG_H
|
||||
#ifndef TOC_WIDGET_H
|
||||
#define TOC_WIDGET_H
|
||||
|
||||
#include "ui/QTocUi.h"
|
||||
#include "controllers/ControlToc.h"
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
class QTreeViewItem;
|
||||
#include <QWidget>
|
||||
|
||||
namespace lyx {
|
||||
namespace frontend {
|
||||
|
||||
class QToc;
|
||||
|
||||
class QTocDialog : public QDialog, public Ui::QTocUi, public Dialog::View {
|
||||
class TocWidget : public QWidget, public Ui::QTocUi {
|
||||
Q_OBJECT
|
||||
public:
|
||||
QTocDialog(Dialog &, QToc * form);
|
||||
|
||||
~QTocDialog();
|
||||
|
||||
virtual void apply();
|
||||
|
||||
/// Hide the dialog from sight
|
||||
void hide();
|
||||
|
||||
/// Redraw the dialog (e.g. if the colors have been remapped).
|
||||
void redraw() {}
|
||||
|
||||
/// Create the dialog if necessary, update it and display it.
|
||||
void show();
|
||||
TocWidget(QToc * form, QMainWindow * parent = 0);
|
||||
|
||||
/// Update the display of the dialog whilst it is still visible.
|
||||
void update();
|
||||
|
||||
protected Q_SLOTS:
|
||||
/// Update Gui of the display.
|
||||
void updateGui();
|
||||
|
||||
/// \return true if the dialog is visible.
|
||||
bool isVisible() const;
|
||||
|
||||
protected Q_SLOTS:
|
||||
///
|
||||
void select(QModelIndex const & index);
|
||||
///
|
||||
void selectionChanged(const QModelIndex & current,
|
||||
const QModelIndex & previous);
|
||||
|
||||
void on_closePB_clicked();
|
||||
void on_updatePB_clicked();
|
||||
void on_depthSL_valueChanged(int depth);
|
||||
void on_typeCO_activated(int value);
|
||||
@ -71,14 +50,14 @@ protected Q_SLOTS:
|
||||
protected:
|
||||
///
|
||||
void enableButtons(bool enable = true);
|
||||
/// Reconnects the selection model change signal when TOC changed.
|
||||
void reconnectSelectionModel();
|
||||
///
|
||||
int getIndexDepth(QModelIndex const & index, int depth = -1);
|
||||
///
|
||||
void setTreeDepth(int depth = -1);
|
||||
void setTreeDepth(int depth);
|
||||
|
||||
private:
|
||||
/// Reconnects the selection model change signal when TOC changed.
|
||||
void reconnectSelectionModel();
|
||||
|
||||
QToc * form_;
|
||||
|
||||
@ -89,4 +68,4 @@ private:
|
||||
} // namespace frontend
|
||||
} // namespace lyx
|
||||
|
||||
#endif // QTOCDIALOG_H
|
||||
#endif // TOC_WIDGET_H
|
@ -1,23 +1,20 @@
|
||||
<ui version="4.0" >
|
||||
<author></author>
|
||||
<comment></comment>
|
||||
<exportmacro></exportmacro>
|
||||
<class>QTocUi</class>
|
||||
<widget class="QDialog" name="QTocUi" >
|
||||
<widget class="QWidget" name="QTocUi" >
|
||||
<property name="windowModality" >
|
||||
<enum>Qt::NonModal</enum>
|
||||
</property>
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>386</width>
|
||||
<height>351</height>
|
||||
<width>257</width>
|
||||
<height>404</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string/>
|
||||
</property>
|
||||
<property name="sizeGripEnabled" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>9</number>
|
||||
@ -25,7 +22,7 @@
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="3" column="0" >
|
||||
<item row="3" column="0" colspan="2" >
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
@ -34,76 +31,67 @@
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="0" >
|
||||
<widget class="QPushButton" name="moveUpPB" >
|
||||
<widget class="QPushButton" name="moveOutPB" >
|
||||
<property name="text" >
|
||||
<string>&Up</string>
|
||||
<string><- P&romote</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<item row="1" column="2" >
|
||||
<widget class="QPushButton" name="moveDownPB" >
|
||||
<property name="text" >
|
||||
<string>&Down</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" >
|
||||
<widget class="QPushButton" name="moveOutPB" >
|
||||
<property name="text" >
|
||||
<string><- &Promote</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3" >
|
||||
<item row="0" column="1" >
|
||||
<widget class="QPushButton" name="moveInPB" >
|
||||
<property name="text" >
|
||||
<string>&Demote -></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="0" >
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="2" >
|
||||
<widget class="QPushButton" name="closePB" >
|
||||
<property name="text" >
|
||||
<string>&Close</string>
|
||||
</property>
|
||||
<property name="default" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0" >
|
||||
<item row="1" column="0" colspan="2" >
|
||||
<widget class="QPushButton" name="updatePB" >
|
||||
<property name="text" >
|
||||
<string>&Update</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" >
|
||||
<widget class="QPushButton" name="moveUpPB" >
|
||||
<property name="text" >
|
||||
<string>&Up</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<item row="0" column="1" >
|
||||
<widget class="QComboBox" name="typeCO" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>7</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2" >
|
||||
<widget class="QTreeView" name="tocTV" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>7</hsizetype>
|
||||
<vsizetype>7</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2" >
|
||||
<widget class="QSlider" name="depthSL" >
|
||||
<property name="maximum" >
|
||||
<number>5</number>
|
||||
@ -123,14 +111,6 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" >
|
||||
<layout class="QHBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="typeLA" >
|
||||
<property name="text" >
|
||||
<string>&Type:</string>
|
||||
@ -140,42 +120,8 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="typeCO" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QTreeView" name="tocTV" />
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<pixmapfunction></pixmapfunction>
|
||||
<tabstops>
|
||||
<tabstop>typeCO</tabstop>
|
||||
<tabstop>tocTV</tabstop>
|
||||
@ -184,8 +130,6 @@
|
||||
<tabstop>moveDownPB</tabstop>
|
||||
<tabstop>moveInPB</tabstop>
|
||||
<tabstop>moveOutPB</tabstop>
|
||||
<tabstop>updatePB</tabstop>
|
||||
<tabstop>closePB</tabstop>
|
||||
</tabstops>
|
||||
<includes>
|
||||
<include location="local" >qt_helpers.h</include>
|
||||
|
Loading…
Reference in New Issue
Block a user