diff --git a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form index 87d1b0beb74..03ed4e96b4b 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form +++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form @@ -31,7 +31,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -1719,7 +1719,7 @@ - + @@ -1744,11 +1744,11 @@ - + - - + + @@ -1756,6 +1756,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1902,7 +1939,7 @@ - + @@ -2409,11 +2446,11 @@ - - + + - + @@ -2504,11 +2541,11 @@ - - + + - + @@ -2536,7 +2573,7 @@ - + @@ -2549,7 +2586,7 @@ - + @@ -2601,11 +2638,11 @@ - - + + - + @@ -2633,7 +2670,7 @@ - + @@ -2646,7 +2683,7 @@ - + @@ -2696,11 +2733,11 @@ - - + + - + @@ -2728,7 +2765,7 @@ - + @@ -2793,11 +2830,11 @@ - - + + - + @@ -2825,7 +2862,7 @@ - + @@ -2888,11 +2925,11 @@ - - + + - + @@ -2920,7 +2957,7 @@ - + @@ -2985,11 +3022,11 @@ - - + + - + @@ -3017,7 +3054,7 @@ - + @@ -3080,7 +3117,199 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3088,7 +3317,7 @@ - + @@ -3096,7 +3325,7 @@ - + @@ -3105,16 +3334,16 @@ - + - + - + @@ -3124,12 +3353,12 @@ - + - + @@ -3139,12 +3368,12 @@ - + - + @@ -3154,12 +3383,12 @@ - + - + @@ -3169,7 +3398,7 @@ - + @@ -3181,11 +3410,11 @@ - + - + @@ -3194,16 +3423,16 @@ - + - + - + @@ -3211,12 +3440,12 @@ - + - + @@ -3224,12 +3453,12 @@ - + - + @@ -3237,12 +3466,12 @@ - + - + @@ -3250,17 +3479,17 @@ - + - + - + @@ -3269,16 +3498,16 @@ - + - + - + @@ -3286,12 +3515,12 @@ - + - + @@ -3299,12 +3528,12 @@ - + - + @@ -3312,12 +3541,12 @@ - + - + @@ -3325,13 +3554,13 @@ - + - + @@ -4172,7 +4401,7 @@ - + @@ -5028,9 +5257,9 @@ - + - + @@ -5039,7 +5268,7 @@ - + @@ -5047,7 +5276,7 @@ - + @@ -5061,6 +5290,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5230,83 +5536,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java index ccc197fc18a..a949990fc88 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java @@ -104,7 +104,8 @@ public class PreferencesDialog extends javax.swing.JDialog { public static final String KEY_GUI_DIALOG_FONT_SIZE = "guiDialogFontSize"; public static final String KEY_GUI_FEEDBACK_AREA_SIZE = "guiFeedbackAreaSize"; public static final String KEY_GUI_CARD_OTHER_ZONES_SIZE = "guiCardOtherZonesSize"; - public static final String KEY_GUI_CARD_BATTLEFIELD_SIZE = "guiCardBattlefield"; + public static final String KEY_GUI_CARD_BATTLEFIELD_MIN_SIZE = "guiCardBattlefieldMinSize"; + public static final String KEY_GUI_CARD_BATTLEFIELD_MAX_SIZE = "guiCardBattlefieldMaxSize"; public static final String KEY_GAME_LOG_AUTO_SAVE = "gameLogAutoSave"; public static final String KEY_DRAFT_LOG_AUTO_SAVE = "draftLogAutoSave"; @@ -245,7 +246,6 @@ public class PreferencesDialog extends javax.swing.JDialog { public static final String KEY_NEW_DECK_GENERATOR_LAND_PERCENTAGE = "newDeckGeneratorLandPercentage"; public static final String KEY_NEW_DECK_GENERATOR_ADVANCED_CMC = "newDeckGeneratorAdvancedCMC"; - // used to save and restore the settings for the cardArea (draft, sideboarding, deck builder) public static final String KEY_DRAFT_VIEW = "draftView"; @@ -396,8 +396,10 @@ public class PreferencesDialog extends javax.swing.JDialog { labelCardSizeHand = new javax.swing.JLabel(); sliderCardSizeOtherZones = new javax.swing.JSlider(); labelCardSizeOtherZones = new javax.swing.JLabel(); - sliderCardSizeBattlefield = new javax.swing.JSlider(); - labelCardSizeBattlefield = new javax.swing.JLabel(); + sliderCardSizeMinBattlefield = new javax.swing.JSlider(); + labelCardSizeMinBattlefield = new javax.swing.JLabel(); + sliderCardSizeMaxBattlefield = new javax.swing.JSlider(); + labelCardSizeMaxBattlefield = new javax.swing.JLabel(); sliderStackWidth = new javax.swing.JSlider(); labelStackWidth = new javax.swing.JLabel(); sliderGameFeedbackArea = new javax.swing.JSlider(); @@ -495,6 +497,10 @@ public class PreferencesDialog extends javax.swing.JDialog { jPanel32 = new javax.swing.JPanel(); jPanel33 = new javax.swing.JPanel(); tabConnection = new javax.swing.JPanel(); + connection_servers = new javax.swing.JPanel(); + lblURLServerList = new javax.swing.JLabel(); + txtURLServerList = new javax.swing.JTextField(); + jLabel17 = new javax.swing.JLabel(); lblProxyType = new javax.swing.JLabel(); cbProxyType = new javax.swing.JComboBox<>(); pnlProxySettings = new javax.swing.JPanel(); @@ -509,10 +515,6 @@ public class PreferencesDialog extends javax.swing.JDialog { txtPasswordField = new javax.swing.JPasswordField(); rememberPswd = new javax.swing.JCheckBox(); jLabel11 = new javax.swing.JLabel(); - connection_servers = new javax.swing.JPanel(); - lblURLServerList = new javax.swing.JLabel(); - txtURLServerList = new javax.swing.JTextField(); - jLabel17 = new javax.swing.JLabel(); saveButton = new javax.swing.JButton(); exitButton = new javax.swing.JButton(); @@ -557,7 +559,7 @@ public class PreferencesDialog extends javax.swing.JDialog { .add(tooltipDelayLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 308, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.LEADING, showCardName) .add(tooltipDelay, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap(183, Short.MAX_VALUE)) + .addContainerGap(233, Short.MAX_VALUE)) ); main_cardLayout.setVerticalGroup( main_cardLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) @@ -917,7 +919,7 @@ public class PreferencesDialog extends javax.swing.JDialog { guiSizeGame.setMinimumSize(new java.awt.Dimension(600, 180)); guiSizeGame.setPreferredSize(new java.awt.Dimension(600, 180)); java.awt.GridBagLayout guiSizeGameLayout = new java.awt.GridBagLayout(); - guiSizeGameLayout.columnWeights = new double[] {1.0, 1.0, 1.0}; + guiSizeGameLayout.columnWeights = new double[] {1.0, 1.0, 1.0, 1.0}; guiSizeGameLayout.rowWeights = new double[] {1.0, 0.2, 1.0, 0.2}; guiSizeGame.setLayout(guiSizeGameLayout); @@ -980,34 +982,63 @@ public class PreferencesDialog extends javax.swing.JDialog { gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; guiSizeGame.add(labelCardSizeOtherZones, gridBagConstraints); - sliderCardSizeBattlefield.setMajorTickSpacing(5); - sliderCardSizeBattlefield.setMaximum(50); - sliderCardSizeBattlefield.setMinimum(10); - sliderCardSizeBattlefield.setMinorTickSpacing(1); - sliderCardSizeBattlefield.setPaintLabels(true); - sliderCardSizeBattlefield.setPaintTicks(true); - sliderCardSizeBattlefield.setSnapToTicks(true); - sliderCardSizeBattlefield.setToolTipText("The maximum size of permanents on the battlefield"); - sliderCardSizeBattlefield.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - sliderCardSizeBattlefield.setMinimumSize(new java.awt.Dimension(150, 40)); + sliderCardSizeMinBattlefield.setMajorTickSpacing(5); + sliderCardSizeMinBattlefield.setMaximum(50); + sliderCardSizeMinBattlefield.setMinimum(10); + sliderCardSizeMinBattlefield.setMinorTickSpacing(1); + sliderCardSizeMinBattlefield.setPaintLabels(true); + sliderCardSizeMinBattlefield.setPaintTicks(true); + sliderCardSizeMinBattlefield.setSnapToTicks(true); + sliderCardSizeMinBattlefield.setToolTipText("The maximum size of permanents on the battlefield"); + sliderCardSizeMinBattlefield.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + sliderCardSizeMinBattlefield.setMinimumSize(new java.awt.Dimension(150, 40)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); - guiSizeGame.add(sliderCardSizeBattlefield, gridBagConstraints); + guiSizeGame.add(sliderCardSizeMinBattlefield, gridBagConstraints); - labelCardSizeBattlefield.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - labelCardSizeBattlefield.setText("Permanents"); - labelCardSizeBattlefield.setToolTipText("The maximum size of permanents on the battlefield"); + labelCardSizeMinBattlefield.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + labelCardSizeMinBattlefield.setText("Permanents min size"); + labelCardSizeMinBattlefield.setToolTipText("The minimum size of permanents on the battlefield"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.ipadx = 3; gridBagConstraints.ipady = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; - guiSizeGame.add(labelCardSizeBattlefield, gridBagConstraints); + guiSizeGame.add(labelCardSizeMinBattlefield, gridBagConstraints); + + sliderCardSizeMaxBattlefield.setMajorTickSpacing(5); + sliderCardSizeMaxBattlefield.setMaximum(50); + sliderCardSizeMaxBattlefield.setMinimum(10); + sliderCardSizeMaxBattlefield.setMinorTickSpacing(1); + sliderCardSizeMaxBattlefield.setPaintLabels(true); + sliderCardSizeMaxBattlefield.setPaintTicks(true); + sliderCardSizeMaxBattlefield.setSnapToTicks(true); + sliderCardSizeMaxBattlefield.setToolTipText("The maximum size of permanents on the battlefield"); + sliderCardSizeMaxBattlefield.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + sliderCardSizeMaxBattlefield.setMinimumSize(new java.awt.Dimension(150, 40)); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 3; + gridBagConstraints.gridy = 0; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; + gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); + guiSizeGame.add(sliderCardSizeMaxBattlefield, gridBagConstraints); + + labelCardSizeMaxBattlefield.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + labelCardSizeMaxBattlefield.setText("Permanents max size"); + labelCardSizeMaxBattlefield.setToolTipText("The maximum size of permanents on the battlefield"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 3; + gridBagConstraints.gridy = 1; + gridBagConstraints.ipadx = 3; + gridBagConstraints.ipady = 3; + gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; + guiSizeGame.add(labelCardSizeMaxBattlefield, gridBagConstraints); sliderStackWidth.setMajorTickSpacing(20); sliderStackWidth.setMaximum(90); @@ -2099,7 +2130,7 @@ public class PreferencesDialog extends javax.swing.JDialog { tabAvatarsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(tabAvatarsLayout.createSequentialGroup() .add(avatarPane, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 528, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(0, 1, Short.MAX_VALUE)) + .add(0, 0, Short.MAX_VALUE)) ); tabAvatarsLayout.setVerticalGroup( tabAvatarsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) @@ -2110,6 +2141,47 @@ public class PreferencesDialog extends javax.swing.JDialog { tabsPanel.addTab("Avatars", tabAvatars); + connection_servers.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Servers")); + + lblURLServerList.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); + lblURLServerList.setText("URL server list:"); + lblURLServerList.setToolTipText(""); + lblURLServerList.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING); + lblURLServerList.setPreferredSize(new java.awt.Dimension(110, 16)); + lblURLServerList.setVerticalTextPosition(javax.swing.SwingConstants.TOP); + + txtURLServerList.setToolTipText("The URL XMage tries to read a server list from."); + txtURLServerList.setPreferredSize(new java.awt.Dimension(300, 22)); + + jLabel17.setFont(new java.awt.Font("Tahoma", 2, 10)); // NOI18N + jLabel17.setText("e.g.: http://XMage.de/files/server-list.txt"); + + org.jdesktop.layout.GroupLayout connection_serversLayout = new org.jdesktop.layout.GroupLayout(connection_servers); + connection_servers.setLayout(connection_serversLayout); + connection_serversLayout.setHorizontalGroup( + connection_serversLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(connection_serversLayout.createSequentialGroup() + .add(connection_serversLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(connection_serversLayout.createSequentialGroup() + .addContainerGap() + .add(lblURLServerList, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 96, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(txtURLServerList, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 370, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(connection_serversLayout.createSequentialGroup() + .add(141, 141, 141) + .add(jLabel17))) + .addContainerGap(67, Short.MAX_VALUE)) + ); + connection_serversLayout.setVerticalGroup( + connection_serversLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(connection_serversLayout.createSequentialGroup() + .add(connection_serversLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) + .add(lblURLServerList, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(txtURLServerList, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jLabel17)) + ); + lblProxyType.setText("Proxy:"); cbProxyType.addActionListener(new java.awt.event.ActionListener() { @@ -2219,67 +2291,26 @@ public class PreferencesDialog extends javax.swing.JDialog { .addContainerGap()) ); - connection_servers.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Servers")); - - lblURLServerList.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); - lblURLServerList.setText("URL server list:"); - lblURLServerList.setToolTipText(""); - lblURLServerList.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING); - lblURLServerList.setPreferredSize(new java.awt.Dimension(110, 16)); - lblURLServerList.setVerticalTextPosition(javax.swing.SwingConstants.TOP); - - txtURLServerList.setToolTipText("The URL XMage tries to read a server list from."); - txtURLServerList.setPreferredSize(new java.awt.Dimension(300, 22)); - - jLabel17.setFont(new java.awt.Font("Tahoma", 2, 10)); // NOI18N - jLabel17.setText("e.g.: http://XMage.de/files/server-list.txt"); - - org.jdesktop.layout.GroupLayout connection_serversLayout = new org.jdesktop.layout.GroupLayout(connection_servers); - connection_servers.setLayout(connection_serversLayout); - connection_serversLayout.setHorizontalGroup( - connection_serversLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(connection_serversLayout.createSequentialGroup() - .add(connection_serversLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(connection_serversLayout.createSequentialGroup() - .addContainerGap() - .add(lblURLServerList, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 96, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(txtURLServerList, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 370, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(connection_serversLayout.createSequentialGroup() - .add(141, 141, 141) - .add(jLabel17))) - .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - connection_serversLayout.setVerticalGroup( - connection_serversLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(connection_serversLayout.createSequentialGroup() - .add(connection_serversLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) - .add(lblURLServerList, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(txtURLServerList, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jLabel17)) - ); - org.jdesktop.layout.GroupLayout tabConnectionLayout = new org.jdesktop.layout.GroupLayout(tabConnection); tabConnection.setLayout(tabConnectionLayout); tabConnectionLayout.setHorizontalGroup( tabConnectionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(tabConnectionLayout.createSequentialGroup() + .add(org.jdesktop.layout.GroupLayout.TRAILING, tabConnectionLayout.createSequentialGroup() .addContainerGap() - .add(tabConnectionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false) + .add(tabConnectionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(pnlProxySettings, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.LEADING, tabConnectionLayout.createSequentialGroup() .add(lblProxyType) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(cbProxyType, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 126, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(connection_servers, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap()) ); tabConnectionLayout.setVerticalGroup( tabConnectionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(tabConnectionLayout.createSequentialGroup() .addContainerGap() - .add(connection_servers, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(connection_servers, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(tabConnectionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(lblProxyType) @@ -2325,7 +2356,7 @@ public class PreferencesDialog extends javax.swing.JDialog { .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(exitButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(6, 6, 6)) - .add(tabsPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 535, Short.MAX_VALUE) + .add(tabsPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 584, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) @@ -2399,8 +2430,12 @@ public class PreferencesDialog extends javax.swing.JDialog { save(prefs, dialog.sliderCardSizeOtherZones, KEY_GUI_CARD_OTHER_ZONES_SIZE, "true", "false", UPDATE_CACHE_POLICY); sizeGUIChanged = true; } - if (getCachedValue(KEY_GUI_CARD_BATTLEFIELD_SIZE, 14) != dialog.sliderCardSizeBattlefield.getValue()) { - save(prefs, dialog.sliderCardSizeBattlefield, KEY_GUI_CARD_BATTLEFIELD_SIZE, "true", "false", UPDATE_CACHE_POLICY); + if (getCachedValue(KEY_GUI_CARD_BATTLEFIELD_MIN_SIZE, 10) != dialog.sliderCardSizeMaxBattlefield.getValue()) { + save(prefs, dialog.sliderCardSizeMinBattlefield, KEY_GUI_CARD_BATTLEFIELD_MIN_SIZE, "true", "false", UPDATE_CACHE_POLICY); + sizeGUIChanged = true; + } + if (getCachedValue(KEY_GUI_CARD_BATTLEFIELD_MAX_SIZE, 14) != dialog.sliderCardSizeMaxBattlefield.getValue()) { + save(prefs, dialog.sliderCardSizeMaxBattlefield, KEY_GUI_CARD_BATTLEFIELD_MAX_SIZE, "true", "false", UPDATE_CACHE_POLICY); sizeGUIChanged = true; } if (sizeGUIChanged) { @@ -2892,7 +2927,8 @@ public class PreferencesDialog extends javax.swing.JDialog { load(prefs, dialog.sliderTooltipSize, KEY_GUI_TOOLTIP_SIZE, "14"); load(prefs, dialog.sliderGameFeedbackArea, KEY_GUI_FEEDBACK_AREA_SIZE, "14"); load(prefs, dialog.sliderCardSizeOtherZones, KEY_GUI_CARD_OTHER_ZONES_SIZE, "14"); - load(prefs, dialog.sliderCardSizeBattlefield, KEY_GUI_CARD_BATTLEFIELD_SIZE, "14"); + load(prefs, dialog.sliderCardSizeMinBattlefield, KEY_GUI_CARD_BATTLEFIELD_MIN_SIZE, "10"); + load(prefs, dialog.sliderCardSizeMaxBattlefield, KEY_GUI_CARD_BATTLEFIELD_MAX_SIZE, "14"); } private static void loadImagesSettings(Preferences prefs) { @@ -3278,7 +3314,6 @@ public class PreferencesDialog extends javax.swing.JDialog { PreferencesDialog.getCachedValue(PreferencesDialog.KEY_PASS_PRIORITY_ACTIVATION, "true").equals("true"), PreferencesDialog.getCachedValue(PreferencesDialog.KEY_AUTO_ORDER_TRIGGER, "true").equals("true"), PreferencesDialog.getCachedValue(PreferencesDialog.KEY_USE_FIRST_MANA_ABILITY, "false").equals("true") - ); } @@ -3374,8 +3409,9 @@ public class PreferencesDialog extends javax.swing.JDialog { private javax.swing.JPanel jPanel31; private javax.swing.JPanel jPanel32; private javax.swing.JPanel jPanel33; - private javax.swing.JLabel labelCardSizeBattlefield; private javax.swing.JLabel labelCardSizeHand; + private javax.swing.JLabel labelCardSizeMaxBattlefield; + private javax.swing.JLabel labelCardSizeMinBattlefield; private javax.swing.JLabel labelCardSizeOtherZones; private javax.swing.JLabel labelDialogFont; private javax.swing.JLabel labelEditorCardOffset; @@ -3404,8 +3440,9 @@ public class PreferencesDialog extends javax.swing.JDialog { private javax.swing.JCheckBox showAbilityPickerForced; private javax.swing.JCheckBox showCardName; private javax.swing.JCheckBox showPlayerNamesPermanently; - private javax.swing.JSlider sliderCardSizeBattlefield; private javax.swing.JSlider sliderCardSizeHand; + private javax.swing.JSlider sliderCardSizeMaxBattlefield; + private javax.swing.JSlider sliderCardSizeMinBattlefield; private javax.swing.JSlider sliderCardSizeOtherZones; private javax.swing.JSlider sliderChatFontSize; private javax.swing.JSlider sliderDialogFont; diff --git a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java index 14659169f15..e23e22887e0 100644 --- a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java @@ -128,7 +128,7 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane { private void setGUISize() { jScrollPane.getVerticalScrollBar().setPreferredSize(new Dimension(GUISizeHelper.scrollBarSize, 0)); jScrollPane.getHorizontalScrollBar().setPreferredSize(new Dimension(0, GUISizeHelper.scrollBarSize)); - cardDimension = GUISizeHelper.battlefieldCardDimension; + cardDimension = GUISizeHelper.battlefieldCardMaxDimension; } public void update(Map battlefield) { diff --git a/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java b/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java index 688a3b5dc1a..b41a55944ab 100644 --- a/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java +++ b/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java @@ -69,7 +69,8 @@ public class GUISizeHelper { public static Dimension otherZonesCardDimension; public static int otherZonesCardVerticalOffset; - public static Dimension battlefieldCardDimension; + public static Dimension battlefieldCardMinDimension; + public static Dimension battlefieldCardMaxDimension; public static Dimension editorCardDimension; public static int editorCardOffsetSize; @@ -144,8 +145,10 @@ public class GUISizeHelper { otherZonesCardVerticalOffset = otherZonesCardDimension.height / 10; } - int battlefieldCardSize = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_GUI_CARD_BATTLEFIELD_SIZE, 14); - battlefieldCardDimension = new Dimension(CARD_IMAGE_WIDTH * battlefieldCardSize / 42, CARD_IMAGE_HEIGHT * battlefieldCardSize / 42); + int battlefieldCardMinSize = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_GUI_CARD_BATTLEFIELD_MIN_SIZE, 10); + battlefieldCardMinDimension = new Dimension(CARD_IMAGE_WIDTH * battlefieldCardMinSize / 42, CARD_IMAGE_HEIGHT * battlefieldCardMinSize / 42); + int battlefieldCardMaxSize = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_GUI_CARD_BATTLEFIELD_MAX_SIZE, 14); + battlefieldCardMaxDimension = new Dimension(CARD_IMAGE_WIDTH * battlefieldCardMaxSize / 42, CARD_IMAGE_HEIGHT * battlefieldCardMaxSize / 42); int editorCardSize = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_GUI_CARD_EDITOR_SIZE, 14); editorCardDimension = new Dimension(CARD_IMAGE_WIDTH * editorCardSize / 42, CARD_IMAGE_HEIGHT * editorCardSize / 42); diff --git a/Mage.Client/src/main/java/mage/client/util/layout/impl/OldCardLayoutStrategy.java b/Mage.Client/src/main/java/mage/client/util/layout/impl/OldCardLayoutStrategy.java index 47cd0d30e87..517bab9508c 100644 --- a/Mage.Client/src/main/java/mage/client/util/layout/impl/OldCardLayoutStrategy.java +++ b/Mage.Client/src/main/java/mage/client/util/layout/impl/OldCardLayoutStrategy.java @@ -23,13 +23,12 @@ public class OldCardLayoutStrategy implements CardLayoutStrategy { /** * This offset is used once to shift all attachments */ - private static final int ATTACHMENTS_DX_OFFSET = 11; + private static final int ATTACHMENTS_MIN_DX_OFFSET = 12; /** * This offset is used for each attachment */ - private static final int ATTACHMENT_DX_OFFSET = 0; - private static final int ATTACHMENT_DY_OFFSET = 11; + private static final int ATTACHMENT_MIN_DY_OFFSET = 12; @Override public void doLayout(JLayeredPane jLayeredPane, int width) { @@ -56,7 +55,7 @@ public class OldCardLayoutStrategy implements CardLayoutStrategy { perm.getLinks().clear(); Rectangle rectangleBaseCard = perm.getBounds(); if (!Plugins.getInstance().isCardPluginLoaded()) { - for (UUID attachmentId: permanent.getAttachments()) { + for (UUID attachmentId : permanent.getAttachments()) { MagePermanent link = permanents.get(attachmentId); if (link != null) { perm.getLinks().add(link); @@ -67,15 +66,16 @@ public class OldCardLayoutStrategy implements CardLayoutStrategy { } } else { int index = permanent.getAttachments().size(); - for (UUID attachmentId: permanent.getAttachments()) { + for (UUID attachmentId : permanent.getAttachments()) { MagePermanent link = permanents.get(attachmentId); if (link != null) { link.setBounds(rectangleBaseCard); perm.getLinks().add(link); + int dyOffset = Math.max(perm.getHeight() / 10, ATTACHMENT_MIN_DY_OFFSET); if (index == 1) { - rectangleBaseCard.translate(ATTACHMENTS_DX_OFFSET, ATTACHMENT_DY_OFFSET); // do it once + rectangleBaseCard.translate(Math.max(perm.getWidth() / 10, ATTACHMENTS_MIN_DX_OFFSET), dyOffset); // do it once } else { - rectangleBaseCard.translate(ATTACHMENT_DX_OFFSET, ATTACHMENT_DY_OFFSET); + rectangleBaseCard.translate(0, dyOffset); } perm.setBounds(rectangleBaseCard); jLayeredPane.moveToFront(link); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java index 99d5a8acf06..7a9f4950db9 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java @@ -67,7 +67,8 @@ public class CardPluginImpl implements CardPlugin { private int landStackMax = 5; // private int cardWidthMin = 50, cardWidthMax = Constants.CARD_SIZE_FULL.width; - private int cardWidthMin = 50, cardWidthMax = (int) GUISizeHelper.battlefieldCardDimension.getWidth(); + private int cardWidthMin = (int) GUISizeHelper.battlefieldCardMinDimension.getWidth(); + private int cardWidthMax = (int) GUISizeHelper.battlefieldCardMaxDimension.getWidth(); private boolean stackVertical = false; @@ -101,8 +102,8 @@ public class CardPluginImpl implements CardPlugin { } private void setGUISize() { - cardWidthMin = 50; - cardWidthMax = (int) GUISizeHelper.battlefieldCardDimension.getWidth(); + cardWidthMin = (int) GUISizeHelper.battlefieldCardMinDimension.getWidth(); + cardWidthMax = (int) GUISizeHelper.battlefieldCardMaxDimension.getWidth(); } @Override @@ -261,6 +262,7 @@ public class CardPluginImpl implements CardPlugin { } //FIXME: -1 is too slow. why not binary search? cardWidth -= 3; + } // Get size of all the rows.