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
63 void recentDocumentClicked(QModelIndex index);
64 void slotRecentDocContextMenuRequest(const QPoint &pos);
65
69 void slotRecentFilesModelIsUpToDate();
70
71 void slotScrollerStateChanged(QScroller::State state){ KisKineticScroller::updateCursor(this, state); }
72
73#ifdef ENABLE_UPDATERS
74 void slotRunVersionUpdate();
75 void slotToggleUpdateChecks(bool state);
76#endif
77
78#ifdef Q_OS_ANDROID
79 void slotUpdateDonationState();
80#endif
81
82 bool isDevelopmentBuild();
83
84 QFont largerFont();
85
86protected:
87
88 // QWidget overrides
89 void dragEnterEvent(QDragEnterEvent * event) override;
90 void dropEvent(QDropEvent * event) override;
91 void dragMoveEvent(QDragMoveEvent * event) override;
92 void dragLeaveEvent(QDragLeaveEvent * event) override;
93 void changeEvent(QEvent *event) override;
94
95 bool eventFilter(QObject *watched, QEvent *event) override;
96
97
98private:
99 void setupNewsLangSelection(QMenu *newsOptionMenu);
100 void showDevVersionHighlight();
101
102#ifdef ENABLE_UPDATERS
103 void updateVersionUpdaterFrame();
104#endif
105
106#ifdef Q_OS_ANDROID
107 void initDonations();
108#endif
109
110 KisMainWindow *m_mainWindow {nullptr};
111
116 const QString analyticsString = "pk_campaign=startup-sceen&pk_kwd=";
117
118
119 // keeping track of link colors with theme change
120 QColor textColor;
124
125#ifdef ENABLE_UPDATERS
126 QScopedPointer<KisUpdaterBase> m_versionUpdater;
127 KisUpdaterStatus m_updaterStatus;
128#endif
129 bool m_networkIsAllowed {false};
130
131 QScopedPointer<RecentItemDelegate> recentItemDelegate;
132
133};
134
135#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)