Commit 8d33cf69 authored by Vitaliy Vashchenko's avatar Vitaliy Vashchenko

Merge branch 'V3.6.3' into 907-doplnit-gdpr

parents 5a0ed053 0b6ee040
......@@ -15,47 +15,68 @@
before_script:
- ./gradlew unlockIOSKeyChain
- git submodule update --init --recursive
stages:
- build
- unitTest
- iTest-desktop
pre-release:
# Development build
# Runs for every commit
# Connects to development server
dev_debug:
stage: build
except:
- tags
script:
- ./gradlew clean assemble -PTABLEXIA_ASSETS_UPLOAD=true -PTABLEXIA_ASSETS_OPTIMIZE=true
artifacts:
expire_in: 2 weeks
paths:
- android/build/outputs/apk/*debug*.apk
- android/build/outputs/apk/*iTest*.apk
- ios/build/robovm/*debug*.ipa
- ios/build/robovm/*iTest*.ipa
- desktop/build/libs/*debug*.jar
# Release debug build
# Runs only on tags
# Connects to development server
release-debug:
stage: build
only:
- master
- devel
- tags
script:
- ./gradlew clean assemble -PTABLEXIA_ASSETS_UPLOAD=true
- ./gradlew clean assemble -PTABLEXIA_ASSETS_UPLOAD=true -PTABLEXIA_HD_ASSETS=true -PTABLEXIA_ASSETS_OPTIMIZE=true
artifacts:
paths:
- android/build/outputs/apk/*debug*.apk
- android/build/outputs/apk/*iTest*.apk
- ios/build/robovm/*debug*.ipa
- ios/build/robovm/*iTest*.ipa
- desktop/build/libs/*debug*.jar
- desktop/build/libs/*iTest*.jar
- desktop/build/libs/*debug*.deb
- desktop/build/outputs/*debug*.exe
- desktop/build/outputApp/*debug*.app
debug:
# Actual release build
# Runs only on tags
# Connects to production server
# -PTABLEXIA_RELEASE_BUILD=true - Tells Tablexia to use production server
release:
stage: build
except:
- pre-release
- release
only:
- tags
script:
- ./gradlew clean assemble -PTABLEXIA_ASSETS_UPLOAD=true -PTABLEXIA_HD_ASSETS=true
- ./gradlew clean assemble -PTABLEXIA_ASSETS_UPLOAD=true -PTABLEXIA_HD_ASSETS=true -PTABLEXIA_RELEASE_BUILD=true -PTABLEXIA_ASSETS_OPTIMIZE=true
artifacts:
expire_in: 2 weeks
paths:
- android/build/outputs/apk/*debug*.apk
- android/build/outputs/apk/*iTest*.apk
- ios/build/robovm/*debug*.ipa
- ios/build/robovm/*iTest*.ipa
- desktop/build/libs/*debug*.jar
paths:
- android/build/outputs/apk/*release*.apk
- ios/build/robovm/*release*.ipa
- desktop/build/libs/*release*.deb
- desktop/build/outputs/*release*.exe
unitTest:
stage: unitTest
script:
- ./gradlew test -x prepareAssets -x prepareGraphicAssets -x prepareSoundAssets -x prepareJsonAssets -x processAssets -x runChecksum
iTest-desktop:
stage: iTest-desktop
script:
......@@ -65,18 +86,4 @@ iTest-desktop:
expire_in: 3 days
paths:
- desktop/build/libs/iTest_results/*.log
- desktop/build/libs/iTest_results/*error.png
release:
stage: build
only:
- tags
script:
- ./gradlew clean assemble -PTABLEXIA_ASSETS_UPLOAD=true
artifacts:
paths:
- android/build/outputs/apk/*release*.apk
- ios/build/robovm/*release*.ipa
- desktop/build/libs/*release*.jar
- desktop/build/libs/*release*.deb
- desktop/build/outputs/*release*.exe
- desktop/build/outputApp/*release*.app
- desktop/build/libs/iTest_results/*error.png
\ No newline at end of file
......@@ -72,13 +72,13 @@ allprojects {
masterBranch = 'master'
applicationBaseId = 'cz.nic.tablexia'
tablexiaAppName = getTablexiaAppName()
assetsDebugURLPart = onMaster() ? '' : 'debug/'
assetsDebugURLPart = isReleaseBuild() ? '' : 'debug/'
assetsDownloadUrl = project.hasProperty("TABLEXIA_ASSETS_DOWNLOAD_URL") ? ("${TABLEXIA_ASSETS_DOWNLOAD_URL}/${assetsDebugURLPart}") : "<NO_URL_CONFIGURED>/"
assetsUploadURL = (project.hasProperty("TABLEXIA_ASSETS_UPLOAD_USER") && project.hasProperty("TABLEXIA_ASSETS_UPLOAD_URL")) ? "${TABLEXIA_ASSETS_UPLOAD_USER}@${TABLEXIA_ASSETS_UPLOAD_URL}/${assetsDebugURLPart}" : "<NO_URL_CONFIGURED>/"
serverFallbackHost = "<NO_SERVER_HOST>"
serverHost = onMaster() ? getPropertyValueOrFallbackValue("TABLEXIA_SERVER_HOST_PRODUCTION", serverFallbackHost) : getPropertyValueOrFallbackValue("TABLEXIA_SERVER_HOST_DEBUG", serverFallbackHost)
serverSecretFallback = "";
serverSecret = onMaster() ? getPropertyValueOrFallbackValue("TABLEXIA_SERVER_SECRET_PRODUCTION", serverSecretFallback) : getPropertyValueOrFallbackValue("TABLEXIA_SERVER_SECRET_DEBUG", serverSecretFallback);
serverHost = isReleaseBuild() ? getPropertyValueOrFallbackValue("TABLEXIA_SERVER_HOST_PRODUCTION", serverFallbackHost) : getPropertyValueOrFallbackValue("TABLEXIA_SERVER_HOST_DEBUG", serverFallbackHost)
serverSecretFallback = ""
serverSecret = isReleaseBuild() ? getPropertyValueOrFallbackValue("TABLEXIA_SERVER_SECRET_PRODUCTION", serverSecretFallback) : getPropertyValueOrFallbackValue("TABLEXIA_SERVER_SECRET_DEBUG", serverSecretFallback);
tablexiaVersionName = getVersionNameFromGit(TABLEXIA_GIT_PATH)
tablexiaVersionCode = getVersionCodeFromGit(TABLEXIA_GIT_PATH)
tablexiaModelVersionName = getVersionNameFromGit(MODEL_GIT_PATH)
......@@ -94,7 +94,7 @@ allprojects {
//Fallback value if sentry DSN is not defined (gradle parameter SENTRY_DSN_DEBUG or SENTRY_DSN_RELEASE)
sentryDSNFallbackValue = "None"
sentryDSN = onMaster() ? getPropertyValueOrFallbackValue("TABLEXIA_SENTRY_DSN_RELEASE", sentryDSNFallbackValue) : getPropertyValueOrFallbackValue("TABLEXIA_SENTRY_DSN_DEBUG", sentryDSNFallbackValue)
sentryDSN = isReleaseBuild() ? getPropertyValueOrFallbackValue("TABLEXIA_SENTRY_DSN_RELEASE", sentryDSNFallbackValue) : getPropertyValueOrFallbackValue("TABLEXIA_SENTRY_DSN_DEBUG", sentryDSNFallbackValue)
gdxVersion = '1.9.6'
gdxUtilsVersion = '0.13.2'
......@@ -209,10 +209,11 @@ task prepareHdAssets(dependsOn: prepareAssets) {
inputs.dir(hdSourceDir.absolutePath)
inputs.dir(sourceDir.absolutePath)
outputs.dir("${buildDir}/${assetsDirName}/${assetsHdDirName}/${assetsSourceDirName}/")
doLast {
if (project.hasProperty('TABLEXIA_HD_ASSETS') && Boolean.valueOf(TABLEXIA_HD_ASSETS).booleanValue()) {
if (project.hasProperty('TABLEXIA_HD_ASSETS') && Boolean.valueOf(project.property('TABLEXIA_HD_ASSETS')).booleanValue()) {
new File("${assetsDir}/${assetsSourceDirName}/").eachDir() { langDir ->
langDir.eachDir() { sectionDir ->
......@@ -306,6 +307,25 @@ task prepareGraphicAssets(dependsOn: prepareAssets) {
}
}
}
//optimizing for uploading
if (project.hasProperty('TABLEXIA_ASSETS_OPTIMIZE') && Boolean.valueOf(TABLEXIA_ASSETS_OPTIMIZE).booleanValue()) {
println "ASSETS OPTIMIZATION: ENABLED."
println "ASSETS OPTIMIZATION: START."
new File("${assetsDir.absolutePath}/${assetsDestinationDirName}/").eachDir() { dir ->
dir.eachFileRecurse() { file ->
if (file.name.endsWith(".png") && !file.absolutePath.contains("excluded")) {
println "Optimizing: ${file.name}"
exec {
commandLine 'pngquant', '--ext', '.png', '--nofs', '-f', 256, file.absolutePath
}
}
}
}
println "ASSETS OPTIMIZATION: FINISH."
} else {
println "ASSETS OPTIMIZATION NOT CONFIGURED -> SKIPPING OPTIMIZATION"
}
}
}
......@@ -338,7 +358,7 @@ task prepareHdGraphicAssets(dependsOn: prepareHdAssets) {
outputs.dir("${assetsDir.absolutePath}/${assetsDestinationDirName}/")
doLast {
if (project.hasProperty('TABLEXIA_HD_ASSETS') && Boolean.valueOf(TABLEXIA_HD_ASSETS).booleanValue()) {
if (project.hasProperty('TABLEXIA_HD_ASSETS') && Boolean.valueOf(project.property('TABLEXIA_HD_ASSETS')).booleanValue()) {
TexturePacker.Settings settings = new TexturePacker.Settings();
settings.pot = false;
settings.maxWidth = 2048;
......@@ -387,6 +407,23 @@ task prepareHdGraphicAssets(dependsOn: prepareHdAssets) {
}.execute()
}
}
} //optimizing for uploading
if (project.hasProperty('TABLEXIA_ASSETS_OPTIMIZE') && Boolean.valueOf(TABLEXIA_ASSETS_OPTIMIZE).booleanValue()) {
println "HD ASSETS OPTIMIZATION: ENABLED."
println "HD ASSETS OPTIMIZATION: START."
new File("${assetsDir.absolutePath}/${assetsDestinationDirName}/").eachDir() { dir ->
dir.eachFileRecurse() { file ->
if (file.name.endsWith(".png") && !file.absolutePath.contains("excluded")) {
println "Optimizing: ${file.name}"
exec {
commandLine 'pngquant', '--ext', '.png', '--nofs', '-f', 256, file.absolutePath
}
}
}
}
println "HD ASSETS OPTIMIZATION: FINISH."
} else {
println "ASSETS OPTIMIZATION NOT CONFIGURED -> SKIPPING OPTIMIZATION"
}
} else {
println "HD PACK IS NOT REQUESTED"
......@@ -396,7 +433,7 @@ task prepareHdGraphicAssets(dependsOn: prepareHdAssets) {
task zipHdAssets(dependsOn: prepareHdGraphicAssets) {
doLast {
if (project.hasProperty('TABLEXIA_HD_ASSETS') && Boolean.valueOf(TABLEXIA_HD_ASSETS).booleanValue()) {
if (project.hasProperty('TABLEXIA_HD_ASSETS') && Boolean.valueOf(project.property('TABLEXIA_HD_ASSETS')).booleanValue()) {
new File(project(":core").projectDir.absolutePath + "/${assetsDirName}/").eachDir() { dir ->
if (!dir.name.equals('common')) {
......@@ -415,7 +452,7 @@ task zipHdAssets(dependsOn: prepareHdGraphicAssets) {
task processAssets(dependsOn: [':util:checksum:runChecksum', ':util:checksum:runAssetsArchivesChecksum']) {
doLast {
if (project.hasProperty('TABLEXIA_ASSETS_UPLOAD_USER') && project.hasProperty('TABLEXIA_ASSETS_UPLOAD_URL') && project.hasProperty('TABLEXIA_ASSETS_UPLOAD') && Boolean.valueOf(TABLEXIA_ASSETS_UPLOAD).booleanValue()) {
if (project.hasProperty('TABLEXIA_ASSETS_UPLOAD_USER') && project.hasProperty('TABLEXIA_ASSETS_UPLOAD_URL') && project.hasProperty('TABLEXIA_ASSETS_UPLOAD') && Boolean.valueOf(project.property('TABLEXIA_ASSETS_UPLOAD')).booleanValue()) {
def data = new URL(project.assetsDownloadUrl).getText()
rootProject.ext.assetsPackDir.eachFile() { file ->
String fileName = file.getName()
......@@ -450,8 +487,8 @@ task prepareHdPack(dependsOn: [':util:checksum:runHdChecksum', ':util:checksum:r
project.hasProperty('TABLEXIA_ASSETS_UPLOAD_USER') &&
project.hasProperty('TABLEXIA_ASSETS_UPLOAD_URL') &&
project.hasProperty('TABLEXIA_ASSETS_UPLOAD') &&
Boolean.valueOf(TABLEXIA_ASSETS_UPLOAD).booleanValue() &&
Boolean.valueOf(TABLEXIA_HD_ASSETS).booleanValue()) {
Boolean.valueOf(project.property('TABLEXIA_ASSETS_UPLOAD')).booleanValue() &&
Boolean.valueOf(project.property('TABLEXIA_HD_ASSETS')).booleanValue()) {
def data = new URL(project.assetsDownloadUrl).getText()
rootProject.ext.assetsHdPackDir.eachFile() { file ->
......@@ -495,7 +532,7 @@ def getPropertyValueOrFallbackValue(String key, String fallbackValue) {
}
def getTablexiaAppName() {
if (onMaster()) {
if (isReleaseBuild()) {
return "${project.appName}"
} else {
return "${project.appName} (${getBranchNameFromGit()})"
......@@ -503,7 +540,7 @@ def getTablexiaAppName() {
}
def getTablexiaAppId() {
if (onMaster()) {
if (isReleaseBuild()) {
return ""
} else {
return ".${getBranchNameFromGit().trim().replaceAll('-', '').replaceAll('\\.', '').toLowerCase()}"
......@@ -522,7 +559,7 @@ def getVersionNameFromGit(String relativePath) {
String result = stdout.toString().trim();
// for non release branches add number of commits and branch name
if (!onMaster()) {
if (!isReleaseBuild()) {
stdout = new ByteArrayOutputStream()
exec {
workingDir relativePath
......@@ -559,8 +596,8 @@ def getBranchNameFromGit() {
return branchString.contains("/") ? branchString.substring(branchString.lastIndexOf("/") + 1) : branchString
}
boolean onMaster() {
return project.masterBranch.equals(getBranchNameFromGit());
boolean isReleaseBuild() {
return project.hasProperty('TABLEXIA_RELEASE_BUILD') && Boolean.valueOf(project.property('TABLEXIA_RELEASE_BUILD')).booleanValue()
}
def getMapConvertedToString(Map map) {
......@@ -642,8 +679,8 @@ project(":core") {
compile "com.getsentry.raven:raven:$ravenVersion"
testCompile "junit:junit:4.11"
testCompile "com.badlogicgames.gdx:gdx-backend-headless:$gdxVersion"
testCompile "com.badlogicgames.gdx:gdx:$gdxVersion"
testCompile "com.badlogicgames.gdx:gdx-backend-headless:$gdxVersion"
testCompile "com.badlogicgames.gdx:gdx:$gdxVersion"
testCompile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
}
}
......
......@@ -32,8 +32,8 @@ import net.engio.mbassy.listener.Handler;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
......@@ -156,7 +156,7 @@ public class Tablexia extends TablexiaApplication {
this(buildType, systemLocale, sqlConnectionType, connManager, cameraOpener, fileSystemManager, qrCodeScanner, sentryDSN, hasSoftBackButton, supportAlternativeControls, reset, hwSerial, DEFAULT_HD_ASSETS);
}
public Tablexia(String buildType, Locale systemLocale, SQLConnectionType sqlConnectionType, IConnectionManager connManager, CameraOpener cameraOpener, IFileSystemManager fileSystemManager,
public Tablexia(String buildType, Locale systemLocale, SQLConnectionType sqlConnectionType, IConnectionManager connManager, CameraOpener cameraOpener, IFileSystemManager fileSystemManager,
QRCodeScanner qrCodeScanner, String sentryDSN, boolean hasSoftBackButton, boolean supportAlternativeControls, boolean reset, String hwSerial, boolean hdAssets) {
this.reset = reset;
this.connectionManager = validateConnectionManager(connManager);
......@@ -186,15 +186,16 @@ public class Tablexia extends TablexiaApplication {
}
private void initializeLogging() {
if(TablexiaSettings.getInstance().getBuildType().isLogFile()) {
if (TablexiaSettings.getInstance().getBuildType().isLogFile()) {
try {
File file = new File(TablexiaAbstractFileManager.RootStorageType.LOCAL.getStoragePath(), LOG_FILE_NAME);
if(file.exists()) file.mkdirs();
File file = TablexiaAbstractFileManager.RootStorageType.LOCAL.getResolver().resolve(TablexiaAbstractFileManager.RootStorageType.LOCAL.getStoragePath() + LOG_FILE_NAME).file();
if (file.exists()) file.delete();
file.getParentFile().mkdirs();
file.createNewFile();
PrintStream stream = new PrintStream(new FileOutputStream(file));
TeeStream teeStream = new TeeStream(System.out, stream);
System.setOut(new PrintStream(teeStream));
} catch (FileNotFoundException e) {
} catch (IOException e) {
Log.info(getClass(), "Cannot create a log file!");
e.printStackTrace();
}
......
......@@ -463,8 +463,8 @@ public class CrimeSceneGame extends AbstractTablexiaGame<CrimeSceneGameState> {
highlightedGameObjectLayer.addActor(gameObject);
gameObject.getAction().setBounds(0, 0, ACTION_CARD_EXTRA_LARGE, ACTION_CARD_EXTRA_LARGE);
gameObject.setPosition(getViewportWidth() / 2 - ACTION_CARD_EXTRA_LARGE / 2 - actionsStripWidget.getWidth() / 2,
getViewportHeight() / 2 - ACTION_CARD_EXTRA_LARGE / 2);
gameObject.setPosition(getViewportWidth() / 2 - gameObject.getAction().getWidth() / 2 - actionsStripWidget.getWidth() / 2,
getViewportHeight() / 2 - gameObject.getAction().getHeight() / 2);
setDimmerVisible(true);
replayMusic(gameObject);
......
......@@ -24,12 +24,14 @@ import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.utils.DragListener;
import com.badlogic.gdx.utils.Timer;
import cz.nic.tablexia.TablexiaSettings;
import cz.nic.tablexia.game.AbstractTablexiaGame;
import cz.nic.tablexia.util.entity.Touch;
class DesktopCrimeSceneAction extends CrimeSceneAction {
private static final float DELAY = 0.15f;
private static final float DEFAULT_DESKTOP_DOWNSCALE = 0.45f;
private Touch lastRecordedTouchDown;
private boolean lastTapValid;
......@@ -40,6 +42,9 @@ class DesktopCrimeSceneAction extends CrimeSceneAction {
public DesktopCrimeSceneAction(String texturePath, int orderNumber, int actionSize, AbstractTablexiaGame tablexiaGame, int actionNumber, GameObject gameObject) {
super(texturePath, orderNumber, actionSize, tablexiaGame, actionNumber, gameObject);
if (TablexiaSettings.getInstance().isUseHdAssets()){
setSize(getWidth() * DEFAULT_DESKTOP_DOWNSCALE, getHeight() * DEFAULT_DESKTOP_DOWNSCALE);
}
timer = new Timer();
}
......
......@@ -27,6 +27,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
import com.badlogic.gdx.utils.Align;
import cz.nic.tablexia.TablexiaSettings;
import cz.nic.tablexia.game.games.protocol.ProtocolGame;
import cz.nic.tablexia.game.games.protocol.controller.RoomPosition;
import cz.nic.tablexia.game.games.protocol.gameobjects.furniture.Furniture;
......@@ -65,6 +66,9 @@ public class GameObject extends ObjectModel {
private static final float LABEL_WITH_RATIO = 0.95f;
private static final float LABEL_PADDING_BOTTOM = 18f;
private static final float DEFAULT_SCALE_NONE = 1f;
private static final float DEFAULT_SCALE_DESKTOP_HD = 0.45f;
private boolean biggerScale = false;
private boolean inRoom = false;
......@@ -149,9 +153,10 @@ public class GameObject extends ObjectModel {
}
private void changeSize() {
if (isInRoom())
objectImage.setSize(objectImage.getDrawable().getMinWidth(), objectImage.getDrawable().getMinHeight());
else
if (isInRoom()) {
float scaleFactor = TablexiaSettings.getInstance().isUseHdAssets() ? DEFAULT_SCALE_DESKTOP_HD : DEFAULT_SCALE_NONE;
objectImage.setSize(objectImage.getDrawable().getMinWidth() * scaleFactor, objectImage.getDrawable().getMinHeight() * scaleFactor);
} else
objectImage.setSize(ProtocolGame.CARD_SMALL_SIZE, ProtocolGame.CARD_SMALL_SIZE);
}
......
......@@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import cz.nic.tablexia.TablexiaSettings;
import cz.nic.tablexia.game.games.protocol.controller.RoomPosition;
import cz.nic.tablexia.game.games.protocol.gameobjects.ObjectModel;
import cz.nic.tablexia.game.games.protocol.utils.ObjectsPositionComparator;
......@@ -42,14 +43,19 @@ public class Furniture extends ObjectModel {
private List<ObjectModel> objectOnFurniture;
private static final float DEFAULT_SCALE_NONE = 1f;
private static final float DEFAULT_SCALE_DESKTOP_HD = 0.45f;
public Furniture(FurnitureType type, TextureRegion texture, float resizePercent) {
this.type = type;
this.texture = texture;
furnitureImage = new Image(texture);
furnitureImage.setWidth((furnitureImage.getDrawable().getMinWidth() * resizePercent) / 100);
furnitureImage.setHeight((furnitureImage.getDrawable().getMinHeight() * resizePercent / 100));
float scaleFactor = TablexiaSettings.getInstance().isUseHdAssets() ? DEFAULT_SCALE_DESKTOP_HD : DEFAULT_SCALE_NONE;
furnitureImage.setWidth((furnitureImage.getDrawable().getMinWidth() * resizePercent * scaleFactor) / 100);
furnitureImage.setHeight((furnitureImage.getDrawable().getMinHeight() * resizePercent * scaleFactor) / 100);
float xMiddle = furnitureImage.getWidth() * type.getMiddleRatio()[0] - 5;
float yMiddle = furnitureImage.getHeight() * type.getMiddleRatio()[1] - 5;
......
......@@ -165,14 +165,14 @@ public class RunesHolder extends Group {
}
public void unfold() {
if (folded) {
if (folded && getStage() != null) {
for (Actor a : getChildren()) {
a.setTouchable(Touchable.enabled);
}
setTouchable(Touchable.childrenOnly);
toFront();
prevX = getX();
float stageWidth = getStage().getWidth() * (1-RunesGame.SIDEBAR_RELATIVE_WIDTH);
float stageWidth = getStage().getWidth() * (1 - RunesGame.SIDEBAR_RELATIVE_WIDTH);
float prevMid = prevX + getWidth() * 0.5f * getScaleX();
setScale(UNFOLDED_SCALE);
float newX = prevMid - getWidth() * getScaleX() * 0.5f;
......
......@@ -725,12 +725,4 @@ public abstract class AbstractMenu extends Stack implements Disposable {
}
};
//////////////////////////// MENU SCROLL
public ScrollPane getScrollPaneByDevice(Actor widget){
if(TablexiaSettings.getInstance().getPlatform() != TablexiaSettings.Platform.DESKTOP)
return new ScrollPane(widget);
return new ScrollPaneWithBars(widget, false, true);
}
}
......@@ -41,6 +41,7 @@ import cz.nic.tablexia.menu.AbstractMenu;
import cz.nic.tablexia.menu.IMenuItem;
import cz.nic.tablexia.menu.main.user.UserSelectBox;
import cz.nic.tablexia.util.ui.dialog.TablexiaComponentDialog;
import cz.nic.tablexia.util.ui.scrollpane.ScrollPaneWithBars;
/**
* MainMenu container
......@@ -121,7 +122,7 @@ public class MainMenu extends AbstractMenu {
Table layoutTable = new Table();
UserSelectBox userSelectBox = new UserSelectBox(SELECTBOX_USER_HEIGHT);
scrollPane = getScrollPaneByDevice(mainMenuVerticalGroup);
scrollPane = new ScrollPaneWithBars(mainMenuVerticalGroup, false, true);
scrollPane.setFillParent(true);
scrollPaneContainer = new Container();
......
......@@ -68,6 +68,7 @@ import cz.nic.tablexia.util.ui.dialog.components.TextContentDialogComponent;
import cz.nic.tablexia.util.ui.dialog.components.TwoButtonContentDialogComponent;
import cz.nic.tablexia.util.ui.dialog.components.UserUuidSyncDialogComponent;
import cz.nic.tablexia.util.ui.dialog.components.ViewportMaximumSizeComponent;
import cz.nic.tablexia.util.ui.scrollpane.ScrollPaneWithBars;
/**
* UserMenu container
......@@ -228,7 +229,7 @@ public class UserMenu extends AbstractMenu {