2 Commits

Author SHA1 Message Date
23ef5f28ff Update client version to 1.4.3
Update version number in configure.ac, build_msvc config, clientversion.cpp,
and all man pages from 1.4.2 to 1.4.3
2025-11-19 08:18:17 +01:00
NotRin7
91975bb8bb gui: Add Dark Mode support with toggle switch
- Added dark.qss stylesheet for dark theme
- Implemented toggleTheme() slot in PalladiumGUI
- Added 'Dark Mode' checkbox to Settings menu
- Theme preference is saved in QSettings (darkModeEnabled)
- Updated palladium.qrc to include style resources
2025-11-18 17:34:01 +01:00
12 changed files with 219 additions and 21 deletions

View File

@@ -18,10 +18,10 @@
#define CLIENT_VERSION_MAJOR 1
/* Minor version */
#define CLIENT_VERSION_MINOR 5
#define CLIENT_VERSION_MINOR 4
/* Build revision */
#define CLIENT_VERSION_REVISION 2
#define CLIENT_VERSION_REVISION 3
/* Copyright holder(s) before %s replacement */
#define COPYRIGHT_HOLDERS "The %s developers"

View File

@@ -1,7 +1,7 @@
AC_PREREQ([2.69])
define(_CLIENT_VERSION_MAJOR, 1)
define(_CLIENT_VERSION_MINOR, 4)
define(_CLIENT_VERSION_REVISION, 2)
define(_CLIENT_VERSION_REVISION, 3)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_RC, 0)
define(_CLIENT_VERSION_IS_RELEASE, true)

View File

@@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH PALLADIUM-CLI "1" "April 2024" "palladium-cli v1.4.2" "User Commands"
.TH PALLADIUM-CLI "1" "April 2024" "palladium-cli v1.4.3" "User Commands"
.SH NAME
palladium-cli \- manual page for palladium-cli v1.4.2
palladium-cli \\- manual page for palladium-cli v1.4.3
.SH SYNOPSIS
.B palladium-cli
[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR] \fI\,Send command to Palladium Core\/\fR
@@ -15,7 +15,7 @@ palladium-cli \- manual page for palladium-cli v1.4.2
.B palladium-cli
[\fI\,options\/\fR] \fI\,help <command> Get help for a command\/\fR
.SH DESCRIPTION
Palladium Core RPC client version v1.4.2
Palladium Core RPC client version v1.4.3
.SH OPTIONS
.HP
\-?

View File

@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH PALLADIUM-QT "1" "April 2024" "palladium-qt v1.4.2" "User Commands"
.TH PALLADIUM-QT "1" "April 2024" "palladium-qt v1.4.3" "User Commands"
.SH NAME
palladium-qt \- manual page for palladium-qt v1.4.2
palladium-qt \\- manual page for palladium-qt v1.4.3
.SH SYNOPSIS
.B palladium-qt
[\fI\,command-line options\/\fR]
.SH DESCRIPTION
Palladium Core version v1.4.2
Palladium Core version v1.4.3
.SH OPTIONS
.HP
\-?

View File

