lyx_mirror/src/frontends/qt4/GuiCharacter.h
Juergen Spitzmueller fb393b450d Towards a sane character dialog
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).
2018-05-04 19:34:09 +02:00

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