]> git.lyx.org Git - features.git/commitdiff
- implement sizeHint()
authorEdwin Leuven <e.leuven@gmail.com>
Tue, 24 Oct 2006 11:32:20 +0000 (11:32 +0000)
committerEdwin Leuven <e.leuven@gmail.com>
Tue, 24 Oct 2006 11:32:20 +0000 (11:32 +0000)
- 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

src/frontends/qt4/panelstack.C
src/frontends/qt4/panelstack.h

index 5274813a0b21daf09957e1811680e2e59addf7fe..8ed7f6df76e4f7794e587e1b7613f0adbfe49e28 100644 (file)
 #include "qt_helpers.h"
 
 #include <QStackedWidget>
-#include <QFontMetrics>
 #include <QTreeWidget>
 #include <QHBoxLayout>
-#include <QLayout>
+#include <QHeaderView>
 
 #include <boost/assert.hpp>
 
@@ -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"
index a9e0665855036d7ae3786d1d4a55d5e234e3b87b..5184a811b917e63e9ce3b5d87c7b9efaa2b4cbca 100644 (file)
@@ -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);