Members of the KDE Community are recommended to subscribe to the kde-community mailing list at https://mail.kde.org/mailman/listinfo/kde-community to allow them to participate in important discussions and receive other important announcements

Commit 832aa1b7 authored by Kai Uwe Broulik's avatar Kai Uwe Broulik 🍇

[Baloo Widgets] Add KPropertiesDialog Plugin with file metadata

This allows to view metadata (such as image dimensions, audio file album and artist information, etc) from the properties dialog.
Through this, tagging and rating functionality is also somewhat more accessible.

FEATURE: 384194

Differential Revision: https://phabricator.kde.org/D4614
parent caf15511
#add_subdirectory(naturalqueryparser)
add_definitions(-DTRANSLATION_DOMAIN=\"baloowidgets5\")
add_subdirectory(filepropertiesplugin)
set(widgets_SRCS
kblocklayout.cpp
tagwidget.cpp
......
set(baloofilepropertiesplugin_PART_SRCS baloofilepropertiesplugin.cpp)
add_library(baloofilepropertiesplugin MODULE ${baloofilepropertiesplugin_PART_SRCS})
target_link_libraries(baloofilepropertiesplugin
KF5::I18n
KF5::KIOWidgets
KF5::BalooWidgets
)
install(TARGETS baloofilepropertiesplugin DESTINATION ${PLUGIN_INSTALL_DIR})
install(FILES baloofilepropertiesplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR})
/*
* This file is part of the KDE Baloo Project
* Copyright (C) 2017 Kai Uwe Broulik <kde@privat.broulik.de>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) version 3, or any
* later version accepted by the membership of KDE e.V. (or its
* successor approved by the membership of KDE e.V.), which shall
* act as a proxy defined in Section 6 of version 3 of the license.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "baloofilepropertiesplugin.h"
#include <QFrame>
#include <QVBoxLayout>
#include <QScrollArea>
#include <KLocalizedString>
#include <KPluginFactory>
#include <KPluginLoader>
#include <KRun>
#include "filemetadatawidget.h"
K_PLUGIN_FACTORY(BalooFilePropertiesPluginFactory, registerPlugin<BalooFilePropertiesPlugin>();)
K_EXPORT_PLUGIN(BalooFilePropertiesPlugin("fileshare_propsdlgplugin"))
BalooFilePropertiesPlugin::BalooFilePropertiesPlugin(QObject *parent, const QList<QVariant> &args)
: KPropertiesDialogPlugin(qobject_cast<KPropertiesDialog *>(parent))
{
Q_UNUSED(args);
QWidget *widgetContainer = new QWidget();
QVBoxLayout *containerLayout = new QVBoxLayout(widgetContainer);
containerLayout->setContentsMargins(0, 0, 0, 0);
containerLayout->setSpacing(0);
auto *metaDataWidget = new Baloo::FileMetaDataWidget();
metaDataWidget->setItems(properties->items());
connect(metaDataWidget, &Baloo::FileMetaDataWidget::urlActivated, this, [this](const QUrl &url) {
new KRun(url, properties);
});
containerLayout->addWidget(metaDataWidget);
containerLayout->addStretch(1);
QScrollArea *metaDataArea = new QScrollArea();
metaDataArea->setWidget(widgetContainer);
metaDataArea->setWidgetResizable(true);
metaDataArea->setFrameShape(QFrame::NoFrame);
properties->addPage(metaDataArea, i18nc("Tab page with file meta data", "&Details"));
}
BalooFilePropertiesPlugin::~BalooFilePropertiesPlugin() = default;
#include "baloofilepropertiesplugin.moc"
[Desktop Entry]
Type=Service
Icon=baloo
Name=File Meta Data Properties Page
Comment=Properties page showing meta data of files, such as image dimensions, artist information, and others
X-KDE-Library=baloofilepropertiesplugin
X-KDE-Protocol=file
X-KDE-ServiceTypes=KPropertiesDialog/Plugin
MimeType=inode/directory;application/octet-stream
/*
* This file is part of the KDE Baloo Project
* Copyright (C) 2017 Kai Uwe Broulik <kde@privat.broulik.de>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) version 3, or any
* later version accepted by the membership of KDE e.V. (or its
* successor approved by the membership of KDE e.V.), which shall
* act as a proxy defined in Section 6 of version 3 of the license.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
#pragma once
#include <KPropertiesDialog>
class BalooFilePropertiesPlugin : public KPropertiesDialogPlugin
{
Q_OBJECT
public:
BalooFilePropertiesPlugin(QObject *parent, const QList<QVariant> &args);
~BalooFilePropertiesPlugin() override;
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment