Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,7 @@ Rectangle {
width: 200

color: "black"
allowAlpha: true

onNewColorSelected: function(newColor) {
color = newColor
Expand Down
1 change: 1 addition & 0 deletions src/appshell/qml/DevTools/Preferences/SettingsPage.qml
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ ColumnLayout {

anchors.fill: parent
color: val
allowAlpha: true

onNewColorSelected: function(newColor) {
changed(newColor)
Expand Down
4 changes: 2 additions & 2 deletions src/framework/autobot/internal/autobotinteractive.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,9 @@ io::paths_t AutobotInteractive::selectMultipleDirectories(const std::string& tit
return m_real->selectMultipleDirectories(title, dir, initialDirectories);
}

async::Promise<Color> AutobotInteractive::selectColor(const Color& color, const std::string& title)
async::Promise<Color> AutobotInteractive::selectColor(const Color& color, const std::string& title, bool allowAlpha)
{
return m_real->selectColor(color, title);
return m_real->selectColor(color, title, allowAlpha);
}

bool AutobotInteractive::isSelectColorOpened() const
Expand Down
24 changes: 11 additions & 13 deletions src/framework/autobot/internal/autobotinteractive.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef MUSE_AUTOBOT_AUTOBOTINTERACTIVE_H
#define MUSE_AUTOBOT_AUTOBOTINTERACTIVE_H

#pragma once

#include <memory>

Expand All @@ -36,37 +36,37 @@ class AutobotInteractive : public IInteractive
std::shared_ptr<IInteractive> realInteractive() const;

Result questionSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons, int defBtn = int(Button::NoButton),
const Options& options = {}, const std::string& dialogTitle = "") override;
const Options& options = {}, const std::string& dialogTitle = {}) override;

async::Promise<Result> question(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons,
int defBtn = int(Button::NoButton), const Options& options = {},
const std::string& dialogTitle = "") override;
const std::string& dialogTitle = {}) override;

ButtonData buttonData(Button b) const override;

// info
Result infoSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons, int defBtn = int(Button::NoButton),
const Options& options = {}, const std::string& dialogTitle = "") override;
const Options& options = {}, const std::string& dialogTitle = {}) override;

async::Promise<Result> info(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = {},
const std::string& dialogTitle = "") override;
const std::string& dialogTitle = {}) override;

// warning
Result warningSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons, int defBtn = int(Button::NoButton),
const Options& options = {}, const std::string& dialogTitle = "") override;
const Options& options = {}, const std::string& dialogTitle = {}) override;

async::Promise<Result> warning(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = {},
const std::string& dialogTitle = "") override;
const std::string& dialogTitle = {}) override;

// error
Result errorSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons, int defBtn = int(Button::NoButton),
const Options& options = {}, const std::string& dialogTitle = "") override;
const Options& options = {}, const std::string& dialogTitle = {}) override;

async::Promise<Result> error(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = {},
const std::string& dialogTitle = "") override;
const std::string& dialogTitle = {}) override;

// progress
void showProgress(const std::string& title, Progress progress) override;
Expand All @@ -84,7 +84,7 @@ class AutobotInteractive : public IInteractive
io::paths_t selectMultipleDirectories(const std::string& title, const io::path_t& dir, const io::paths_t& initialDirectories) override;

// color
async::Promise<Color> selectColor(const Color& color = Color::WHITE, const std::string& title = "") override;
async::Promise<Color> selectColor(const Color& color = Color::WHITE, const std::string& title = {}, bool allowAlpha = false) override;
bool isSelectColorOpened() const override;

// custom
Expand Down Expand Up @@ -125,5 +125,3 @@ class AutobotInteractive : public IInteractive

using AutobotInteractivePtr = std::shared_ptr<AutobotInteractive>;
}

#endif // MUSE_AUTOBOT_AUTOBOTINTERACTIVE_H
41 changes: 20 additions & 21 deletions src/framework/global/iinteractive.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef MUSE_GLOBAL_IINTERACTIVE_H
#define MUSE_GLOBAL_IINTERACTIVE_H

#pragma once

#include "modularity/imoduleinterface.h"
#include "io/path.h"
Expand Down Expand Up @@ -166,45 +166,45 @@ class IInteractive : MODULE_EXPORT_INTERFACE
// question
virtual async::Promise<Result> question(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons,
int defBtn = int(Button::NoButton), const Options& options = {},
const std::string& dialogTitle = "") = 0;
const std::string& dialogTitle = {}) = 0;

async::Promise<Result> question(const std::string& contentTitle, const std::string& text, const Buttons& buttons,
Button defBtn = Button::NoButton, const Options& options = {}, const std::string& dialogTitle = "")
Button defBtn = Button::NoButton, const Options& options = {}, const std::string& dialogTitle = {})
{
return question(contentTitle, Text(text), buttonDataList(buttons), (int)defBtn, options, dialogTitle);
}

// info
virtual async::Promise<Result> info(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = {},
const std::string& dialogTitle = "") = 0;
const std::string& dialogTitle = {}) = 0;

