38 #include <ui_klflibentryeditor.h> 46 :
QWidget(parent), pInputEnabled(true)
48 u =
new Ui::KLFLibEntryEditor;
50 setAutoFillBackground(
false);
56 u->cbxCategory->setInsertPolicy(QComboBox::InsertAlphabetically);
57 u->cbxCategory->setDuplicatesEnabled(
false);
58 u->cbxTags->setInsertPolicy(QComboBox::InsertAlphabetically);
59 u->cbxTags->setDuplicatesEnabled(
false);
61 u->cbxCategory->installEventFilter(
this);
62 u->cbxTags->installEventFilter(
this);
64 u->cbxCategory->addItem(
"");
65 u->cbxTags->addItem(
"");
70 connect(u->cbxCategory, SIGNAL(activated(
int)),
this, SLOT(
slotModified()));
71 connect(u->cbxCategory, SIGNAL(editTextChanged(
const QString&)),
this, SLOT(
slotModified()));
72 connect(u->cbxTags, SIGNAL(activated(
int)),
this, SLOT(
slotModified()));
77 u->splitEntryEditor->setSizes(
QList<int>() << 100 << 1000);
82 u->txtStyPreamble->setHeightHintLines(4);
87 u->retranslateUi(
this);
96 if (
object == u->cbxCategory ||
object == u->cbxTags) {
98 if (event->
type() == QEvent::KeyPress) {
100 if (ke->
key() == Qt::Key_Return || ke->
key() == Qt::Key_Enter) {
107 return QWidget::eventFilter(
object, event);
112 u->cbxCategory->addItems(categorylist);
130 u->cbxCategory->lineEdit()->setReadOnly(!pInputEnabled);
131 u->cbxTags->lineEdit()->setReadOnly(!pInputEnabled);
132 if (entrylist.
size() == 0) {
133 u->lblPreview->display(
QImage(
":/pics/nopreview.png"),
QImage(),
false);
134 u->txtPreviewLatex->setText(tr(
"[ No Item Selected ]"));
135 u->cbxCategory->setEditText(tr(
"[ No Item Selected ]"));
136 u->cbxTags->setEditText(tr(
"[ No Item Selected ]"));
138 u->cbxCategory->setEnabled(
false);
139 u->cbxTags->setEnabled(
false);
140 u->btnApplyChanges->setEnabled(
false);
141 u->btnRestoreStyle->setEnabled(
false);
144 u->lblStyMathMode->setText(tr(
"[ No Item Selected ]"));
145 u->txtStyPreamble->setPlainText(tr(
"[ No Item Selected ]"));
149 if (entrylist.
size() == 1) {
152 u->lblPreview->display(img, img,
true);
153 u->txtPreviewLatex->setText(e.
latex());
154 u->cbxCategory->setEditText(e.
category());
155 u->cbxTags->setEditText(e.
tags());
156 pCurrentStyle = e.
style();
158 u->cbxCategory->setEnabled(
true);
159 u->cbxTags->setEnabled(
true);
160 u->btnApplyChanges->setEnabled(pInputEnabled &&
true);
161 u->btnRestoreStyle->setEnabled(
true);
162 displayStyle(
true, pCurrentStyle);
167 u->lblPreview->display(
QImage(
":/pics/nopreview.png"),
QImage(),
false);
168 u->txtPreviewLatex->setText(tr(
"[ %n Items Selected ]", 0, entrylist.
size()));
169 u->cbxTags->setEditText(tr(
"[ Multiple Items Selected ]"));
173 bool allsamestyle =
true;
176 for (k = 0; k < entrylist.
size(); ++k) {
177 QString thiscat = entrylist[k].category();
178 KLFStyle thisstyle = entrylist[k].style();
185 if ( !cat.
isEmpty() && thiscat != cat ) {
188 if ( allsamestyle && !(style == thisstyle) ) {
189 allsamestyle =
false;
192 u->cbxCategory->setEditText(cat);
193 if ( allsamestyle ) {
194 pCurrentStyle =
style;
195 displayStyle(
true, pCurrentStyle);
196 u->btnRestoreStyle->setEnabled(
true);
200 u->lblStyMathMode->setText(tr(
"[ Different Styles ]"));
201 u->txtStyPreamble->setPlainText(tr(
"[ Different Styles ]"));
202 u->btnRestoreStyle->setEnabled(
false);
205 u->cbxCategory->setEnabled(pInputEnabled &&
true);
206 u->cbxTags->setEnabled(pInputEnabled &&
false);
207 u->btnApplyChanges->setEnabled(pInputEnabled &&
true);
212 void KLFLibEntryEditor::displayStyle(
bool valid,
const KLFStyle&
style)
218 u->lblStyColFg->setPixmap(pxfg);
222 u->lblStyColBg->setPixmap(pxbg);
224 u->lblStyColBg->setPixmap(
QPixmap(
":pics/transparenticon16.png"));
226 u->lblStyMathMode->setText(style.
mathmode);
227 u->txtStyPreamble->setPlainText(style.
preamble);
230 u->lblStyColFg->setText(
QString());
231 u->lblStyColFg->setPixmap(
QPixmap());
232 u->lblStyColBg->setText(
QString());
233 u->lblStyColBg->setPixmap(
QPixmap());
234 u->lblStyMathMode->setText(
QString());
235 u->txtStyPreamble->setPlainText(
QString());
242 pInputEnabled = enabled;
247 pMetaInfoModified = modif;
248 u->btnApplyChanges->setEnabled(pMetaInfoModified);
256 if (cbx == u->cbxCategory)
259 else if (cbx == u->cbxTags)
263 qWarning(
"KLFLibEntryEditor::slotUpdateFromCbx: Couldn't find combo box=%p", (
void*)cbx);
272 klfDbg(
"category="<<cat<<
" tags="<<tags) ;
274 if (cat && u->cbxCategory->isEnabled()) {
278 if (tags && u->cbxTags->isEnabled()) {
282 klfDbg(
"data to update: "<<data) ;
296 cbx->
addItem(cbx->currentText());
302 cbx->blockSignals(
true);
303 QString bkp_edittext = cbx->currentText();
308 for (k = 0; k < cbx->count(); ++k) {
313 for (k = 0; k < items.size(); ++k) {
323 cbx->blockSignals(
false);
void addCategorySuggestions(const QStringList &categorylist)
virtual bool eventFilter(QObject *object, QEvent *event)
fill(const QColor &fillColor=Qt::white)
contains(const QString &str, Qt::CaseSensitivity cs=Qt::CaseSensitive)
#define klfDbg(streamableItems)
virtual ~KLFLibEntryEditor()
void slotModified(bool modif=true)
setEditText(const QString &text)
void restoreStyle(const KLFStyle &style)
void slotCbxSaveCurrentCompletion(QComboBox *cbx)
void slotCbxCleanUpCompletions(QComboBox *cbx)
addItem(const QString &text, const QVariant &userData=QVariant()
number(long n, int base=10)
KLFLibEntryEditor(QWidget *parent=NULL)
void metaInfoChanged(const QMap< int, QVariant > &props)
void setInputEnabled(bool enabled)
void on_btnApplyChanges_clicked()
The Category to which eq. belongs (path-style string)
void slotUpdateFromCbx(QComboBox *cbx)
void displayEntry(const KLFLibEntry &entry)
void retranslateUi(bool alsoBaseUi=true)
Tags about the equation (string)
An entry (single formula) in the library.
void on_btnRestoreStyle_clicked()
addItems(const QStringList &texts)
QSize labelOutputFixedSize
void displayEntries(const QList< KLFLibEntry > &entries)