* some cleanups

* some compile fixes on Windows (char_type is not automatically casted to uint)
* take care of higher ucs4 characters.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22838 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Abdelrazak Younes 2008-02-07 14:44:17 +00:00
parent d25c1d1066
commit 0d7c79db6d
2 changed files with 27 additions and 35 deletions

View File

@ -12,23 +12,19 @@
#include "GuiSymbols.h"
#include "Buffer.h"
#include "BufferView.h"
#include "GuiApplication.h"
#include "GuiView.h"
#include "qt_helpers.h"
#include "Buffer.h"
#include "BufferView.h"
#include "Encoding.h"
#include "support/gettext.h"
#include <QPixmap>
#include <QListWidgetItem>
// Set to zero if unicode symbols are preferred.
#define USE_PIXMAP 1
using namespace std;
namespace lyx {
@ -161,18 +157,28 @@ GuiSymbols::GuiSymbols(GuiView & lv)
int size = font.pointSize() + 3;
font.setPointSize(size);
symbolsLW->setFont(font);
okPB->setEnabled(!chosenLE->text().isEmpty() &&
!bufferview()->buffer().isReadonly());
applyPB->setEnabled(!chosenLE->text().isEmpty() &&
!bufferview()->buffer().isReadonly());
}
void GuiSymbols::updateView()
{
chosenLE->clear();
initialiseParams(bufferview()->cursor().getEncoding()->name());
string const & new_encoding = bufferview()->cursor().getEncoding()->name();
if (new_encoding == encoding_)
// everything up to date
return;
if (!new_encoding.empty())
encoding_ = new_encoding;
updateSymbolList();
}
void GuiSymbols::enableView(bool enable)
{
chosenLE->setEnabled(enable);
okPB->setEnabled(enable);
applyPB->setEnabled(enable);
}
@ -203,8 +209,9 @@ void GuiSymbols::on_symbolsLW_itemActivated(QListWidgetItem *)
void GuiSymbols::on_chosenLE_textChanged(QString const & text)
{
okPB->setEnabled(!text.isEmpty() && !bufferview()->buffer().isReadonly());
applyPB->setEnabled(!text.isEmpty() && !bufferview()->buffer().isReadonly());
bool const empty_sel = text.isEmpty();
okPB->setEnabled(!empty_sel);
applyPB->setEnabled(!empty_sel);
}
@ -245,11 +252,12 @@ void GuiSymbols::updateSymbolList()
SymbolsList::const_iterator const end = symbols.end();
for (SymbolsList::const_iterator it = symbols.begin(); it != end; ++it) {
char_type c = *it;
QChar::Category cat = QChar::category((uint) c);
// we do not want control or space characters
if (QChar(c).category() == QChar::Other_Control ||
QChar(c).category() == QChar::Separator_Space)
if (cat == QChar::Other_Control || cat == QChar::Separator_Space)
continue;
QListWidgetItem * lwi = new QListWidgetItem(QChar(c));
QListWidgetItem * lwi = new QListWidgetItem(
QString::fromUcs4((uint const *) &c, 1));
lwi->setTextAlignment(Qt::AlignCenter);
symbolsLW->addItem(lwi);
QString block = getBlock(c);
@ -275,19 +283,6 @@ QString const GuiSymbols::getBlock(char_type c) const
}
bool GuiSymbols::initialiseParams(string const & data)
{
if (data == encoding_)
// everything up to date
return true;
if (!data.empty())
encoding_ = data;
updateSymbolList();
return true;
}
void GuiSymbols::dispatchParams()
{
dispatch(FuncRequest(LFUN_SELF_INSERT, fromqstr(chosenLE->text())));

View File

@ -14,10 +14,8 @@
#include "DialogView.h"
#include "ui_SymbolsUi.h"
#include "Encoding.h"
class QListWidgetItem;
class Encoding;
namespace lyx {
namespace frontend {
@ -33,8 +31,7 @@ public:
//@{
void updateView();
void dispatchParams();
bool initialiseParams(std::string const & data);
void clearParams() {}
void enableView(bool enable);
bool isBufferDependent() const { return true; }
//@}