lyx_mirror/src/frontends/qt4/QTexinfoDialog.C
Abdelrazak Younes 2b0e8a0d9b Fix unreported bug related to 3246 by Richard Heck:
"View" button in TeX information dialog not enabled when file is selected with the keyboard. Problem was that SIGNAL itemSelectionChanged was not connected to anything. Also made some minor stylistic changes to the code.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17614 a592a061-630c-0410-9148-cb99ea01b6c8
2007-03-28 16:58:08 +00:00

110 lines
2.4 KiB
C

/**
* \file QTexinfoDialog.C
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Edwin Leuven
*
* Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "QTexinfoDialog.h"
#include "QTexinfo.h"
#include <QCheckBox>
#include <QListWidget>
#include <QPushButton>
#include <QCloseEvent>
using std::vector;
using std::string;
namespace lyx {
namespace frontend {
QTexinfoDialog::QTexinfoDialog(QTexinfo * form)
:form_(form)
{
setupUi(this);
connect(closePB, SIGNAL(clicked()),
form, SLOT(slotClose()));
connect( viewPB, SIGNAL( clicked() ), this, SLOT( viewClicked() ) );
connect( whatStyleCO, SIGNAL( activated(const QString&) ), this, SLOT( enableViewPB() ) );
connect( whatStyleCO, SIGNAL( activated(int) ), this, SLOT( update() ) );
connect( pathCB, SIGNAL( stateChanged(int) ), this, SLOT( update() ) );
connect( rescanPB, SIGNAL( clicked() ), this, SLOT( enableViewPB() ) );
connect( rescanPB, SIGNAL( clicked() ), this, SLOT( rescanClicked() ) );
connect( fileListLW, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( enableViewPB() ) );
connect( fileListLW, SIGNAL( itemSelectionChanged() ), this, SLOT( enableViewPB() ) );
}
void QTexinfoDialog::change_adaptor()
{
form_->changed();
}
void QTexinfoDialog::closeEvent(QCloseEvent * e)
{
form_->slotWMHide();
e->accept();
}
void QTexinfoDialog::rescanClicked()
{
// build new *Files.lst
rescanTexStyles();
form_->updateStyles();
enableViewPB();
}
void QTexinfoDialog::viewClicked()
{
vector<string>::size_type const fitem = fileListLW->currentRow();
vector<string> const & data = form_->texdata_[form_->activeStyle];
string file = data[fitem];
if (!pathCB->isChecked())
file = getTexFileFromList(data[fitem],
form_->controller().getFileType(form_->activeStyle));
form_->controller().viewFile(file);
}
void QTexinfoDialog::update()
{
switch (whatStyleCO->currentIndex()) {
case 0:
form_->updateStyles(ControlTexinfo::cls);
break;
case 1:
form_->updateStyles(ControlTexinfo::sty);
break;
case 2:
form_->updateStyles(ControlTexinfo::bst);
break;
default:
break;
}
enableViewPB();
}
void QTexinfoDialog::enableViewPB()
{
viewPB->setEnabled(fileListLW->currentRow() > -1);
}
} // namespace frontend
} // namespace lyx
#include "QTexinfoDialog_moc.cpp"