Browse Source

Fix incorrect kruler orientation on session restore

tags/r14.0.0
Timothy Pearson 7 years ago
parent
commit
81e56a909b
3 changed files with 67 additions and 30 deletions
  1. +40
    -25
      kruler/klineal.cpp
  2. +8
    -2
      kruler/klineal.h
  3. +19
    -3
      kruler/main.cpp

+ 40
- 25
kruler/klineal.cpp View File

@@ -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"

+ 8
- 2
kruler/klineal.h View File

@@ -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();


+ 19
- 3
kruler/main.cpp View File

@@ -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