mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-27 11:52:25 +00:00
make bullet configuration functional in the document settings dialog
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14647 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
f402dcb0bd
commit
1a08a29b0f
@ -4,7 +4,6 @@
|
|||||||
* Licence details can be found in the file COPYING.
|
* Licence details can be found in the file COPYING.
|
||||||
*
|
*
|
||||||
* \author Edwin Leuven
|
* \author Edwin Leuven
|
||||||
* \author John Levon
|
|
||||||
*
|
*
|
||||||
* Full author contact details are available in file CREDITS.
|
* Full author contact details are available in file CREDITS.
|
||||||
*/
|
*/
|
||||||
@ -12,15 +11,10 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include "BulletsModule.h"
|
#include "BulletsModule.h"
|
||||||
// #include "QBrowseBox.h"
|
|
||||||
#include "qt_helpers.h"
|
#include "qt_helpers.h"
|
||||||
|
|
||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
|
|
||||||
#include <QInputDialog>
|
|
||||||
#include <QMenu>
|
|
||||||
#include <QPushButton>
|
|
||||||
#include <QComboBox>
|
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
|
|
||||||
#include <boost/assert.hpp>
|
#include <boost/assert.hpp>
|
||||||
@ -29,10 +23,7 @@ using lyx::support::libFileSearch;
|
|||||||
|
|
||||||
using std::string;
|
using std::string;
|
||||||
|
|
||||||
|
BulletsModule::BulletsModule(QWidget * , char const * , Qt::WFlags)
|
||||||
BulletsModule::BulletsModule(QWidget * /*parent*/,
|
|
||||||
char const * /*name*/, Qt::WFlags /*fl*/)
|
|
||||||
: bullet_pressed_(0)
|
|
||||||
{
|
{
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
|
|
||||||
@ -40,107 +31,22 @@ BulletsModule::BulletsModule(QWidget * /*parent*/,
|
|||||||
bullets_[iter] = ITEMIZE_DEFAULTS[iter];
|
bullets_[iter] = ITEMIZE_DEFAULTS[iter];
|
||||||
}
|
}
|
||||||
|
|
||||||
QMenu * pm = new QMenu(this);
|
// add levels
|
||||||
|
levelLW->addItem("1");
|
||||||
// FIXME: Need to verify that this does not leak memory.
|
levelLW->addItem("2");
|
||||||
/*QMenu * pm1 =*/ new QMenu(pm);
|
levelLW->addItem("3");
|
||||||
/*QMenu * pm2 =*/ new QMenu(pm);
|
levelLW->addItem("4");
|
||||||
/*QMenu * pm3 =*/ new QMenu(pm);
|
|
||||||
/*QMenu * pm4 =*/ new QMenu(pm);
|
|
||||||
/*QMenu * pm5 =*/ new QMenu(pm);
|
|
||||||
/*QMenu * pm6 =*/ new QMenu(pm);
|
|
||||||
|
|
||||||
// FIXME: We need a Qt4 compatible browsebox type widget
|
|
||||||
// which can act as a popup to a toolbutton
|
|
||||||
/*
|
|
||||||
standard_ = new QBrowseBox(6, 6, pm1);
|
|
||||||
maths_ = new QBrowseBox(6, 6, pm2);
|
|
||||||
ding1_ = new QBrowseBox(6, 6, pm3);
|
|
||||||
ding2_ = new QBrowseBox(6, 6, pm4);
|
|
||||||
ding3_ = new QBrowseBox(6, 6, pm5);
|
|
||||||
ding4_ = new QBrowseBox(6, 6, pm6);
|
|
||||||
|
|
||||||
///\todo See how to insert those BrowseBox:
|
|
||||||
pm1->addMenu((QMenu*) standard_);
|
|
||||||
pm2->addMenu((QMenu*)maths_);
|
|
||||||
pm3->addMenu((QMenu*)ding1_);
|
|
||||||
pm4->addMenu((QMenu*)ding2_);
|
|
||||||
pm5->addMenu((QMenu*)ding3_);
|
|
||||||
pm6->addMenu((QMenu*)ding4_);
|
|
||||||
|
|
||||||
pm->insertItem(qt_("&Standard"), pm1, 0);
|
|
||||||
pm->insertItem(qt_("&Maths"), pm2, 1);
|
|
||||||
pm->insertItem(qt_("Dings &1"), pm3, 2);
|
|
||||||
pm->insertItem(qt_("Dings &2"), pm4, 3);
|
|
||||||
pm->insertItem(qt_("Dings &3"), pm5, 4);
|
|
||||||
pm->insertItem(qt_("Dings &4"), pm6, 5);
|
|
||||||
pm->insertSeparator();
|
|
||||||
// FIXME: make this checkable
|
|
||||||
pm->insertItem(qt_("&Custom..."), this, SLOT(setCustom()), 0, 6);
|
|
||||||
|
|
||||||
connect(bullet1PB, SIGNAL(pressed()), this, SLOT(clicked1()));
|
|
||||||
bullet1PB->setPopup(pm);
|
|
||||||
|
|
||||||
connect(bullet2PB, SIGNAL(pressed()), this, SLOT(clicked2()));
|
|
||||||
bullet2PB->setPopup(pm);
|
|
||||||
|
|
||||||
connect(bullet3PB, SIGNAL(pressed()), this, SLOT(clicked3()));
|
|
||||||
bullet3PB->setPopup(pm);
|
|
||||||
|
|
||||||
connect(bullet4PB, SIGNAL(pressed()), this, SLOT(clicked4()));
|
|
||||||
bullet4PB->setPopup(pm);
|
|
||||||
|
|
||||||
// insert pixmaps
|
// insert pixmaps
|
||||||
string bmfile;
|
setupPanel(new QListWidget(bulletpaneSW), qt_("Standard"), "standard");
|
||||||
bmfile = libFileSearch("images", "standard", "xpm");
|
setupPanel(new QListWidget(bulletpaneSW), qt_("Maths"), "amssymb");
|
||||||
standard_->insertItem(QPixmap(toqstr(bmfile)));
|
setupPanel(new QListWidget(bulletpaneSW), qt_("Dings 1"), "psnfss1");
|
||||||
|
setupPanel(new QListWidget(bulletpaneSW), qt_("Dings 2"), "psnfss2");
|
||||||
|
setupPanel(new QListWidget(bulletpaneSW), qt_("Dings 3"), "psnfss3");
|
||||||
|
setupPanel(new QListWidget(bulletpaneSW), qt_("Dings 4"), "psnfss4");
|
||||||
|
|
||||||
bmfile = libFileSearch("images", "amssymb", "xpm");
|
connect(levelLW, SIGNAL(currentRowChanged(int)), this, SLOT(showLevel(int)));
|
||||||
maths_->insertItem(QPixmap(toqstr(bmfile)));
|
connect(bulletpaneCO, SIGNAL(activated(int)), bulletpaneSW, SLOT(setCurrentIndex(int)));
|
||||||
|
|
||||||
bmfile = libFileSearch("images", "psnfss1", "xpm");
|
|
||||||
ding1_->insertItem(QPixmap(toqstr(bmfile)));
|
|
||||||
|
|
||||||
bmfile = libFileSearch("images", "psnfss2", "xpm");
|
|
||||||
ding2_->insertItem(QPixmap(toqstr(bmfile)));
|
|
||||||
|
|
||||||
bmfile = libFileSearch("images", "psnfss3", "xpm");
|
|
||||||
ding3_->insertItem(QPixmap(toqstr(bmfile)));
|
|
||||||
|
|
||||||
bmfile = libFileSearch("images", "psnfss4", "xpm");
|
|
||||||
ding4_->insertItem(QPixmap(toqstr(bmfile)));
|
|
||||||
|
|
||||||
connect(standard_, SIGNAL(selected(int, int)),
|
|
||||||
this, SLOT(standard(int, int)));
|
|
||||||
|
|
||||||
connect(maths_, SIGNAL(selected(int, int)),
|
|
||||||
this, SLOT(maths(int, int)));
|
|
||||||
|
|
||||||
connect(ding1_, SIGNAL(selected(int, int)),
|
|
||||||
this, SLOT(ding1(int, int)));
|
|
||||||
|
|
||||||
connect(ding2_, SIGNAL(selected(int, int)),
|
|
||||||
this, SLOT(ding2(int, int)));
|
|
||||||
|
|
||||||
connect(ding3_, SIGNAL(selected(int, int)),
|
|
||||||
this, SLOT(ding3(int, int)));
|
|
||||||
|
|
||||||
connect(ding4_, SIGNAL(selected(int, int)),
|
|
||||||
this, SLOT(ding4(int, int)));
|
|
||||||
|
|
||||||
connect(bullet1PB, SIGNAL(pressed()), this, SLOT(selected1()));
|
|
||||||
connect(bullet2PB, SIGNAL(pressed()), this, SLOT(selected2()));
|
|
||||||
connect(bullet3PB, SIGNAL(pressed()), this, SLOT(selected3()));
|
|
||||||
connect(bullet4PB, SIGNAL(pressed()), this, SLOT(selected4()));
|
|
||||||
connect(bulletsize1CO, SIGNAL(activated(int)), this, SLOT(updateSizes()));
|
|
||||||
connect(bulletsize2CO, SIGNAL(activated(int)), this, SLOT(updateSizes()));
|
|
||||||
connect(bulletsize3CO, SIGNAL(activated(int)), this, SLOT(updateSizes()));
|
|
||||||
connect(bulletsize4CO, SIGNAL(activated(int)), this, SLOT(updateSizes()));
|
|
||||||
|
|
||||||
// update the view
|
|
||||||
for (int i = 0; i < 4; ++i)
|
|
||||||
setBullet(bullet1PB, bulletsize1CO, bullets_[i]);
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -149,152 +55,144 @@ BulletsModule::~BulletsModule()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::updateSizes()
|
void BulletsModule::setupPanel(QListWidget * lw, QString panelname, std::string fname)
|
||||||
{
|
{
|
||||||
// emit signal
|
connect(lw, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
|
||||||
changed();
|
this, SLOT(bulletSelected(QListWidgetItem *, QListWidgetItem*)));
|
||||||
|
|
||||||
// -1 apparently means default...
|
// add panelname to combox
|
||||||
bullets_[0].setSize(bulletsize1CO->currentItem() - 1);
|
bulletpaneCO->addItem(panelname);
|
||||||
bullets_[1].setSize(bulletsize2CO->currentItem() - 1);
|
|
||||||
bullets_[2].setSize(bulletsize3CO->currentItem() - 1);
|
|
||||||
bullets_[3].setSize(bulletsize4CO->currentItem() - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// get pixmap with bullets
|
||||||
|
QPixmap pixmap = QPixmap(toqstr(libFileSearch("images", fname, "xpm")));
|
||||||
|
int const w = pixmap.width() / 6;
|
||||||
|
int const h = pixmap.height() / 6;
|
||||||
|
|
||||||
// These arrive before the menus are launched.
|
// apply setting to listwidget
|
||||||
void BulletsModule::clicked1()
|
lw->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
{
|
lw->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
bullet_pressed_ = &bullets_[0];
|
lw->setViewMode(QListView::IconMode);
|
||||||
}
|
lw->setFlow(QListView::LeftToRight);
|
||||||
|
lw->setMovement(QListView::Static);
|
||||||
|
lw->setUniformItemSizes(true);
|
||||||
|
lw->setGridSize( QSize(w , h) );
|
||||||
|
lw->resize( 6 * w + 6 , 6* h);
|
||||||
|
bulletpaneSW->setMinimumSize( 6 * w + 6 , 6 * h);
|
||||||
|
|
||||||
|
// get individual bullets from pixmap
|
||||||
void BulletsModule::clicked2()
|
for (int row = 0; row < 6; ++row) {
|
||||||
{
|
for (int col = 0; col < 6; ++col) {
|
||||||
bullet_pressed_ = &bullets_[1];
|
QPixmap small(w,h);
|
||||||
}
|
// FIXME: how to get the good color?
|
||||||
|
small.fill(QColor(Qt::white));
|
||||||
|
bitBlt(&small, 0, 0, &pixmap, col * w, row * h, w, h);
|
||||||
void BulletsModule::clicked3()
|
new QListWidgetItem(QIcon(small), "" , lw, (6*row + col));
|
||||||
{
|
}
|
||||||
bullet_pressed_ = &bullets_[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::clicked4()
|
|
||||||
{
|
|
||||||
bullet_pressed_ = &bullets_[3];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// These arrive *after* the menus have done their work
|
|
||||||
void BulletsModule::selected1()
|
|
||||||
{
|
|
||||||
if (!tmpbulletset)
|
|
||||||
return;
|
|
||||||
tmpbulletset = false;
|
|
||||||
bullets_[0] = tmpbullet;
|
|
||||||
setBullet(bullet1PB, bulletsize1CO, bullets_[0]);
|
|
||||||
// emit signal
|
|
||||||
changed();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::selected2()
|
|
||||||
{
|
|
||||||
if (!tmpbulletset)
|
|
||||||
return;
|
|
||||||
tmpbulletset = false;
|
|
||||||
bullets_[1] = tmpbullet;
|
|
||||||
setBullet(bullet2PB, bulletsize2CO, bullets_[1]);
|
|
||||||
// emit signal
|
|
||||||
changed();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::selected3()
|
|
||||||
{
|
|
||||||
if (!tmpbulletset)
|
|
||||||
return;
|
|
||||||
tmpbulletset = false;
|
|
||||||
bullets_[2] = tmpbullet;
|
|
||||||
setBullet(bullet3PB, bulletsize3CO, bullets_[2]);
|
|
||||||
// emit signal
|
|
||||||
changed();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::selected4()
|
|
||||||
{
|
|
||||||
if (!tmpbulletset)
|
|
||||||
return;
|
|
||||||
tmpbulletset = false;
|
|
||||||
bullets_[3] = tmpbullet;
|
|
||||||
setBullet(bullet4PB, bulletsize4CO, bullets_[3]);
|
|
||||||
// emit signal
|
|
||||||
changed();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QPixmap BulletsModule::getPixmap(int /*font*/, int /*character*/)
|
|
||||||
{
|
|
||||||
//int col = character % 6;
|
|
||||||
//int row = (character - col) / 6;
|
|
||||||
|
|
||||||
/* switch (font) {
|
|
||||||
case 0:
|
|
||||||
return standard_->pixmap(row,col);
|
|
||||||
case 1:
|
|
||||||
return maths_->pixmap(row,col);
|
|
||||||
case 2:
|
|
||||||
return ding1_->pixmap(row,col);
|
|
||||||
case 3:
|
|
||||||
return ding2_->pixmap(row,col);
|
|
||||||
case 4:
|
|
||||||
return ding3_->pixmap(row,col);
|
|
||||||
case 5:
|
|
||||||
return ding4_->pixmap(row,col);
|
|
||||||
default:
|
|
||||||
return standard_->pixmap(row,col);
|
|
||||||
}*/
|
|
||||||
// make qt4 frontend at least compilable now.
|
|
||||||
return QPixmap();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::setBullet(QPushButton * pb, QComboBox * co, Bullet const & b)
|
|
||||||
{
|
|
||||||
if (b.getFont() == -1) {
|
|
||||||
pb->setPixmap(QPixmap());
|
|
||||||
pb->setText(toqstr(b.getText()));
|
|
||||||
} else {
|
|
||||||
pb->setPixmap(getPixmap(b.getFont(), b.getCharacter()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pb->setMinimumSize(QSize(50, 50));
|
// add bulletpanel to stackedwidget
|
||||||
|
bulletpaneSW->addWidget(lw);
|
||||||
co->setCurrentItem(b.getSize() + 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::setBullet(int level, const Bullet & bullet)
|
void BulletsModule::showLevel(int level)
|
||||||
|
{
|
||||||
|
unselectPreviousItem();
|
||||||
|
current_font_ = bullets_[level].getFont();
|
||||||
|
|
||||||
|
if (bullets_[level].getFont()<0) {
|
||||||
|
customCB->setCheckState(Qt::Checked);
|
||||||
|
customLE->setText(toqstr(bullets_[level].getText()));
|
||||||
|
} else {
|
||||||
|
selectBullet(level);
|
||||||
|
customCB->setCheckState(Qt::Unchecked);
|
||||||
|
customLE->clear();
|
||||||
|
bulletpaneCO->setCurrentIndex(current_font_);
|
||||||
|
bulletpaneSW->setCurrentIndex(current_font_);
|
||||||
|
}
|
||||||
|
bulletsizeCO->setCurrentIndex(bullets_[level].getSize() + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BulletsModule::selectBullet(int level)
|
||||||
|
{
|
||||||
|
int const bullet = bullets_[level].getCharacter();
|
||||||
|
QListWidget * lw = static_cast<QListWidget *>(bulletpaneSW->widget(current_font_));
|
||||||
|
// get all items (FIXME: is there a better way? this looks too complicated)
|
||||||
|
QList<QListWidgetItem *> items = lw->findItems("", Qt::MatchContains);
|
||||||
|
for (int i = 0 ; i < items.size() ; ++i) {
|
||||||
|
if (items.at(i)->type() == bullet) {
|
||||||
|
current_item_ = items.at(i);
|
||||||
|
lw->setItemSelected(current_item_, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BulletsModule::init()
|
||||||
|
{
|
||||||
|
levelLW->setCurrentRow(0);
|
||||||
|
showLevel(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BulletsModule::bulletSelected(QListWidgetItem * item, QListWidgetItem *)
|
||||||
|
{
|
||||||
|
unselectPreviousItem();
|
||||||
|
int const level = levelLW->currentRow();
|
||||||
|
bullets_[level].setCharacter(item->type());
|
||||||
|
bullets_[level].setFont(bulletpaneCO->currentIndex());
|
||||||
|
current_font_ = bulletpaneCO->currentIndex();
|
||||||
|
current_item_ = item;
|
||||||
|
changed();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BulletsModule::unselectPreviousItem()
|
||||||
|
{
|
||||||
|
if (current_font_<0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
QListWidget * lw = static_cast<QListWidget *>(bulletpaneSW->widget(current_font_));
|
||||||
|
lw->setItemSelected(current_item_, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BulletsModule::on_customCB_toggled(bool custom)
|
||||||
|
{
|
||||||
|
if (!custom) {
|
||||||
|
if (current_font_<0)
|
||||||
|
current_font_ = bulletpaneCO->currentIndex();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
unselectPreviousItem();
|
||||||
|
current_font_ = -1;
|
||||||
|
changed();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BulletsModule::on_customLE_textEdited(const QString & text)
|
||||||
|
{
|
||||||
|
if (customCB->checkState() == Qt::Unchecked)
|
||||||
|
return;
|
||||||
|
|
||||||
|
bullets_[levelLW->currentRow()].setFont(current_font_);
|
||||||
|
bullets_[levelLW->currentRow()].setText(fromqstr(text));
|
||||||
|
changed();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BulletsModule::on_bulletsizeCO_activated(int size)
|
||||||
|
{
|
||||||
|
// -1 apparently means default...
|
||||||
|
bullets_[levelLW->currentRow()].setSize(size - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BulletsModule::setBullet(int level, Bullet const & bullet)
|
||||||
{
|
{
|
||||||
bullets_[level] = bullet;
|
bullets_[level] = bullet;
|
||||||
// FIXME: backout until we fixed the browsebox
|
|
||||||
return;
|
|
||||||
|
|
||||||
QPushButton * pb = 0;
|
|
||||||
QComboBox * co = 0;
|
|
||||||
|
|
||||||
switch (level) {
|
|
||||||
case 0: pb = bullet1PB; co = bulletsize1CO; break;
|
|
||||||
case 1: pb = bullet2PB; co = bulletsize2CO; break;
|
|
||||||
case 2: pb = bullet3PB; co = bulletsize3CO; break;
|
|
||||||
case 3: pb = bullet4PB; co = bulletsize4CO; break;
|
|
||||||
default: BOOST_ASSERT(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
setBullet(pb, co, bullet);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -304,68 +202,4 @@ Bullet const & BulletsModule::getBullet(int level) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::setCurrentBullet(int font, int character)
|
|
||||||
{
|
|
||||||
tmpbulletset = true;
|
|
||||||
tmpbullet.setFont(font);
|
|
||||||
tmpbullet.setCharacter(character);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::standard(int row, int col)
|
|
||||||
{
|
|
||||||
setCurrentBullet(0, 6 * row + col);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::maths(int row, int col)
|
|
||||||
{
|
|
||||||
setCurrentBullet(1, 6 * row + col);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::ding1(int row, int col)
|
|
||||||
{
|
|
||||||
setCurrentBullet(2, 6 * row + col);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::ding2(int row, int col)
|
|
||||||
{
|
|
||||||
setCurrentBullet(3, 6 * row + col);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::ding3(int row, int col)
|
|
||||||
{
|
|
||||||
setCurrentBullet(4, 6 * row + col);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::ding4(int row, int col)
|
|
||||||
{
|
|
||||||
setCurrentBullet(5, 6 * row + col);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BulletsModule::setCustom()
|
|
||||||
{
|
|
||||||
QString const input = bullet_pressed_ ?
|
|
||||||
toqstr(bullet_pressed_->getText()) : QString::null;
|
|
||||||
|
|
||||||
bool ok = false;
|
|
||||||
QString text = QInputDialog::getText(
|
|
||||||
qt_( "Bullets" ),
|
|
||||||
qt_( "Enter a custom bullet" ),
|
|
||||||
QLineEdit::Normal,
|
|
||||||
input, &ok, this );
|
|
||||||
|
|
||||||
if (!ok)
|
|
||||||
return;
|
|
||||||
|
|
||||||
tmpbulletset = true;
|
|
||||||
tmpbullet.setText(fromqstr(text));
|
|
||||||
tmpbullet.setFont(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "BulletsModule_moc.cpp"
|
#include "BulletsModule_moc.cpp"
|
||||||
|
@ -19,11 +19,6 @@
|
|||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
// class QBrowseBox;
|
|
||||||
class QPushButton;
|
|
||||||
class QComboBox;
|
|
||||||
class QPixmap;
|
|
||||||
|
|
||||||
class BulletsModule : public QWidget, public Ui::BulletsUi {
|
class BulletsModule : public QWidget, public Ui::BulletsUi {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
@ -33,61 +28,32 @@ public:
|
|||||||
~BulletsModule();
|
~BulletsModule();
|
||||||
|
|
||||||
/// set a bullet
|
/// set a bullet
|
||||||
void setBullet(int level, const Bullet & bullet);
|
void setBullet(int level, Bullet const & bullet);
|
||||||
|
|
||||||
/// get bullet setting
|
/// get bullet setting
|
||||||
Bullet const & getBullet(int level) const;
|
Bullet const & getBullet(int level) const;
|
||||||
|
/// update 1st level
|
||||||
|
void init();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void changed();
|
void changed();
|
||||||
|
|
||||||
protected Q_SLOTS:
|
protected Q_SLOTS:
|
||||||
|
|
||||||
/// menu callbacks
|
void on_bulletsizeCO_activated(int level);
|
||||||
void standard(int row, int col);
|
void on_customCB_toggled(bool);
|
||||||
void maths(int row, int col);
|
void on_customLE_textEdited(const QString &);
|
||||||
void ding1(int row, int col);
|
void bulletSelected(QListWidgetItem *, QListWidgetItem*);
|
||||||
void ding2(int row, int col);
|
void showLevel(int);
|
||||||
void ding3(int row, int col);
|
|
||||||
void ding4(int row, int col);
|
|
||||||
|
|
||||||
void updateSizes();
|
|
||||||
|
|
||||||
void clicked1();
|
|
||||||
void clicked2();
|
|
||||||
void clicked3();
|
|
||||||
void clicked4();
|
|
||||||
|
|
||||||
void selected1();
|
|
||||||
void selected2();
|
|
||||||
void selected3();
|
|
||||||
void selected4();
|
|
||||||
|
|
||||||
/// set custom (text) bullet
|
|
||||||
void setCustom();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QPixmap getPixmap(int font, int character);
|
void unselectPreviousItem();
|
||||||
|
void setupPanel(QListWidget * lw, QString panelname, std::string fname);
|
||||||
/// update GUI view
|
void selectBullet(int level);
|
||||||
void setBullet(QPushButton * pb, QComboBox * co, Bullet const & b);
|
|
||||||
|
|
||||||
/// set from menu
|
|
||||||
void setCurrentBullet(int font, int character);
|
|
||||||
|
|
||||||
bool tmpbulletset;
|
|
||||||
Bullet tmpbullet;
|
|
||||||
|
|
||||||
/// store results
|
/// store results
|
||||||
boost::array<Bullet, 4> bullets_;
|
boost::array<Bullet, 4> bullets_;
|
||||||
|
int current_font_;
|
||||||
/* QBrowseBox * standard_;
|
QListWidgetItem * current_item_;
|
||||||
QBrowseBox * maths_;
|
|
||||||
QBrowseBox * ding1_;
|
|
||||||
QBrowseBox * ding2_;
|
|
||||||
QBrowseBox * ding3_;
|
|
||||||
QBrowseBox * ding4_;*/
|
|
||||||
Bullet * bullet_pressed_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BULLETSMODULE_H
|
#endif // BULLETSMODULE_H
|
||||||
|
@ -1,308 +0,0 @@
|
|||||||
/**
|
|
||||||
* \file QBrowseBox.C
|
|
||||||
*
|
|
||||||
* Original file taken from klyx 0.10 sources:
|
|
||||||
*
|
|
||||||
* \author Kalle Dalheimer
|
|
||||||
*
|
|
||||||
* Full author contact details are available in file CREDITS.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
#include "QBrowseBox.h"
|
|
||||||
|
|
||||||
#include <QPixmap>
|
|
||||||
#include <QPainter>
|
|
||||||
#include <QApplication>
|
|
||||||
#include <qdrawutil.h>
|
|
||||||
#include <QStyle>
|
|
||||||
#include <QMouseEvent>
|
|
||||||
#include <QFrame>
|
|
||||||
#include <QKeyEvent>
|
|
||||||
#include <QCloseEvent>
|
|
||||||
|
|
||||||
#include <QDesktopWidget>
|
|
||||||
|
|
||||||
#include <cmath>
|
|
||||||
|
|
||||||
|
|
||||||
QBrowseBox::QBrowseBox(int rows, int cols, QWidget* parent, const char * name, Qt::WFlags f)
|
|
||||||
: Q3GridView(parent,name,f)
|
|
||||||
{
|
|
||||||
setNumRows(rows);
|
|
||||||
setNumCols(cols);
|
|
||||||
|
|
||||||
pixmaps_ = new QPixmap[rows * cols];
|
|
||||||
|
|
||||||
activecell_.setX(-1);
|
|
||||||
activecell_.setY(-1);
|
|
||||||
|
|
||||||
|
|
||||||
setFrameStyle(QFrame::WinPanel | QFrame::Raised);
|
|
||||||
|
|
||||||
setVScrollBarMode(Q3ScrollView::AlwaysOff);
|
|
||||||
setHScrollBarMode(Q3ScrollView::AlwaysOff);
|
|
||||||
|
|
||||||
viewport()->setFocusPolicy(Qt::StrongFocus);
|
|
||||||
// setMouseTracking must be called after setFocusPolicy
|
|
||||||
viewport()->setMouseTracking(true);
|
|
||||||
inloop=false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QBrowseBox::~QBrowseBox()
|
|
||||||
{
|
|
||||||
delete [] pixmaps_;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int QBrowseBox::coordsToIndex(int row, int col)
|
|
||||||
{
|
|
||||||
if (col < 0 || col > numCols() || row < 0 || row > numRows())
|
|
||||||
qDebug("coordsToIndex: invalid coords (%d, %d)\n", row, col);
|
|
||||||
return row + col * numCols();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void QBrowseBox::insertItem(QPixmap pixmap, int row, int col)
|
|
||||||
{
|
|
||||||
pixmaps_[coordsToIndex(row, col)] = pixmap;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void QBrowseBox::insertItem(QPixmap pixmap)
|
|
||||||
{
|
|
||||||
int w = pixmap.width() / numCols();
|
|
||||||
int h = pixmap.height() / numRows();
|
|
||||||
|
|
||||||
for (int row = 0; row < numRows(); ++row) {
|
|
||||||
for (int col = 0; col < numCols(); ++col) {
|
|
||||||
QPixmap small(w,h);
|
|
||||||
small.fill(backgroundColor());
|
|
||||||
bitBlt(&small, 0, 0, &pixmap, col * w, row * h,
|
|
||||||
w, h);
|
|
||||||
insertItem(small, row, col);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setCellWidth(pixmap.width() / numCols());
|
|
||||||
setCellHeight(pixmap.height() / numRows());
|
|
||||||
setMinimumWidth(pixmap.width() + (numCols() + 1) * 1);
|
|
||||||
setMinimumHeight(pixmap.height() + (numRows() + 1) * 1);
|
|
||||||
resize(minimumSize());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QPixmap QBrowseBox::pixmap(int row, int col)
|
|
||||||
{
|
|
||||||
if (col < 0 || col >= numCols() || row < 0 || row >= numRows())
|
|
||||||
return QPixmap();
|
|
||||||
return pixmaps_[coordsToIndex(row, col)];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int QBrowseBox::exec(const QPoint & pos)
|
|
||||||
{
|
|
||||||
return exec(pos.x(),pos.y());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int QBrowseBox::exec(const QWidget * trigger)
|
|
||||||
{
|
|
||||||
QPoint globalpos = trigger->parentWidget()->mapToGlobal( trigger->pos());
|
|
||||||
// is there enough space to put the box below the trigger?
|
|
||||||
if ( globalpos.y() + trigger->height()+height()+1<
|
|
||||||
QApplication::desktop()->height()) {
|
|
||||||
// is there enough space to set the box left-justified with the trigger
|
|
||||||
if (globalpos.x()+width()<QApplication::desktop()->width())
|
|
||||||
return exec(globalpos.x(),
|
|
||||||
globalpos.y()+trigger->height()+1);
|
|
||||||
else
|
|
||||||
return exec(globalpos.x()-width()-1,
|
|
||||||
globalpos.y()+trigger->height()+1);
|
|
||||||
} else {
|
|
||||||
if (globalpos.x()+width()<QApplication::desktop()->width())
|
|
||||||
return exec(globalpos.x(),
|
|
||||||
globalpos.y()-height()-1);
|
|
||||||
else
|
|
||||||
return exec(globalpos.x()-width()-1,
|
|
||||||
globalpos.y()-height()-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int QBrowseBox::exec(int x,int y)
|
|
||||||
{
|
|
||||||
firstrelease_ = true;
|
|
||||||
move(x,y);
|
|
||||||
show();
|
|
||||||
update();
|
|
||||||
qApp->enter_loop();
|
|
||||||
inloop = true;
|
|
||||||
|
|
||||||
if (activecell_.x()!=-1 && activecell_.y()!=-1 )
|
|
||||||
return coordsToIndex( activecell_.x(),activecell_.y());
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void QBrowseBox::keyPressEvent(QKeyEvent * e)
|
|
||||||
{
|
|
||||||
switch(e->key()) {
|
|
||||||
case Qt::Key_Up:
|
|
||||||
moveUp();
|
|
||||||
break;
|
|
||||||
case Qt::Key_Down:
|
|
||||||
moveDown();
|
|
||||||
break;
|
|
||||||
case Qt::Key_Left:
|
|
||||||
moveLeft();
|
|
||||||
break;
|
|
||||||
case Qt::Key_Right:
|
|
||||||
moveRight();
|
|
||||||
break;
|
|
||||||
case Qt::Key_Return:
|
|
||||||
emit selected(activecell_.x(), activecell_.y());
|
|
||||||
if ( isVisible() && parentWidget() &&
|
|
||||||
parentWidget()->inherits("QPopupMenu") )
|
|
||||||
parentWidget()->close();
|
|
||||||
else
|
|
||||||
close();
|
|
||||||
break;
|
|
||||||
case Qt::Key_Escape:
|
|
||||||
if (inloop)
|
|
||||||
qApp->exit_loop();
|
|
||||||
if ( isVisible() && parentWidget() &&
|
|
||||||
parentWidget()->inherits("QPopupMenu") )
|
|
||||||
parentWidget()->close();
|
|
||||||
default:
|
|
||||||
e->ignore();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void QBrowseBox::contentsMouseReleaseEvent(QMouseEvent *)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (firstrelease_)
|
|
||||||
firstrelease_ = false;
|
|
||||||
else {
|
|
||||||
emit selected( activecell_.x(), activecell_.y());
|
|
||||||
if ( isVisible() && parentWidget() &&
|
|
||||||
parentWidget()->inherits("QPopupMenu") )
|
|
||||||
parentWidget()->close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void QBrowseBox::closeEvent(QCloseEvent * e)
|
|
||||||
{
|
|
||||||
e->accept();
|
|
||||||
qApp->exit_loop();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void QBrowseBox::paintCell(QPainter * painter, int row, int col)
|
|
||||||
{
|
|
||||||
painter->setClipRect(cellGeometry(row, col));
|
|
||||||
|
|
||||||
int const index = coordsToIndex(row, col);
|
|
||||||
|
|
||||||
painter->drawPixmap(0, 0, pixmaps_[index]);
|
|
||||||
|
|
||||||
if (activecell_.x() == row && activecell_.y() == col) {
|
|
||||||
qDrawShadeRect(painter, 0, 0, cellWidth(),
|
|
||||||
cellHeight(), colorGroup(), false, 1);
|
|
||||||
} else {
|
|
||||||
qDrawPlainRect(painter, 0, 0, cellWidth(),
|
|
||||||
cellHeight(), colorGroup().background(), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
painter->setClipping(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void QBrowseBox::contentsMouseMoveEvent(QMouseEvent * e)
|
|
||||||
{
|
|
||||||
int x = e->pos().x();
|
|
||||||
int y = e->pos().y();
|
|
||||||
|
|
||||||
int cellx;
|
|
||||||
int celly;
|
|
||||||
|
|
||||||
if (x < 0 || y < 0 || x > width() || y > height()) {
|
|
||||||
// outside the box
|
|
||||||
cellx = -1;
|
|
||||||
celly = -1;
|
|
||||||
} else {
|
|
||||||
celly = (int)floor( ((double)x) / ((double)cellWidth()) );
|
|
||||||
cellx = (int)floor( ((double)y) / ((double)cellHeight()) );
|
|
||||||
}
|
|
||||||
|
|
||||||
if (activecell_.x() != cellx || activecell_.y() != celly) {
|
|
||||||
// mouse has been moved to another cell
|
|
||||||
int oldactivecellx = activecell_.x();
|
|
||||||
int oldactivecelly = activecell_.y();
|
|
||||||
activecell_.setX(cellx);
|
|
||||||
activecell_.setY(celly);
|
|
||||||
// remove old highlighting
|
|
||||||
updateCell(oldactivecellx, oldactivecelly);
|
|
||||||
// set new highlighting
|
|
||||||
updateCell(activecell_.x(), activecell_.y());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void QBrowseBox::moveLeft()
|
|
||||||
{
|
|
||||||
int const y = activecell_.y();
|
|
||||||
|
|
||||||
if (y>0)
|
|
||||||
activecell_.setY(y - 1);
|
|
||||||
else if (parentWidget())
|
|
||||||
QWidget::focusNextPrevChild(false);
|
|
||||||
|
|
||||||
updateCell(activecell_.x(), y);
|
|
||||||
updateCell(activecell_.x(), activecell_.y());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void QBrowseBox::moveRight()
|
|
||||||
{
|
|
||||||
int const y = activecell_.y();
|
|
||||||
|
|
||||||
if (y < numCols() - 1)
|
|
||||||
activecell_.setY(y+1);
|
|
||||||
|
|
||||||
updateCell(activecell_.x(), y);
|
|
||||||
updateCell(activecell_.x(), activecell_.y());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void QBrowseBox::moveUp()
|
|
||||||
{
|
|
||||||
int const x = activecell_.x();
|
|
||||||
|
|
||||||
if (x > 0)
|
|
||||||
activecell_.setX(x - 1);
|
|
||||||
else if (parentWidget())
|
|
||||||
QWidget::focusNextPrevChild(false);
|
|
||||||
|
|
||||||
updateCell(x, activecell_.y());
|
|
||||||
updateCell(activecell_.x(), activecell_.y());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void QBrowseBox::moveDown()
|
|
||||||
{
|
|
||||||
int const x = activecell_.x();
|
|
||||||
|
|
||||||
if (x < numRows() - 1)
|
|
||||||
activecell_.setX(x + 1);
|
|
||||||
|
|
||||||
updateCell(x, activecell_.y());
|
|
||||||
updateCell(activecell_.x(), activecell_.y());
|
|
||||||
}
|
|
@ -1,71 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
/**
|
|
||||||
* \file QBrowseBox.h
|
|
||||||
*
|
|
||||||
* Original file taken from klyx 0.10 sources:
|
|
||||||
*
|
|
||||||
* \author Kalle Dalheimer
|
|
||||||
*
|
|
||||||
* Full author contact details are available in file CREDITS.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef QBROWSEBOX_H
|
|
||||||
#define QBROWSEBOX_H
|
|
||||||
|
|
||||||
#include <QPixmap>
|
|
||||||
#include <QMouseEvent>
|
|
||||||
#include <QKeyEvent>
|
|
||||||
#include <QCloseEvent>
|
|
||||||
#include <Q3GridView>
|
|
||||||
|
|
||||||
|
|
||||||
class QString;
|
|
||||||
class QPainter;
|
|
||||||
class QPixmap;
|
|
||||||
|
|
||||||
|
|
||||||
class QBrowseBox : public Q3GridView
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
QBrowseBox(int rows, int cols, QWidget * parent = 0, const char * name = 0, Qt::WFlags f = 0);
|
|
||||||
~QBrowseBox();
|
|
||||||
|
|
||||||
void insertItem(QPixmap pixmap);
|
|
||||||
|
|
||||||
QPixmap pixmap(int row, int col);
|
|
||||||
|
|
||||||
int exec(const QPoint & pos);
|
|
||||||
int exec(int x, int y);
|
|
||||||
int exec(const QWidget * trigger);
|
|
||||||
|
|
||||||
Q_SIGNALS:
|
|
||||||
void selected(int, int);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual void keyPressEvent(QKeyEvent * e);
|
|
||||||
virtual void contentsMouseReleaseEvent(QMouseEvent *);
|
|
||||||
virtual void closeEvent(QCloseEvent * e);
|
|
||||||
virtual void contentsMouseMoveEvent(QMouseEvent * e);
|
|
||||||
virtual void paintCell(QPainter *, int row, int col);
|
|
||||||
|
|
||||||
private:
|
|
||||||
// make sure the automatically generated one is not used
|
|
||||||
QBrowseBox & operator=(QBrowseBox const &);
|
|
||||||
|
|
||||||
void moveLeft();
|
|
||||||
void moveRight();
|
|
||||||
void moveUp();
|
|
||||||
void moveDown();
|
|
||||||
|
|
||||||
void insertItem(QPixmap pixmap, int row, int col);
|
|
||||||
|
|
||||||
int coordsToIndex(int row, int col);
|
|
||||||
|
|
||||||
QPixmap* pixmaps_;
|
|
||||||
QPoint activecell_;
|
|
||||||
bool firstrelease_;
|
|
||||||
bool inloop;
|
|
||||||
|
|
||||||
};
|
|
||||||
#endif
|
|
@ -375,20 +375,18 @@ QDocumentDialog::QDocumentDialog(QDocument * form)
|
|||||||
connect(branchesModule, SIGNAL(changed()), this, SLOT(change_adaptor()));
|
connect(branchesModule, SIGNAL(changed()), this, SLOT(change_adaptor()));
|
||||||
|
|
||||||
|
|
||||||
preambleModule = new UiWidget<Ui::PreambleUi>;
|
|
||||||
// preamble
|
// preamble
|
||||||
|
preambleModule = new UiWidget<Ui::PreambleUi>;
|
||||||
connect(preambleModule->preambleTE, SIGNAL(textChanged()), this, SLOT(change_adaptor()));
|
connect(preambleModule->preambleTE, SIGNAL(textChanged()), this, SLOT(change_adaptor()));
|
||||||
|
|
||||||
|
|
||||||
bulletsModule = new BulletsModule;
|
|
||||||
// FIXME: disable until we fix browsebox in BulletsModule.[Ch]
|
|
||||||
bulletsModule->setEnabled(false);
|
|
||||||
// bullets
|
// bullets
|
||||||
|
bulletsModule = new BulletsModule;
|
||||||
connect(bulletsModule, SIGNAL(changed()), this, SLOT(change_adaptor()));
|
connect(bulletsModule, SIGNAL(changed()), this, SLOT(change_adaptor()));
|
||||||
|
|
||||||
|
|
||||||
floatModule = new FloatPlacement;
|
|
||||||
// float
|
// float
|
||||||
|
floatModule = new FloatPlacement;
|
||||||
connect(floatModule, SIGNAL(changed()), this, SLOT(change_adaptor()));
|
connect(floatModule, SIGNAL(changed()), this, SLOT(change_adaptor()));
|
||||||
|
|
||||||
docPS->addPanel(latexModule, _("Document Class"));
|
docPS->addPanel(latexModule, _("Document Class"));
|
||||||
@ -970,10 +968,11 @@ void QDocumentDialog::update(BufferParams const & params)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// bullets
|
// bullets
|
||||||
bulletsModule->setBullet(0,params.user_defined_bullet(0));
|
bulletsModule->setBullet(0, params.user_defined_bullet(0));
|
||||||
bulletsModule->setBullet(1,params.user_defined_bullet(1));
|
bulletsModule->setBullet(1, params.user_defined_bullet(1));
|
||||||
bulletsModule->setBullet(2,params.user_defined_bullet(2));
|
bulletsModule->setBullet(2, params.user_defined_bullet(2));
|
||||||
bulletsModule->setBullet(3,params.user_defined_bullet(3));
|
bulletsModule->setBullet(3, params.user_defined_bullet(3));
|
||||||
|
bulletsModule->init();
|
||||||
|
|
||||||
// packages
|
// packages
|
||||||
QString text = toqstr(params.graphicsDriver);
|
QString text = toqstr(params.graphicsDriver);
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user