diff --git a/entryprovider.cpp b/entryprovider.cpp index 5387d43..1896f32 100644 --- a/entryprovider.cpp +++ b/entryprovider.cpp @@ -223,6 +223,7 @@ EntryConfig EntryProvider::readqsrunFile(const QString &path) } result.col = map["col"].toInt(); result.row = map["row"].toInt(); + result.isTerminalCommand = map["terminal"] == "true"; return result; } diff --git a/entrypushbutton.cpp b/entrypushbutton.cpp index 2f44b51..c2d29bf 100644 --- a/entrypushbutton.cpp +++ b/entrypushbutton.cpp @@ -23,7 +23,15 @@ EntryPushButton::EntryPushButton(const EntryConfig &config) : QPushButton() { this->setText(config.name); this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - QIcon icon = resolveIcon(config.iconPath); + QIcon icon; + if(config.isTerminalCommand && config.iconPath.isEmpty()) + { + icon = resolveIcon("utilities-terminal"); + } + else + { + icon = resolveIcon(config.iconPath); + } this->setIcon(icon); if(!icon.availableSizes().isEmpty()) { diff --git a/window.cpp b/window.cpp index d06ae95..689667a 100644 --- a/window.cpp +++ b/window.cpp @@ -123,7 +123,7 @@ void Window::executeConfig(const EntryConfig &config) if(config.isTerminalCommand) { QString cmd = settingsProvider->getTerminalCommand(); - cmd.replace("%c", config.command); + cmd.replace("%c", config.command + " " + config.arguments.join(' ')); QProcess::startDetached(cmd); } else