+++ /dev/null
-#include "vymtext.h"
-#include "misc.h"
-
-#include <QRegExp>
-#include <QDebug>
-#include <QTextDocument>
-
-/////////////////////////////////////////////////////////////////
-// VymText Base class for Vymnotes and Headings
-/////////////////////////////////////////////////////////////////
-
-VymText::VymText()
-{
- clear();
-}
-VymText::VymText(const VymText &other)
-{
- clear();
- copy (other);
- return;
-}
-
-VymText::VymText(const QString &s)
-{
- clear();
- setPlainText (s);
-}
-
-bool VymText::operator== (const VymText &other)
-{
- if ( text == other.text &&
- fonthint == other.fonthint &&
- textmode == other.textmode &&
- filenamehint == other.filenamehint
- )
- return true;
- else
- return false;
-}
-
-void VymText::operator= (const VymText &other)
-{
- copy (other);
-}
-
-void VymText::copy (const VymText &other)
-{
- text = other.text;
- fonthint = other.fonthint;
- filenamehint = other.filenamehint;
- textmode = other.textmode;
- color = other.color;
-}
-
-void VymText::clear()
-{
- text = "";
- fonthint = "undef";
- filenamehint = "";
- textmode = AutoText;
- color = Qt::black;
-}
-
-void VymText::setRichText(bool b)
-{
- if (b)
- textmode = RichText;
- else
- textmode = PlainText;
-}
-
-bool VymText::isRichText()const
-{
- if (textmode == RichText)
- return true;
- else
- return false;
-}
-
-void VymText::setText (const QString &s)
-{
- text = s;
-}
-
-void VymText::setRichText (const QString &s)
-{
- text = s;
- textmode = RichText;
-}
-
-void VymText::setPlainText (const QString &s)
-{
- text = s;
- textmode = PlainText;
-}
-
-void VymText::setAutoText (const QString &s)
-{
- clear();
- if (Qt::mightBeRichText (s))
- setRichText (s);
- else
- setPlainText (s);
-}
-
-QString VymText::getText() const
-{
- return text;
-}
-
-QString VymText::getTextASCII() const
-{
- return getTextASCII ("",80);
-}
-
-QString VymText::getTextASCII(QString indent, const int &) const //FIXME-3 use width
-{
- if (text.isEmpty()) return text;
-
- int width = 80;
- QString s;
- QRegExp rx;
- rx.setMinimal(true);
-
- if (isRichText())
- s = text;
- else
- {
- if ( fonthint == "fixed")
- {
- s = text;
- } else
- {
- // Wordwrap
-
- QString newnote;
- QString curline;
- uint n=0;
- while ( (int)n < text.length() )
- {
- curline = curline + text.at(n);
- if ( text.at(n) == '\n' )
- {
- s = s + curline ;
- curline = "";
- }
-
- if (curline.length() > width)
- {
- // Try to find last previous whitespace in curline
- uint i = curline.length() - 1;
- while ( i> 0 )
- {
- if ( curline.at(i) == ' ' )
- {
- s = s + curline.left(i) + '\n';
- curline = curline.right( curline.length() - i - 1 );
- break;
- }
- i--;
- if ( i == 0 )
- {
- // Cannot break this line into smaller parts
- s = s + curline;
- curline = "";
- }
- }
- }
- n++;
- }
- s = s + curline;
- }
-
- // Indent lines
- rx.setPattern("^");
- s = s.replace (rx,indent);
- rx.setPattern("\n");
- s = s.replace (rx, "\n" + indent) + "\n";
-
- return s.trimmed();
- }
-
- // Remove all <style...> ...</style>
- rx.setPattern("<style.*>.*</style>");
- s.replace (rx,"");
-
- // convert all "<br*>" to "\n"
- rx.setPattern ("<br.*>");
- s.replace (rx,"\n");
-
- // convert all "</p>" to "\n"
- rx.setPattern ("</p>");
- s.replace (rx,"\n");
-
- // remove all remaining tags
- rx.setPattern ("<.*>");
- s.replace (rx,"");
-
- // If string starts with \n now, remove it.
- // It would be wrong in an OOo export for example
- while ( s.at(0) == '\n' ) s.remove (0,1);
-
- // convert "&", "<" and ">"
- rx.setPattern (">");
- s.replace (rx,">");
- rx.setPattern ("<");
- s.replace (rx,"<");
- rx.setPattern ("&");
- s.replace (rx,"&");
- rx.setPattern (""");
- s.replace (rx,"\"");
-
- // Indent everything
- rx.setPattern ("^\n");
- s.replace (rx,indent);
- s = indent + s; // Don't forget first line
-
-/* FIXME-3 wrap text at width
- if (fonthint !="fixed")
- {
- }
-*/
- return s;
-}
-
-void VymText::setFontHint (const QString &s)
-{
- // only for backward compatibility (pre 1.5 )
- fonthint=s;
-}
-
-QString VymText::getFontHint() const
-{
- // only for backward compatibility (pre 1.5 )
- return fonthint;
-}
-
-void VymText::setFilenameHint (const QString &s)
-{
- filenamehint=s;
-}
-
-QString VymText::getFilenameHint() const
-{
- return filenamehint;
-}
-
-bool VymText::isEmpty ()
-{
- return text.isEmpty();
-}
-
-void VymText::setColor(QColor col)
-{
- color = col;
-}
-
-QColor VymText::getColor()
-{
- return color;
-}
-
-QString VymText::getAttributes()
-{
- QString ret;
- if (textmode == RichText)
- ret += attribut("textMode","richText");
- else
- {
- ret += attribut("textMode","plainText");
- ret += " " + attribut("fonthint", fonthint);
- }
- ret += " " + attribut("textColor", color.name() );
- return ret;
-}
-
-QString VymText::saveToDir ()
-{
- return getCDATA( text );
-}