]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/QRef.C
enable Font cache only for MacOSX and inline width() for other platform.
[lyx.git] / src / frontends / qt4 / QRef.C
index f560e1559d49fd8d6c4d24dfd7da9838280de630..d559523bc65488d6b033a15fefc1f637e3363bf7 100644 (file)
 
 #include "insets/insetref.h"
 
-#include <qlineedit.h>
-#include <qcheckbox.h>
-#include <q3listbox.h>
-#include <qpushbutton.h>
-#include <qtooltip.h>
+#include <QLineEdit>
+#include <QCheckBox>
+#include <QListWidget>
+#include <QListWidgetItem>
+#include <QPushButton>
+#include <QToolTip>
 
 
 using std::vector;
@@ -34,11 +35,12 @@ using std::string;
 namespace lyx {
 namespace frontend {
 
-typedef QController<ControlRef, QView<QRefDialog> > base_class;
+// full qualification because qt4 has also a ControlRef type
+typedef QController<lyx::frontend::ControlRef, QView<QRefDialog> > base_class;
 
 
 QRef::QRef(Dialog & parent)
-       : base_class(parent, _("Cross-reference")),
+       : base_class(parent, lyx::to_utf8(_("Cross-reference"))),
        sort_(false), at_ref_(false)
 {
 }
@@ -51,7 +53,7 @@ void QRef::build_dialog()
        bcview().setOK(dialog_->okPB);
        bcview().setApply(dialog_->applyPB);
        bcview().setCancel(dialog_->closePB);
-       bcview().addReadOnly(dialog_->refsLB);
+       bcview().addReadOnly(dialog_->refsLW);
        bcview().addReadOnly(dialog_->sortCB);
        bcview().addReadOnly(dialog_->nameED);
        bcview().addReadOnly(dialog_->referenceED);
@@ -66,7 +68,7 @@ void QRef::update_contents()
 {
        InsetCommandParams const & params = controller().params();
 
-       int orig_type = dialog_->typeCO->currentItem();
+       int orig_type = dialog_->typeCO->currentIndex();
 
        dialog_->referenceED->setText(toqstr(params.getContents()));
 
@@ -75,12 +77,12 @@ void QRef::update_contents()
 
        // restore type settings for new insets
        if (params.getContents().empty())
-               dialog_->typeCO->setCurrentItem(orig_type);
+               dialog_->typeCO->setCurrentIndex(orig_type);
        else
-               dialog_->typeCO->setCurrentItem(InsetRef::getType(params.getCmdName()));
+               dialog_->typeCO->setCurrentIndex(InsetRef::getType(params.getCmdName()));
        dialog_->typeCO->setEnabled(typeAllowed() && !readOnly());
        if (!typeAllowed())
-               dialog_->typeCO->setCurrentItem(0);
+               dialog_->typeCO->setCurrentIndex(0);
 
        dialog_->sortCB->setChecked(sort_);
 
@@ -89,14 +91,14 @@ void QRef::update_contents()
        vector<string> const buffers = controller().getBufferList();
        for (vector<string>::const_iterator it = buffers.begin();
                it != buffers.end(); ++it) {
-               dialog_->bufferCO->insertItem(toqstr(*it));
+               dialog_->bufferCO->addItem(toqstr(*it));
        }
        // restore the buffer combo setting for new insets
        if (params.getContents().empty() && restored_buffer_ != -1
        && restored_buffer_ < dialog_->bufferCO->count())
-               dialog_->bufferCO->setCurrentItem(restored_buffer_);
+               dialog_->bufferCO->setCurrentIndex(restored_buffer_);
        else
-               dialog_->bufferCO->setCurrentItem(controller().getBufferNum());
+               dialog_->bufferCO->setCurrentIndex(controller().getBufferNum());
 
        updateRefs();
        bc().valid(false);
@@ -107,11 +109,11 @@ void QRef::apply()
 {
        InsetCommandParams & params = controller().params();
 
-       params.setCmdName(InsetRef::getName(dialog_->typeCO->currentItem()));
+       params.setCmdName(InsetRef::getName(dialog_->typeCO->currentIndex()));
        params.setContents(fromqstr(dialog_->referenceED->text()));
        params.setOptions(fromqstr(dialog_->nameED->text()));
 
-       restored_buffer_ = dialog_->bufferCO->currentItem();
+       restored_buffer_ = dialog_->bufferCO->currentIndex();
 }
 
 
@@ -126,24 +128,23 @@ bool QRef::nameAllowed()
 bool QRef::typeAllowed()
 {
        Kernel::DocType const doc_type = kernel().docType();
-       return doc_type != Kernel::LINUXDOC &&
-               doc_type != Kernel::DOCBOOK;
+       return doc_type != Kernel::DOCBOOK;
 }
 
 
 void QRef::setGoBack()
 {
        dialog_->gotoPB->setText(qt_("&Go Back"));
-       QToolTip::remove(dialog_->gotoPB);
-       QToolTip::add(dialog_->gotoPB, qt_("Jump back"));
+       dialog_->gotoPB->setToolTip("");
+       dialog_->gotoPB->setToolTip(qt_("Jump back"));
 }
 
 
 void QRef::setGotoRef()
 {
        dialog_->gotoPB->setText(qt_("&Go to Label"));
-       QToolTip::remove(dialog_->gotoPB);
-       QToolTip::add(dialog_->gotoPB, qt_("Jump to label"));
+       dialog_->gotoPB->setToolTip("");
+       dialog_->gotoPB->setToolTip(qt_("Jump to label"));
 }
 
 
@@ -168,13 +169,13 @@ void QRef::redoRefs()
 {
        // Prevent these widgets from emitting any signals whilst
        // we modify their state.
-       dialog_->refsLB->blockSignals(true);
+       dialog_->refsLW->blockSignals(true);
        dialog_->referenceED->blockSignals(true);
 
-       int lastref = dialog_->refsLB->currentItem();
+       int lastref = dialog_->refsLW->currentRow();
 
-       dialog_->refsLB->setAutoUpdate(false);
-       dialog_->refsLB->clear();
+       dialog_->refsLW->setUpdatesEnabled(false);
+       dialog_->refsLW->clear();
 
        // need this because Qt will send a highlight() here for
        // the first item inserted
@@ -182,30 +183,32 @@ void QRef::redoRefs()
 
        for (std::vector<string>::const_iterator iter = refs_.begin();
                iter != refs_.end(); ++iter) {
-               dialog_->refsLB->insertItem(toqstr(*iter));
+               dialog_->refsLW->addItem(toqstr(*iter));
        }
 
        if (sort_)
-               dialog_->refsLB->sort();
+               dialog_->refsLW->sortItems();
 
        dialog_->referenceED->setText(tmp);
 
        // restore the last selection for new insets
        if (tmp.isEmpty() && lastref != -1
-               && lastref < int(dialog_->refsLB->count())) {
-               dialog_->refsLB->setCurrentItem(lastref);
-               dialog_->refsLB->clearSelection();
+               && lastref < int(dialog_->refsLW->count())) {
+               dialog_->refsLW->setCurrentRow(lastref);
+               dialog_->refsLW->clearSelection();
        } else
-               for (unsigned int i = 0; i < dialog_->refsLB->count(); ++i) {
-                       if (tmp == dialog_->refsLB->text(i))
-                               dialog_->refsLB->setSelected(i, true);
+               for (int i = 0; i < dialog_->refsLW->count(); ++i) {
+                       QListWidgetItem * item = dialog_->refsLW->item(i);
+                       if (tmp == item->text()) {
+                               dialog_->refsLW->setItemSelected(item, true);
+                       }
                }
 
-       dialog_->refsLB->setAutoUpdate(true);
-       dialog_->refsLB->update();
+       dialog_->refsLW->setUpdatesEnabled(true);
+       dialog_->refsLW->update();
 
        // Re-activate the emission of signals by these widgets.
-       dialog_->refsLB->blockSignals(false);
+       dialog_->refsLW->blockSignals(false);
        dialog_->referenceED->blockSignals(false);
 }
 
@@ -215,10 +218,10 @@ void QRef::updateRefs()
        refs_.clear();
        if (at_ref_)
                gotoRef();
-       string const name = controller().getBufferName(dialog_->bufferCO->currentItem());
+       string const name = controller().getBufferName(dialog_->bufferCO->currentIndex());
        refs_ = controller().getLabelList(name);
        dialog_->sortCB->setEnabled(!refs_.empty());
-       dialog_->refsLB->setEnabled(!refs_.empty());
+       dialog_->refsLW->setEnabled(!refs_.empty());
        dialog_->gotoPB->setEnabled(!refs_.empty());
        redoRefs();
 }