diff --git a/Mage.Client/src/main/java/mage/client/chat/ChatPanel.java b/Mage.Client/src/main/java/mage/client/chat/ChatPanel.java
index 6754d45cc09..873cc05b389 100644
--- a/Mage.Client/src/main/java/mage/client/chat/ChatPanel.java
+++ b/Mage.Client/src/main/java/mage/client/chat/ChatPanel.java
@@ -221,6 +221,10 @@ public class ChatPanel extends javax.swing.JPanel {
}
}
+ public String getText() {
+ return txtConversation.getText();
+ }
+
public ChatPanel getConnectedChat() {
return connectedChat;
}
diff --git a/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.form b/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.form
index 18b754a8b98..ee2b8e3832e 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.form
+++ b/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.form
@@ -56,7 +56,7 @@
-
+
diff --git a/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.java b/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.java
index 2cf365e0d17..4aaa4f4ce35 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.java
+++ b/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.java
@@ -38,10 +38,20 @@ import java.awt.Color;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.PrintWriter;
+import java.nio.file.Files;
+import java.nio.file.LinkOption;
+import java.nio.file.Path;
import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.Calendar;
-import java.util.Date;
import javax.swing.ImageIcon;
+import javax.swing.JOptionPane;
+import mage.client.MageFrame;
+import mage.client.game.GamePanel;
import mage.client.util.AudioManager;
import mage.client.util.Format;
import mage.client.util.ImageHelper;
@@ -75,6 +85,12 @@ public class GameEndDialog extends MageDialog {
this.lblResultText.setText(gameEndView.getResultMessage());
+ String autoSave = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_GAME_LOG_AUTO_SAVE, "true");
+ if (autoSave.equals("true")) {
+ this.saveGameLog(gameEndView);
+ }
+
+
// game duration
txtDurationGame.setText(Format.getDuration(gameEndView.getStartTime(), gameEndView.getEndTime()));
txtDurationGame.setToolTipText(new StringBuilder(df.format(gameEndView.getStartTime())).append(" - ").append(df.format(gameEndView.getEndTime())).toString() );
@@ -112,6 +128,32 @@ public class GameEndDialog extends MageDialog {
}
+ private void saveGameLog(GameEndView gameEndView) {
+ String dir = "gamelogs";
+ File saveDir = new File(dir);
+ //Here comes the existence check
+ if(!saveDir.exists()) {
+ saveDir.mkdirs();
+ }
+ // get game log
+ try {
+ GamePanel gamePanel = MageFrame.getGame(gameEndView.getMatchView().getGames().get(gameEndView.getMatchView().getGames().size()-1));
+ SimpleDateFormat sdf = new SimpleDateFormat();
+ sdf.applyPattern( "yyyyMMdd_HHmmss" );
+ String fileName = new StringBuilder(dir).append(File.separator)
+ .append(sdf.format(gameEndView.getStartTime()))
+ .append("_").append(gameEndView.getMatchView().getGameType())
+ .append("_").append(gameEndView.getMatchView().getGames().size())
+ .append(".txt").toString();
+ PrintWriter out = new PrintWriter(fileName);
+ out.print(gamePanel.getGameLog());
+ out.close();
+ } catch (FileNotFoundException ex) {
+ JOptionPane.showMessageDialog(this, "Error while writing game log to file\n\n" + ex, "Error writing gamelog", JOptionPane.ERROR_MESSAGE);
+ }
+
+ }
+
public void showDialog() {
this.setLocation(100, 100);
this.setVisible(true);
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 1f86adab85d..a0239f356ca 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form
+++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form
@@ -24,7 +24,7 @@
-
+
@@ -65,11 +65,12 @@
-
+
-
+
+
-
+
@@ -80,9 +81,11 @@
-
+
-
+
+
+
@@ -101,30 +104,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -134,6 +114,11 @@
+
+
+
+
+
@@ -142,6 +127,11 @@
+
+
+
+
+
@@ -158,25 +148,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -189,6 +161,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -262,7 +273,7 @@
-
+
@@ -334,7 +345,7 @@
-
+
@@ -449,7 +460,7 @@
-
+
@@ -471,23 +482,19 @@
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
@@ -564,34 +571,38 @@
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -714,7 +725,7 @@
-
+
@@ -736,22 +747,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -761,6 +757,11 @@
+
+
+
+
+
@@ -782,19 +783,15 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -823,6 +820,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -831,17 +839,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -885,7 +882,7 @@
-
+
@@ -960,7 +957,7 @@
-
+
@@ -1068,12 +1065,12 @@
-
+
-
+
@@ -1131,7 +1128,7 @@
-
+
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 11d27eff5a0..f82838f82e2 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java
+++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java
@@ -77,6 +77,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
public static final String KEY_SHOW_TOOLTIPS_ANY_ZONE = "showTooltipsInAnyZone";
public static final String KEY_HAND_USE_BIG_CARDS = "handUseBigCards";
public static final String KEY_PERMANENTS_IN_ONE_PILE = "nonLandPermanentsInOnePile";
+ public static final String KEY_GAME_LOG_AUTO_SAVE = "gameLogAutoSave";
public static final String KEY_CARD_IMAGES_USE_DEFAULT = "cardImagesUseDefault";
public static final String KEY_CARD_IMAGES_PATH = "cardImagesPath";
@@ -248,6 +249,8 @@ public class PreferencesDialog extends javax.swing.JDialog {
displayBigCardsInHand = new javax.swing.JCheckBox();
main_battlefield = new javax.swing.JPanel();
nonLandPermanentsInOnePile = new javax.swing.JCheckBox();
+ main_gamelog = new javax.swing.JPanel();
+ cbGameLogAutoSave = new javax.swing.JCheckBox();
tabPhases = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
@@ -295,9 +298,9 @@ public class PreferencesDialog extends javax.swing.JDialog {
cbEnableSounds = new javax.swing.JCheckBox();
sounds_backgroundMusic = new javax.swing.JPanel();
cbEnableBattlefieldBGM = new javax.swing.JCheckBox();
- btnBattlefieldBGMBrowse = new javax.swing.JButton();
- txtBattlefieldIBGMPath = new javax.swing.JTextField();
jLabel16 = new javax.swing.JLabel();
+ txtBattlefieldIBGMPath = new javax.swing.JTextField();
+ btnBattlefieldBGMBrowse = new javax.swing.JButton();
tabConnection = new javax.swing.JPanel();
lblProxyType = new javax.swing.JLabel();
cbProxyType = new javax.swing.JComboBox();
@@ -337,6 +340,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
setTitle("Preferences");
main_hand.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Hand"));
+ main_hand.setLayout(new java.awt.BorderLayout());
showToolTipsInAnyZone.setSelected(true);
showToolTipsInAnyZone.setText("Show tooltips");
@@ -345,6 +349,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
showToolTipsInAnyZoneActionPerformed(evt);
}
});
+ main_hand.add(showToolTipsInAnyZone, java.awt.BorderLayout.CENTER);
displayBigCardsInHand.setText("Use big images (for high resolution screens)");
displayBigCardsInHand.addActionListener(new java.awt.event.ActionListener() {
@@ -352,28 +357,10 @@ public class PreferencesDialog extends javax.swing.JDialog {
displayBigCardsInHandActionPerformed(evt);
}
});
-
- javax.swing.GroupLayout main_handLayout = new javax.swing.GroupLayout(main_hand);
- main_hand.setLayout(main_handLayout);
- main_handLayout.setHorizontalGroup(
- main_handLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(main_handLayout.createSequentialGroup()
- .addContainerGap()
- .addGroup(main_handLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(showToolTipsInAnyZone)
- .addComponent(displayBigCardsInHand))
- .addContainerGap(232, Short.MAX_VALUE))
- );
- main_handLayout.setVerticalGroup(
- main_handLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(main_handLayout.createSequentialGroup()
- .addComponent(showToolTipsInAnyZone)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(displayBigCardsInHand)
- .addContainerGap(59, Short.MAX_VALUE))
- );
+ main_hand.add(displayBigCardsInHand, java.awt.BorderLayout.PAGE_START);
main_battlefield.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Battlefield"));
+ main_battlefield.setLayout(new java.awt.BorderLayout());
nonLandPermanentsInOnePile.setSelected(true);
nonLandPermanentsInOnePile.setLabel("Put non-land permanents in one pile");
@@ -382,34 +369,31 @@ public class PreferencesDialog extends javax.swing.JDialog {
nonLandPermanentsInOnePileActionPerformed(evt);
}
});
-
- javax.swing.GroupLayout main_battlefieldLayout = new javax.swing.GroupLayout(main_battlefield);
- main_battlefield.setLayout(main_battlefieldLayout);
- main_battlefieldLayout.setHorizontalGroup(
- main_battlefieldLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(main_battlefieldLayout.createSequentialGroup()
- .addContainerGap()
- .addComponent(nonLandPermanentsInOnePile)
- .addContainerGap(226, Short.MAX_VALUE))
- );
- main_battlefieldLayout.setVerticalGroup(
- main_battlefieldLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(main_battlefieldLayout.createSequentialGroup()
- .addComponent(nonLandPermanentsInOnePile)
- .addContainerGap(30, Short.MAX_VALUE))
- );
-
+ main_battlefield.add(nonLandPermanentsInOnePile, java.awt.BorderLayout.CENTER);
nonLandPermanentsInOnePile.getAccessibleContext().setAccessibleName("nonLandPermanentsInOnePile");
+ main_gamelog.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Game log"));
+ main_gamelog.setLayout(new java.awt.BorderLayout());
+
+ cbGameLogAutoSave.setSelected(true);
+ cbGameLogAutoSave.setText("Auto save game logs (to \"../Mage.Client/gamelogs/\" directory)");
+ cbGameLogAutoSave.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cbGameLogAutoSaveActionPerformed(evt);
+ }
+ });
+ main_gamelog.add(cbGameLogAutoSave, java.awt.BorderLayout.CENTER);
+
javax.swing.GroupLayout tabMainLayout = new javax.swing.GroupLayout(tabMain);
tabMain.setLayout(tabMainLayout);
tabMainLayout.setHorizontalGroup(
tabMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabMainLayout.createSequentialGroup()
+ .addGroup(tabMainLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(tabMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(main_battlefield, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(main_hand, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addGroup(tabMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(main_hand, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(main_battlefield, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(main_gamelog, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 574, Short.MAX_VALUE))
.addContainerGap())
);
tabMainLayout.setVerticalGroup(
@@ -417,11 +401,15 @@ public class PreferencesDialog extends javax.swing.JDialog {
.addGroup(tabMainLayout.createSequentialGroup()
.addContainerGap()
.addComponent(main_hand, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(main_battlefield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(170, Short.MAX_VALUE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(main_gamelog, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap(171, Short.MAX_VALUE))
);
+ main_gamelog.getAccessibleContext().setAccessibleName("Game log");
+
tabsPanel.addTab("Main", tabMain);
jLabel1.setText("Choose phases MAGE will stop on:");
@@ -492,7 +480,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
.addGroup(tabPhasesLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)))
- .addContainerGap(171, Short.MAX_VALUE))
+ .addContainerGap(187, Short.MAX_VALUE))
);
tabPhasesLayout.setVerticalGroup(
tabPhasesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -547,7 +535,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
.addComponent(checkBoxEndTurnYou)
.addComponent(jLabel8)
.addComponent(checkBoxEndTurnOthers))
- .addContainerGap(162, Short.MAX_VALUE))
+ .addContainerGap(120, Short.MAX_VALUE))
);
tabsPanel.addTab("Phases", tabPhases);
@@ -587,18 +575,16 @@ public class PreferencesDialog extends javax.swing.JDialog {
jPanel5Layout.setHorizontalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
- .addContainerGap()
+ .addGap(24, 24, 24)
+ .addComponent(txtImageFolderPath)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnBrowseImageLocation))
+ .addGroup(jPanel5Layout.createSequentialGroup()
.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel5Layout.createSequentialGroup()
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(cbUseDefaultImageFolder)
- .addComponent(cbCheckForNewImages)
- .addComponent(cbSaveToZipFiles))
- .addContainerGap(268, Short.MAX_VALUE))
- .addGroup(jPanel5Layout.createSequentialGroup()
- .addComponent(txtImageFolderPath)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnBrowseImageLocation))))
+ .addComponent(cbUseDefaultImageFolder)
+ .addComponent(cbCheckForNewImages)
+ .addComponent(cbSaveToZipFiles))
+ .addGap(0, 0, Short.MAX_VALUE))
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -674,29 +660,34 @@ public class PreferencesDialog extends javax.swing.JDialog {
jPanel23Layout.setHorizontalGroup(
jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel23Layout.createSequentialGroup()
- .addContainerGap()
.addGroup(jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel23Layout.createSequentialGroup()
- .addComponent(cbUseDefaultBackground)
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel23Layout.createSequentialGroup()
- .addComponent(jLabel15)
- .addGap(18, 18, 18)
- .addComponent(txtBattlefieldImagePath)
+ .addGap(19, 19, 19)
+ .addComponent(jLabel14))
+ .addGroup(jPanel23Layout.createSequentialGroup()
+ .addGap(25, 25, 25)
+ .addComponent(jLabel15)))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel23Layout.createSequentialGroup()
+ .addComponent(txtBattlefieldImagePath, javax.swing.GroupLayout.PREFERRED_SIZE, 336, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnBrowseBattlefieldImage))
.addGroup(jPanel23Layout.createSequentialGroup()
- .addGroup(jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(cbUseDefaultBattleImage)
- .addComponent(cbUseRandomBattleImage))
- .addGap(0, 0, Short.MAX_VALUE))
- .addGroup(jPanel23Layout.createSequentialGroup()
- .addComponent(jLabel14)
+ .addComponent(txtBackgroundImagePath, javax.swing.GroupLayout.PREFERRED_SIZE, 332, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(txtBackgroundImagePath)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnBrowseBackgroundImage))))
+ .addComponent(btnBrowseBackgroundImage)))
+ .addGap(0, 0, Short.MAX_VALUE))
+ .addGroup(jPanel23Layout.createSequentialGroup()
+ .addGroup(jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(cbUseRandomBattleImage)
+ .addComponent(cbUseDefaultBattleImage)
+ .addComponent(cbUseDefaultBackground))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
+
+ jPanel23Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {txtBackgroundImagePath, txtBattlefieldImagePath});
+
jPanel23Layout.setVerticalGroup(
jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel23Layout.createSequentialGroup()
@@ -736,12 +727,13 @@ public class PreferencesDialog extends javax.swing.JDialog {
.addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel23, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(72, Short.MAX_VALUE))
+ .addContainerGap(36, Short.MAX_VALUE))
);
tabsPanel.addTab("Images", tabImages);
sounds_clips.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Clips"));
+ sounds_clips.setLayout(new java.awt.BorderLayout());
cbEnableSounds.setToolTipText("Sounds that will be played for certain actions (e.g. play land, attack, etc.)");
cbEnableSounds.setLabel("Enable");
@@ -750,20 +742,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
cbEnableSoundsActionPerformed(evt);
}
});
-
- javax.swing.GroupLayout sounds_clipsLayout = new javax.swing.GroupLayout(sounds_clips);
- sounds_clips.setLayout(sounds_clipsLayout);
- sounds_clipsLayout.setHorizontalGroup(
- sounds_clipsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(sounds_clipsLayout.createSequentialGroup()
- .addContainerGap()
- .addComponent(cbEnableSounds)
- .addContainerGap(410, Short.MAX_VALUE))
- );
- sounds_clipsLayout.setVerticalGroup(
- sounds_clipsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(cbEnableSounds)
- );
+ sounds_clips.add(cbEnableSounds, java.awt.BorderLayout.CENTER);
sounds_backgroundMusic.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Music"));
@@ -776,12 +755,8 @@ public class PreferencesDialog extends javax.swing.JDialog {
}
});
- btnBattlefieldBGMBrowse.setText("Browse...");
- btnBattlefieldBGMBrowse.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnBattlefieldBGMBrowseActionPerformed(evt);
- }
- });
+ jLabel16.setText("Playing from folder:");
+ jLabel16.setToolTipText("");
txtBattlefieldIBGMPath.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -789,8 +764,12 @@ public class PreferencesDialog extends javax.swing.JDialog {
}
});
- jLabel16.setText("Playing from folder:");
- jLabel16.setToolTipText("");
+ btnBattlefieldBGMBrowse.setText("Browse...");
+ btnBattlefieldBGMBrowse.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnBattlefieldBGMBrowseActionPerformed(evt);
+ }
+ });
javax.swing.GroupLayout sounds_backgroundMusicLayout = new javax.swing.GroupLayout(sounds_backgroundMusic);
sounds_backgroundMusic.setLayout(sounds_backgroundMusicLayout);
@@ -798,16 +777,14 @@ public class PreferencesDialog extends javax.swing.JDialog {
sounds_backgroundMusicLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(sounds_backgroundMusicLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(sounds_backgroundMusicLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(sounds_backgroundMusicLayout.createSequentialGroup()
- .addComponent(jLabel16)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(txtBattlefieldIBGMPath, javax.swing.GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnBattlefieldBGMBrowse))
- .addGroup(sounds_backgroundMusicLayout.createSequentialGroup()
- .addComponent(cbEnableBattlefieldBGM)
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
+ .addComponent(jLabel16)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(txtBattlefieldIBGMPath, javax.swing.GroupLayout.DEFAULT_SIZE, 297, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnBattlefieldBGMBrowse))
+ .addGroup(sounds_backgroundMusicLayout.createSequentialGroup()
+ .addComponent(cbEnableBattlefieldBGM)
+ .addGap(0, 0, Short.MAX_VALUE))
);
sounds_backgroundMusicLayout.setVerticalGroup(
sounds_backgroundMusicLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -838,7 +815,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
.addComponent(sounds_clips, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(sounds_backgroundMusic, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(262, Short.MAX_VALUE))
+ .addContainerGap(254, Short.MAX_VALUE))
);
sounds_clips.getAccessibleContext().setAccessibleDescription("");
@@ -908,7 +885,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
.addGroup(pnlProxyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(txtPasswordField, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtProxyUserName, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addComponent(txtProxyServer, javax.swing.GroupLayout.DEFAULT_SIZE, 366, Short.MAX_VALUE))
+ .addComponent(txtProxyServer, javax.swing.GroupLayout.DEFAULT_SIZE, 394, Short.MAX_VALUE))
.addContainerGap())
);
pnlProxyLayout.setVerticalGroup(
@@ -978,7 +955,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
.addComponent(cbProxyType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(pnlProxySettings, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(178, Short.MAX_VALUE))
+ .addContainerGap(157, Short.MAX_VALUE))
);
pnlProxySettings.getAccessibleContext().setAccessibleDescription("");
@@ -1184,7 +1161,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
.addComponent(jPanel21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPanel15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
- .addContainerGap(85, Short.MAX_VALUE))
+ .addContainerGap(131, Short.MAX_VALUE))
);
jPanel9Layout.setVerticalGroup(
jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -1223,11 +1200,11 @@ public class PreferencesDialog extends javax.swing.JDialog {
tabAvatars.setLayout(tabAvatarsLayout);
tabAvatarsLayout.setHorizontalGroup(
tabAvatarsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 505, Short.MAX_VALUE)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 557, Short.MAX_VALUE)
);
tabAvatarsLayout.setVerticalGroup(
tabAvatarsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 402, Short.MAX_VALUE)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
);
tabsPanel.addTab("Avatars", tabAvatars);
@@ -1250,7 +1227,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(tabsPanel)
+ .addComponent(tabsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 562, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(saveButton)
@@ -1279,6 +1256,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
save(prefs, dialog.showToolTipsInAnyZone, KEY_SHOW_TOOLTIPS_ANY_ZONE, "true", "false", UPDATE_CACHE_POLICY);
save(prefs, dialog.displayBigCardsInHand, KEY_HAND_USE_BIG_CARDS, "true", "false", UPDATE_CACHE_POLICY);
save(prefs, dialog.nonLandPermanentsInOnePile, KEY_PERMANENTS_IN_ONE_PILE, "true", "false", UPDATE_CACHE_POLICY);
+ save(prefs, dialog.cbGameLogAutoSave, KEY_GAME_LOG_AUTO_SAVE, "true", "false", UPDATE_CACHE_POLICY);
// Phases
save(prefs, dialog.checkBoxUpkeepYou, PhaseManager.UPKEEP_YOU);
@@ -1524,6 +1502,10 @@ public class PreferencesDialog extends javax.swing.JDialog {
}
}//GEN-LAST:event_btnBattlefieldBGMBrowseActionPerformed
+ private void cbGameLogAutoSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbGameLogAutoSaveActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_cbGameLogAutoSaveActionPerformed
+
private void showProxySettings() {
if (cbProxyType.getSelectedItem() == Connection.ProxyType.SOCKS) {
this.pnlProxy.setVisible(true);
@@ -1606,6 +1588,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
load(prefs, dialog.displayBigCardsInHand, KEY_HAND_USE_BIG_CARDS, "true");
load(prefs, dialog.showToolTipsInAnyZone, KEY_SHOW_TOOLTIPS_ANY_ZONE, "true");
load(prefs, dialog.nonLandPermanentsInOnePile, KEY_PERMANENTS_IN_ONE_PILE, "true");
+ load(prefs, dialog.cbGameLogAutoSave, KEY_GAME_LOG_AUTO_SAVE, "true");
}
private static void loadImagesSettings(Preferences prefs) {
@@ -1901,6 +1884,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
private javax.swing.JCheckBox cbCheckForNewImages;
private javax.swing.JCheckBox cbEnableBattlefieldBGM;
private javax.swing.JCheckBox cbEnableSounds;
+ private javax.swing.JCheckBox cbGameLogAutoSave;
private javax.swing.JComboBox cbProxyType;
private javax.swing.JCheckBox cbSaveToZipFiles;
private javax.swing.JCheckBox cbUseDefaultBackground;
@@ -1961,6 +1945,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
private javax.swing.JLabel lblProxyType;
private javax.swing.JLabel lblProxyUserName;
private javax.swing.JPanel main_battlefield;
+ private javax.swing.JPanel main_gamelog;
private javax.swing.JPanel main_hand;
private javax.swing.JCheckBox nonLandPermanentsInOnePile;
private javax.swing.JPanel pnlProxy;