#include "Buffer.h"
#include "BufferParams.h"
#include "BufferView.h"
+#include "Color.h"
+#include "ColorCache.h"
+#include "ColorSet.h"
#include "Cursor.h"
#include "FuncRequest.h"
#include "Language.h"
#include "Paragraph.h"
+#include "support/gettext.h"
+#include "support/lstrings.h"
+
#include <QAbstractItemModel>
+#include <QComboBox>
#include <QModelIndex>
#include <QSettings>
#include <QVariant>
bars << BarPair(qt_("No change"), IGNORE);
bars << BarPair(qt_("Emph"), EMPH_TOGGLE);
bars << BarPair(qt_("Underbar"), UNDERBAR_TOGGLE);
+ bars << BarPair(qt_("Double underbar"), UULINE_TOGGLE);
+ bars << BarPair(qt_("Wavy underbar"), UWAVE_TOGGLE);
bars << BarPair(qt_("Strikeout"), STRIKEOUT_TOGGLE);
bars << BarPair(qt_("Noun"), NOUN_TOGGLE);
bars << BarPair(qt_("Reset"), INHERIT);
}
-static QList<ColorPair> colorData()
+static QList<ColorCode> colorData()
{
- QList<ColorPair> colors;
- colors << ColorPair(qt_("No change"), Color_ignore);
- colors << ColorPair(qt_("No color"), Color_none);
- colors << ColorPair(qt_("Black"), Color_black);
- colors << ColorPair(qt_("White"), Color_white);
- colors << ColorPair(qt_("Red"), Color_red);
- colors << ColorPair(qt_("Green"), Color_green);
- colors << ColorPair(qt_("Blue"), Color_blue);
- colors << ColorPair(qt_("Cyan"), Color_cyan);
- colors << ColorPair(qt_("Magenta"), Color_magenta);
- colors << ColorPair(qt_("Yellow"), Color_yellow);
- colors << ColorPair(qt_("Reset"), Color_inherit);
+ QList<ColorCode> colors;
+ colors << Color_black;
+ colors << Color_blue;
+ colors << Color_brown;
+ colors << Color_cyan;
+ colors << Color_darkgray;
+ colors << Color_gray;
+ colors << Color_green;
+ colors << Color_lightgray;
+ colors << Color_lime;
+ colors << Color_magenta;
+ colors << Color_olive;
+ colors << Color_orange;
+ colors << Color_pink;
+ colors << Color_purple;
+ colors << Color_red;
+ colors << Color_teal;
+ colors << Color_violet;
+ colors << Color_white;
+ colors << Color_yellow;
return colors;
}
combo->addItem(cit->first);
}
+template<typename T>
+void fillComboColor(QComboBox * combo, QList<T> const & list)
+{
+ // at first add the 2 colors "No change" and "No color"
+ combo->addItem(qt_("No change"), "ignore");
+ combo->addItem(qt_("No color"), "none");
+ // now add the real colors
+ QPixmap coloritem(32, 32);
+ QColor color;
+ QList<ColorCode>::const_iterator cit = list.begin();
+ for (; cit != list.end(); ++cit) {
+ QString const lyxname = toqstr(lcolor.getLyXName(*cit));
+ QString const guiname = toqstr(translateIfPossible(lcolor.getGUIName(*cit)));
+ color = QColor(guiApp->colorCache().get(*cit, false));
+ coloritem.fill(color);
+ combo->addItem(QIcon(coloritem), guiname, lyxname);
+ }
+ //the last color is "Reset"
+ combo->addItem(qt_("Reset"), "inherit");
}
+} // namespace anon
+
GuiCharacter::GuiCharacter(GuiView & lv)
: GuiDialog(lv, "character", qt_("Text Style")), font_(ignore_font, ignore_language),
- toggleall_(false), reset_lang_(false)
+ toggleall_(false)
{
setupUi(this);
size = sizeData();
bar = barData();
color = colorData();
+ qSort(color.begin(), color.end(), ColorSorter);
language = languageData();
language.prepend(LanguagePair(qt_("Reset"), "reset"));
fillCombo(sizeCO, size);
fillCombo(shapeCO, shape);
fillCombo(miscCO, bar);
- fillCombo(colorCO, color);
+ fillComboColor(colorCO, color);
fillCombo(langCO, language);
bc().setPolicy(ButtonPolicy::OkApplyCancelAutoReadOnlyPolicy);
bc().addReadOnly(toggleallCB);
bc().addReadOnly(autoapplyCB);
-#ifdef Q_WS_MACX
+#ifdef Q_OS_MAC
// On Mac it's common to have tool windows which are always in the
// foreground and are hidden when the main window is not focused.
setWindowFlags(Qt::Tool);
if (fi.strikeout() == FONT_TOGGLE)
return STRIKEOUT_TOGGLE;
+ if (fi.uuline() == FONT_TOGGLE)
+ return UULINE_TOGGLE;
+
+ if (fi.uwave() == FONT_TOGGLE)
+ return UWAVE_TOGGLE;
+
if (fi.noun() == FONT_TOGGLE)
return NOUN_TOGGLE;
fi.setEmph(FONT_IGNORE);
fi.setUnderbar(FONT_IGNORE);
fi.setStrikeout(FONT_IGNORE);
+ fi.setUuline(FONT_IGNORE);
+ fi.setUwave(FONT_IGNORE);
fi.setNoun(FONT_IGNORE);
break;
case EMPH_TOGGLE:
+ setBar(fi, INHERIT);
fi.setEmph(FONT_TOGGLE);
break;
case UNDERBAR_TOGGLE:
+ setBar(fi, INHERIT);
fi.setUnderbar(FONT_TOGGLE);
break;
case STRIKEOUT_TOGGLE:
+ setBar(fi, INHERIT);
fi.setStrikeout(FONT_TOGGLE);
break;
+ case UULINE_TOGGLE:
+ setBar(fi, INHERIT);
+ fi.setUuline(FONT_TOGGLE);
+ break;
+
+ case UWAVE_TOGGLE:
+ setBar(fi, INHERIT);
+ fi.setUwave(FONT_TOGGLE);
+ break;
+
case NOUN_TOGGLE:
+ setBar(fi, INHERIT);
fi.setNoun(FONT_TOGGLE);
break;
fi.setEmph(FONT_INHERIT);
fi.setUnderbar(FONT_INHERIT);
fi.setStrikeout(FONT_INHERIT);
+ fi.setUuline(FONT_INHERIT);
+ fi.setUwave(FONT_INHERIT);
fi.setNoun(FONT_INHERIT);
break;
}
shapeCO->setCurrentIndex(findPos2nd(shape, fi.shape()));
sizeCO->setCurrentIndex(findPos2nd(size, fi.size()));
miscCO->setCurrentIndex(findPos2nd(bar, getBar(fi)));
- colorCO->setCurrentIndex(findPos2nd(color, fi.color()));
+ colorCO->setCurrentIndex(colorCO->findData(toqstr(lcolor.getLyXName(fi.color()))));
// reset_language is a null pointer.
QString const lang = (font.language() == reset_language)
fi.setShape(shape[shapeCO->currentIndex()].second);
fi.setSize(size[sizeCO->currentIndex()].second);
setBar(fi, bar[miscCO->currentIndex()].second);
- fi.setColor(color[colorCO->currentIndex()].second);
+ fi.setColor(lcolor.getFromLyXName(fromqstr(colorCO->itemData(colorCO->currentIndex()).toString())));
font_.setLanguage(languages.getLanguage(
fromqstr(language[langCO->currentIndex()].second)));