#98, added about dialog

pull/1/head
Johan Smith Agudelo Rodriguez 8 years ago
parent 72baaa8809
commit 2e8fe37fd2

@ -6,12 +6,15 @@ set(VERSION 0.5.91)
set(AUTHOR "Michail Vourlakos, Smith Ar")
set(EMAIL "mvourlakos@gmail.com, audoban@openmailbox.org")
set(WEBSITE "https://github.com/psifidotos/Latte-Dock")
set(BUG_ADDRESS "https://github.com/psifidotos/Latte-Dock/issues")
set(QT_MIN_VERSION "5.6.0")
set(KF5_MIN_VERSION "5.26.0")
set(KF5_LOCALE_PREFIX "")
include(Definitions.cmake)
find_package(ECM 1.8.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
@ -23,7 +26,6 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
Plasma PlasmaQuick WindowSystem Declarative
I18n CoreAddons XmlGui DBusAddons IconThemes)
FIND_PROGRAM(GETTEXT_MSGFMT_EXECUTABLE msgfmt)
IF(NOT GETTEXT_MSGFMT_EXECUTABLE)

@ -0,0 +1,15 @@
file(READ TRANSLATORS translators_str)
string(REGEX REPLACE "\n" ";" translators_list "${translators_str}")
list(GET translators_list 0 translators)
list(GET translators_list 1 translators_email)
add_definitions(
-DLATTE_VERSION="${VERSION}"
-DBUG_ADDRESS="${BUG_ADDRESS}"
-DTRANSLATORS="${translators}"
-DTRANSLATORS_EMAIL="${translators_email}"
)

@ -0,0 +1,2 @@
Jan Neuman, Damian Kopeć, Viorel-Cătălin Răpițeanu, Jeff Huang, Smith Ar, Michail Vοurlakos
neumdotja@gmail.com, damikope@gmail.com, rapiteanu.catalin@gmail.com, s8321414@gmail.com, audoban@openmailbox.org, mvourlakos@gmail.com

@ -13,7 +13,6 @@ include(ECMOptionalAddSubdirectory)
include(ECMQtDeclareLoggingCategory)
include(KDEPackageAppTemplates)
set(lattedock-app_SRCS
../liblattedock/dock.cpp
../liblattedock/windowsystem.cpp

@ -62,6 +62,9 @@ DockConfigView::DockConfigView(Plasma::Containment *containment, DockView *dockV
syncSlideEffect();
QTimer::singleShot(200, this, &DockConfigView::syncGeometry);
});
auto *dockCorona = qobject_cast<DockCorona *>(m_dockView->corona());
connections << connect(this, &DockConfigView::aboutApplication, dockCorona, &DockCorona::aboutApplication);
}
DockConfigView::~DockConfigView()

@ -64,6 +64,9 @@ protected:
private slots:
void immutabilityChanged(Plasma::Types::ImmutabilityType type);
signals:
void aboutApplication();
private:
bool m_blockFocusLost;

@ -21,6 +21,7 @@
#include "dockcorona.h"
#include "dockview.h"
#include "packageplugins/shell/dockpackage.h"
#include "../liblattedock/windowsystem.h"
#include <QAction>
#include <QScreen>
@ -34,6 +35,7 @@
#include <KLocalizedString>
#include <KPackage/Package>
#include <KPackage/PackageLoader>
#include <KAboutData>
#include <kactivities/consumer.h>
@ -236,6 +238,20 @@ void DockCorona::closeApplication()
qGuiApp->quit();
}
void DockCorona::aboutApplication()
{
if (aboutDialog) {
aboutDialog->hide();
aboutDialog->deleteLater();
}
aboutDialog = new KAboutApplicationDialog(KAboutData::applicationData());
connect(aboutDialog.data(), &QDialog::finished, aboutDialog.data(), &QObject::deleteLater);
WindowSystem::self().skipTaskBar(*aboutDialog);
aboutDialog->show();
}
QList<Plasma::Types::Location> DockCorona::freeEdges(int screen) const
{
using Plasma::Types;

@ -25,6 +25,8 @@
#include <QObject>
#include <KAboutApplicationDialog>
namespace Plasma {
class Corona;
class Containment;
@ -56,6 +58,7 @@ public:
void addDock(Plasma::Containment *containment);
void aboutApplication();
void closeApplication();
public slots:
@ -84,6 +87,7 @@ private:
QHash<const Plasma::Containment *, DockView *> m_waitingDockViews;
KActivities::Consumer *m_activityConsumer;
QPointer<KAboutApplicationDialog> aboutDialog;
};
}