async::Promise<Result> info(const std::string& contentTitle, const std::string& text, const Buttons& buttons,
Button defBtn, const Options& options = {}, const std::string& dialogTitle = "")
Button defBtn, const Options& options = {}, const std::string& dialogTitle = {})
{
return info(contentTitle, Text(text), buttonDataList(buttons), (int)defBtn, options, dialogTitle);
}

// warning
virtual async::Promise<Result> warning(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = { WithIcon },
const std::string& dialogTitle = "") = 0;
const std::string& dialogTitle = {}) = 0;

async::Promise<Result> warning(const std::string& contentTitle, const std::string& text, const Buttons& buttons,
Button defBtn = Button::NoButton, const Options& options = { WithIcon },
const std::string& dialogTitle = "")
const std::string& dialogTitle = {})
{
return warning(contentTitle, Text(text), buttonDataList(buttons), (int)defBtn, options, dialogTitle);
}

// error
virtual async::Promise<Result> error(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = { WithIcon },
const std::string& dialogTitle = "") = 0;
const std::string& dialogTitle = {}) = 0;

async::Promise<Result> error(const std::string& contentTitle, const std::string& text, const Buttons& buttons,
Button defBtn = Button::NoButton, const Options& options = { WithIcon },
const std::string& dialogTitle = "")
const std::string& dialogTitle = {})
{
return error(contentTitle, Text(text), buttonDataList(buttons), (int)defBtn, options, dialogTitle);
}
Expand All @@ -226,7 +226,8 @@ class IInteractive : MODULE_EXPORT_INTERFACE
const io::paths_t& selectedDirectories) = 0;

// color
virtual async::Promise<Color> selectColor(const Color& color = Color::WHITE, const std::string& title = "") = 0;
virtual async::Promise<Color> selectColor(const Color& color = Color::WHITE, const std::string& title = {},
bool allowAlpha = false) = 0;
virtual bool isSelectColorOpened() const = 0;

// custom
Expand Down Expand Up @@ -262,39 +263,39 @@ class IInteractive : MODULE_EXPORT_INTERFACE
//! NOTE Please don't use this
//! =================================
virtual Result questionSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons,
int defBtn = int(Button::NoButton), const Options& options = {}, const std::string& dialogTitle = "") = 0;
int defBtn = int(Button::NoButton), const Options& options = {}, const std::string& dialogTitle = {}) = 0;

Result questionSync(const std::string& contentTitle, const std::string& text, const Buttons& buttons,
const Button& defBtn = Button::NoButton, const Options& options = {}, const std::string& dialogTitle = "")
const Button& defBtn = Button::NoButton, const Options& options = {}, const std::string& dialogTitle = {})
{
return questionSync(contentTitle, Text(text), buttonDataList(buttons), (int)defBtn, options, dialogTitle);
}

virtual Result infoSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = {}, const std::string& dialogTitle = "") = 0;
int defBtn = int(Button::NoButton), const Options& options = {}, const std::string& dialogTitle = {}) = 0;

Result infoSync(const std::string& contentTitle, const std::string& text, const Buttons& buttons,
const Button& defBtn = Button::NoButton, const Options& options = {}, const std::string& dialogTitle = "")
const Button& defBtn = Button::NoButton, const Options& options = {}, const std::string& dialogTitle = {})
{
return infoSync(contentTitle, Text(text), buttonDataList(buttons), (int)defBtn, options, dialogTitle);
}

virtual Result warningSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = { WithIcon },
const std::string& dialogTitle = "") = 0;
const std::string& dialogTitle = {}) = 0;

Result warningSync(const std::string& contentTitle, const std::string& text, const Buttons& buttons,
const Button& defBtn = Button::NoButton, const Options& options = { WithIcon }, const std::string& dialogTitle = "")
const Button& defBtn = Button::NoButton, const Options& options = { WithIcon }, const std::string& dialogTitle = {})
{
return warningSync(contentTitle, Text(text), buttonDataList(buttons), (int)defBtn, options, dialogTitle);
}

virtual Result errorSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = { WithIcon },
const std::string& dialogTitle = "") = 0;
const std::string& dialogTitle = {}) = 0;

Result errorSync(const std::string& contentTitle, const std::string& text, const Buttons& buttons,
const Button& defBtn = Button::NoButton, const Options& options = { WithIcon }, const std::string& dialogTitle = "")
const Button& defBtn = Button::NoButton, const Options& options = { WithIcon }, const std::string& dialogTitle = {})
{
return errorSync(contentTitle, Text(text), buttonDataList(buttons), (int)defBtn, options, dialogTitle);
}
Expand All @@ -306,5 +307,3 @@ class IInteractive : MODULE_EXPORT_INTERFACE
};
DECLARE_OPERATORS_FOR_FLAGS(IInteractive::Options)
}

#endif // MUSE_GLOBAL_IINTERACTIVE_H
4 changes: 2 additions & 2 deletions src/framework/global/internal/interactive.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -411,9 +411,9 @@ io::paths_t Interactive::selectMultipleDirectories(const std::string& title, con
return io::pathsFromString(result.val.toString());
}

async::Promise<Color> Interactive::selectColor(const Color& color, const std::string& title)
async::Promise<Color> Interactive::selectColor(const Color& color, const std::string& title, bool allowAlpha)
{
return provider()->selectColor(color, title);
return provider()->selectColor(color, title, allowAlpha);
}

bool Interactive::isSelectColorOpened() const
Expand Down
8 changes: 3 additions & 5 deletions src/framework/global/internal/interactive.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef MUSE_GLOBAL_INTERACTIVE_H
#define MUSE_GLOBAL_INTERACTIVE_H

#pragma once

#include "async/asyncable.h"

Expand Down Expand Up @@ -91,7 +91,7 @@ class Interactive : public IInteractive, public Injectable, public async::Asynca
io::paths_t selectMultipleDirectories(const std::string& title, const io::path_t& dir, const io::paths_t& selectedDirectories) override;

// color
async::Promise<Color> selectColor(const Color& color = Color::WHITE, const std::string& title = "") override;
async::Promise<Color> selectColor(const Color& color = Color::WHITE, const std::string& title = {}, bool allowAlpha = false) override;
bool isSelectColorOpened() const override;

// custom
Expand Down Expand Up @@ -134,5 +134,3 @@ class Interactive : public IInteractive, public Injectable, public async::Asynca
const ButtonDatas& buttons, int defBtn, const Options& options, const std::string& dialogTitle);
};
}

#endif // MUSE_GLOBAL_UIINTERACTIVE_H
4 changes: 2 additions & 2 deletions src/framework/global/internal/platform/web/webinteractive.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -254,9 +254,9 @@ io::paths_t WebInteractive::selectMultipleDirectories(const std::string& title,
#endif
}

muse::async::Promise<muse::Color> WebInteractive::selectColor(const muse::Color& color, const std::string& title)
muse::async::Promise<muse::Color> WebInteractive::selectColor(const muse::Color& color, const std::string& title, bool allowAlpha)
{
return m_origin->selectColor(color, title);
return m_origin->selectColor(color, title, allowAlpha);
}

bool WebInteractive::isSelectColorOpened() const
Expand Down
19 changes: 10 additions & 9 deletions src/framework/global/internal/platform/web/webinteractive.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,35 +33,35 @@ class WebInteractive : public muse::IInteractive

// question
Result questionSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons, int defBtn = int(Button::NoButton),
const Options& options = {}, const std::string& dialogTitle = "") override;
const Options& options = {}, const std::string& dialogTitle = {}) override;

muse::async::Promise<Result> question(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons,
int defBtn = int(Button::NoButton), const Options& options = {},
const std::string& dialogTitle = "") override;
const std::string& dialogTitle = {}) override;

// info
Result infoSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons, int defBtn = int(Button::NoButton),
const Options& options = {}, const std::string& dialogTitle = "") override;
const Options& options = {}, const std::string& dialogTitle = {}) override;

muse::async::Promise<Result> info(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = {},
const std::string& dialogTitle = "") override;
const std::string& dialogTitle = {}) override;

// warning
Result warningSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons, int defBtn = int(Button::NoButton),
const Options& options = {}, const std::string& dialogTitle = "") override;
const Options& options = {}, const std::string& dialogTitle = {}) override;

muse::async::Promise<Result> warning(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = {},
const std::string& dialogTitle = "") override;
const std::string& dialogTitle = {}) override;

// error
Result errorSync(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons, int defBtn = int(Button::NoButton),
const Options& options = { WithIcon }, const std::string& dialogTitle = "") override;
const Options& options = { WithIcon }, const std::string& dialogTitle = {}) override;

muse::async::Promise<Result> error(const std::string& contentTitle, const Text& text, const ButtonDatas& buttons = {},
int defBtn = int(Button::NoButton), const Options& options = { WithIcon },
const std::string& dialogTitle = "") override;
const std::string& dialogTitle = {}) override;

// progress
void showProgress(const std::string& title, muse::Progress progress) override;
Expand All @@ -81,7 +81,8 @@ class WebInteractive : public muse::IInteractive
const muse::io::paths_t& selectedDirectories) override;

// color
muse::async::Promise<muse::Color> selectColor(const muse::Color& color = muse::Color::WHITE, const std::string& title = "") override;
muse::async::Promise<muse::Color> selectColor(const muse::Color& color = muse::Color::WHITE, const std::string& title = {},
bool allowAlpha = false) override;
bool isSelectColorOpened() const override;

// custom
Expand Down
2 changes: 1 addition & 1 deletion src/framework/global/tests/mocks/interactivemock.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class InteractiveMock : public IInteractive
MOCK_METHOD(io::path_t, selectDirectory, (const std::string&, const io::path_t&), (override));
MOCK_METHOD(io::paths_t, selectMultipleDirectories, (const std::string&, const io::path_t&, const io::paths_t&), (override));

MOCK_METHOD(async::Promise<Color>, selectColor, (const Color&, const std::string&), (override));
MOCK_METHOD(async::Promise<Color>, selectColor, (const Color&, const std::string&, bool), (override));
MOCK_METHOD(bool, isSelectColorOpened, (), (const, override));

MOCK_METHOD(RetVal<Val>, openSync, (const UriQuery&), (override));
Expand Down
Loading
Loading