@@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH PALLADIUM-TX "1" "April 2024" "palladium-tx v1.4.2" "User Commands"
.TH PALLADIUM-TX "1" "April 2024" "palladium-tx v1.4.3" "User Commands"
.SH NAME
palladium-tx \- manual page for palladium-tx v1.4.2
palladium-tx \\- manual page for palladium-tx v1.4.3
.SH SYNOPSIS
.B palladium-tx
[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded palladium transaction\/\fR
@@ -9,7 +9,7 @@ palladium-tx \- manual page for palladium-tx v1.4.2
.B palladium-tx
[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded palladium transaction\/\fR
.SH DESCRIPTION
Palladium Core palladium\-tx utility version v1.4.2
Palladium Core palladium\-tx utility version v1.4.3
.SH OPTIONS
.HP
\-?

View File

@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH PALLADIUM-WALLET "1" "April 2024" "palladium-wallet v1.4.2" "User Commands"
.TH PALLADIUM-WALLET "1" "April 2024" "palladium-wallet v1.4.3" "User Commands"
.SH NAME
palladium-wallet \- manual page for palladium-wallet v1.4.2
palladium-wallet \\- manual page for palladium-wallet v1.4.3
.SH DESCRIPTION
Palladium Core palladium\-wallet version v1.4.2
Palladium Core palladium\-wallet version v1.4.3
.PP
palladium\-wallet is an offline tool for creating and interacting with Palladium Core wallet files.
By default palladium\-wallet will act on wallets in the default mainnet wallet directory in the datadir.

View File

@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH PALLADIUMD "1" "April 2024" "palladiumd v1.4.2" "User Commands"
.TH PALLADIUMD "1" "April 2024" "palladiumd v1.4.3" "User Commands"
.SH NAME
palladiumd \- manual page for palladiumd v1.4.2
palladiumd \\- manual page for palladiumd v1.4.3
.SH SYNOPSIS
.B palladiumd
[\fI\,options\/\fR] \fI\,Start Palladium Core\/\fR
.SH DESCRIPTION
Palladium Core version v1.4.2
Palladium Core version v1.4.3
.SH OPTIONS
.HP
\-?

View File

@@ -81,8 +81,8 @@ std::string FormatFullVersion()
{
// Display a simplified semantic version: omit trailing ".0" and git suffix
// by reusing FormatVersion on the aggregated CLIENT_VERSION.
// This yields e.g. "v1.4.2" when CLIENT_VERSION_BUILD == 0,
// or "v1.4.2.1" if a non-zero build number is used.
// This yields e.g. "v1.4.3" when CLIENT_VERSION_BUILD == 0,
// or "v1.4.3.1" if a non-zero build number is used.
return std::string("v") + FormatVersion(CLIENT_VERSION);
}

View File

@@ -83,4 +83,8 @@
<file alias="spinner-034">res/movies/spinner-034.png</file>
<file alias="spinner-035">res/movies/spinner-035.png</file>
</qresource>
<qresource prefix="/">
<file>res/styles/dark.qss</file>
</qresource>
</RCC>

View File

@@ -61,6 +61,8 @@
#include <QVBoxLayout>
#include <QWindow>
#include <QFile>
#include <QTextStream>
const std::string PalladiumGUI::DEFAULT_UIPLATFORM =
#if defined(Q_OS_MAC)
@@ -79,7 +81,25 @@ PalladiumGUI::PalladiumGUI(interfaces::Node& node, const PlatformStyle *_platfor
platformStyle(_platformStyle),
m_network_style(networkStyle)
{
// --- DARK MODE AUTO-LOAD ---
QSettings settings;
bool isDark = settings.value("darkModeEnabled", false).toBool();
if (isDark) {
// Stylesheet laden
QFile f(":/res/styles/dark.qss");
if (f.open(QFile::ReadOnly | QFile::Text)) {
QTextStream ts(&f);
qApp->setStyleSheet(ts.readAll());
f.close();
}
// Wichtig: Den Haken im Menü setzen!
if(themeAction) {
themeAction->setChecked(true);
}
}
//QSettings settings;
if (!restoreGeometry(settings.value("MainWindowGeometry").toByteArray())) {
// Restore failed (perhaps missing setting), center the window
move(QGuiApplication::primaryScreen()->availableGeometry().center() - frameGeometry().center());
@@ -414,6 +434,10 @@ void PalladiumGUI::createActions()
connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_C), this), &QShortcut::activated, this, &PalladiumGUI::showDebugWindowActivateConsole);
connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_D), this), &QShortcut::activated, this, &PalladiumGUI::showDebugWindow);
themeAction = new QAction(tr("&Dark Mode"), this);
themeAction->setCheckable(true);
connect(themeAction, SIGNAL(triggered()), this, SLOT(toggleTheme()));
}
void PalladiumGUI::createMenuBar()
@@ -506,6 +530,8 @@ void PalladiumGUI::createMenuBar()
help->addSeparator();
help->addAction(aboutAction);
help->addAction(aboutQtAction);
settings->addAction(themeAction);
}
void PalladiumGUI::createToolBars()
@@ -1463,3 +1489,23 @@ void UnitDisplayStatusBarControl::onMenuSelection(QAction* action)
optionsModel->setDisplayUnit(action->data());
}
}
void PalladiumGUI::toggleTheme()
{
QSettings settings;
if (themeAction->isChecked()) {
// 1. Dark Mode laden
QFile f(":/res/styles/dark.qss");
if (f.open(QFile::ReadOnly | QFile::Text)) {
QTextStream ts(&f);
qApp->setStyleSheet(ts.readAll());
f.close();
}
// 2. Speichern, dass er an ist
settings.setValue("darkModeEnabled", true);
} else {
// 1. Standard Theme (Weiß)
qApp->setStyleSheet("");
// 2. Speichern, dass er aus ist
settings.setValue("darkModeEnabled", false);
}
}

