mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-09-22 16:04:07 +00:00
128 lines
2.8 KiB
C++
128 lines
2.8 KiB
C++
|
/**
|
||
|
* \file QRefDialog.C
|
||
|
* This file is part of LyX, the document processor.
|
||
|
* Licence details can be found in the file COPYING.
|
||
|
*
|
||
|
* \author Kalle Dalheimer
|
||
|
* \author John Levon
|
||
|
*
|
||
|
* Full author contact details are available in file CREDITS.
|
||
|
*/
|
||
|
|
||
|
#include <config.h>
|
||
|
|
||
|
#include "QRefDialog.h"
|
||
|
#include "QRef.h"
|
||
|
|
||
|
#include <qlineedit.h>
|
||
|
#include <q3listbox.h>
|
||
|
#include <qpushbutton.h>
|
||
|
//Added by qt3to4:
|
||
|
#include <QCloseEvent>
|
||
|
|
||
|
namespace lyx {
|
||
|
namespace frontend {
|
||
|
|
||
|
QRefDialog::QRefDialog(QRef * form)
|
||
|
: form_(form)
|
||
|
{
|
||
|
setupUi(this);
|
||
|
|
||
|
connect(okPB, SIGNAL(clicked()),
|
||
|
form_, SLOT(slotOK()));
|
||
|
connect(applyPB, SIGNAL(clicked()),
|
||
|
form_, SLOT(slotApply()));
|
||
|
connect(closePB, SIGNAL(clicked()),
|
||
|
form_, SLOT(slotClose()));
|
||
|
|
||
|
connect( typeCO, SIGNAL( activated(int) ), this, SLOT( changed_adaptor() ) );
|
||
|
connect( referenceED, SIGNAL( textChanged(const QString&) ), this, SLOT( changed_adaptor() ) );
|
||
|
connect( nameED, SIGNAL( textChanged(const QString&) ), this, SLOT( changed_adaptor() ) );
|
||
|
connect( refsLB, SIGNAL( highlighted(const QString&) ), this, SLOT( refHighlighted(const QString&) ) );
|
||
|
connect( refsLB, SIGNAL( selected(const QString&) ), this, SLOT( refSelected(const QString&) ) );
|
||
|
connect( sortCB, SIGNAL( toggled(bool) ), this, SLOT( sortToggled(bool) ) );
|
||
|
connect( gotoPB, SIGNAL( clicked() ), this, SLOT( gotoClicked() ) );
|
||
|
connect( updatePB, SIGNAL( clicked() ), this, SLOT( updateClicked() ) );
|
||
|
connect( bufferCO, SIGNAL( activated(int) ), this, SLOT( updateClicked() ) );
|
||
|
|
||
|
}
|
||
|
|
||
|
void QRefDialog::show()
|
||
|
{
|
||
|
QDialog::show();
|
||
|
refsLB->setFocus();
|
||
|
}
|
||
|
|
||
|
|
||
|
void QRefDialog::changed_adaptor()
|
||
|
{
|
||
|
form_->changed();
|
||
|
}
|
||
|
|
||
|
|
||
|
void QRefDialog::gotoClicked()
|
||
|
{
|
||
|
form_->gotoRef();
|
||
|
}
|
||
|
|
||
|
|
||
|
void QRefDialog::refHighlighted(const QString & sel)
|
||
|
{
|
||
|
if (form_->readOnly())
|
||
|
return;
|
||
|
|
||
|
int const cur_item = refsLB->currentItem();
|
||
|
bool const cur_item_selected = cur_item >= 0 ?
|
||
|
refsLB->isSelected(cur_item) : false;
|
||
|
|
||
|
if (cur_item_selected)
|
||
|
referenceED->setText(sel);
|
||
|
|
||
|
if (form_->at_ref_)
|
||
|
form_->gotoRef();
|
||
|
gotoPB->setEnabled(true);
|
||
|
if (form_->typeAllowed())
|
||
|
typeCO->setEnabled(true);
|
||
|
if (form_->nameAllowed())
|
||
|
nameED->setEnabled(true);
|
||
|
}
|
||
|
|
||
|
|
||
|
void QRefDialog::refSelected(const QString & sel)
|
||
|
{
|
||
|
if (form_->readOnly())
|
||
|
return;
|
||
|
|
||
|
int const cur_item = refsLB->currentItem();
|
||
|
bool const cur_item_selected = cur_item >= 0 ?
|
||
|
refsLB->isSelected(cur_item) : false;
|
||
|
|
||
|
if (cur_item_selected)
|
||
|
referenceED->setText(sel);
|
||
|
// <enter> or double click, inserts ref and closes dialog
|
||
|
form_->slotOK();
|
||
|
}
|
||
|
|
||
|
|
||
|
void QRefDialog::sortToggled(bool on)
|
||
|
{
|
||
|
form_->sort_ = on;
|
||
|
form_->redoRefs();
|
||
|
}
|
||
|
|
||
|
|
||
|
void QRefDialog::updateClicked()
|
||
|
{
|
||
|
form_->updateRefs();
|
||
|
}
|
||
|
|
||
|
|
||
|
void QRefDialog::closeEvent(QCloseEvent * e)
|
||
|
{
|
||
|
form_->slotWMHide();
|
||
|
e->accept();
|
||
|
}
|
||
|
|
||
|
} // namespace frontend
|
||
|
} // namespace lyx
|