Class sh::ui::qt::QtOpenWithDialog

class sh::ui::qt::QtOpenWithDialog : public sh::ui::qt::QtDialog, public sh::ui::OpenWithDialog

Qt based open with dialog.

Public Functions

QtOpenWithDialog(std::shared_ptr<sh::filesystem::FilesystemNode> node, QList<std::shared_ptr<sh::tools::filetypes::OpenMethod>> openMethods)
~QtOpenWithDialog()
void setProgramList(QList<std::shared_ptr<sh::tools::filetypes::OpenMethod>> openMethods)
std::shared_ptr<sh::tools::filetypes::OpenMethod> chosenMethod() override

Returns the chosen open-method (program for opening the file).

bool rememberForMimetype() override

Returns if the chosen method is checked to be remembered for the same mime-type in the future.

std::shared_ptr<const sh::filesystem::Eurl> rememberForDirectory() override

If it’s checked for the chosen method to be remembered for some subdirectory in the future, it returns the Eurl of this subdirectory, otherwise nullptr.

bool rememberForFile() override

Returns if the chosen method is checked to be remembered for the same file in the future.

std::shared_ptr<sh::filesystem::FilesystemNode> node()

Returns the file node which is later to be opened.

QList<std::shared_ptr<tools::filetypes::OpenMethod>> openMethods()

Returns the open-methods (programs for opening the file) to present for choice.

qint64 dialogId()

Returns the dialog id.

Each instance has an id unique in the complete Shallot process lifetime.

Must be called in main thread.

bool isInited()

Returns if this dialog is initialized.

Must be called in main thread.

bool wasAccepted()

Returns if this dialog was ‘accepted’ by the user (typically by clicking some ‘OK’ button).

Must be called in main thread.

void waitClosed()

Wait until the user closed the dialog in some way.

May be called in any thread.

void close()

Closes the dialog.

Must be called in main thread.

bool wasClosed()

Returns if this dialog was closed.

Must be called in main thread.

DialogManager *manager()

Returns the DialogManager which hosts this dialog.

Private Members

std::shared_ptr<sh::tools::filetypes::OpenMethod> _chosenMethod
std::shared_ptr<const sh::filesystem::Eurl> _rememberfordirectory
QAbstractItemModel *_listmodel
Ui::QtOpenWithDialog *ui

Private Slots

void on_btnCancel_clicked()
void on_btnOk_clicked()
void on_btnSelectOther_clicked()
void on_listView_activated(const QModelIndex &index)
void on_btnAnotherAncestor_clicked()
void on_chkRememberDir_toggled(bool checked)