Fix incorrect kruler orientation on session restore

pull/1/head
Timothy Pearson 12 years ago
parent 8fb269b60c
commit 81e56a909b

@ -241,6 +241,34 @@ void KLineal::setupBackground() {
mLabel->setErasePixmap(bgPixmap);
}
void KLineal::setupCursor() {
switch(mOrientation) {
case North:
mLabel->move(4, height()-mLabel->height()-4);
mColorLabel->move(mLabel->pos() + TQPoint(0, -20));
mCurrentCursor = mNorthCursor;
break;
case South:
mLabel->move(4, 4);
mColorLabel->move(mLabel->pos() + TQPoint(0, 20));
mCurrentCursor = mSouthCursor;
break;
case East:
mLabel->move(4, 4);
mColorLabel->move(mLabel->pos() + TQPoint(0, 20));
mCurrentCursor = mEastCursor;
break;
case West:
mLabel->move(width()-mLabel->width()-4, 4);
mColorLabel->move(mLabel->pos() + TQPoint(-5, 20));
mCurrentCursor = mWestCursor;
break;
}
if (mLenMenu)
mLenMenu->changeItem(FULLSCREENID, mOrientation % 2 ? i18n("&Full Screen Height") : i18n("&Full Screen Width"));
setCursor(mCurrentCursor);
}
void KLineal::setOrientation(int inOrientation) {
TQRect r = frameGeometry();
int nineties = (int)inOrientation - (int)mOrientation;
@ -267,31 +295,7 @@ void KLineal::setOrientation(int inOrientation) {
setGeometry(r);
mOrientation = (inOrientation + 4) % 4;
switch(mOrientation) {
case North:
mLabel->move(4, height()-mLabel->height()-4);
mColorLabel->move(mLabel->pos() + TQPoint(0, -20));
mCurrentCursor = mNorthCursor;
break;
case South:
mLabel->move(4, 4);
mColorLabel->move(mLabel->pos() + TQPoint(0, 20));
mCurrentCursor = mSouthCursor;
break;
case East:
mLabel->move(4, 4);
mColorLabel->move(mLabel->pos() + TQPoint(0, 20));
mCurrentCursor = mEastCursor;
break;
case West:
mLabel->move(width()-mLabel->width()-4, 4);
mColorLabel->move(mLabel->pos() + TQPoint(-5, 20));
mCurrentCursor = mWestCursor;
break;
}
if (mLenMenu)
mLenMenu->changeItem(FULLSCREENID, mOrientation % 2 ? i18n("&Full Screen Height") : i18n("&Full Screen Width"));
setCursor(mCurrentCursor);
setupCursor();
setupBackground();
repaint();
}
@ -743,4 +747,15 @@ void KLineal::paintEvent(TQPaintEvent * /*inEvent*/) {
painter.end();
}
void KLineal::readProperties(KConfig *cfg) {
mOrientation = cfg->readNumEntry("Orientation", South);
setupCursor();
setupBackground();
repaint();
}
void KLineal::saveProperties(KConfig* cfg) {
cfg->writeEntry("Orientation", mOrientation);
}
#include "klineal.moc"

@ -44,8 +44,9 @@ public:
TQPoint pos();
int x();
int y();
protected:
void keyPressEvent(TQKeyEvent *e);
void keyPressEvent(TQKeyEvent *e);
void mousePressEvent(TQMouseEvent *e);
void mouseReleaseEvent(TQMouseEvent *e);
void mouseMoveEvent(TQMouseEvent *e);
@ -54,10 +55,14 @@ protected:
void leaveEvent(TQEvent *e);
void setupBackground();
// session management
virtual void saveProperties( KConfig *config );
virtual void readProperties( KConfig *config );
private:
void drawScale(TQPainter &painter);
void reLength(int percentOfScreen);
void setupCursor();
bool mDragging;
TQPoint mLastClickPos;
TQPoint mDragOffset;
@ -79,7 +84,8 @@ private:
TQCursor mDragCursor;
KColorDialog mColorSelector;
TQFont mScaleFont;
bool _clicked;
bool _clicked;
public slots:
void setOrientation(int);
void setNorth();

@ -9,6 +9,17 @@
#include "klineal.h"
#define RESTORE_RULERS(type) { \
int n = 1; \
while (KMainWindow::canBeRestored(n)) { \
type* ruler = new type; \
ruler->restore(n); \
a.setMainWidget(ruler); \
ruler->show(); \
n++; \
} \
}
static const char homePageURL[] =
"http://www.snafu.de/~till/";
static const char freeFormText[] =
@ -40,9 +51,14 @@ int main(int argc, char *argv[])
KApplication a;
KLineal *ruler = new KLineal();
a.setMainWidget(ruler);
ruler->show();
if (a.isRestored()) {
RESTORE_RULERS(KLineal)
}
else {
KLineal *ruler = new KLineal();
a.setMainWidget(ruler);
ruler->show();
}
return a.exec();
}

Loading…
Cancel
Save