[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/libs/guiutils
From: Casper Boemann <cbr () boemann ! dk>
Date: 2007-05-20 10:27:42
Message-ID: 1179656862.789472.31910.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 666567 by boemann:
d pointify KoZoomAction
M +85 -71 KoZoomAction.cpp
M +4 -7 KoZoomAction.h
--- trunk/koffice/libs/guiutils/KoZoomAction.cpp #666566:666567
@@ -45,23 +45,37 @@
#include <KoZoomMode.h>
+class KoZoomAction::Private
+{
+public:
+ KoZoomMode::Modes zoomModes;
+ ExtLineEdit *number;
+ QSlider *slider;
+ double sliderLookup[33];
+ QButtonGroup* zoomButtonGroup;
+
+ double effectiveZoom;
+ bool doSpecialAspectMode;
+};
+
KoZoomAction::KoZoomAction( KoZoomMode::Modes zoomModes, const QString& text, bool \
doSpecialAspectMode, QObject *parent)
- : KSelectAction(text, parent),
- m_zoomModes( zoomModes )
+ : KSelectAction(text, parent)
+ ,d(new Private)
{
- m_slider = 0;
- m_number = 0;
- m_zoomButtonGroup = 0;
- m_doSpecialAspectMode = doSpecialAspectMode;
+ d->zoomModes = zoomModes;
+ d->slider = 0;
+ d->number = 0;
+ d->zoomButtonGroup = 0;
+ d->doSpecialAspectMode = doSpecialAspectMode;
setEditable( true );
setMaxComboViewCount( 15 );
for(int i = 0; i<33; i++)
- m_sliderLookup[i] = pow(1.1892071, i - 16);
+ d->sliderLookup[i] = pow(1.1892071, i - 16);
- m_effectiveZoom = 1.0;
- regenerateItems(m_effectiveZoom, true);
+ d->effectiveZoom = 1.0;
+ regenerateItems(d->effectiveZoom, true);
connect( this, SIGNAL( triggered( const QString& ) ), SLOT( triggered( const \
QString& ) ) ); }
@@ -113,8 +127,8 @@
void KoZoomAction::setZoomModes( KoZoomMode::Modes zoomModes )
{
- m_zoomModes = zoomModes;
- regenerateItems( m_effectiveZoom );
+ d->zoomModes = zoomModes;
+ regenerateItems( d->effectiveZoom );
}
void KoZoomAction::regenerateItems(const double zoom, bool asCurrent)
@@ -141,11 +155,11 @@
// update items with new sorted zoom values
QStringList values;
- if(m_zoomModes & KoZoomMode::ZOOM_WIDTH)
+ if(d->zoomModes & KoZoomMode::ZOOM_WIDTH)
{
values << KoZoomMode::toString(KoZoomMode::ZOOM_WIDTH);
}
- if(m_zoomModes & KoZoomMode::ZOOM_PAGE)
+ if(d->zoomModes & KoZoomMode::ZOOM_PAGE)
{
values << KoZoomMode::toString(KoZoomMode::ZOOM_PAGE);
}
@@ -170,16 +184,16 @@
void KoZoomAction::sliderValueChanged(int value)
{
- setZoom(m_sliderLookup[value]);
+ setZoom(d->sliderLookup[value]);
- emit zoomChanged( KoZoomMode::ZOOM_CONSTANT, m_sliderLookup[value] );
+ emit zoomChanged( KoZoomMode::ZOOM_CONSTANT, d->sliderLookup[value] );
}
void KoZoomAction::numberValueChanged()
{
- kDebug(30004) << "number widget has changed to " << m_number->text() << endl;
+ kDebug(30004) << "number widget has changed to " << d->number->text() << endl;
- double zoom = m_number->text().toDouble()/100.0;
+ double zoom = d->number->text().toDouble()/100.0;
setZoom(zoom);
emit zoomChanged( KoZoomMode::ZOOM_CONSTANT, zoom);
@@ -188,14 +202,14 @@
void KoZoomAction::zoomIn()
{
int i=0;
- while(i <= 32 && m_sliderLookup[i] < m_effectiveZoom)
+ while(i <= 32 && d->sliderLookup[i] < d->effectiveZoom)
i++;
- if(i < 32 && m_sliderLookup[i] == m_effectiveZoom)
+ if(i < 32 && d->sliderLookup[i] == d->effectiveZoom)
i++;
// else i is the next zoom level already
- double zoom = m_sliderLookup[i];
+ double zoom = d->sliderLookup[i];
setZoom(zoom);
emit zoomChanged( KoZoomMode::ZOOM_CONSTANT, zoom);
}
@@ -203,13 +217,13 @@
void KoZoomAction::zoomOut()
{
int i=0;
- while(i <= 32 && m_sliderLookup[i] < m_effectiveZoom)
+ while(i <= 32 && d->sliderLookup[i] < d->effectiveZoom)
i++;
if(i>0)
i--;
- double zoom = m_sliderLookup[i];
+ double zoom = d->sliderLookup[i];
setZoom(zoom);
emit zoomChanged( KoZoomMode::ZOOM_CONSTANT, zoom);
}
@@ -223,23 +237,23 @@
QWidget * group = new QWidget(_parent);
group->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
- m_slider = new QSlider(Qt::Horizontal);
- m_slider->setMinimum(0);
- m_slider->setMaximum(32);
- m_slider->setValue(16);
- m_slider->setSingleStep(1);
- m_slider->setPageStep(1);
- m_slider->setMinimumWidth(80);
- m_slider->setMaximumWidth(80);
+ d->slider = new QSlider(Qt::Horizontal);
+ d->slider->setMinimum(0);
+ d->slider->setMaximum(32);
+ d->slider->setValue(16);
+ d->slider->setSingleStep(1);
+ d->slider->setPageStep(1);
+ d->slider->setMinimumWidth(80);
+ d->slider->setMaximumWidth(80);
QValidator *validator = new QDoubleValidator(1.0, 1600.0, 0, this);
- m_number = new ExtLineEdit("100", group);
- m_number->setValidator(validator);
- m_number->setMaxLength(5);
- m_number->setMaximumWidth(40);
- m_number->setMaximumHeight(22);
- m_number->setAlignment(Qt::AlignRight);
- m_number->hide();
+ d->number = new ExtLineEdit("100", group);
+ d->number->setValidator(validator);
+ d->number->setMaxLength(5);
+ d->number->setMaximumWidth(40);
+ d->number->setMaximumHeight(22);
+ d->number->setAlignment(Qt::AlignRight);
+ d->number->hide();
QLabel *pctLabel = new QLabel("% ");
QLabel *numLabel = new QLabel("100");
@@ -251,13 +265,13 @@
QGridLayout *layout = new QGridLayout();
int radios=0;
- m_zoomButtonGroup = new QButtonGroup(group);
- m_zoomButtonGroup->setExclusive(true);
+ d->zoomButtonGroup = new QButtonGroup(group);
+ d->zoomButtonGroup->setExclusive(true);
- if(m_zoomModes & KoZoomMode::ZOOM_WIDTH)
+ if(d->zoomModes & KoZoomMode::ZOOM_WIDTH)
{
QToolButton * fitWidthButton = new QToolButton(group);
- m_zoomButtonGroup->addButton(fitWidthButton, KoZoomMode::ZOOM_WIDTH);
+ d->zoomButtonGroup->addButton(fitWidthButton, KoZoomMode::ZOOM_WIDTH);
layout->addWidget(fitWidthButton, 0, radios);
fitWidthButton->setIcon(KIcon("zoom-width").pixmap(22));
fitWidthButton->setCheckable(true);
@@ -265,10 +279,10 @@
fitWidthButton->setToolTip(i18n("Fit to width"));
radios++;
}
- if(m_zoomModes & KoZoomMode::ZOOM_PAGE)
+ if(d->zoomModes & KoZoomMode::ZOOM_PAGE)
{
QToolButton * fitPageButton = new QToolButton(group);
- m_zoomButtonGroup->addButton(fitPageButton, KoZoomMode::ZOOM_PAGE);
+ d->zoomButtonGroup->addButton(fitPageButton, KoZoomMode::ZOOM_PAGE);
layout->addWidget(fitPageButton, 0, radios);
fitPageButton->setIcon(KIcon("zoom-page").pixmap(22));
fitPageButton->setCheckable(true);
@@ -279,7 +293,7 @@
QToolButton * aspectButton = 0;
- if(m_doSpecialAspectMode)
+ if(d->doSpecialAspectMode)
{
aspectButton = new QToolButton(group);
aspectButton->setIcon(KIcon("zoom-pixels").pixmap(22));
@@ -289,29 +303,29 @@
connect(aspectButton, SIGNAL(toggled(bool)), this, \
SIGNAL(aspectModeChanged(bool))); }
- layout->addWidget(m_number, 0, radios);
+ layout->addWidget(d->number, 0, radios);
layout->addWidget(numLabel, 0, radios);
layout->addWidget(pctLabel, 0, radios+1);
- layout->addWidget(m_slider, 0, radios+2);
- if(m_doSpecialAspectMode)
+ layout->addWidget(d->slider, 0, radios+2);
+ if(d->doSpecialAspectMode)
layout->addWidget(aspectButton, 0, radios+3);
layout->setMargin(0);
layout->setSpacing(0);
group->setLayout(layout);
- connect(m_slider, SIGNAL(valueChanged(int)), this, \
SLOT(sliderValueChanged(int)));
- connect(m_number, SIGNAL(returnPressed()), this, SLOT(numberValueChanged()));
- connect(m_number, SIGNAL(returnPressed()), numLabel, SLOT(show()));
- connect(m_number, SIGNAL(returnPressed()), m_number, SLOT(hide()));
- connect(m_number, SIGNAL(lostFocus()), numLabel, SLOT(show()));
- connect(m_number, SIGNAL(lostFocus()), m_number, SLOT(hide()));
- connect(m_number, SIGNAL(textChanged(const QString & )), numLabel, \
SLOT(setText(const QString & )));
- connect(numLabel, SIGNAL(customContextMenuRequested(const QPoint &)), m_number, \
SLOT(show()));
- connect(numLabel, SIGNAL(customContextMenuRequested(const QPoint &)), m_number, \
SLOT(selectAll()));
- connect(numLabel, SIGNAL(customContextMenuRequested(const QPoint &)), m_number, \
SLOT(setFocus())); + connect(d->slider, SIGNAL(valueChanged(int)), this, \
SLOT(sliderValueChanged(int))); + connect(d->number, SIGNAL(returnPressed()), \
this, SLOT(numberValueChanged())); + connect(d->number, SIGNAL(returnPressed()), \
numLabel, SLOT(show())); + connect(d->number, SIGNAL(returnPressed()), d->number, \
SLOT(hide())); + connect(d->number, SIGNAL(lostFocus()), numLabel, SLOT(show()));
+ connect(d->number, SIGNAL(lostFocus()), d->number, SLOT(hide()));
+ connect(d->number, SIGNAL(textChanged(const QString & )), numLabel, \
SLOT(setText(const QString & ))); + connect(numLabel, \
SIGNAL(customContextMenuRequested(const QPoint &)), d->number, SLOT(show())); + \
connect(numLabel, SIGNAL(customContextMenuRequested(const QPoint &)), d->number, \
SLOT(selectAll())); + connect(numLabel, SIGNAL(customContextMenuRequested(const \
QPoint &)), d->number, SLOT(setFocus()));
connect(numLabel, SIGNAL(customContextMenuRequested(const QPoint &)), numLabel, \
SLOT(hide()));
- connect(m_zoomButtonGroup, SIGNAL(buttonClicked(int)), this, \
SLOT(zoomModeButtonClicked(int))); + connect(d->zoomButtonGroup, \
SIGNAL(buttonClicked(int)), this, SLOT(zoomModeButtonClicked(int)));
connect(this, SIGNAL(zoomChanged(KoZoomMode::Mode, double)), this, \
SLOT(updateWidgets(KoZoomMode::Mode, double)));
return group;
@@ -325,15 +339,15 @@
void KoZoomAction::updateWidgets(KoZoomMode::Mode mode, double zoom)
{
if(mode != KoZoomMode::ZOOM_CONSTANT) {
- m_zoomButtonGroup->button(mode)->setChecked(true);
+ d->zoomButtonGroup->button(mode)->setChecked(true);
} else {
- QAbstractButton* button = m_zoomButtonGroup->checkedButton();
+ QAbstractButton* button = d->zoomButtonGroup->checkedButton();
if(button) {
// Let's work around not being able to uncheck when exclusive
- m_zoomButtonGroup->setExclusive(false);
+ d->zoomButtonGroup->setExclusive(false);
button->setChecked(false);
- m_zoomButtonGroup->setExclusive(true);
+ d->zoomButtonGroup->setExclusive(true);
}
setEffectiveZoom(zoom);
@@ -342,23 +356,23 @@
void KoZoomAction::setEffectiveZoom(double zoom)
{
- m_effectiveZoom = zoom;
+ d->effectiveZoom = zoom;
- if(m_number) {
+ if(d->number) {
if(zoom>0.1)
- m_number->setText(KGlobal::locale()->formatNumber(zoom*100, 0));
+ d->number->setText(KGlobal::locale()->formatNumber(zoom*100, 0));
else
- m_number->setText(KGlobal::locale()->formatNumber(zoom*100, 1));
+ d->number->setText(KGlobal::locale()->formatNumber(zoom*100, 1));
}
- if(m_slider) {
+ if(d->slider) {
int i = 0;
- while(i <= 32 && m_sliderLookup[i] < zoom)
+ while(i <= 32 && d->sliderLookup[i] < zoom)
i++;
- m_slider->blockSignals(true);
- m_slider->setValue(i); // causes sliderValueChanged to be called which does \
the rest
- m_slider->blockSignals(false);
+ d->slider->blockSignals(true);
+ d->slider->setValue(i); // causes sliderValueChanged to be called which does \
the rest + d->slider->blockSignals(false);
}
}
--- trunk/koffice/libs/guiutils/KoZoomAction.h #666566:666567
@@ -124,14 +124,11 @@
class ExtLineEdit;
- KoZoomMode::Modes m_zoomModes;
- ExtLineEdit *m_number;
- QSlider *m_slider;
- double m_sliderLookup[33];
- QButtonGroup* m_zoomButtonGroup;
+private:
+ Q_DISABLE_COPY( KoZoomAction )
- double m_effectiveZoom;
- bool m_doSpecialAspectMode;
+ class Private;
+ Private * const d;
};
class KoZoomAction::ExtLineEdit : public QLineEdit
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic