mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-16 16:18:22 +00:00
fb393b450d
This is a proposal, but I think you should try it out in order to comment What this does, is: 1. Remove the toggle madness. This is really not something anyone understands without knowing the code, and its very unusual UI (fixes #4836) 2. Separate and group things that were put all into the "Misc" trashcan combo 3. Let the dialog reflect the font settings at cursor (selection) Now the dialog looks more like character dialogs from other applications, and I think it is more in line with what users expect. Comments very welcome (and of course I will revert if you want to have the old idiosyncratic thing back).
111 lines
2.0 KiB
C++
111 lines
2.0 KiB
C++
// -*- C++ -*-
|
|
/**
|
|
* \file GuiCharacter.h
|
|
* This file is part of LyX, the document processor.
|
|
* Licence details can be found in the file COPYING.
|
|
*
|
|
* \author Angus Leeming
|
|
* \author Edwin Leuven
|
|
* \author John Levon
|
|
*
|
|
* Full author contact details are available in file CREDITS.
|
|
*/
|
|
|
|
#ifndef GUICHARACTER_H
|
|
#define GUICHARACTER_H
|
|
|
|
#include "GuiDialog.h"
|
|
#include "ui_CharacterUi.h"
|
|
#include "Font.h"
|
|
|
|
#include <utility>
|
|
|
|
#ifdef IGNORE
|
|
#undef IGNORE
|
|
#endif
|
|
|
|
namespace lyx {
|
|
namespace frontend {
|
|
|
|
enum FontState {
|
|
///
|
|
IGNORE,
|
|
///
|
|
UNDERBAR,
|
|
///
|
|
STRIKEOUT,
|
|
///
|
|
XOUT,
|
|
///
|
|
UULINE,
|
|
///
|
|
UWAVE,
|
|
///
|
|
INHERIT,
|
|
///
|
|
NONE
|
|
};
|
|
|
|
typedef std::pair<QString, FontFamily> FamilyPair;
|
|
typedef std::pair<QString, FontFamily> FamilyPair;
|
|
typedef std::pair<QString, FontSeries> SeriesPair;
|
|
typedef std::pair<QString, FontShape> ShapePair;
|
|
typedef std::pair<QString, FontSize> SizePair;
|
|
typedef std::pair<QString, FontState> BarPair;
|
|
typedef std::pair<QString, QString> LanguagePair;
|
|
|
|
class GuiCharacter : public GuiDialog, public Ui::CharacterUi
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
GuiCharacter(GuiView & lv);
|
|
|
|
protected Q_SLOTS:
|
|
void change_adaptor();
|
|
void on_emphCB_clicked();
|
|
void on_nounCB_clicked();
|
|
|
|
private:
|
|
/// \name Dialog inherited methods
|
|
//@{
|
|
void applyView();
|
|
void updateContents();
|
|
bool initialiseParams(std::string const & data);
|
|
void clearParams() {}
|
|
void dispatchParams();
|
|
bool isBufferDependent() const { return true; }
|
|
FuncCode getLfun() const { return LFUN_TEXTSTYLE_UPDATE; }
|
|
void saveSession(QSettings & settings) const;
|
|
void restoreSession();
|
|
//@}
|
|
|
|
///
|
|
void paramsToDialog(Font const & font);
|
|
///
|
|
void setBar(FontInfo & fi, FontState val);
|
|
///
|
|
void setStrike(FontInfo & fi, FontState val);
|
|
|
|
QList<FamilyPair> family;
|
|
QList<SeriesPair> series;
|
|
QList<ShapePair> shape;
|
|
QList<SizePair> size;
|
|
QList<BarPair> bar;
|
|
QList<BarPair> strike;
|
|
QList<ColorCode> color;
|
|
QList<LanguagePair> language;
|
|
|
|
///
|
|
Font font_;
|
|
///
|
|
bool emph_;
|
|
///
|
|
bool noun_;
|
|
};
|
|
|
|
} // namespace frontend
|
|
} // namespace lyx
|
|
|
|
#endif // GUICHARACTER_H
|