diff --git a/src/core/UBPreferencesController.cpp b/src/core/UBPreferencesController.cpp index 8fb442cc..ff357ee9 100644 --- a/src/core/UBPreferencesController.cpp +++ b/src/core/UBPreferencesController.cpp @@ -106,8 +106,13 @@ void UBPreferencesController::wire() // OSK preferences - mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("29x29"); - mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("41x41"); + + for(int i = 0; i < settings->supportedKeyboardSizes->size(); i++) + mPreferencesUI->keyboardPaletteKeyButtonSize->addItem(settings->supportedKeyboardSizes->at(i)); + +// mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("29x29"); +// mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("30x30"); +// mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("41x41"); connect(mPreferencesUI->keyboardPaletteKeyButtonSize, SIGNAL(currentIndexChanged(const QString &)), settings->boardKeyboardPaletteKeyBtnSize, SLOT(setString(const QString &))); diff --git a/src/core/UBSettings.cpp b/src/core/UBSettings.cpp index 5a7638d6..84511d6a 100644 --- a/src/core/UBSettings.cpp +++ b/src/core/UBSettings.cpp @@ -120,6 +120,8 @@ QSettings* UBSettings::getAppSettings() UBSettings::UBSettings(QObject *parent) : QObject(parent) { + InitKeyboardPaletteKeyBtnSizes(); + mAppSettings = UBSettings::getAppSettings(); QString userSettingsFile = UBSettings::uniboardDataDirectory() + "/UniboardUser.config"; @@ -133,8 +135,38 @@ UBSettings::UBSettings(QObject *parent) UBSettings::~UBSettings() { delete mAppSettings; + + if(supportedKeyboardSizes) + delete supportedKeyboardSizes; +} + +void UBSettings::InitKeyboardPaletteKeyBtnSizes() +{ + supportedKeyboardSizes = new QStringList(); + supportedKeyboardSizes->append("29x29"); + supportedKeyboardSizes->append("41x41"); } +void UBSettings::ValidateKeyboardPaletteKeyBtnSize() +{ + // if boardKeyboardPaletteKeyBtnSize is not initialized, or supportedKeyboardSizes not initialized or empty + if( !boardKeyboardPaletteKeyBtnSize || + !supportedKeyboardSizes || + supportedKeyboardSizes->size() == 0 ) return; + + // get original size value + QString origValue = boardKeyboardPaletteKeyBtnSize->get().toString(); + + // parse available size values, for make sure original value is valid + for(int i = 0; i < supportedKeyboardSizes->size(); i++) + { + int compareCode = QString::compare(origValue, supportedKeyboardSizes->at(i)); + if(compareCode == 0) return; + } + + // if original value is invalid, than set it value to first value from avaliable list + boardKeyboardPaletteKeyBtnSize->set(supportedKeyboardSizes->at(0)); +} void UBSettings::init() { @@ -192,7 +224,8 @@ void UBSettings::init() boardUseHighResTabletEvent = new UBSetting(this, "Board", "UseHighResTabletEvent", true); // boardKeyboardPaletteAutoMinimize = new UBSetting(this, "Board", "KeyboardPaletteAutoMinimize", true); - boardKeyboardPaletteKeyBtnSize = new UBSetting(this, "Board", "KeyboardPaletteKeyBtnSize", "24x24"); + boardKeyboardPaletteKeyBtnSize = new UBSetting(this, "Board", "KeyboardPaletteKeyBtnSize", "16x16"); + ValidateKeyboardPaletteKeyBtnSize(); QStringList penLightBackgroundColors; penLightBackgroundColors << "#000000" << "#FF0000" <<"#004080" << "#008000" << "#C87400" << "#800040" << "#008080" << "#5F2D0A"; diff --git a/src/core/UBSettings.h b/src/core/UBSettings.h index 4c48705b..b93767ee 100644 --- a/src/core/UBSettings.h +++ b/src/core/UBSettings.h @@ -37,6 +37,11 @@ class UBSettings : public QObject public: + QStringList* supportedKeyboardSizes; + void InitKeyboardPaletteKeyBtnSizes(); + void ValidateKeyboardPaletteKeyBtnSize(); + + int penWidthIndex(); qreal currentPenWidth(); diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index 6010591d..d7a4a9cd 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -88,7 +88,8 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) if (UBPlatformUtils::hasVirtualKeyboard()) { mKeyboardPalette = UBKeyboardPalette::create(mTransparentDrawingView); - //mKeyboardPalette->setParent(mTransparentDrawingView); + mKeyboardPalette->setParent(mTransparentDrawingView); + connect(mKeyboardPalette, SIGNAL(keyboardActivated(bool)), mTransparentDrawingView, SLOT(virtualKeyboardActivated(bool))); } connect(mDesktopPalette, SIGNAL(uniboardClick()), this, SLOT(goToUniboard())); diff --git a/src/frameworks/UBPlatformUtils_win.cpp b/src/frameworks/UBPlatformUtils_win.cpp index 294a9117..b74e1f4f 100644 --- a/src/frameworks/UBPlatformUtils_win.cpp +++ b/src/frameworks/UBPlatformUtils_win.cpp @@ -363,7 +363,7 @@ void UBPlatformUtils::initializeKeyboardLayouts() void UBPlatformUtils::destroyKeyboardLayouts() { - for(int i=0; i<4; i++) + for(int i=0; ipos() - event->lastPos(); if (mOrientation == TopLeft || mOrientation == BottomLeft) { - if (rect().width() + delta.x() < sMinWidth) - delta.setX(sMinWidth - rect().width()); + if (rect().width() + delta.x() < (qreal)sMinWidth) + delta.setX((qreal)sMinWidth - rect().width()); } else { - if (rect().width() - delta.x() < sMinWidth) - delta.setX(sMinWidth - rect().width()); + if (rect().width() - delta.x() < (qreal)sMinWidth) + delta.setX((qreal)sMinWidth - rect().width()); } if (mOrientation == TopLeft || mOrientation == BottomLeft) { @@ -639,13 +639,13 @@ void UBGraphicsTriangle::mouseMoveEvent(QGraphicsSceneMouseEvent *event) QPointF delta = event->pos() - event->lastPos(); if (mOrientation == BottomRight || mOrientation == BottomLeft) { - if (rect().height() - delta.y() < sMinHeight) - delta.setY(sMinHeight - rect().height()); + if (rect().height() - delta.y() < (qreal)sMinHeight) + delta.setY((qreal)sMinHeight - rect().height()); } else { - if (rect().height() + delta.y() < sMinHeight) - delta.setY(sMinHeight - rect().height()); + if (rect().height() + delta.y() < (qreal)sMinHeight) + delta.setY((qreal)sMinHeight - rect().height()); } if (mOrientation == BottomRight || mOrientation == BottomLeft) setRect(QRectF(