From: Edwin Leuven Date: Tue, 24 Oct 2006 11:32:20 +0000 (+0000) Subject: - implement sizeHint() X-Git-Tag: 1.6.10~12208 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=163dcb1210e492612fd44be01ceae353acd02656;p=features.git - implement sizeHint() - set minimum width of QTreeWidget - bit of cleanup git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15526 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/frontends/qt4/panelstack.C b/src/frontends/qt4/panelstack.C index 5274813a0b..8ed7f6df76 100644 --- a/src/frontends/qt4/panelstack.C +++ b/src/frontends/qt4/panelstack.C @@ -15,10 +15,9 @@ #include "qt_helpers.h" #include -#include #include #include -#include +#include #include @@ -37,17 +36,6 @@ PanelStack::PanelStack(QWidget * parent) stack_ = new QStackedWidget(this); list_->setColumnCount(1); - list_->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); - stack_->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); - - list_->setSortingEnabled(false); -// list_->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); -// list_->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); -// list_->addColumn(""); -// list_->setColumnWidthMode(0, QTreeWidget::Maximum); - -// list_->setResizeMode(QTreeWidget::AllColumns); - QStringList HeaderLabels; HeaderLabels << QString("Category"); list_->setHeaderLabels(HeaderLabels); @@ -72,7 +60,6 @@ void PanelStack::addCategory(docstring const & n, docstring const & parent) if (parent.empty()) { item = new QTreeWidgetItem(list_); item->setText(0, name); - //list_->addTopLevelItem(item); } else { PanelMap::iterator it = panel_map_.find(parent); @@ -85,23 +72,11 @@ void PanelStack::addCategory(docstring const & n, docstring const & parent) item = new QTreeWidgetItem(it->second); item->setText(0, name); - //it->second->addChild(item); } panel_map_[n] = item; - list_->setFixedWidth(list_->sizeHint().width()); -/* - item->setFlags(false); - item->setOpen(true); - - // calculate the real size the current item needs in the listview - int itemsize = item->width(list_->fontMetrics(), list_, 0) + 10 - + list_->treeStepSize() * (item->depth() + 1) + list_->itemMargin(); - // adjust the listview width to the max. itemsize - if (itemsize > list_->minimumWidth()) - list_->setMinimumWidth(itemsize); - */ + list_->setMinimumWidth(list_->header()->sectionSize(0) + list_->indentation()); } @@ -110,9 +85,6 @@ void PanelStack::addPanel(QWidget * panel, docstring const & name, docstring con addCategory(name, parent); QTreeWidgetItem * item = panel_map_.find(name)->second; - // reset the selectability set by addCategory -// item->setSelectable(true); - widget_map_[item] = panel; stack_->addWidget(panel); stack_->setMinimumSize(panel->minimumSize()); @@ -142,10 +114,11 @@ void PanelStack::switchPanel(QTreeWidgetItem * item, stack_->setCurrentWidget(cit->second); } -#include "panelstack_moc.cpp" - - -namespace lyx { +QSize PanelStack::sizeHint() const +{ + return QSize(list_->width() + stack_->width(), + qMax(list_->height(), stack_->height())); +} -} // namespace lyx +#include "panelstack_moc.cpp" diff --git a/src/frontends/qt4/panelstack.h b/src/frontends/qt4/panelstack.h index a9e0665855..5184a811b9 100644 --- a/src/frontends/qt4/panelstack.h +++ b/src/frontends/qt4/panelstack.h @@ -43,6 +43,7 @@ public: /// set current panel by logical name void setCurrentPanel(lyx::docstring const &); + virtual QSize sizeHint() const; public Q_SLOTS: /// set current panel from an item void switchPanel(QTreeWidgetItem * i, QTreeWidgetItem* previous=0);