@ -29,6 +29,7 @@
#include <QDebug>
#include <KLocalizedString>
#include <KAboutData>
//! COLORS
#define CNORMAL "\e[0m"
@ -39,17 +40,17 @@
#define CIRED "\e[1;31m"
#define CRED "\e[0;31m"
static const char version[] = "0.1";
inline void configureAboutData();
int main(int argc, char **argv)
{
QQuickWindow::setDefaultAlphaBuffer(true);
QApplication app(argc, argv);
KLocalizedString::setApplicationDomain("latte-dock");
app.setApplicationVersion(version);
app.setOrganizationDomain(QStringLiteral("latte-dock"));
app.setApplicationName(QStringLiteral("lattedock"));
app.setWindowIcon(QIcon::fromTheme(QStringLiteral("latte-dock")));
configureAboutData();
//! set pattern for debug messages
//! [%{type}] [%{function}:%{line}] - %{message} [%{backtrace}]
qSetMessagePattern(QStringLiteral(
@ -61,6 +62,38 @@ int main(int argc, char **argv)
CIRED "%{if-fatal}\n%{backtrace depth=8 separator=\"\n\"}%{endif}"
"%{if-critical}\n%{backtrace depth=8 separator=\"\n\"}%{endif}" CNORMAL));
// qputenv("QT_QUICK_CONTROLS_1_STYLE", "Desktop");
Latte::DockCorona corona;
return app.exec();
}
inline void configureAboutData()
{
KAboutData about(QStringLiteral("lattedock")
, QStringLiteral("Latte Dock")
, QStringLiteral(LATTE_VERSION)
, i18n("Dock panel")
, KAboutLicense::GPL_V2
, QStringLiteral("\251 2016-2017 Michail Vourlakos, Smith AR"));
about.setBugAddress(BUG_ADDRESS);
about.setProgramLogo(QIcon::fromTheme(QStringLiteral("latte-dock")));
about.setDesktopFileName(QStringLiteral("latte-dock"));
// Authors
about.addAuthor(QStringLiteral("Michail Vourlakos"), QString(), QStringLiteral("mvourlakos@gmail.com"));
about.addAuthor(QStringLiteral("Smith AR"), QString(), QStringLiteral("audoban@openmailbox.org"));
// Credits
about.addCredit(QStringLiteral("varlesh"), i18n("Logo and Icons")
, QString(), QStringLiteral("https://github.com/varlesh"));
about.addCredit(QStringLiteral("JenaPlinsky"), i18n("Many bug reports")
, QString(), QStringLiteral("https://github.com/JenaPlinsky"));
about.addCredit(QStringLiteral("elav"), i18n("Reviews for Latte Dock, CandilDock and NowDock")
, QString(), QStringLiteral("https://github.com/elav"));
// Translators
about.setTranslator(QStringLiteral(TRANSLATORS), QStringLiteral(TRANSLATORS_EMAIL));
KAboutData::setApplicationData(about);
}

@ -51,6 +51,15 @@ bool WindowSystem::compositingActive() const
return m_compositing;
}
void WindowSystem::skipTaskBar(const QDialog &dialog) const
{
if (KWindowSystem::isPlatformWayland()) {
//! TODO: Wayland skip task bar
} else {
KWindowSystem::setState(dialog.winId(), NET::SkipTaskbar);
}
}
void WindowSystem::compositingChangedProxy(bool enable)
{
if (m_compositing == enable)

@ -22,6 +22,7 @@
#define WINDOWSYSTEM_H
#include <QObject>
#include <QDialog>
namespace Latte {
@ -37,6 +38,7 @@ public:
static WindowSystem &self();
bool compositingActive() const;
void skipTaskBar(const QDialog &dialog) const;
signals:
void compositingChanged();

@ -1,6 +1,3 @@
file(COPY "contents" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/release)
file(COPY "defaults" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/release)
#update the version number in the configuration window
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/release/contents/configuration/LatteDockConfiguration.qml.cmake)
configure_file(metadata.desktop.cmake release/metadata.desktop)
configure_file(contents/configuration/LatteDockConfiguration.qml.cmake release/contents/configuration/LatteDockConfiguration.qml)

@ -103,41 +103,64 @@ PlasmaCore.FrameSvgItem {
spacing: 0
KQuickControlAddons.QIconItem {
id: logo
Item {
Layout.alignment: Qt.AlignLeft | Qt.AlignHCenter
Layout.fillWidth: false
Layout.preferredWidth: width
Layout.preferredHeight: height
width: logo.width + latteTxt.width + units.smallSpacing
height: logo.height
PlasmaCore.IconItem {
id: logo
width: 1.5 * latteTxt.font.pixelSize
height: width
icon: "latte-dock"
source: "latte-dock"
animated: true
usesPlasmaTheme: false
active: aboutMouseArea.containsMouse
}
PlasmaComponents.Label {
id: latteTxt
Layout.alignment: Qt.AlignLeft | Qt.AlignHCenter
Layout.fillWidth: false
height: logo.height
verticalAlignment: Text.AlignVCenter
text: "atte"
font.family: tangerineFont.name
font.pointSize: 2 * theme.defaultFont.pointSize
font.italic: true
anchors.left: logo.right
}
MouseArea {
id: aboutMouseArea
acceptedButtons: Qt.LeftButton
anchors.fill: parent
hoverEnabled: true
onClicked: dockConfig.aboutApplication()
}
}
PlasmaComponents.Label {
id: verLabel
Layout.fillWidth: true
Layout.rightMargin: units.smallSpacing
Layout.alignment: Qt.AlignRight | Qt.AlignBottom
font.family: "monospace"
font.pointSize: 0.8 * theme.defaultFont.pointSize
font.bold: true
opacity: 0.4
Layout.rightMargin: units.smallSpacing
Layout.alignment: Qt.AlignRight | Qt.AlignBottom
text: i18n("ver:") + Qt.application.version
horizontalAlignment: Text.AlignRight
Layout.fillWidth: true
text: i18n("ver:") + "@VERSION@"
}
}
Loading…
Cancel
Save