View File

@@ -153,7 +153,7 @@ private:
QAction* m_close_wallet_action{nullptr};
QAction* m_wallet_selector_label_action = nullptr;
QAction* m_wallet_selector_action = nullptr;
QAction *themeAction;
QLabel *m_wallet_selector_label = nullptr;
QComboBox* m_wallet_selector = nullptr;
@@ -308,6 +308,8 @@ public Q_SLOTS:
void setTrayIconVisible(bool);
void showModalOverlay();
void toggleTheme();
};
class UnitDisplayStatusBarControl : public QLabel

146
src/qt/res/styles/dark.qss Normal file
View File

@@ -0,0 +1,146 @@
/* =======================================================
PALLADIUM CORE DARK THEME (dark.qss)
======================================================= */
/* --- GRUNDLAGEN --- */
QWidget {
background-color: #2D2D2D;
color: #E0E0E0;
selection-background-color: #007BFF;
selection-color: #FFFFFF;
outline: none;
}
/* --- MENÜLEISTE (Oben: File, Settings...) --- */
QMenuBar {
background-color: #2D2D2D;
color: #E0E0E0;
border-bottom: 1px solid #3A3A3A;
}
QMenuBar::item {
background-color: transparent;
padding: 6px 10px;
}
QMenuBar::item:selected {
background-color: #3A3A3A;
}
QMenu {
background-color: #2D2D2D;
border: 1px solid #555;
}
QMenu::item {
padding: 5px 20px;
}
QMenu::item:selected {
background-color: #007BFF;
color: white;
}
/* --- TOOLBAR (Die Icons oben) --- */
/* Wir machen sie etwas heller, damit schwarze Icons sichtbar bleiben */
QToolBar {
background-color: #3D3D3D;
border-bottom: 1px solid #3A3A3A;
padding: 2px;
spacing: 5px;
}
QToolButton {
background-color: transparent;
border: 1px solid transparent;
border-radius: 4px;
padding: 4px;
color: #E0E0E0;
}
QToolButton:hover {
background-color: #4D4D4D;
border: 1px solid #555;
}
QToolButton:checked {
background-color: #007BFF;
color: white;
}
/* --- TABS (Overview, Send, Receive) --- */
QTabWidget::pane {
border: 1px solid #3A3A3A;
}
QTabBar::tab {
background: #1E1E1E;
color: #AAAAAA;
padding: 8px 20px;
border: 1px solid #3A3A3A;
border-bottom: none;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
margin-right: 2px;
}
QTabBar::tab:selected {
background: #2D2D2D; /* Gleiche Farbe wie Hintergrund */
color: #FFFFFF;
border-bottom: 1px solid #2D2D2D; /* "Verbindet" den Tab mit dem Inhalt */
font-weight: bold;
}
/* --- EINGABEFELDER --- */
QLineEdit, QTextEdit, QPlainTextEdit, QSpinBox, QDoubleSpinBox {
background-color: #1E1E1E;
color: #FFFFFF;
border: 1px solid #3A3A3A;
border-radius: 3px;
padding: 4px;
}
QLineEdit:focus {
border: 1px solid #007BFF;
}
/* --- LISTEN & TABELLEN (Transaktionen) --- */
QTableView, QListView, QTreeWidget {
background-color: #1E1E1E;
alternate-background-color: #252525;
color: #E0E0E0;
gridline-color: #333;
border: 1px solid #3A3A3A;
}
QHeaderView::section {
background-color: #333;
color: #E0E0E0;
padding: 4px;
border: 1px solid #444;
}
/* --- BUTTONS --- */
QPushButton {
background-color: #444;
border: 1px solid #555;
border-radius: 4px;
padding: 5px 15px;
color: white;
}
QPushButton:hover {
background-color: #555;
}
QPushButton:pressed {
background-color: #007BFF;
border-color: #007BFF;
}
/* --- STATUSBAR (Unten) --- */
QStatusBar {
background-color: #2D2D2D;
color: #888;
border-top: 1px solid #3A3A3A;
}