diff --git a/src/main/java/org/qortal/controller/Controller.java b/src/main/java/org/qortal/controller/Controller.java index 4eff8c93..3d1c85b7 100644 --- a/src/main/java/org/qortal/controller/Controller.java +++ b/src/main/java/org/qortal/controller/Controller.java @@ -854,6 +854,7 @@ public class Controller extends Thread { private void updateSysTray() { if (NTP.getTime() == null) { SysTray.getInstance().setToolTipText(Translator.INSTANCE.translate("SysTray", "SYNCHRONIZING_CLOCK")); + SysTray.getInstance().setTrayIcon(1); return; } @@ -867,14 +868,22 @@ public class Controller extends Thread { String actionText; synchronized (this.syncLock) { - if (this.isMintingPossible) + if (this.isMintingPossible) { actionText = Translator.INSTANCE.translate("SysTray", "MINTING_ENABLED"); - else if (this.isSynchronizing) + SysTray.getInstance().setTrayIcon(2); + } + else if (this.isSynchronizing) { actionText = String.format("%s - %d%%", Translator.INSTANCE.translate("SysTray", "SYNCHRONIZING_BLOCKCHAIN"), this.syncPercent); - else if (numberOfPeers < Settings.getInstance().getMinBlockchainPeers()) + SysTray.getInstance().setTrayIcon(3); + } + else if (numberOfPeers < Settings.getInstance().getMinBlockchainPeers()) { actionText = Translator.INSTANCE.translate("SysTray", "CONNECTING"); - else + SysTray.getInstance().setTrayIcon(3); + } + else { actionText = Translator.INSTANCE.translate("SysTray", "MINTING_DISABLED"); + SysTray.getInstance().setTrayIcon(4); + } } String tooltip = String.format("%s - %d %s - %s %d", actionText, numberOfPeers, connectionsText, heightText, height) + "\n" + String.format("Build version: %s", this.buildVersion); diff --git a/src/main/java/org/qortal/gui/SplashFrame.java b/src/main/java/org/qortal/gui/SplashFrame.java index e0859030..407fc0ee 100644 --- a/src/main/java/org/qortal/gui/SplashFrame.java +++ b/src/main/java/org/qortal/gui/SplashFrame.java @@ -1,15 +1,11 @@ package org.qortal.gui; -import java.awt.BorderLayout; -import java.awt.Image; +import java.awt.*; import java.util.ArrayList; import java.util.List; -import java.awt.Dimension; -import java.awt.Graphics; import java.awt.image.BufferedImage; -import javax.swing.JDialog; -import javax.swing.JPanel; +import javax.swing.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -19,46 +15,53 @@ public class SplashFrame { protected static final Logger LOGGER = LogManager.getLogger(SplashFrame.class); private static SplashFrame instance; - private JDialog splashDialog; + private JFrame splashDialog; @SuppressWarnings("serial") public static class SplashPanel extends JPanel { private BufferedImage image; + private String defaultSplash = "Qlogo_512.png"; + public SplashPanel() { - image = Gui.loadImage("splash.png"); - this.setPreferredSize(new Dimension(image.getWidth(), image.getHeight())); - this.setLayout(new BorderLayout()); + image = Gui.loadImage(defaultSplash); + + setOpaque(false); + setLayout(new GridBagLayout()); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); - g.drawImage(image, 0, 0, null); + g.drawImage(image, 0, 0, getWidth(), getHeight(), this); + } + + @Override + public Dimension getPreferredSize() { + return new Dimension(500, 500); } } private SplashFrame() { - this.splashDialog = new JDialog(); + this.splashDialog = new JFrame(); List icons = new ArrayList<>(); icons.add(Gui.loadImage("icons/icon16.png")); icons.add(Gui.loadImage("icons/icon32.png")); + icons.add(Gui.loadImage("icons/icon32c.png")); + icons.add(Gui.loadImage("icons/icon32m.png")); + icons.add(Gui.loadImage("icons/icon32n.png")); icons.add(Gui.loadImage("icons/icon64.png")); icons.add(Gui.loadImage("icons/icon128.png")); this.splashDialog.setIconImages(icons); - this.splashDialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); - this.splashDialog.setTitle("qortal"); - this.splashDialog.setContentPane(new SplashPanel()); - + this.splashDialog.getContentPane().add(new SplashPanel()); + this.splashDialog.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); this.splashDialog.setUndecorated(true); - this.splashDialog.setModal(false); this.splashDialog.pack(); this.splashDialog.setLocationRelativeTo(null); - this.splashDialog.toFront(); + this.splashDialog.setBackground(new Color(0,0,0,0)); this.splashDialog.setVisible(true); - this.splashDialog.repaint(); } public static SplashFrame getInstance() { diff --git a/src/main/java/org/qortal/gui/SysTray.java b/src/main/java/org/qortal/gui/SysTray.java index c456d6fe..3ff1306d 100644 --- a/src/main/java/org/qortal/gui/SysTray.java +++ b/src/main/java/org/qortal/gui/SysTray.java @@ -289,6 +289,25 @@ public class SysTray { this.trayIcon.setToolTip(text); } + public void setTrayIcon(int iconid) { + if (trayIcon != null) { + switch (iconid) { + case 1: + this.trayIcon.setImage(Gui.loadImage("icons/icon32c.png")); + break; + case 2: + this.trayIcon.setImage(Gui.loadImage("icons/icon32m.png")); + break; + case 3: + this.trayIcon.setImage(Gui.loadImage("icons/icon32n.png")); + break; + case 4: + this.trayIcon.setImage(Gui.loadImage("icons/icon32.png")); + break; + } + } + } + public void dispose() { if (trayIcon != null) SystemTray.getSystemTray().remove(this.trayIcon); diff --git a/src/main/resources/images/Qlogo_512.png b/src/main/resources/images/Qlogo_512.png new file mode 100644 index 00000000..81508bb7 Binary files /dev/null and b/src/main/resources/images/Qlogo_512.png differ diff --git a/src/main/resources/images/icons/icon32.png b/src/main/resources/images/icons/icon32.png index 43a37510..e6503e50 100644 Binary files a/src/main/resources/images/icons/icon32.png and b/src/main/resources/images/icons/icon32.png differ diff --git a/src/main/resources/images/icons/icon32c.png b/src/main/resources/images/icons/icon32c.png new file mode 100644 index 00000000..0d5782ef Binary files /dev/null and b/src/main/resources/images/icons/icon32c.png differ diff --git a/src/main/resources/images/icons/icon32m.png b/src/main/resources/images/icons/icon32m.png new file mode 100644 index 00000000..dab63a62 Binary files /dev/null and b/src/main/resources/images/icons/icon32m.png differ diff --git a/src/main/resources/images/icons/icon32n.png b/src/main/resources/images/icons/icon32n.png new file mode 100644 index 00000000..c160a221 Binary files /dev/null and b/src/main/resources/images/icons/icon32n.png differ diff --git a/src/main/resources/images/splash.png b/src/main/resources/images/splash.png old mode 100755 new mode 100644