}
}
-void LyXText::openStuff(BufferView * bview)
+Inset * LyXText::getInset() const
{
+ Inset * inset = 0;
if (cursor.pos() == 0 && cursor.par()->bibkey){
- cursor.par()->bibkey->edit(bview, 0, 0, 0);
+ inset = cursor.par()->bibkey;
} else if (cursor.pos() < cursor.par()->size()
&& cursor.par()->getChar(cursor.pos()) == Paragraph::META_INSET) {
- Inset * inset = cursor.par()->getInset(cursor.pos());
- if (!inset->editable())
- return;
- bview->owner()->message(inset->editMessage());
- if (inset->editable() != Inset::HIGHLY_EDITABLE)
- setCursorParUndo(bview);
- inset->edit(bview, 0, 0, 0);
+ inset = cursor.par()->getInset(cursor.pos());
}
+ return inset;
+}
+
+void LyXText::toggleInset(BufferView * bview)
+{
+ Inset * inset = getInset();
+ if (!inset->editable())
+ return;
+ //bview->owner()->message(inset->editMessage());
+
+ // do we want to keep this?? (JMarc)
+ if (inset->editable() != Inset::HIGHLY_EDITABLE)
+ setCursorParUndo(bview);
+ inset->open(bview, !inset->isOpen());
}
par->params().labelString(string());
}
- std::ostringstream s;
+ ostringstream s;
if (!par->params().appendix()) {
switch (2 * LABEL_COUNTER_CHAPTER -
par->incCounter(i + par->enumdepth);
int number = par->getCounter(i + par->enumdepth);
- std::ostringstream s;
+ ostringstream s;
switch (par->enumdepth) {
case 1:
void LyXText::insertInset(BufferView * bview, Inset * inset)
{
- if (!cursor.par()->insertInsetAllowed(inset))
+ if (!cursor.par()->insetAllowed(inset->lyxCode()))
return;
setUndo(bview, Undo::INSERT,
cursor.par(), cursor.par()->next());
}
}
#else
-#warning Please tell what the intention is here.
+#warning Please tell what the intention is here. (Lgb)
// The above does not make any sense, I changed it to what is here,
// but it still does not make much sense. (Lgb)
+#warning Sure have a look now! (Jug)
+ // well as much as I know && binds more then || so the above and the
+ // below are identical (this for your known use of parentesis!)
+ // Now some explanation:
+ // We should only go up with refreshing code so this means that if
+ // we have a MORE refresh we should never set it to LITTLE if we still
+ // didn't handle it (and then it will be UNCHANGED. Now as long as
+ // we stay inside one LyXText this may work but we need to tell the
+ // outermost LyXText that it should REALLY draw us if there is some
+ // change in a Inset::LyXText. So you see that when we are inside a
+ // inset's LyXText we give the LITTLE to the outermost LyXText to
+ // tell'em that it should redraw the actual row (where the inset
+ // resides! Capito?!
+
if ((status_ != NEED_MORE_REFRESH)
|| (status_ == NEED_MORE_REFRESH
- && st != NEED_VERY_LITTLE_REFRESH)) {
+ && st != NEED_VERY_LITTLE_REFRESH))
+ {
status_ = st;
if (inset_owner && st != UNCHANGED) {
bview->text->status(bview, NEED_VERY_LITTLE_REFRESH);