diff --git a/src/BufferView.C b/src/BufferView.C index 4a3df4e4e0..dbef9b5ff0 100644 --- a/src/BufferView.C +++ b/src/BufferView.C @@ -564,12 +564,7 @@ bool BufferView::insertInset(Inset * inset, string const & lout) } -// This is also a buffer property (ale) -// Not so sure about that. a goto Label function can not be buffer local, just -// think how this will work in a multiwindow/buffer environment, all the -// cursors in all the views showing this buffer will move. (Lgb) -// OK, then no cursor action should be allowed in buffer. (ale) -bool BufferView::gotoLabel(string const & label) +void BufferView::gotoLabel(string const & label) { for (Buffer::inset_iterator it = buffer()->inset_iterator_begin(); it != buffer()->inset_iterator_end(); ++it) { @@ -580,10 +575,9 @@ bool BufferView::gotoLabel(string const & label) text->setCursor(it.getPar(), it.getPos()); text->selection.cursor = text->cursor; update(text, BufferView::SELECT); - return true; + return; } } - return false; } diff --git a/src/BufferView.h b/src/BufferView.h index 1dba8da275..8d28bc7b13 100644 --- a/src/BufferView.h +++ b/src/BufferView.h @@ -144,7 +144,7 @@ public: WordLangTuple const nextWord(float & value); /// move cursor to the named label - bool gotoLabel(string const & label); + void gotoLabel(string const & label); /// copy the environment type from current paragraph void copyEnvironment(); diff --git a/src/BufferView_pimpl.C b/src/BufferView_pimpl.C index c97e3aa8f9..878a7e5975 100644 --- a/src/BufferView_pimpl.C +++ b/src/BufferView_pimpl.C @@ -1049,8 +1049,7 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev_in) restorePosition(strToUnsignedInt(ev.argument)); break; - case LFUN_REF_GOTO: - { + case LFUN_REF_GOTO: { string label = ev.argument; if (label.empty()) { InsetRef * inset = @@ -1061,13 +1060,8 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev_in) } } - if (!label.empty()) { - //bv_->savePosition(0); - if (!bv_->gotoLabel(label)) - Alert::alert(_("Error"), - _("Couldn't find this label"), - _("in current document.")); - } + if (!label.empty()) + bv_->gotoLabel(label); } break; diff --git a/src/ChangeLog b/src/ChangeLog index bb13b29597..c38255fca4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2003-03-29 John Levon + + * BufferView.C: + * BufferView.h: + * BufferView_pimpl.C: Alert fixes + + * Makefile.am: + * tabular.C: + * tabular-old.C: remove unused table compat reading + 2003-03-29 John Levon * BufferView.C: diff --git a/src/Makefile.am b/src/Makefile.am index 7b5a9b53a1..1d71aadd13 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -201,7 +201,6 @@ lyx_SOURCES = \ sgml.h \ tabular.C \ tabular.h \ - tabular-old.C \ tabular_funcs.C \ tabular_funcs.h \ tex-accent.C \ diff --git a/src/buffer.C b/src/buffer.C index 0f44d2513d..80544bf742 100644 --- a/src/buffer.C +++ b/src/buffer.C @@ -292,7 +292,7 @@ int Buffer::readHeader(LyXLex & lex) if (unknown[0] != '\\') { unknownClass(unknown); } else { - ++unknown_tokens; + ++unknown_tokens; } } } @@ -812,9 +812,6 @@ string const Buffer::asciiParagraph(Paragraph const & par, /* noindent ? */ /* what about the alignment */ -// } else { -// lyxerr << "Should this ever happen?" << endl; -// } // linelen <= 0 is special and means we don't have paragraph breaks diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 8a4eb62886..78e2a293f6 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,7 @@ +2003-03-29 John Levon + + * insettabular.C: Alert fix + 2003-03-28 John Levon * insetfloat.C: reset label on INSET_MODIFY diff --git a/src/insets/insettabular.C b/src/insets/insettabular.C index 36649405e4..07cad76bc4 100644 --- a/src/insets/insettabular.C +++ b/src/insets/insettabular.C @@ -1982,9 +1982,11 @@ void InsetTabular::tabularFeatures(BufferView * bv, case LyXTabular::MULTICOLUMN: { if (sel_row_start != sel_row_end) { - Alert::alert(_("Impossible operation!"), - _("Multicolumns can only be horizontally."), - _("Sorry.")); +#ifdef WITH_WARNINGS +#warning Need I say it ? This is horrible. +#endif + Alert::error(_("Error setting multicolumn"), + _("You cannot set multicolumn vertically.")); return; } // just multicol for one Single Cell diff --git a/src/lyxfind.C b/src/lyxfind.C index 77427ae82d..9570147e24 100644 --- a/src/lyxfind.C +++ b/src/lyxfind.C @@ -42,10 +42,13 @@ int LyXReplace(BufferView * bv, // CutSelection cannot cut a single space, so we have to stop // in order to avoid endless loop :-( if (searchstr.length() == 0 - || (searchstr.length() == 1 && searchstr[0] == ' ')) - { - Alert::alert(_("Sorry!"), _("You cannot replace a single space, " - "nor an empty character.")); + || (searchstr.length() == 1 && searchstr[0] == ' ')) { +#ifdef WITH_WARNINGS +#warning BLECH. If we have an LFUN for replace, we can fix this bogosity +#endif + Alert::error(_("Cannot replace"), + _("You cannot replace a single space or " + "an empty character.")); return 0; } diff --git a/src/lyxtextclasslist.C b/src/lyxtextclasslist.C index fd108c9c55..d764c5c043 100644 --- a/src/lyxtextclasslist.C +++ b/src/lyxtextclasslist.C @@ -71,7 +71,7 @@ public: // Reads LyX textclass definitions according to textclass config file -bool LyXTextClassList::Read () +bool LyXTextClassList::Read() { LyXLex lex(0, 0); string real_file = LibFileSearch("", "textclass.lst"); @@ -82,10 +82,6 @@ bool LyXTextClassList::Read () lyxerr << "LyXTextClassList::Read: unable to find " "textclass file `" << MakeDisplayPath(real_file, 1000) << "'. Exiting." << endl; - - Alert::alert(_("LyX wasn't able to find its layout descriptions!"), - _("Check that the file \"textclass.lst\""), - _("is installed correctly. Sorry, has to exit :-(")); return false; // This causes LyX to end... Not a desirable behaviour. Lgb // What do you propose? That the user gets a file dialog @@ -142,9 +138,6 @@ bool LyXTextClassList::Read () if (classlist_.empty()) { lyxerr << "LyXTextClassList::Read: no textclasses found!" << endl; - Alert::alert(_("LyX wasn't able to find any layout description!"), - _("Check the contents of the file \"textclass.lst\""), - _("Sorry, has to exit :-(")); return false; } // Ok everything loaded ok, now sort the list. diff --git a/src/lyxvc.C b/src/lyxvc.C index 5dff933476..b919bb1d4f 100644 --- a/src/lyxvc.C +++ b/src/lyxvc.C @@ -105,9 +105,9 @@ void LyXVC::registrer() // there must be a file to save if (!IsFileReadable(filename)) { - Alert::alert(_("File not saved"), - _("You must save the file"), - _("before it can be registered.")); + Alert::error(_("Document not saved"), + _("You must save the document " + "before it can be registered.")); return; } @@ -145,8 +145,6 @@ void LyXVC::registrer() if (!tmp.first || tmp.second.empty()) { // should we insist on checking tmp.second.empty()? lyxerr[Debug::LYXVC] << "LyXVC: user cancelled" << endl; - Alert::alert(_("Info"), - _("This document has NOT been registered.")); return; } diff --git a/src/tabular-old.C b/src/tabular-old.C deleted file mode 100644 index b3906c8c58..0000000000 --- a/src/tabular-old.C +++ /dev/null @@ -1,254 +0,0 @@ -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor - * - * Copyright 2000-2001 The LyX Team. - * - * @author: Jürgen Vigna - * - * ====================================================== - */ - -#include - -#include "tabular.h" -#include "buffer.h" -#include "debug.h" - -#include "support/lstrings.h" -#include "support/textutils.h" - -using std::abs; -using std::istream; -using std::getline; -using std::endl; - -#ifndef CXX_GLOBAL_CSTD -using std::strlen; -#endif - -namespace { - -bool getTokenValue(string const & str, char const * token, string & ret) -{ - size_t token_length = strlen(token); - string::size_type pos = str.find(token); - - if (pos == string::npos || pos + token_length + 1 >= str.length() - || str[pos + token_length] != '=') - return false; - ret.erase(); - pos += token_length + 1; - char ch = str[pos]; - if ((ch != '"') && (ch != '\'')) { // only read till next space - ret += ch; - ch = ' '; - } - while ((pos < str.length() - 1) && (str[++pos] != ch)) - ret += str[pos]; - - return true; -} - - -bool getTokenValue(string const & str, char const * token, int & num) -{ - string::size_type pos = str.find(token); - char ch = str[pos + strlen(token)]; - - if ((pos == string::npos) || (ch != '=')) - return false; - string ret; - pos += strlen(token) + 1; - ch = str[pos]; - if ((ch != '"') && (ch != '\'')) { // only read till next space - if (!IsDigit(ch)) - return false; - ret += ch; - } - ++pos; - while ((pos < str.length() - 1) && IsDigit(str[pos])) - ret += str[pos++]; - - num = strToInt(ret); - return true; -} - - -bool getTokenValue(string const & str, char const * token, LyXAlignment & num) -{ - int tmp; - bool const ret = getTokenValue(str, token, tmp); - num = static_cast(tmp); - return ret; -} - - -bool getTokenValue(string const & str, char const * token, - LyXTabular::VAlignment & num) -{ - int tmp; - bool const ret = getTokenValue(str, token, tmp); - num = static_cast(tmp); - return ret; -} - - -bool getTokenValue(string const & str, char const * token, - LyXTabular::BoxType & num) -{ - int tmp; - bool ret = getTokenValue(str, token, tmp); - num = static_cast(tmp); - return ret; -} - - -bool getTokenValue(string const & str, char const * token, bool & flag) -{ - string::size_type pos = str.find(token); - char ch = str[pos + strlen(token)]; - - if ((pos == string::npos) || (ch != '=')) - return false; - string ret; - pos += strlen(token) + 1; - ch = str[pos]; - if ((ch != '"') && (ch != '\'')) { // only read till next space - if (!IsDigit(ch)) - return false; - ret += ch; - } - ++pos; - while ((pos < str.length() - 1) && IsDigit(str[pos])) - ret += str[pos++]; - - flag = strToInt(ret); - return true; -} - - -bool getTokenValue(string const & str, const char * token, LyXLength & len) -{ - string tmp; - if (!getTokenValue(str, token, tmp)) - return false; - return isValidLength(tmp, &len); -} - - -inline -void l_getline(istream & is, string & str) -{ -#ifdef WITH_WARNINGS -//#warning old l_getline -#endif - getline(is, str); - while (str.empty()) - getline(is, str); -} - -} // namespace anon - - -void LyXTabular::ReadOld(Buffer const * buf, istream & is, - LyXLex & lex, string const & l) -{ - string line(l); - int rows_arg; - int columns_arg; - if (!getTokenValue(line, "rows", rows_arg)) - return; - if (!getTokenValue(line, "columns", columns_arg)) - return; - Init(buf->params, rows_arg, columns_arg); - l_getline(is, line); - if (!prefixIs(line, " got" - << line << ')' << endl; - return; - } - getTokenValue(line, "islongtable", is_long_tabular); - int hrow; - int fhrow; - int frow; - int lfrow; - - getTokenValue(line, "endhead", hrow); - getTokenValue(line, "endfirsthead", fhrow); - getTokenValue(line, "endfoot", frow); - getTokenValue(line, "endlastfoot", lfrow); - setHeaderFooterRows(abs(hrow), abs(fhrow), abs(frow), abs(lfrow)); - - for (int i = 0; i < rows_; ++i) { - l_getline(is, line); - if (!prefixIs(line, " got" - << line << ')' << endl; - return; - } - getTokenValue(line, "topline", row_info[i].top_line); - getTokenValue(line, "bottomline", row_info[i].bottom_line); - getTokenValue(line, "newpage", row_info[i].newpage); - for (int j = 0; j < columns_; ++j) { - l_getline(is,line); - if (!prefixIs(line," got" - << line << ')' << endl; - return; - } - if (!i) { - getTokenValue(line, "alignment", column_info[j].alignment); - getTokenValue(line, "valignment", column_info[j].valignment); - getTokenValue(line, "leftline", column_info[j].left_line); - getTokenValue(line, "rightline", column_info[j].right_line); - getTokenValue(line, "width", column_info[j].p_width); - getTokenValue(line, "special", column_info[j].align_special); - } - l_getline(is, line); - if (!prefixIs(line, " got" - << line << ')' << endl; - return; - } - getTokenValue(line, "multicolumn", cell_info[i][j].multicolumn); - getTokenValue(line, "alignment", cell_info[i][j].alignment); - getTokenValue(line, "valignment", cell_info[i][j].valignment); - getTokenValue(line, "topline", cell_info[i][j].top_line); - getTokenValue(line, "bottomline", cell_info[i][j].bottom_line); - getTokenValue(line, "leftline", cell_info[i][j].left_line); - getTokenValue(line, "rightline", cell_info[i][j].right_line); - getTokenValue(line, "rotate", cell_info[i][j].rotate); - getTokenValue(line, "usebox", cell_info[i][j].usebox); - getTokenValue(line, "width", cell_info[i][j].p_width); - getTokenValue(line, "special", cell_info[i][j].align_special); - l_getline(is, line); - if (prefixIs(line, "\\begin_inset")) { - cell_info[i][j].inset.read(buf, lex); - l_getline(is, line); - } - if (line != "") { - lyxerr << "Wrong tabular format (expected got" - << line << ')' << endl; - return; - } - l_getline(is, line); - if (line != "") { - lyxerr << "Wrong tabular format (expected got" - << line << ')' << endl; - return; - } - } - l_getline(is, line); - if (line != "") { - lyxerr << "Wrong tabular format (expected got" - << line << ')' << endl; - return; - } - } - while (line != "") { - l_getline(is, line); - } - set_row_column_number_info(); -} diff --git a/src/tabular.C b/src/tabular.C index bc38b967fa..447ba82638 100644 --- a/src/tabular.C +++ b/src/tabular.C @@ -1102,17 +1102,15 @@ void LyXTabular::Read(Buffer const * buf, LyXLex & lex) l_getline(is, line); if (!prefixIs(line, "params, lex, line); + lyx::Assert(false); return; } int version; if (!getTokenValue(line, "version", version)) return; - if (version == 1) - ReadOld(buf, is, lex, line); - else if (version >= 2) - ReadNew(buf, is, lex, line, version); + lyx::Assert(version >= 2); + read(buf, is, lex, line, version); } void LyXTabular::setHeaderFooterRows(int hr, int fhr, int fr, int lfr) @@ -1192,8 +1190,8 @@ void LyXTabular::setHeaderFooterRows(int hr, int fhr, int fr, int lfr) } } -void LyXTabular::ReadNew(Buffer const * buf, istream & is, - LyXLex & lex, string const & l, int const version) +void LyXTabular::read(Buffer const * buf, istream & is, + LyXLex & lex, string const & l, int const version) { string line(l); int rows_arg; @@ -1314,209 +1312,6 @@ void LyXTabular::ReadNew(Buffer const * buf, istream & is, } -void LyXTabular::OldFormatRead(BufferParams const & bp, - LyXLex & lex, string const & fl) -{ - int version; - int i; - int j; - int rows_arg = 0; - int columns_arg = 0; - int is_long_tabular_arg = false; - int rotate_arg = false; - int a = -1; - int b = -1; - int c = -1; - int d = -1; - int e = 0; - int f = 0; - int g = 0; - - istream & is = lex.getStream(); - string s(fl); - if (s.length() > 8) - version = lyx::atoi(s.substr(8, string::npos)); - else - version = 1; - - vector cont_row_info; - - if (version < 5) { - lyxerr << "Tabular format < 5 is not supported anymore\n" - "Get an older version of LyX (< 1.1.x) for conversion!" - << endl; - Alert::alert(_("Warning:"), - _("Tabular format < 5 is not supported anymore\n"), - _("Get an older version of LyX (< 1.1.x) for conversion!")); - if (version > 2) { - is >> rows_arg >> columns_arg >> is_long_tabular_arg - >> rotate_arg >> a >> b >> c >> d; - } else - is >> rows_arg >> columns_arg; - Init(bp, rows_arg, columns_arg); - cont_row_info = vector(rows_arg); - SetLongTabular(is_long_tabular_arg); - SetRotateTabular(rotate_arg); - string tmp; - for (i = 0; i < rows_; ++i) { - getline(is, tmp); - cont_row_info[i] = false; - } - for (i = 0; i < columns_; ++i) { - getline(is, tmp); - } - for (i = 0; i < rows_; ++i) { - for (j = 0; j < columns_; ++j) { - getline(is, tmp); - } - } - } else { - is >> rows_arg >> columns_arg >> is_long_tabular_arg - >> rotate_arg >> a >> b >> c >> d; - Init(bp, rows_arg, columns_arg); - cont_row_info = vector(rows_arg); - SetLongTabular(is_long_tabular_arg); - SetRotateTabular(rotate_arg); - setHeaderFooterRows(a+1, b+1 , c+1, d+1); - for (i = 0; i < rows_; ++i) { - a = b = c = d = e = f = g = 0; - is >> a >> b >> c >> d; - row_info[i].top_line = a; - row_info[i].bottom_line = b; - cont_row_info[i] = c; - row_info[i].newpage = d; - } - for (i = 0; i < columns_; ++i) { - string s1; - string s2; - is >> a >> b >> c; -#if 1 - char ch; // skip '"' - is >> ch; -#else - // ignore is buggy but we will use it later (Lgb) - is.ignore(); // skip '"' -#endif - getline(is, s1, '"'); -#if 1 - is >> ch; // skip '"' -#else - // ignore is buggy but we will use it later (Lgb) - is.ignore(); // skip '"' -#endif - getline(is, s2, '"'); - column_info[i].alignment = static_cast(a); - column_info[i].left_line = b; - column_info[i].right_line = c; - column_info[i].p_width = LyXLength(s1); - column_info[i].align_special = s2; - } - for (i = 0; i < rows_; ++i) { - for (j = 0; j < columns_; ++j) { - string s1; - string s2; - is >> a >> b >> c >> d >> e >> f >> g; -#if 1 - char ch; - is >> ch; // skip '"' -#else - // ignore is buggy but we will use it later (Lgb) - is.ignore(); // skip '"' -#endif - getline(is, s1, '"'); -#if 1 - is >> ch; // skip '"' -#else - // ignore is buggy but we will use it later (Lgb) - is.ignore(); // skip '"' -#endif - getline(is, s2, '"'); - cell_info[i][j].multicolumn = static_cast(a); - cell_info[i][j].alignment = static_cast(b); - cell_info[i][j].top_line = static_cast(c); - cell_info[i][j].bottom_line = static_cast(d); - cell_info[i][j].left_line = column_info[j].left_line; - cell_info[i][j].right_line = column_info[j].right_line; - cell_info[i][j].rotate = static_cast(f); - cell_info[i][j].usebox = static_cast(g); - cell_info[i][j].align_special = s1; - cell_info[i][j].p_width = LyXLength(s2); - } - } - } - set_row_column_number_info(true); - - string tmptok; - Paragraph::depth_type depth = 0; - - ParagraphList parlist; - ParagraphList::iterator pit = parlist.begin(); - - while (lex.isOK()) { - lex.nextToken(); - string const token = lex.getString(); - if (token.empty()) - continue; - if (token == "\\layout" - || token == "\\end_float" // this should not exist anymore - || token == "\\end_inset" // as it is substituted by this - || token == "\\end_deeper") - { - lex.pushToken(token); - break; - } - - if (token == "\\the_end") { - lex.pushToken(token); - break; - } - - owner_->bufferOwner()->readParagraph(lex, token, parlist, pit, depth); - } - - Paragraph * par = &(*parlist.begin()); - - // now we have the par we should fill the insets with this! - int cell = 0; - InsetText * inset = GetCellInset(cell); - int row; - - for (int i = 0; i < par->size(); ++i) { - if (par->isNewline(i)) { - ++cell; - if (cell > numberofcells) { - lyxerr << "Some error in reading old table format occured!" << - endl << "Terminating when reading cell[" << cell << "]!" << - endl; - delete par; - return; - } - row = row_of_cell(cell); - if (cont_row_info[row]) { - DeleteRow(row); - cont_row_info.erase(cont_row_info.begin() + row); //&cont_row_info[row]); - while (!IsFirstCellInRow(--cell)); - } else { - inset = GetCellInset(cell); - continue; - } - inset = GetCellInset(cell); - row = row_of_cell(cell); - if (!cell_info[row_of_cell(cell)][column_of_cell(cell)].usebox) - { - // insert a space instead - par->erase(i); - par->insertChar(i, ' '); - } - } - par->copyIntoMinibuffer(*owner_->bufferOwner(), i); - inset->paragraph()->insertFromMinibuffer(inset->paragraph()->size()); - } - delete par; - Reinit(); -} - - bool LyXTabular::IsMultiColumn(int cell, bool real) const { return ((!real || (column_of_cell(cell) != right_column_of_cell(cell))) && diff --git a/src/tabular.h b/src/tabular.h index 6ed2cefe57..1940c69231 100644 --- a/src/tabular.h +++ b/src/tabular.h @@ -290,8 +290,6 @@ public: /// void Read(Buffer const *, LyXLex &); /// - void OldFormatRead(BufferParams const &, LyXLex &, string const &); - /// int latex(Buffer const *, std::ostream &, bool, bool) const; /// int docbook(Buffer const * buf, std::ostream & os, bool mixcont) const; @@ -483,11 +481,9 @@ private: typedef std::vector column_vector; /// - void ReadNew(Buffer const * buf, std::istream & is, - LyXLex & lex, string const & l, int const version); + void read(Buffer const * buf, std::istream & is, + LyXLex & lex, string const & l, int const version); /// - void ReadOld(Buffer const * buf, std::istream & is, - LyXLex & lex, string const & l); /// int rows_; ///