You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
latte-dock/app/view/settings/viewsettingsfactory.cpp

84 lines
1.8 KiB
C++

/*
SPDX-FileCopyrightText: 2020 Michail Vourlakos <mvourlakos@gmail.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "viewsettingsfactory.h"
// local
#include "primaryconfigview.h"
#include "widgetexplorerview.h"
#include "../view.h"
// Plasma
#include <Plasma/Containment>
namespace Latte {
ViewSettingsFactory::ViewSettingsFactory(QObject *parent)
: QObject(parent)
{
}
ViewSettingsFactory::~ViewSettingsFactory()
{
if (m_primaryConfigView) {
delete m_primaryConfigView;
}
}
bool ViewSettingsFactory::hasOrphanSettings() const
{
return m_primaryConfigView && !m_primaryConfigView->parentView();
}
bool ViewSettingsFactory::hasVisibleSettings() const
{
return m_primaryConfigView && m_primaryConfigView->isVisible();
}
Plasma::Containment *ViewSettingsFactory::lastContainment()
{
return m_lastContainment;
}
ViewPart::PrimaryConfigView *ViewSettingsFactory::primaryConfigView()
{
return m_primaryConfigView;
}
ViewPart::PrimaryConfigView *ViewSettingsFactory::primaryConfigView(Latte::View *view)
{
if (!m_primaryConfigView) {
//!set user configuring early enough in order to give config windows time to be created properly
view->containment()->setUserConfiguring(true);
m_primaryConfigView = new ViewPart::PrimaryConfigView(view);
} else {
auto previousView = m_primaryConfigView->parentView();
if (previousView) {
previousView->releaseConfigView();
}
m_primaryConfigView->setParentView(view);
}
if (view) {
m_lastContainment = view->containment();
}
return m_primaryConfigView;
}
ViewPart::WidgetExplorerView *ViewSettingsFactory::widgetExplorerView(Latte::View *view)
{
//! it is deleted on hiding
auto widgetExplorerView = new ViewPart::WidgetExplorerView(view);
return widgetExplorerView;
}
}