Krita Source Code Documentation
Loading...
Searching...
No Matches
KisWelcomePageWidget.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2018 Scott Petrovic <scottpetrovic@gmail.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#ifndef KISWELCOMEPAGEWIDGET_H
8#define KISWELCOMEPAGEWIDGET_H
9
10#include "kritaui_export.h"
11#include "KisViewManager.h"
12#include <KisUpdaterBase.h>
13#include <KisKineticScroller.h>
14
15#include <QAction>
16#include <QWidget>
17#include "ui_KisWelcomePage.h"
18#include <QStandardItemModel>
19#include <QScopedPointer>
20#include <QFont>
21
22#include "config-updaters.h"
24class KisMainWindow;
25
26// Custom QAction to bridge a QLabel::linkActivated signal to a QAction::setChecked signal
27class ShowNewsAction : public QAction
28{
29 Q_OBJECT
30public:
31 using QAction::QAction;
32private Q_SLOTS:
33 void enableFromLink(QString unused_url);
34};
35
37class KRITAUI_EXPORT KisWelcomePageWidget : public QWidget, public Ui::KisWelcomePage
38{
39 Q_OBJECT
40
41 public:
42 explicit KisWelcomePageWidget(QWidget *parent);
43 ~KisWelcomePageWidget() override;
44
45 void setMainWindow(KisMainWindow* m_mainWindow);
46
47public Q_SLOTS:
50 void showDropAreaIndicator(bool show);
51
52 void slotUpdateThemeColors();
53
54#ifdef ENABLE_UPDATERS
55 void slotSetUpdateStatus(KisUpdaterStatus updateStatus);
56 void slotShowUpdaterErrorDetails();
57#endif
58
59private Q_SLOTS:
60 void slotNewFileClicked();
61 void slotOpenFileClicked();
62 void slotPaste();
63
64 void recentDocumentClicked(QModelIndex index);
65 void slotRecentDocContextMenuRequest(const QPoint &pos);
66
70 void slotRecentFilesModelIsUpToDate();
71
72 void slotScrollerStateChanged(QScroller::State state){ KisKineticScroller::updateCursor(this, state); }
73
74#ifdef ENABLE_UPDATERS
75 void slotRunVersionUpdate();
76 void slotToggleUpdateChecks(bool state);
77#endif
78
79#ifdef Q_OS_ANDROID
80 void slotUpdateDonationState();
81#endif
82
83 bool isDevelopmentBuild();
84
85 QFont largerFont();
86
87protected:
88
89 // QWidget overrides
90 void dragEnterEvent(QDragEnterEvent * event) override;
91 void dropEvent(QDropEvent * event) override;
92 void dragMoveEvent(QDragMoveEvent * event) override;
93 void dragLeaveEvent(QDragLeaveEvent * event) override;
94 void changeEvent(QEvent *event) override;
95
96 bool eventFilter(QObject *watched, QEvent *event) override;
97
98
99private:
100 void setupNewsLangSelection(QMenu *newsOptionMenu);
101 void showDevVersionHighlight();
102
103#ifdef ENABLE_UPDATERS
104 void updateVersionUpdaterFrame();
105#endif
106
107#ifdef Q_OS_ANDROID
108 void initDonations();
109#endif
110
111 KisMainWindow *m_mainWindow {nullptr};
112
117 const QString analyticsString = "pk_campaign=startup-sceen&pk_kwd=";
118
119
120 // keeping track of link colors with theme change
121 QColor textColor;
125
126#ifdef ENABLE_UPDATERS
127 QScopedPointer<KisUpdaterBase> m_versionUpdater;
128 KisUpdaterStatus m_updaterStatus;
129#endif
130 bool m_networkIsAllowed {false};
131
132 QScopedPointer<RecentItemDelegate> recentItemDelegate;
133
134};
135
136#endif // KISWELCOMEPAGEWIDGET_H
Main window for Krita.
A widget for displaying if no documents are open. This will display in the MDI area.
void slotScrollerStateChanged(QScroller::State state)
QScopedPointer< RecentItemDelegate > recentItemDelegate
void enableFromLink(QString unused_url)
KRITAWIDGETUTILS_EXPORT void updateCursor(QWidget *source, QScroller::State state)