Advance Wayland and KDE package bring-up
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
/*
|
||||
This file is part of the KDE libraries
|
||||
SPDX-FileCopyrightText: 2000 David Faure <faure@kde.org>
|
||||
|
||||
SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef OPENWITHDIALOG_H
|
||||
#define OPENWITHDIALOG_H
|
||||
|
||||
#include "kiowidgets_export.h"
|
||||
|
||||
#include <KService>
|
||||
#include <QDialog>
|
||||
#include <QUrl>
|
||||
|
||||
class KOpenWithDialogPrivate;
|
||||
|
||||
/**
|
||||
* @class KOpenWithDialog kopenwithdialog.h <KOpenWithDialog>
|
||||
*
|
||||
* "Open With" dialog box.
|
||||
*
|
||||
* @note To let the user choose an application and run it immediately,
|
||||
* use simpler KRun::displayOpenWithDialog().
|
||||
*
|
||||
* If the Kiosk "shell_access" action is not authorized (see
|
||||
* KAuthorized::authorize()), arbitrary commands are not allowed; instead, the
|
||||
* user must browse to and choose an executable.
|
||||
*
|
||||
* @author David Faure <faure@kde.org>
|
||||
*/
|
||||
class KIOWIDGETS_EXPORT KOpenWithDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
/**
|
||||
* Create a dialog that asks for a application to open a given
|
||||
* URL(s) with.
|
||||
*
|
||||
* @param urls the URLs that should be opened. The list can be empty,
|
||||
* if the dialog is used to choose an application but not for some particular URLs.
|
||||
* @param parent parent widget
|
||||
*/
|
||||
explicit KOpenWithDialog(const QList<QUrl> &urls, QWidget *parent = nullptr);
|
||||
|
||||
/**
|
||||
* Create a dialog that asks for a application to open a given
|
||||
* URL(s) with.
|
||||
*
|
||||
* @param urls is the URL that should be opened
|
||||
* @param text appears as a label on top of the entry box. Leave empty for default text (since 5.20).
|
||||
* @param value is the initial value of the line
|
||||
* @param parent parent widget
|
||||
*/
|
||||
KOpenWithDialog(const QList<QUrl> &urls, const QString &text, const QString &value, QWidget *parent = nullptr);
|
||||
|
||||
/**
|
||||
* Create a dialog to select a service for a given MIME type.
|
||||
* Note that this dialog doesn't apply to URLs.
|
||||
*
|
||||
* @param mimeType the MIME type we want to choose an application for.
|
||||
* @param value is the initial value of the line
|
||||
* @param parent parent widget
|
||||
*/
|
||||
KOpenWithDialog(const QString &mimeType, const QString &value, QWidget *parent = nullptr);
|
||||
|
||||
/**
|
||||
* Create a dialog that asks for a application for opening a given
|
||||
* URL (or more than one), when we already know the MIME type of the URL(s).
|
||||
*
|
||||
* @param urls is the URLs that should be opened
|
||||
* @param mimeType the MIME type of the URL
|
||||
* @param text appears as a label on top of the entry box.
|
||||
* @param value is the initial value of the line
|
||||
* @param parent parent widget
|
||||
* @since 5.71
|
||||
*/
|
||||
KOpenWithDialog(const QList<QUrl> &urls, const QString &mimeType, const QString &text, const QString &value, QWidget *parent = nullptr);
|
||||
|
||||
/**
|
||||
* Create a dialog to select an application
|
||||
* Note that this dialog doesn't apply to URLs.
|
||||
*
|
||||
* @param parent parent widget
|
||||
*/
|
||||
KOpenWithDialog(QWidget *parent = nullptr);
|
||||
|
||||
/**
|
||||
* Destructor
|
||||
*/
|
||||
~KOpenWithDialog() override;
|
||||
|
||||
/**
|
||||
* @return the text the user entered
|
||||
*/
|
||||
QString text() const;
|
||||
/**
|
||||
* Hide the "Do not &close when command exits" Checkbox
|
||||
*/
|
||||
void hideNoCloseOnExit();
|
||||
/**
|
||||
* Hide the "Run in &terminal" Checkbox
|
||||
*/
|
||||
void hideRunInTerminal();
|
||||
/**
|
||||
* @return the chosen service in the application tree
|
||||
* Can be null, if the user typed some text and didn't select a service.
|
||||
*/
|
||||
KService::Ptr service() const;
|
||||
/**
|
||||
* Set whether a new .desktop file should be created if the user selects an
|
||||
* application for which no corresponding .desktop file can be found.
|
||||
*
|
||||
* Regardless of this setting a new .desktop file may still be created if
|
||||
* the user has chosen to remember the file association.
|
||||
*
|
||||
* The default is false: no .desktop files are created.
|
||||
*/
|
||||
void setSaveNewApplications(bool b);
|
||||
|
||||
public Q_SLOTS: // TODO KDE5: move all those slots to the private class!
|
||||
void slotSelected(const QString &_name, const QString &_exec);
|
||||
void slotHighlighted(const QString &_name, const QString &_exec);
|
||||
void slotTextChanged();
|
||||
void slotTerminalToggled(bool);
|
||||
|
||||
protected Q_SLOTS:
|
||||
/**
|
||||
* Reimplemented from QDialog::accept()
|
||||
*/
|
||||
void accept() override;
|
||||
|
||||
private:
|
||||
bool eventFilter(QObject *object, QEvent *event) override;
|
||||
|
||||
friend class KOpenWithDialogPrivate;
|
||||
std::unique_ptr<KOpenWithDialogPrivate> const d;
|
||||
|
||||
Q_DISABLE_COPY(KOpenWithDialog)
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user