mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
This new citation dialog follows a new design similar to lyx-1.3:
- two panes for Selected/Available keys - find as you search (Regular expression are supported) - advanced search button There are a lot of work still: - selected citations are not inserted in the document - find does not select the found key - the graying/un-graying of buttons does not work properly - the Advanced Search Dialog (which will search inside the citation) is not done yet - ... But the good news is that I have used the Model/View separation of Qt4. QCitation contains the list models and QCitationDialog contains the list views. The idea would be to reuse the model for a new dialog, I am thinking of a simple combo box placed on the toolbar which insert citations with default style, etc. Or a context menu insert->citation... git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13496 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
64aab4aa75
commit
2f415cfbb1
@ -13,7 +13,6 @@
|
||||
|
||||
#include "QCitation.h"
|
||||
#include "QCitationDialog.h"
|
||||
#include "ui/QCitationFindUi.h"
|
||||
#include "Qt2BC.h"
|
||||
#include "qt_helpers.h"
|
||||
|
||||
@ -24,219 +23,186 @@
|
||||
|
||||
#include "support/lstrings.h"
|
||||
|
||||
#include <qcheckbox.h>
|
||||
#include <qlineedit.h>
|
||||
#include <q3listbox.h>
|
||||
#include <q3multilineedit.h>
|
||||
#include <qpushbutton.h>
|
||||
#include <qlabel.h>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
|
||||
using std::find;
|
||||
using std::string;
|
||||
using std::vector;
|
||||
using std::string;
|
||||
|
||||
void toQStringList(QStringList & qlist, vector<string> const & v)
|
||||
{
|
||||
qlist.clear();
|
||||
for (size_t i=0; i != v.size(); ++i) {
|
||||
if (v[i].empty())
|
||||
continue;
|
||||
qlist.append(toqstr(v[i]));
|
||||
}
|
||||
}
|
||||
|
||||
void toVector(vector<string> & v, const QStringList & qlist)
|
||||
{
|
||||
v.clear();
|
||||
|
||||
for (size_t i=0; i != qlist.size(); ++i)
|
||||
v.push_back(fromqstr(qlist[i]));
|
||||
}
|
||||
|
||||
namespace lyx {
|
||||
|
||||
using support::getStringFromVector;
|
||||
using support::getVectorFromString;
|
||||
using support::trim;
|
||||
|
||||
namespace frontend {
|
||||
|
||||
typedef QController<ControlCitation, QView<QCitationDialog> > base_class;
|
||||
|
||||
|
||||
QCitation::QCitation(Dialog & parent)
|
||||
: base_class(parent, _("Citation"))
|
||||
{}
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void QCitation::apply()
|
||||
{
|
||||
vector<biblio::CiteStyle> const & styles =
|
||||
ControlCitation::getCiteStyles();
|
||||
InsetCommandParams & params = controller().params();
|
||||
dialog_->update(params);
|
||||
|
||||
int const choice = dialog_->citationStyleCO->currentItem();
|
||||
bool const full = dialog_->fulllistCB->isChecked();
|
||||
bool const force = dialog_->forceuppercaseCB->isChecked();
|
||||
|
||||
string const command =
|
||||
biblio::CitationStyle(styles[choice], full, force)
|
||||
.asLatexStr();
|
||||
|
||||
controller().params().setCmdName(command);
|
||||
controller().params().setContents(getStringFromVector(citekeys));
|
||||
|
||||
string const before = fromqstr(dialog_->textBeforeED->text());
|
||||
controller().params().setSecOptions(before);
|
||||
|
||||
string const after = fromqstr(dialog_->textAfterED->text());
|
||||
controller().params().setOptions(after);
|
||||
|
||||
style_ = choice;
|
||||
open_find_ = false;
|
||||
}
|
||||
|
||||
|
||||
void QCitation::hide()
|
||||
{
|
||||
citekeys.clear();
|
||||
bibkeys.clear();
|
||||
open_find_ = true;
|
||||
|
||||
QDialogView::hide();
|
||||
params.setContents(fromqstr(selected_keys_.stringList().join("'")));
|
||||
}
|
||||
|
||||
|
||||
void QCitation::build_dialog()
|
||||
{
|
||||
dialog_.reset(new QCitationDialog(this));
|
||||
|
||||
// Manage the ok, apply, restore and cancel/close buttons
|
||||
bcview().setOK(dialog_->okPB);
|
||||
bcview().setApply(dialog_->applyPB);
|
||||
bcview().setCancel(dialog_->closePB);
|
||||
bcview().setRestore(dialog_->restorePB);
|
||||
|
||||
bcview().addReadOnly(dialog_->addPB);
|
||||
bcview().addReadOnly(dialog_->deletePB);
|
||||
bcview().addReadOnly(dialog_->upPB);
|
||||
bcview().addReadOnly(dialog_->downPB);
|
||||
bcview().addReadOnly(dialog_->citationStyleCO);
|
||||
bcview().addReadOnly(dialog_->forceuppercaseCB);
|
||||
bcview().addReadOnly(dialog_->fulllistCB);
|
||||
bcview().addReadOnly(dialog_->textBeforeED);
|
||||
bcview().addReadOnly(dialog_->textAfterED);
|
||||
|
||||
open_find_ = true;
|
||||
}
|
||||
|
||||
|
||||
void QCitation::fillStyles()
|
||||
{
|
||||
if (citekeys.empty()) {
|
||||
dialog_->citationStyleCO->setEnabled(false);
|
||||
dialog_->citationStyleLA->setEnabled(false);
|
||||
return;
|
||||
}
|
||||
|
||||
int const orig = dialog_->citationStyleCO->currentItem();
|
||||
|
||||
dialog_->citationStyleCO->clear();
|
||||
|
||||
int curr = dialog_->selectedLB->currentItem();
|
||||
if (curr < 0)
|
||||
curr = 0;
|
||||
|
||||
string key = citekeys[curr];
|
||||
|
||||
vector<string> const & sty = controller().getCiteStrings(key);
|
||||
|
||||
biblio::CiteEngine const engine = controller().getEngine();
|
||||
bool const basic_engine = engine == biblio::ENGINE_BASIC;
|
||||
|
||||
dialog_->citationStyleCO->setEnabled(!sty.empty() && !basic_engine);
|
||||
dialog_->citationStyleLA->setEnabled(!sty.empty() && !basic_engine);
|
||||
|
||||
for (vector<string>::const_iterator it = sty.begin();
|
||||
it != sty.end(); ++it) {
|
||||
dialog_->citationStyleCO->insertItem(toqstr(*it));
|
||||
}
|
||||
|
||||
if (orig != -1 && orig < dialog_->citationStyleCO->count())
|
||||
dialog_->citationStyleCO->setCurrentItem(orig);
|
||||
}
|
||||
|
||||
|
||||
void QCitation::updateStyle()
|
||||
{
|
||||
biblio::CiteEngine const engine = controller().getEngine();
|
||||
bool const natbib_engine =
|
||||
engine == biblio::ENGINE_NATBIB_AUTHORYEAR ||
|
||||
engine == biblio::ENGINE_NATBIB_NUMERICAL;
|
||||
bool const basic_engine = engine == biblio::ENGINE_BASIC;
|
||||
|
||||
dialog_->fulllistCB->setEnabled(natbib_engine);
|
||||
dialog_->forceuppercaseCB->setEnabled(natbib_engine);
|
||||
dialog_->textBeforeED->setEnabled(!basic_engine);
|
||||
|
||||
string const & command = controller().params().getCmdName();
|
||||
|
||||
// Find the style of the citekeys
|
||||
vector<biblio::CiteStyle> const & styles =
|
||||
ControlCitation::getCiteStyles();
|
||||
biblio::CitationStyle const cs(command);
|
||||
|
||||
vector<biblio::CiteStyle>::const_iterator cit =
|
||||
find(styles.begin(), styles.end(), cs.style);
|
||||
|
||||
// restore the latest natbib style
|
||||
if (style_ >= 0 && style_ < dialog_->citationStyleCO->count())
|
||||
dialog_->citationStyleCO->setCurrentItem(style_);
|
||||
else
|
||||
dialog_->citationStyleCO->setCurrentItem(0);
|
||||
dialog_->fulllistCB->setChecked(false);
|
||||
dialog_->forceuppercaseCB->setChecked(false);
|
||||
|
||||
if (cit != styles.end()) {
|
||||
int const i = int(cit - styles.begin());
|
||||
dialog_->citationStyleCO->setCurrentItem(i);
|
||||
dialog_->fulllistCB->setChecked(cs.full);
|
||||
dialog_->forceuppercaseCB->setChecked(cs.forceUCase);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void QCitation::update_contents()
|
||||
{
|
||||
QStringList keys;
|
||||
|
||||
// Make the list of all available bibliography keys
|
||||
bibkeys = biblio::getKeys(controller().bibkeysInfo());
|
||||
updateBrowser(dialog_->ui_.availableLB, bibkeys);
|
||||
toQStringList(keys,
|
||||
biblio::getKeys(controller().bibkeysInfo()));
|
||||
available_keys_.setStringList(keys);
|
||||
|
||||
// Ditto for the keys cited in this inset
|
||||
citekeys = getVectorFromString(controller().params().getContents());
|
||||
updateBrowser(dialog_->selectedLB, citekeys);
|
||||
QString str = toqstr(controller().params().getContents());
|
||||
if (!str.isEmpty()) {
|
||||
keys = str.split(",");
|
||||
selected_keys_.setStringList(keys);
|
||||
}
|
||||
|
||||
// No keys have been selected yet, so...
|
||||
dialog_->infoML->clear();
|
||||
dialog_->setButtons();
|
||||
|
||||
dialog_->textBeforeED->setText(
|
||||
toqstr(controller().params().getSecOptions()));
|
||||
dialog_->textAfterED->setText(
|
||||
toqstr(controller().params().getOptions()));
|
||||
|
||||
fillStyles();
|
||||
updateStyle();
|
||||
|
||||
// open the find dialog if nothing has been selected (yet)
|
||||
// the bool prevents that this is also done after "apply"
|
||||
if (open_find_)
|
||||
dialog_->openFind();
|
||||
dialog_->update(controller().params());
|
||||
|
||||
bc().valid(isValid());
|
||||
}
|
||||
|
||||
|
||||
void QCitation::updateBrowser(Q3ListBox * browser,
|
||||
vector<string> const & keys) const
|
||||
void QCitation::hide()
|
||||
{
|
||||
browser->clear();
|
||||
|
||||
for (vector<string>::const_iterator it = keys.begin();
|
||||
it < keys.end(); ++it) {
|
||||
string const key = trim(*it);
|
||||
// FIXME: why the .empty() test ?
|
||||
if (!key.empty())
|
||||
browser->insertItem(toqstr(key));
|
||||
}
|
||||
QDialogView::hide();
|
||||
}
|
||||
|
||||
|
||||
bool QCitation::isValid()
|
||||
{
|
||||
return dialog_->selectedLB->count() > 0;
|
||||
return selected_keys_.rowCount() > 0;
|
||||
}
|
||||
|
||||
QModelIndex QCitation::findKey(QString const & str, QModelIndex const & index) const
|
||||
{
|
||||
QStringList const avail = available_keys_.stringList();
|
||||
int const pos = avail.indexOf(str, index.row());
|
||||
if (pos == -1)
|
||||
return index;
|
||||
return available_keys_.index(pos);
|
||||
}
|
||||
|
||||
QModelIndex QCitation::findKey(QString const & str) const
|
||||
{
|
||||
QStringList const avail = available_keys_.stringList();
|
||||
int const pos = avail.indexOf(str);
|
||||
if (pos == -1)
|
||||
return QModelIndex();
|
||||
return available_keys_.index(pos);
|
||||
}
|
||||
|
||||
void QCitation::addKeys(QModelIndexList const & indexes)
|
||||
{
|
||||
// = selectionModel->selectedIndexes();
|
||||
|
||||
QModelIndex index;
|
||||
|
||||
if (indexes.empty())
|
||||
return;
|
||||
|
||||
QStringList keys = selected_keys_.stringList();
|
||||
|
||||
foreach(index, indexes) {
|
||||
if (keys.indexOf(index.data().toString()) == -1)
|
||||
keys.append(index.data().toString());
|
||||
}
|
||||
|
||||
selected_keys_.setStringList(keys);
|
||||
|
||||
changed();
|
||||
}
|
||||
|
||||
void QCitation::deleteKeys(QModelIndexList const & indexes)
|
||||
{
|
||||
QModelIndex index;
|
||||
|
||||
if (indexes.empty())
|
||||
return;
|
||||
|
||||
QStringList keys = selected_keys_.stringList();
|
||||
|
||||
foreach(index, indexes) {
|
||||
int const pos = keys.indexOf(index.data().toString());
|
||||
if (pos != -1)
|
||||
keys.removeAt(pos);
|
||||
}
|
||||
|
||||
selected_keys_.setStringList(keys);
|
||||
|
||||
changed();
|
||||
}
|
||||
|
||||
void QCitation::upKey(QModelIndexList const & indexes)
|
||||
{
|
||||
if (indexes.empty() || indexes.size() > 1)
|
||||
return;
|
||||
|
||||
int pos = indexes[0].row();
|
||||
if (pos < 1)
|
||||
return;
|
||||
|
||||
QStringList keys = selected_keys_.stringList();
|
||||
keys.swap(pos, pos-1);
|
||||
selected_keys_.setStringList(keys);
|
||||
|
||||
changed();
|
||||
}
|
||||
|
||||
void QCitation::downKey(QModelIndexList const & indexes)
|
||||
{
|
||||
if (indexes.empty() || indexes.size() > 1)
|
||||
return;
|
||||
|
||||
int pos = indexes[0].row();
|
||||
if (pos >= selected_keys_.rowCount() - 1)
|
||||
return;
|
||||
|
||||
QStringList keys = selected_keys_.stringList();
|
||||
keys.swap(pos, pos+1);
|
||||
selected_keys_.setStringList(keys);
|
||||
|
||||
changed();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace frontend
|
||||
} // namespace lyx
|
||||
|
@ -14,9 +14,8 @@
|
||||
#define QCITATION_H
|
||||
|
||||
#include "QDialogView.h"
|
||||
#include <vector>
|
||||
|
||||
class Q3ListBox;
|
||||
#include <QStringListModel>
|
||||
|
||||
namespace lyx {
|
||||
namespace frontend {
|
||||
@ -31,8 +30,27 @@ public:
|
||||
friend class QCitationDialog;
|
||||
///
|
||||
QCitation(Dialog &);
|
||||
|
||||
QStringListModel * available()
|
||||
{ return &available_keys_; }
|
||||
|
||||
QStringListModel * selected()
|
||||
{ return &selected_keys_; }
|
||||
|
||||
QStringListModel * found()
|
||||
{ return &found_keys_; }
|
||||
|
||||
QModelIndex findKey(QString const & str, QModelIndex const & index) const;
|
||||
QModelIndex findKey(QString const & str) const;
|
||||
|
||||
void addKeys(QModelIndexList const & indexes);
|
||||
void deleteKeys(QModelIndexList const & indexes);
|
||||
void upKey(QModelIndexList const & indexes);
|
||||
void downKey(QModelIndexList const & indexes);
|
||||
|
||||
protected:
|
||||
virtual bool isValid();
|
||||
|
||||
private:
|
||||
|
||||
/// Set the Params variable for the Controller.
|
||||
@ -44,22 +62,14 @@ private:
|
||||
/// Update dialog before/whilst showing it.
|
||||
virtual void update_contents();
|
||||
|
||||
/// fill the styles combo
|
||||
void fillStyles();
|
||||
|
||||
/// set the styles combo
|
||||
void updateStyle();
|
||||
|
||||
void updateBrowser(Q3ListBox *, std::vector<std::string> const &) const;
|
||||
/// check if apply has been pressed
|
||||
bool open_find_;
|
||||
/// available keys
|
||||
QStringListModel available_keys_;
|
||||
|
||||
/// selected keys
|
||||
std::vector<std::string> citekeys;
|
||||
/// available bib keys
|
||||
std::vector<std::string> bibkeys;
|
||||
/// selected natbib style
|
||||
int style_;
|
||||
QStringListModel selected_keys_;
|
||||
|
||||
/// found keys
|
||||
QStringListModel found_keys_;
|
||||
};
|
||||
|
||||
} // namespace frontend
|
||||
|
@ -15,29 +15,53 @@
|
||||
#include "QCitationDialog.h"
|
||||
#include "ui/QCitationFindUi.h"
|
||||
#include "QCitation.h"
|
||||
#include "Qt2BC.h"
|
||||
#include "qt_helpers.h"
|
||||
|
||||
#include "bufferparams.h"
|
||||
|
||||
#include "controllers/ControlCitation.h"
|
||||
#include "controllers/ButtonController.h"
|
||||
|
||||
#include <qcheckbox.h>
|
||||
#include <qlineedit.h>
|
||||
#include <q3listbox.h>
|
||||
#include <q3multilineedit.h>
|
||||
#include <qpushbutton.h>
|
||||
#include "support/lstrings.h"
|
||||
|
||||
#include <iostream>
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
|
||||
using std::vector;
|
||||
using std::find;
|
||||
using std::string;
|
||||
using std::vector;
|
||||
|
||||
|
||||
namespace lyx {
|
||||
|
||||
using support::getStringFromVector;
|
||||
using support::getVectorFromString;
|
||||
using support::trim;
|
||||
|
||||
namespace frontend {
|
||||
|
||||
void updateBrowser(Q3ListBox * browser,
|
||||
vector<string> const & keys)
|
||||
{
|
||||
browser->clear();
|
||||
|
||||
for (vector<string>::const_iterator it = keys.begin();
|
||||
it < keys.end(); ++it) {
|
||||
string const key = trim(*it);
|
||||
// FIXME: why the .empty() test ?
|
||||
if (!key.empty())
|
||||
browser->insertItem(toqstr(key));
|
||||
}
|
||||
}
|
||||
|
||||
QCitationDialog::QCitationDialog(QCitation * form)
|
||||
: form_(form)
|
||||
{
|
||||
setupUi(this);
|
||||
connect(restorePB, SIGNAL(clicked()),
|
||||
|
||||
/* connect(restorePB, SIGNAL(clicked()),
|
||||
form, SLOT(slotRestore()));
|
||||
connect(okPB, SIGNAL(clicked()),
|
||||
form, SLOT(slotOK()));
|
||||
@ -45,75 +69,212 @@ QCitationDialog::QCitationDialog(QCitation * form)
|
||||
form, SLOT(slotApply()));
|
||||
connect(closePB, SIGNAL(clicked()),
|
||||
form, SLOT(slotClose()));
|
||||
*/
|
||||
// Manage the ok, apply, restore and cancel/close buttons
|
||||
form_->bcview().setOK(okPB);
|
||||
form_->bcview().setApply(applyPB);
|
||||
form_->bcview().setCancel(closePB);
|
||||
form_->bcview().setRestore(restorePB);
|
||||
|
||||
connect( citationStyleCO, SIGNAL( activated(int) ), this, SLOT( changed_adaptor() ) );
|
||||
connect( fulllistCB, SIGNAL( clicked() ), this, SLOT( changed_adaptor() ) );
|
||||
connect( forceuppercaseCB, SIGNAL( clicked() ), this, SLOT( changed_adaptor() ) );
|
||||
connect( textBeforeED, SIGNAL( textChanged(const QString&) ), this, SLOT( changed_adaptor() ) );
|
||||
connect( textAfterED, SIGNAL( textChanged(const QString&) ), this, SLOT( changed_adaptor() ) );
|
||||
connect( upPB, SIGNAL( clicked() ), this, SLOT( up() ) );
|
||||
connect( downPB, SIGNAL( clicked() ), this, SLOT( down() ) );
|
||||
connect( selectedLB, SIGNAL( currentChanged(QListBoxItem*) ), this, SLOT( selectedChanged() ) );
|
||||
connect( addPB, SIGNAL( clicked() ), this, SLOT( add() ) );
|
||||
connect( deletePB, SIGNAL( clicked() ), this, SLOT( del() ) );
|
||||
form_->bcview().addReadOnly(addPB);
|
||||
form_->bcview().addReadOnly(deletePB);
|
||||
form_->bcview().addReadOnly(upPB);
|
||||
form_->bcview().addReadOnly(downPB);
|
||||
form_->bcview().addReadOnly(citationStyleCO);
|
||||
form_->bcview().addReadOnly(forceuppercaseCB);
|
||||
form_->bcview().addReadOnly(fulllistCB);
|
||||
form_->bcview().addReadOnly(textBeforeED);
|
||||
form_->bcview().addReadOnly(textAfterED);
|
||||
|
||||
add_ = new QDialog(this, "", true);
|
||||
ui_.setupUi(add_);
|
||||
selectedLV->setModel(form_->selected());
|
||||
availableLV->setModel(form_->available());
|
||||
|
||||
connect( ui_.addPB, SIGNAL( clicked() ), this, SLOT( accept() ) );
|
||||
connect( ui_.closePB, SIGNAL( clicked() ), this, SLOT( reject() ) );
|
||||
// foundLV.setModel(form_->found());
|
||||
|
||||
connect(ui_.previousPB, SIGNAL(clicked()), this, SLOT(previous()));
|
||||
connect(ui_.nextPB, SIGNAL(clicked()), this, SLOT(next()));
|
||||
connect(ui_.availableLB, SIGNAL(currentChanged(Q3ListBoxItem *)), this, SLOT(availableChanged()));
|
||||
connect(ui_.availableLB, SIGNAL(selected(Q3ListBoxItem *)), this, SLOT(addCitation()));
|
||||
connect(ui_.availableLB, SIGNAL(selected(Q3ListBoxItem *)), add_, SLOT(accept()));
|
||||
connect(ui_.addPB, SIGNAL(clicked()), this, SLOT(addCitation()));
|
||||
connect(selectedLB, SIGNAL(returnPressed(Q3ListBoxItem *)), form, SLOT(slotOK()));
|
||||
connect( citationStyleCO, SIGNAL( activated(int) ), this, SLOT( changed() ) );
|
||||
connect( fulllistCB, SIGNAL( clicked() ), this, SLOT( changed() ) );
|
||||
connect( forceuppercaseCB, SIGNAL( clicked() ), this, SLOT( changed() ) );
|
||||
connect( textBeforeED, SIGNAL( textChanged(const QString&) ), this, SLOT( changed() ) );
|
||||
connect( textAfterED, SIGNAL( textChanged(const QString&) ), this, SLOT( changed() ) );
|
||||
|
||||
|
||||
// find_ = new QCitationFind(form_, this);
|
||||
|
||||
// connect(selectedLV, SIGNAL(doubleClicked(const QModelIndex & index)),
|
||||
// form_, SLOT(on_okPB_clicked()));//SLOT(slotOK()));
|
||||
}
|
||||
|
||||
|
||||
QCitationDialog::~QCitationDialog()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::on_okPB_clicked()
|
||||
{
|
||||
apply(form_->controller().params());
|
||||
accept();
|
||||
}
|
||||
|
||||
void QCitationDialog::on_cancelPB_clicked()
|
||||
{
|
||||
reject();
|
||||
}
|
||||
|
||||
void QCitationDialog::on_applyPB_clicked()
|
||||
{
|
||||
apply(form_->controller().params());
|
||||
}
|
||||
|
||||
void QCitationDialog::on_restorePB_clicked()
|
||||
{
|
||||
form_->update_contents();
|
||||
}
|
||||
|
||||
void QCitationDialog::apply(InsetCommandParams & params)
|
||||
{
|
||||
vector<biblio::CiteStyle> const & styles =
|
||||
ControlCitation::getCiteStyles();
|
||||
|
||||
int const choice = std::max(0, citationStyleCO->currentItem());
|
||||
bool const full = fulllistCB->isChecked();
|
||||
bool const force = forceuppercaseCB->isChecked();
|
||||
|
||||
string const command =
|
||||
biblio::CitationStyle(styles[choice], full, force)
|
||||
.asLatexStr();
|
||||
|
||||
params.setCmdName(command);
|
||||
|
||||
string const before = fromqstr(textBeforeED->text());
|
||||
params.setSecOptions(before);
|
||||
|
||||
string const after = fromqstr(textAfterED->text());
|
||||
params.setOptions(after);
|
||||
|
||||
style_ = choice;
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::update(InsetCommandParams const & params)
|
||||
{
|
||||
// No keys have been selected yet, so...
|
||||
infoML->document()->clear();
|
||||
setButtons();
|
||||
|
||||
textBeforeED->setText(
|
||||
toqstr(params.getSecOptions()));
|
||||
textAfterED->setText(
|
||||
toqstr(params.getOptions()));
|
||||
|
||||
fillStyles();
|
||||
updateStyle();
|
||||
|
||||
// find_->update();
|
||||
}
|
||||
|
||||
void QCitationDialog::updateStyle()
|
||||
{
|
||||
biblio::CiteEngine const engine = form_->controller().getEngine();
|
||||
bool const natbib_engine =
|
||||
engine == biblio::ENGINE_NATBIB_AUTHORYEAR ||
|
||||
engine == biblio::ENGINE_NATBIB_NUMERICAL;
|
||||
bool const basic_engine = engine == biblio::ENGINE_BASIC;
|
||||
|
||||
fulllistCB->setEnabled(natbib_engine);
|
||||
forceuppercaseCB->setEnabled(natbib_engine);
|
||||
textBeforeED->setEnabled(!basic_engine);
|
||||
|
||||
string const & command = form_->controller().params().getCmdName();
|
||||
|
||||
// Find the style of the citekeys
|
||||
vector<biblio::CiteStyle> const & styles =
|
||||
ControlCitation::getCiteStyles();
|
||||
biblio::CitationStyle const cs(command);
|
||||
|
||||
vector<biblio::CiteStyle>::const_iterator cit =
|
||||
std::find(styles.begin(), styles.end(), cs.style);
|
||||
|
||||
// restore the latest natbib style
|
||||
if (style_ >= 0 && style_ < citationStyleCO->count())
|
||||
citationStyleCO->setCurrentItem(style_);
|
||||
else
|
||||
citationStyleCO->setCurrentItem(0);
|
||||
fulllistCB->setChecked(false);
|
||||
forceuppercaseCB->setChecked(false);
|
||||
|
||||
if (cit != styles.end()) {
|
||||
int const i = int(cit - styles.begin());
|
||||
citationStyleCO->setCurrentItem(i);
|
||||
fulllistCB->setChecked(cs.full);
|
||||
forceuppercaseCB->setChecked(cs.forceUCase);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::fillStyles()
|
||||
{
|
||||
if (citekeys.empty()) {
|
||||
citationStyleCO->setEnabled(false);
|
||||
citationStyleLA->setEnabled(false);
|
||||
return;
|
||||
}
|
||||
|
||||
int const orig = citationStyleCO->currentItem();
|
||||
|
||||
citationStyleCO->clear();
|
||||
|
||||
QStringList selected_keys = form_->selected()->stringList();
|
||||
if (selected_keys.empty())
|
||||
return;
|
||||
|
||||
if (selectedLV->selectionModel()->selectedIndexes().empty())
|
||||
return;
|
||||
|
||||
int curr = selectedLV->selectionModel()->selectedIndexes()[0].row();//selectedLV->currentItem();
|
||||
|
||||
string key = fromqstr(selected_keys[curr]);
|
||||
|
||||
vector<string> const & sty = form_->controller().getCiteStrings(key);
|
||||
|
||||
biblio::CiteEngine const engine = form_->controller().getEngine();
|
||||
bool const basic_engine = engine == biblio::ENGINE_BASIC;
|
||||
|
||||
citationStyleCO->setEnabled(!sty.empty() && !basic_engine);
|
||||
citationStyleLA->setEnabled(!sty.empty() && !basic_engine);
|
||||
|
||||
for (vector<string>::const_iterator it = sty.begin();
|
||||
it != sty.end(); ++it) {
|
||||
citationStyleCO->insertItem(toqstr(*it));
|
||||
}
|
||||
|
||||
if (orig != -1 && orig < citationStyleCO->count())
|
||||
citationStyleCO->setCurrentItem(orig);
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::setButtons()
|
||||
{
|
||||
if (form_->readOnly())
|
||||
return;
|
||||
|
||||
int const sel_nr = selectedLB->currentItem();
|
||||
int const avail_nr = ui_.availableLB->currentItem();
|
||||
int const row_count = selectedLV->model()->rowCount();
|
||||
|
||||
int sel_nr=-1;
|
||||
if (! selectedLV->selectionModel()->selectedIndexes().empty()) {
|
||||
sel_nr =
|
||||
selectedLV->selectionModel()->selectedIndexes()[0].row();
|
||||
}
|
||||
|
||||
ui_.addPB->setEnabled(avail_nr >= 0);
|
||||
deletePB->setEnabled(sel_nr >= 0);
|
||||
upPB->setEnabled(sel_nr > 0);
|
||||
downPB->setEnabled(sel_nr >= 0 && sel_nr < int(selectedLB->count() - 1));
|
||||
downPB->setEnabled(sel_nr >= 0 && sel_nr < row_count - 1);
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::openFind()
|
||||
/*
|
||||
void QCitationDialog::on_selectedLV_currentChanged(Q3ListBoxItem*)
|
||||
{
|
||||
if (form_->readOnly())
|
||||
return;
|
||||
|
||||
if (isVisible() && selectedLB->count() == 0
|
||||
&& ui_.availableLB->count() != 0){
|
||||
// open the find dialog
|
||||
add();
|
||||
// and let the user press ok after a selection
|
||||
if (selectedLB->count() != 0)
|
||||
form_->bc().valid();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::selectedChanged()
|
||||
{
|
||||
form_->fillStyles();
|
||||
biblio::InfoMap const & theMap = form_->controller().bibkeysInfo();
|
||||
infoML->clear();
|
||||
fillStyles();
|
||||
infoML->document()->clear();
|
||||
|
||||
int const sel = selectedLB->currentItem();
|
||||
if (sel < 0) {
|
||||
@ -121,187 +282,189 @@ void QCitationDialog::selectedChanged()
|
||||
return;
|
||||
}
|
||||
|
||||
if (!theMap.empty())
|
||||
infoML->setText(
|
||||
toqstr(biblio::getInfo(theMap, form_->citekeys[sel])));
|
||||
infoML->document()->setPlainText(form_->getKeyInfo(sel));
|
||||
|
||||
setButtons();
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
void QCitationDialog::on_addPB_clicked()
|
||||
{
|
||||
form_->addKeys(availableLV->selectionModel()->selectedIndexes());
|
||||
}
|
||||
|
||||
void QCitationDialog::on_deletePB_clicked()
|
||||
{
|
||||
form_->addKeys(selectedLV->selectionModel()->selectedIndexes());
|
||||
changed();
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::on_upPB_clicked()
|
||||
{
|
||||
form_->upKey(selectedLV->selectionModel()->selectedIndexes());
|
||||
changed();
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::on_downPB_clicked()
|
||||
{
|
||||
form_->downKey(selectedLV->selectionModel()->selectedIndexes());
|
||||
changed();
|
||||
}
|
||||
|
||||
void QCitationDialog::on_findLE_textChanged(const QString & text)
|
||||
{
|
||||
QModelIndex const index = form_->findKey(text);
|
||||
if (! index.isValid())
|
||||
return;
|
||||
// QItemSelection selection(index, index);
|
||||
availableLV->selectionModel()->select(index, QItemSelectionModel::Select);
|
||||
changed();
|
||||
}
|
||||
|
||||
void QCitationDialog::on_advancedSearchPB_clicked()
|
||||
{
|
||||
// find_->exec();
|
||||
changed();
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::changed()
|
||||
{
|
||||
fillStyles();
|
||||
setButtons();
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::previous()
|
||||
|
||||
QCitationFind::QCitationFind(QCitation * form, QWidget * parent, Qt::WFlags f)
|
||||
: form_(form), QDialog(parent, f)
|
||||
{
|
||||
setupUi(this);
|
||||
connect(addPB, SIGNAL(clicked()), this, SLOT(accept()));
|
||||
connect(closePB, SIGNAL(clicked()), this, SLOT(reject()));
|
||||
connect(previousPB, SIGNAL(clicked()), this, SLOT(previous()));
|
||||
connect(nextPB, SIGNAL(clicked()), this, SLOT(next()));
|
||||
}
|
||||
|
||||
void QCitationFind::update()
|
||||
{
|
||||
// updateBrowser(availableLB, form_->availableKeys());
|
||||
}
|
||||
|
||||
void QCitationFind::on_availableLB_currentChanged(Q3ListBoxItem *)
|
||||
{
|
||||
infoML->document()->clear();
|
||||
|
||||
int const sel = availableLB->currentItem();
|
||||
if (sel < 0) {
|
||||
addPB->setEnabled(false);
|
||||
return;
|
||||
}
|
||||
|
||||
addPB->setEnabled(true);
|
||||
// infoML->document()->setPlainText(form_->getKeyInfo(sel));
|
||||
}
|
||||
|
||||
|
||||
void QCitationFind::on_availableLB_selected(Q3ListBoxItem *)
|
||||
{
|
||||
int const sel = availableLB->currentItem();
|
||||
foundkeys.clear();
|
||||
// foundkeys.push_back(form_->availableKeys()[sel]);
|
||||
emit newCitations();
|
||||
accept();
|
||||
}
|
||||
|
||||
void QCitationFind::on_addPB_clicked()
|
||||
{
|
||||
// form_->addKeys(availableLB->selectionModel()->selectedIndexes());
|
||||
|
||||
int const sel = availableLB->currentItem();
|
||||
|
||||
if (sel < 0)
|
||||
return;
|
||||
|
||||
QStringList bibkeys = form_->available()->stringList();
|
||||
|
||||
// Add the selected browser_bib keys to browser_cite
|
||||
// multiple selections are possible
|
||||
for (unsigned int i = 0; i != availableLB->count(); i++) {
|
||||
if (availableLB->isSelected(i)) {
|
||||
foundkeys.push_back(fromqstr(bibkeys[i]));
|
||||
}
|
||||
}
|
||||
|
||||
emit newCitations();
|
||||
accept();
|
||||
}
|
||||
|
||||
|
||||
void QCitationFind::previous()
|
||||
{
|
||||
find(biblio::BACKWARD);
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::next()
|
||||
void QCitationFind::next()
|
||||
{
|
||||
find(biblio::FORWARD);
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::availableChanged()
|
||||
void QCitationFind::find(biblio::Direction dir)
|
||||
{
|
||||
biblio::InfoMap const & theMap = form_->controller().bibkeysInfo();
|
||||
ui_.infoML->clear();
|
||||
/* QStringList bibkeys = form_->available()->stringList();
|
||||
|
||||
int const sel = ui_.availableLB->currentItem();
|
||||
if (sel < 0) {
|
||||
setButtons();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!theMap.empty())
|
||||
ui_.infoML->setText(
|
||||
toqstr(biblio::getInfo(theMap, form_->bibkeys[sel])));
|
||||
setButtons();
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::addCitation()
|
||||
{
|
||||
int const sel = ui_.availableLB->currentItem();
|
||||
|
||||
if (sel < 0)
|
||||
return;
|
||||
|
||||
// Add the selected browser_bib keys to browser_cite
|
||||
// multiple selections are possible
|
||||
for (unsigned int i = 0; i != ui_.availableLB->count(); i++) {
|
||||
if (ui_.availableLB->isSelected(i)) {
|
||||
// do not allow duplicates
|
||||
if ((selectedLB->findItem(ui_.availableLB->text(i))) == 0) {
|
||||
selectedLB->insertItem(toqstr(form_->bibkeys[i]));
|
||||
form_->citekeys.push_back(form_->bibkeys[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int const n = int(form_->citekeys.size());
|
||||
selectedLB->setSelected(n - 1, true);
|
||||
|
||||
form_->changed();
|
||||
form_->fillStyles();
|
||||
setButtons();
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::del()
|
||||
{
|
||||
int const sel = selectedLB->currentItem();
|
||||
|
||||
// Remove the selected key from browser_cite
|
||||
selectedLB->removeItem(sel);
|
||||
form_->citekeys.erase(form_->citekeys.begin() + sel);
|
||||
|
||||
form_->changed();
|
||||
form_->fillStyles();
|
||||
setButtons();
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::up()
|
||||
{
|
||||
int const sel = selectedLB->currentItem();
|
||||
|
||||
// Move the selected key up one line
|
||||
vector<string>::iterator it = form_->citekeys.begin() + sel;
|
||||
string const tmp = *it;
|
||||
|
||||
selectedLB->removeItem(sel);
|
||||
form_->citekeys.erase(it);
|
||||
|
||||
selectedLB->insertItem(toqstr(tmp), sel - 1);
|
||||
selectedLB->setSelected(sel - 1, true);
|
||||
form_->citekeys.insert(it - 1, tmp);
|
||||
|
||||
form_->changed();
|
||||
form_->fillStyles();
|
||||
setButtons();
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::down()
|
||||
{
|
||||
int const sel = selectedLB->currentItem();
|
||||
|
||||
// Move the selected key down one line
|
||||
vector<string>::iterator it = form_->citekeys.begin() + sel;
|
||||
string const tmp = *it;
|
||||
|
||||
selectedLB->removeItem(sel);
|
||||
form_->citekeys.erase(it);
|
||||
|
||||
selectedLB->insertItem(toqstr(tmp), sel + 1);
|
||||
selectedLB->setSelected(sel + 1, true);
|
||||
form_->citekeys.insert(it + 1, tmp);
|
||||
|
||||
form_->changed();
|
||||
form_->fillStyles();
|
||||
setButtons();
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::add()
|
||||
{
|
||||
add_->exec();
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::changed_adaptor()
|
||||
{
|
||||
form_->changed();
|
||||
}
|
||||
|
||||
|
||||
void QCitationDialog::find(biblio::Direction dir)
|
||||
{
|
||||
biblio::InfoMap const & theMap = form_->controller().bibkeysInfo();
|
||||
|
||||
biblio::Search const type = ui_.searchTypeCB->isChecked()
|
||||
biblio::Search const type = searchTypeCB->isChecked()
|
||||
? biblio::REGEX : biblio::SIMPLE;
|
||||
|
||||
vector<string>::const_iterator start = form_->bibkeys.begin();
|
||||
int const sel = ui_.availableLB->currentItem();
|
||||
if (sel >= 0 && sel <= int(form_->bibkeys.size()-1))
|
||||
vector<string>::const_iterator start = bibkeys.begin();
|
||||
int const sel = availableLB->currentItem();
|
||||
if (sel >= 0 && sel <= int(bibkeys.size()-1))
|
||||
start += sel;
|
||||
|
||||
// Find the NEXT instance...
|
||||
if (dir == biblio::FORWARD)
|
||||
start += 1;
|
||||
|
||||
bool const casesens = ui_.searchCaseCB->isChecked();
|
||||
string const str = fromqstr(ui_.searchED->text());
|
||||
bool const casesens = searchCaseCB->isChecked();
|
||||
string const str = fromqstr(searchED->text());
|
||||
|
||||
vector<string>::const_iterator cit =
|
||||
biblio::searchKeys(theMap, form_->bibkeys, str,
|
||||
biblio::searchKeys(theMap, bibkeys, str,
|
||||
start, type, dir, casesens);
|
||||
|
||||
// not found. let's loop round
|
||||
if (cit == form_->bibkeys.end()) {
|
||||
if (cit == bibkeys.end()) {
|
||||
if (dir == biblio::FORWARD) {
|
||||
start = form_->bibkeys.begin();
|
||||
start = bibkeys.begin();
|
||||
}
|
||||
else start = form_->bibkeys.end() - 1;
|
||||
else start = bibkeys.end() - 1;
|
||||
|
||||
cit = biblio::searchKeys(theMap, form_->bibkeys, str,
|
||||
cit = biblio::searchKeys(theMap, bibkeys, str,
|
||||
start, type, dir, casesens);
|
||||
|
||||
if (cit == form_->bibkeys.end())
|
||||
if (cit == bibkeys.end())
|
||||
return;
|
||||
}
|
||||
|
||||
int const found = int(cit - form_->bibkeys.begin());
|
||||
int const found = int(cit - bibkeys.begin());
|
||||
if (found == sel) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Update the display
|
||||
// note that we have multi selection mode!
|
||||
ui_.availableLB->setSelected(sel, false);
|
||||
ui_.availableLB->setSelected(found, true);
|
||||
ui_.availableLB->setCurrentItem(found);
|
||||
ui_.availableLB->ensureCurrentVisible();
|
||||
availableLB->setSelected(sel, false);
|
||||
availableLB->setSelected(found, true);
|
||||
availableLB->setCurrentItem(found);
|
||||
availableLB->ensureCurrentVisible();
|
||||
*/
|
||||
}
|
||||
|
||||
} // namespace frontend
|
||||
|
@ -15,12 +15,20 @@
|
||||
#include "ui/QCitationUi.h"
|
||||
#include "ui/QCitationFindUi.h"
|
||||
#include "controllers/biblio.h"
|
||||
|
||||
#include <QDialog>
|
||||
#include <vector>
|
||||
|
||||
class Q3ListBox;
|
||||
class Q3ListBoxItem;
|
||||
|
||||
class InsetCommandParams;
|
||||
|
||||
namespace lyx {
|
||||
namespace frontend {
|
||||
|
||||
class QCitation;
|
||||
class QCitationFind;
|
||||
|
||||
class QCitationDialog : public QDialog, public Ui::QCitationUi {
|
||||
Q_OBJECT
|
||||
@ -30,29 +38,82 @@ public:
|
||||
|
||||
~QCitationDialog();
|
||||
|
||||
void update(InsetCommandParams const & params);
|
||||
void apply(InsetCommandParams & params);
|
||||
|
||||
// virtual bool isValid();
|
||||
|
||||
protected slots:
|
||||
|
||||
// void on_selectedLB_currentChanged(Q3ListBoxItem*);
|
||||
|
||||
void on_okPB_clicked();
|
||||
void on_cancelPB_clicked();
|
||||
void on_restorePB_clicked();
|
||||
void on_applyPB_clicked();
|
||||
void on_addPB_clicked();
|
||||
|
||||
void on_deletePB_clicked();
|
||||
void on_upPB_clicked();
|
||||
void on_downPB_clicked();
|
||||
void on_findLE_textChanged(const QString & text);
|
||||
void on_advancedSearchPB_clicked();
|
||||
|
||||
virtual void changed();
|
||||
|
||||
private:
|
||||
void setButtons();
|
||||
/// open the find dialog if nothing selected
|
||||
void openFind();
|
||||
|
||||
Ui::QCitationFindUi ui_;
|
||||
QDialog * add_;
|
||||
/// fill the styles combo
|
||||
void fillStyles();
|
||||
|
||||
/// set the styles combo
|
||||
void updateStyle();
|
||||
|
||||
/// check if apply has been pressed
|
||||
bool open_find_;
|
||||
|
||||
/// selected keys
|
||||
std::vector<std::string> citekeys;
|
||||
|
||||
/// selected natbib style
|
||||
int style_;
|
||||
|
||||
QCitation * form_;
|
||||
QCitationFind * find_;
|
||||
};
|
||||
|
||||
|
||||
class QCitationFind: public QDialog, public Ui::QCitationFindUi {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QCitationFind(QCitation * form, QWidget * parent = 0, Qt::WFlags f = 0);
|
||||
|
||||
void update();
|
||||
|
||||
std::vector<std::string> const & foundCitations()
|
||||
{ return foundkeys; }
|
||||
|
||||
signals:
|
||||
void newCitations();
|
||||
|
||||
protected slots:
|
||||
|
||||
virtual void availableChanged();
|
||||
virtual void selectedChanged();
|
||||
virtual void up();
|
||||
virtual void down();
|
||||
virtual void del();
|
||||
virtual void addCitation();
|
||||
virtual void add();
|
||||
void on_availableLB_currentChanged(Q3ListBoxItem *);
|
||||
void on_availableLB_selected(Q3ListBoxItem *);
|
||||
void on_addPB_clicked();
|
||||
virtual void previous();
|
||||
virtual void next();
|
||||
virtual void changed_adaptor();
|
||||
|
||||
private:
|
||||
void find(biblio::Direction dir);
|
||||
|
||||
/// selected keys
|
||||
std::vector<std::string> foundkeys;
|
||||
|
||||
QCitation * form_;
|
||||
};
|
||||
|
||||
|
@ -84,7 +84,7 @@ QLayoutBox::QLayoutBox(QToolBar * toolbar, QtView & owner)
|
||||
combo_->setSizeAdjustPolicy(QComboBox::AdjustToContents);
|
||||
combo_->setFocusPolicy(Qt::ClickFocus);
|
||||
combo_->setMinimumWidth(combo_->sizeHint().width());
|
||||
combo_->setMaxVisibleItems(30);
|
||||
combo_->setMaxVisibleItems(100);
|
||||
|
||||
QObject::connect(combo_, SIGNAL(activated(const QString &)),
|
||||
this, SLOT(selected(const QString &)));
|
||||
|
@ -1,287 +1,272 @@
|
||||
<ui version="4.0" stdsetdef="1" >
|
||||
<author></author>
|
||||
<comment></comment>
|
||||
<exportmacro></exportmacro>
|
||||
<class>QCitationFindUi</class>
|
||||
<widget class="QDialog" name="QCitationFind" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>375</width>
|
||||
<height>257</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>1</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>LyX: Add Citation</string>
|
||||
</property>
|
||||
<property name="sizeGripEnabled" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>11</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item rowspan="2" row="0" column="0" colspan="1" >
|
||||
<layout class="QVBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="Q3ListBox" name="availableLB" >
|
||||
<property name="vScrollBarMode" >
|
||||
<enum>Q3ScrollView::AlwaysOn</enum>
|
||||
</property>
|
||||
<property name="hScrollBarMode" >
|
||||
<enum>Q3ScrollView::AlwaysOff</enum>
|
||||
</property>
|
||||
<property name="selectionMode" >
|
||||
<enum>Q3ListBox::Extended</enum>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Available bibliography keys</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>New Item</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item rowspan="1" row="0" column="1" colspan="3" >
|
||||
<widget class="Q3MultiLineEdit" name="infoML" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>7</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="focusPolicy" >
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="wordWrap" >
|
||||
<enum>WidgetWidth</enum>
|
||||
</property>
|
||||
<property name="readOnly" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Bibliography entry</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" >
|
||||
<spacer name="Spacer4" >
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>Expanding</enum>
|
||||
</property>
|
||||
<property name="orientation" >
|
||||
<enum>Horizontal</enum>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="3" >
|
||||
<widget class="QPushButton" name="closePB" >
|
||||
<property name="text" >
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2" >
|
||||
<widget class="QPushButton" name="addPB" >
|
||||
<property name="text" >
|
||||
<string>&Add</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="default" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item rowspan="1" row="1" column="1" colspan="3" >
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="2" column="1" >
|
||||
<widget class="QPushButton" name="previousPB" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Previous</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item rowspan="1" row="1" column="0" colspan="2" >
|
||||
<widget class="QLineEdit" name="searchED" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>7</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Browse the available bibliography entries</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<widget class="QCheckBox" name="searchCaseCB" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>1</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Case &sensitive</string>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Make the search case-sensitive</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1" >
|
||||
<widget class="QPushButton" name="nextPB" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Next</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<number>276824142</number>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" >
|
||||
<layout class="QHBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="TextLabel1" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Find:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>searchED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="Spacer5" >
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>Expanding</enum>
|
||||
</property>
|
||||
<property name="orientation" >
|
||||
<enum>Horizontal</enum>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0" >
|
||||
<widget class="QCheckBox" name="searchTypeCB" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>1</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Regular Expression</string>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Interpret search entry as a regular expression</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<ui version="4.0" >
|
||||
<author></author>
|
||||
<comment></comment>
|
||||
<exportmacro></exportmacro>
|
||||
<class>QCitationFindUi</class>
|
||||
<widget class="QDialog" name="QCitationFindUi" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>375</width>
|
||||
<height>257</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>1</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>LyX: Add Citation</string>
|
||||
</property>
|
||||
<property name="sizeGripEnabled" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>11</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item rowspan="2" row="0" column="0" >
|
||||
<layout class="QVBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="Q3ListBox" name="availableLB" >
|
||||
<property name="toolTip" >
|
||||
<string>Available bibliography keys</string>
|
||||
</property>
|
||||
<property name="vScrollBarMode" >
|
||||
<enum>Q3ScrollView::AlwaysOn</enum>
|
||||
</property>
|
||||
<property name="hScrollBarMode" >
|
||||
<enum>Q3ScrollView::AlwaysOff</enum>
|
||||
</property>
|
||||
<property name="selectionMode" >
|
||||
<enum>Q3ListBox::Extended</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
|
||||
<tabstops>
|
||||
<tabstop>availableLB</tabstop>
|
||||
<tabstop>searchED</tabstop>
|
||||
<tabstop>searchCaseCB</tabstop>
|
||||
<tabstop>searchTypeCB</tabstop>
|
||||
<tabstop>previousPB</tabstop>
|
||||
<tabstop>nextPB</tabstop>
|
||||
<tabstop>addPB</tabstop>
|
||||
<tabstop>closePB</tabstop>
|
||||
</tabstops>
|
||||
</item>
|
||||
<item row="2" column="1" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="3" >
|
||||
<widget class="QPushButton" name="closePB" >
|
||||
<property name="text" >
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2" >
|
||||
<widget class="QPushButton" name="addPB" >
|
||||
<property name="text" >
|
||||
<string>&Add</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="default" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="3" >
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="2" column="1" >
|
||||
<widget class="QPushButton" name="previousPB" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Previous</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2" >
|
||||
<widget class="QLineEdit" name="searchED" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>7</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Browse the available bibliography entries</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<widget class="QCheckBox" name="searchCaseCB" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>1</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Make the search case-sensitive</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Case &sensitive</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1" >
|
||||
<widget class="QPushButton" name="nextPB" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Next</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<number>276824142</number>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" >
|
||||
<layout class="QHBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="TextLabel1" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Find:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>searchED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0" >
|
||||
<widget class="QCheckBox" name="searchTypeCB" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>1</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Interpret search entry as a regular expression</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Regular Expression</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="3" >
|
||||
<widget class="QTextEdit" name="infoML" />
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>Q3ListBox</class>
|
||||
<extends></extends>
|
||||
<header>q3listbox.h</header>
|
||||
<container>0</container>
|
||||
<pixmap></pixmap>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>availableLB</tabstop>
|
||||
<tabstop>searchED</tabstop>
|
||||
<tabstop>searchCaseCB</tabstop>
|
||||
<tabstop>searchTypeCB</tabstop>
|
||||
<tabstop>previousPB</tabstop>
|
||||
<tabstop>nextPB</tabstop>
|
||||
<tabstop>addPB</tabstop>
|
||||
<tabstop>closePB</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
@ -1,379 +1,412 @@
|
||||
<ui version="4.0" stdsetdef="1" >
|
||||
<author></author>
|
||||
<comment></comment>
|
||||
<exportmacro></exportmacro>
|
||||
<class>QCitationUi</class>
|
||||
<widget class="QDialog" name="QCitation" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>310</height>
|
||||
</rect>
|
||||
<ui version="4.0" >
|
||||
<author></author>
|
||||
<comment></comment>
|
||||
<exportmacro></exportmacro>
|
||||
<class>QCitationUi</class>
|
||||
<widget class="QDialog" name="QCitationUi" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>401</width>
|
||||
<height>457</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>1</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string/>
|
||||
</property>
|
||||
<property name="sizeGripEnabled" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>320</x>
|
||||
<y>20</y>
|
||||
<width>79</width>
|
||||
<height>118</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>1</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="2" column="0" >
|
||||
<widget class="QPushButton" name="applyPB" >
|
||||
<property name="text" >
|
||||
<string>A&pply</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QPushButton" name="closePB" >
|
||||
<property name="text" >
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" >
|
||||
<widget class="QPushButton" name="restorePB" >
|
||||
<property name="text" >
|
||||
<string>&Restore</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" >
|
||||
<widget class="QPushButton" name="okPB" >
|
||||
<property name="text" >
|
||||
<string>&OK</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="default" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="GroupBox8" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>220</y>
|
||||
<width>201</width>
|
||||
<height>156</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title" >
|
||||
<string>Style</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>11</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="citationStyleLA" >
|
||||
<property name="text" >
|
||||
<string>Citation &style:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>citationStyleCO</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<widget class="QComboBox" name="citationStyleCO" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string/>
|
||||
</property>
|
||||
<property name="sizeGripEnabled" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>11</number>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
<property name="toolTip" >
|
||||
<string>Natbib citation style to use</string>
|
||||
</property>
|
||||
<item row="0" column="1" >
|
||||
<widget class="Q3MultiLineEdit" name="infoML" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>5</hsizetype>
|
||||
<vsizetype>7</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="focusPolicy" >
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="wordWrap" >
|
||||
<enum>WidgetWidth</enum>
|
||||
</property>
|
||||
<property name="readOnly" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Bibliography entry</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item rowspan="2" row="0" column="0" colspan="1" >
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="2" column="2" >
|
||||
<widget class="QPushButton" name="downPB" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<pixmap>image0</pixmap>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Move the selected citation down</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item rowspan="3" row="1" column="0" colspan="2" >
|
||||
<widget class="Q3ListBox" name="selectedLB" >
|
||||
<property name="vScrollBarMode" >
|
||||
<enum>Q3ScrollView::AlwaysOn</enum>
|
||||
</property>
|
||||
<property name="hScrollBarMode" >
|
||||
<enum>Q3ScrollView::AlwaysOff</enum>
|
||||
</property>
|
||||
<property name="selectionMode" >
|
||||
<enum>Q3ListBox::Single</enum>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Citations currently selected</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>New Item</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item rowspan="1" row="4" column="1" colspan="2" >
|
||||
<widget class="QPushButton" name="deletePB" >
|
||||
<property name="text" >
|
||||
<string>D&elete</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2" >
|
||||
<widget class="QPushButton" name="upPB" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<pixmap>image1</pixmap>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Move the selected citation up</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item rowspan="1" row="0" column="0" colspan="3" >
|
||||
<widget class="QLabel" name="insetKeysLA" >
|
||||
<property name="text" >
|
||||
<string>&Citations:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>selectedLB</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" >
|
||||
<widget class="QPushButton" name="addPB" >
|
||||
<property name="text" >
|
||||
<string>&Add...</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2" >
|
||||
<spacer name="Spacer14" >
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>Expanding</enum>
|
||||
</property>
|
||||
<property name="orientation" >
|
||||
<enum>Vertical</enum>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item rowspan="1" row="2" column="0" colspan="2" >
|
||||
<layout class="QHBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QPushButton" name="restorePB" >
|
||||
<property name="text" >
|
||||
<string>&Restore</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="Spacer4" >
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>Expanding</enum>
|
||||
</property>
|
||||
<property name="orientation" >
|
||||
<enum>Horizontal</enum>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="okPB" >
|
||||
<property name="text" >
|
||||
<string>&OK</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="default" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="applyPB" >
|
||||
<property name="text" >
|
||||
<string>A&pply</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="closePB" >
|
||||
<property name="text" >
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QGroupBox" name="GroupBox8" >
|
||||
<property name="title" >
|
||||
<string>Style</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>11</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="citationStyleLA" >
|
||||
<property name="text" >
|
||||
<string>Citation &style:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>citationStyleCO</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<widget class="QComboBox" name="citationStyleCO" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Natbib citation style to use</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item rowspan="1" row="4" column="0" colspan="2" >
|
||||
<widget class="QCheckBox" name="forceuppercaseCB" >
|
||||
<property name="text" >
|
||||
<string>Force &upper case</string>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Force upper case in citation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<widget class="QLabel" name="textAfterLA" >
|
||||
<property name="text" >
|
||||
<string>&Text after:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>textAfterED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" >
|
||||
<widget class="QLineEdit" name="textAfterED" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>5</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Text to place after citation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QLineEdit" name="textBeforeED" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>5</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Text to place before citation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QLabel" name="textBeforeLA" >
|
||||
<property name="text" >
|
||||
<string>Text &before:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>textAfterED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item rowspan="1" row="3" column="0" colspan="2" >
|
||||
<widget class="QCheckBox" name="fulllistCB" >
|
||||
<property name="text" >
|
||||
<string>&Full author list</string>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>List all authors</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2" >
|
||||
<widget class="QCheckBox" name="forceuppercaseCB" >
|
||||
<property name="toolTip" >
|
||||
<string>Force upper case in citation</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Force &upper case</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" >
|
||||
<widget class="QLabel" name="textAfterLA" >
|
||||
<property name="text" >
|
||||
<string>&Text after:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>textAfterED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" >
|
||||
<widget class="QLineEdit" name="textAfterED" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>5</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Text to place after citation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QLineEdit" name="textBeforeED" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>5</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Text to place before citation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QLabel" name="textBeforeLA" >
|
||||
<property name="text" >
|
||||
<string>Text &before:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>textAfterED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2" >
|
||||
<widget class="QCheckBox" name="fulllistCB" >
|
||||
<property name="toolTip" >
|
||||
<string>List all authors</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Full author list</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<pixmapfunction></pixmapfunction>
|
||||
<tabstops>
|
||||
<tabstop>selectedLB</tabstop>
|
||||
<tabstop>upPB</tabstop>
|
||||
<tabstop>downPB</tabstop>
|
||||
<tabstop>addPB</tabstop>
|
||||
<tabstop>deletePB</tabstop>
|
||||
<tabstop>citationStyleCO</tabstop>
|
||||
<tabstop>textBeforeED</tabstop>
|
||||
<tabstop>textAfterED</tabstop>
|
||||
<tabstop>fulllistCB</tabstop>
|
||||
<tabstop>forceuppercaseCB</tabstop>
|
||||
<tabstop>restorePB</tabstop>
|
||||
<tabstop>okPB</tabstop>
|
||||
<tabstop>applyPB</tabstop>
|
||||
<tabstop>closePB</tabstop>
|
||||
</tabstops>
|
||||
<images>
|
||||
<image name="image0" >
|
||||
<data format="XPM.GZ" length="1337" >789ca5d2cb6ee2301480e13d4f11c10e8da6101293a89a45e9fd02a59745a5aa0bc7760ab4909424b4a1eabbd7e71c9b409559d562914fbf8d4dcc5edb79180f9df65e23cb793e158e98f0a5d396c57c5e3e3efdfb6c345dd7d11f2f70bacd3f8de65f4738a364a1e059e9e7560707b0850c7ac27781d744cf63c80b43c138b024f6fdd003ae0c43e288188611f2c45046129811235720ef0c193131e4c46343257d6041142ef114d8ed301944c017a23dd587a10c05f01c19b06e1f279f19fa410f288981cf71ed3dd1eebb24da7d5343538f806e27e2c4055130e21019dab5b7c05ed7324786924bbc140ef45dce05d60324b7efea90a8bf1927df001997ae62c035b0dfb3c778230a45754eb49367c020928c3801869ead0343ae70a367a4b093a740ee4945758cd4fbc458df8191548c780514bee2c44b62ecc6313002ca4d8d81b092aa00c61bbe2271e09fb976fcb2b4cca8293c1242ffae9a123f4fa6b397baf23a5f24697d795b66f97f4a91e5abdd42877ad725fd50386c51e57a7dc0078747d9f1c9eaf4ecfc625374ba8caf06c324cb92341d5dabad7d5439beb9d5212b720ad509742a92adb07536487755d83eb54ef755d879d7aa9c5561f7165459851ff7a3aaf0db3bfd59bef61bdf12452a24</data>
|
||||
</image>
|
||||
<image name="image1" >
|
||||
<data format="XPM.GZ" length="2333" >789cc5d4c96edb301006e0bb9f42086f413191686d44d143f67ddf53f4409192b7388be3c4498abe7ba99911112768e34b5133877ce63f143779613eb838d80de6175a0f633dee99c074f52898b78fc3e1cbf71fdf7eb6e6a40cdc5f960572ee4b6bee701c9860eff6a6ac01a18308f1838ebc73b464c7ec2b761e515eb30d7bc59bf2961c85643160c712f3a260e752613e43e791610b72db243879b821c761a2d16376cc7e699c52fe926dc8a2ef4df92e3909d9176c9b15e87372aaf236d677d836a7fe5d7216b1cfd84ac5e823b65506bd4cce23f6035b69caefb02d7be84df953b2b205f55f930b6912f4c8dba237d92959e079456116f1fc5276c2ee905542e38b8aac9382c6db2217a5a5e73d918d644fd8dad2fd5a42fbe7c3335bb3efc996f3a2575b867e3f37c8fe7909d94a1e7f0fad9af3135db6caf0bce090eccfcbd46e47beff84ece71fb353f61dbb59cf23d93fff18ad7449fb2f4ab2dfff6d7229cb14fbf13ec751635864a7ec03b4f6f35d2737fb25f07d4ab4df8ffddaa96cee9700b29fef2a5aeb88cfefb576d6568aef4fc16eee13ee7f563853fe96ecebdb645b96343eae376f37eb873572333f61c86ebd94c7f73f2f6cb37e452ed38a9cd736b6925585c6fb674b6f7c7f2bfcd08fd9eced7fe541809e3defd20518b0b3e55dba840a3ad0fd58f131efd23de8c300ae610837ef2bdee75dfa16d377700f237880f174c574dea71fe10926aee2d955bcbcad789b77e9571efbc98d3d72158bb004cb6e562b1ff32ebdea56b906ebb0019b98df7215dbb003bb6e567a3aefd27bb00f07700847700c2758318153388373b8804bd77f35950f21c226dd7f036843ecf209a490b96feaef4308ffb89f3928013012426851ccb0ff7dcabbd5a6b3e585c1fcfd8ce3e7c28a525430119d59f2a22b7a2e59b7be187c9a9760c5801aac40f459feefed9fe77f7d6dfd06af616644</data>
|
||||
</image>
|
||||
</images>
|
||||
<widget class="QPushButton" name="downPB" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>140</x>
|
||||
<y>110</y>
|
||||
<width>41</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Move the selected citation down</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Down</string>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<iconset/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="upPB" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>140</x>
|
||||
<y>80</y>
|
||||
<width>41</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string>Move the selected citation up</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Up</string>
|
||||
</property>
|
||||
<property name="icon" >
|
||||
<iconset/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="deletePB" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>140</x>
|
||||
<y>50</y>
|
||||
<width>41</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>D&elete</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="addPB" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>140</x>
|
||||
<y>20</y>
|
||||
<width>41</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="toolTip" >
|
||||
<string/>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Add</string>
|
||||
</property>
|
||||
<property name="autoDefault" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="selectedKeysLA" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>0</y>
|
||||
<width>111</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Citations to insert:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>selectedLV</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="availableKeysLA" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>190</x>
|
||||
<y>0</y>
|
||||
<width>111</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Available Citations:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>selectedLB</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="findKeysLA" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>160</x>
|
||||
<y>206</y>
|
||||
<width>23</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Find:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>selectedLV</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="advancedSearchPB" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>260</x>
|
||||
<y>240</y>
|
||||
<width>111</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Advanced &Search...</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextEdit" name="infoML" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>380</y>
|
||||
<width>371</width>
|
||||
<height>71</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="documentTitle" >
|
||||
<string>Citation Information</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QListView" name="selectedLV" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>20</y>
|
||||
<width>120</width>
|
||||
<height>181</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QListView" name="availableLV" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>190</x>
|
||||
<y>20</y>
|
||||
<width>120</width>
|
||||
<height>181</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="findLE" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>190</x>
|
||||
<y>204</y>
|
||||
<width>120</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<pixmapfunction></pixmapfunction>
|
||||
<tabstops>
|
||||
<tabstop>upPB</tabstop>
|
||||
<tabstop>downPB</tabstop>
|
||||
<tabstop>addPB</tabstop>
|
||||
<tabstop>deletePB</tabstop>
|
||||
<tabstop>citationStyleCO</tabstop>
|
||||
<tabstop>textBeforeED</tabstop>
|
||||
<tabstop>textAfterED</tabstop>
|
||||
<tabstop>fulllistCB</tabstop>
|
||||
<tabstop>forceuppercaseCB</tabstop>
|
||||
<tabstop>restorePB</tabstop>
|
||||
<tabstop>okPB</tabstop>
|
||||
<tabstop>applyPB</tabstop>
|
||||
<tabstop>closePB</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
Loading…
Reference in New Issue
Block a user