mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-02-07 15:08:24 +00:00
- New media settings panel in video conference and waiting room for device selection.
- Add a volume viewer for capture in media settings. - Fix volumes synchronization between all settings panels. - Allowing the use of capture graph from any place. - Toggle button for Settings when menu is open.
This commit is contained in:
parent
ccd21512c3
commit
f7757dd8a3
36 changed files with 575 additions and 107 deletions
|
|
@ -1454,6 +1454,13 @@ Klik her: <a href="%1">%1</a>
|
|||
<translation>OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1454,6 +1454,13 @@ Klicken Sie hier: <a href="%1">%1</a>
|
|||
<translation>OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1454,6 +1454,13 @@ Click here: <a href="%1">%1</a>
|
|||
<translation>OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1454,6 +1454,13 @@ Haga clic aquí: <a href="%1">%1 </a>
|
|||
<translation>OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1454,6 +1454,13 @@ Cliquez ici : <a href="%1">%1</a>
|
|||
<translation>OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1445,6 +1445,13 @@ Kattintson ide: <a href="%1">%1</a>
|
|||
<translation>Rendben</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">Rendben</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1454,6 +1454,13 @@ Clicca: <a href="%1">%1</a>
|
|||
<translation>OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1445,6 +1445,13 @@
|
|||
<translation>OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1463,6 +1463,13 @@ Spustelėkite čia: <a href="%1">%1</a>
|
|||
<translation>GERAI</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">GERAI</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1454,6 +1454,13 @@ Clique aqui: <a href="%1">%1 </a>
|
|||
<translation>ESTÁ BEM</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1463,6 +1463,13 @@
|
|||
<translation>OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1454,6 +1454,13 @@ Klicka här: <a href="%1">%1</a>
|
|||
<translation>OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1450,6 +1450,13 @@ Buraya tıklayın: <a href="%1">%1</a>
|
|||
<translation>TAMAM</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1463,6 +1463,13 @@
|
|||
<translation>Так</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">Так</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -1445,6 +1445,13 @@
|
|||
<translation>好</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultimediaParametersDialog</name>
|
||||
<message>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished">好</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewChatRoom</name>
|
||||
<message>
|
||||
|
|
|
|||
|
|
@ -329,6 +329,7 @@
|
|||
<file>ui/modules/Linphone/Contact/Contact.qml</file>
|
||||
<file>ui/modules/Linphone/Dialog/OnlineInstallerDialog.qml</file>
|
||||
<file>ui/modules/Linphone/Dialog/SipAddressDialog.qml</file>
|
||||
<file>ui/modules/Linphone/Dialog/MultimediaParametersDialog.qml</file>
|
||||
<file>ui/modules/Linphone/File/FileView.qml</file>
|
||||
<file>ui/modules/Linphone/History/History.qml</file>
|
||||
<file>ui/modules/Linphone/History/History.js</file>
|
||||
|
|
@ -366,6 +367,7 @@
|
|||
<file>ui/modules/Linphone/Styles/Contact/ContactDescriptionStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/Contact/ContactMessageCounterStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/Contact/ContactStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/Dialog/MultimediaParametersDialogStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/Dialog/OnlineInstallerDialogStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/Dialog/SipAddressDialogStyle.qml</file>
|
||||
<file>ui/modules/Linphone/Styles/History/HistoryStyle.qml</file>
|
||||
|
|
|
|||
|
|
@ -229,10 +229,12 @@ float CallModel::getSpeakerVolumeGain () const {
|
|||
|
||||
void CallModel::setSpeakerVolumeGain (float volume) {
|
||||
Q_ASSERT(volume >= 0.0f && volume <= 1.0f);
|
||||
float oldGain = getSpeakerVolumeGain();
|
||||
if( mCall && mCall->getSpeakerVolumeGain() >= 0)
|
||||
mCall->setSpeakerVolumeGain(volume);
|
||||
else
|
||||
CoreManager::getInstance()->getSettingsModel()->setPlaybackGain(volume);
|
||||
if( (int)(oldGain * 1000) != (int)(volume*1000))
|
||||
emit speakerVolumeGainChanged(getSpeakerVolumeGain());
|
||||
}
|
||||
|
||||
|
|
@ -245,11 +247,13 @@ float CallModel::getMicroVolumeGain () const {
|
|||
|
||||
void CallModel::setMicroVolumeGain (float volume) {
|
||||
Q_ASSERT(volume >= 0.0f && volume <= 1.0f);
|
||||
float oldGain = getMicroVolumeGain();
|
||||
if(mCall && mCall->getMicrophoneVolumeGain() >= 0)
|
||||
mCall->setMicrophoneVolumeGain(volume);
|
||||
else
|
||||
CoreManager::getInstance()->getSettingsModel()->setCaptureGain(volume);
|
||||
emit microVolumeGainChanged(getMicroVolumeGain());
|
||||
if( (int)(oldGain * 1000) != (int)(volume*1000))
|
||||
emit microVolumeGainChanged(getMicroVolumeGain());
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -218,11 +218,13 @@ class ColorListModel : public ProxyListModel {
|
|||
ADD_COLOR("me_d_b_inv_bg", "transparent", "[M] Menu disabled button : inverse background")
|
||||
ADD_COLOR("me_h_b_inv_bg", "transparent", "[M] Menu hovered button : inverse background")
|
||||
ADD_COLOR("me_p_b_inv_bg", "transparent", "[M] Menu pressed button : inverse background")
|
||||
ADD_COLOR("me_c_b_inv_bg", "#FF5E00", "[M] Menu checked button : inverse background")
|
||||
|
||||
ADD_COLOR("me_n_b_inv_fg", "white", "[M] Menu normal button : inverse foreground")
|
||||
ADD_COLOR("me_d_b_inv_fg", "#80FFFFFF", "[M] Menu disabled button : inverse foreground")
|
||||
ADD_COLOR("me_h_b_inv_fg", "#B0FFFFFF", "[M] Menu hovered button : inverse foreground")
|
||||
ADD_COLOR("me_p_b_inv_fg", "white", "[M] Menu pressed button : inverse foreground")
|
||||
ADD_COLOR("me_p_b_inv_fg", "white", "[M] Menu pressed button : inverse foreground")
|
||||
ADD_COLOR("me_c_b_inv_fg", "white", "[M] Menu checked button : inverse foreground")
|
||||
//-------------------------------------
|
||||
// Wave Play
|
||||
ADD_COLOR_WITH_LINK("w_n_b_bg", "", "[M] Wave play normal button : background", "ma_n_b_bg")
|
||||
|
|
|
|||
|
|
@ -234,19 +234,34 @@ void SettingsModel::setDeviceName(const QString& deviceName){
|
|||
// Audio.
|
||||
// =============================================================================
|
||||
|
||||
void SettingsModel::resetCaptureGraph() {
|
||||
deleteCaptureGraph();
|
||||
createCaptureGraph();
|
||||
}
|
||||
void SettingsModel::createCaptureGraph() {
|
||||
if (mSimpleCaptureGraph) {
|
||||
delete mSimpleCaptureGraph;
|
||||
mSimpleCaptureGraph = nullptr;
|
||||
}
|
||||
if (!mSimpleCaptureGraph) {
|
||||
mSimpleCaptureGraph =
|
||||
mSimpleCaptureGraph =
|
||||
new MediastreamerUtils::SimpleCaptureGraph(Utils::appStringToCoreString(getCaptureDevice()), Utils::appStringToCoreString(getPlaybackDevice()));
|
||||
}
|
||||
mSimpleCaptureGraph->start();
|
||||
emit captureGraphRunningChanged(getCaptureGraphRunning());
|
||||
}
|
||||
|
||||
void SettingsModel::startCaptureGraph(){
|
||||
if(!mSimpleCaptureGraph)
|
||||
createCaptureGraph();
|
||||
++mCaptureGraphListenerCount;
|
||||
}
|
||||
void SettingsModel::stopCaptureGraph(){
|
||||
if(--mCaptureGraphListenerCount == 0)
|
||||
deleteCaptureGraph();
|
||||
}
|
||||
void SettingsModel::deleteCaptureGraph(){
|
||||
if (mSimpleCaptureGraph) {
|
||||
if (mSimpleCaptureGraph->isRunning()) {
|
||||
mSimpleCaptureGraph->stop();
|
||||
}
|
||||
delete mSimpleCaptureGraph;
|
||||
mSimpleCaptureGraph = nullptr;
|
||||
}
|
||||
}
|
||||
//Force a call on the 'detect' method of all audio filters, updating new or removed devices
|
||||
void SettingsModel::accessAudioSettings() {
|
||||
CoreManager::getInstance()->getCore()->reloadSoundDevices();
|
||||
|
|
@ -256,19 +271,13 @@ void SettingsModel::accessAudioSettings() {
|
|||
emit captureDeviceChanged(getCaptureDevice());
|
||||
emit ringerDeviceChanged(getRingerDevice());
|
||||
|
||||
if (!getIsInCall()) {
|
||||
createCaptureGraph();
|
||||
}
|
||||
//if (!getIsInCall()) {
|
||||
startCaptureGraph();
|
||||
//}
|
||||
}
|
||||
|
||||
void SettingsModel::closeAudioSettings() {
|
||||
if (mSimpleCaptureGraph) {
|
||||
if (mSimpleCaptureGraph->isRunning()) {
|
||||
mSimpleCaptureGraph->stop();
|
||||
}
|
||||
delete mSimpleCaptureGraph;
|
||||
mSimpleCaptureGraph = nullptr;
|
||||
}
|
||||
stopCaptureGraph();
|
||||
emit captureGraphRunningChanged(getCaptureGraphRunning());
|
||||
}
|
||||
|
||||
|
|
@ -291,10 +300,13 @@ float SettingsModel::getPlaybackGain() const {
|
|||
}
|
||||
|
||||
void SettingsModel::setPlaybackGain(float gain) {
|
||||
float oldGain = getPlaybackGain();
|
||||
CoreManager::getInstance()->getCore()->setPlaybackGainDb(MediastreamerUtils::linearToDb(gain));
|
||||
if (mSimpleCaptureGraph && mSimpleCaptureGraph->isRunning()) {
|
||||
mSimpleCaptureGraph->setPlaybackGain(gain);
|
||||
}
|
||||
if((int)(oldGain*1000) != (int)(gain*1000))
|
||||
emit playbackGainChanged(gain);
|
||||
}
|
||||
|
||||
float SettingsModel::getCaptureGain() const {
|
||||
|
|
@ -303,10 +315,13 @@ float SettingsModel::getCaptureGain() const {
|
|||
}
|
||||
|
||||
void SettingsModel::setCaptureGain(float gain) {
|
||||
float oldGain = getCaptureGain();
|
||||
CoreManager::getInstance()->getCore()->setMicGainDb(MediastreamerUtils::linearToDb(gain));
|
||||
if (mSimpleCaptureGraph && mSimpleCaptureGraph->isRunning()) {
|
||||
mSimpleCaptureGraph->setCaptureGain(gain);
|
||||
}
|
||||
if((int)(oldGain *1000) != (int)(gain *1000))
|
||||
emit captureGainChanged(gain);
|
||||
}
|
||||
|
||||
QStringList SettingsModel::getCaptureDevices () const {
|
||||
|
|
@ -350,7 +365,7 @@ void SettingsModel::setCaptureDevice (const QString &device) {
|
|||
CoreManager::getInstance()->getCore()->setCaptureDevice(devId);
|
||||
CoreManager::getInstance()->getCore()->setInputAudioDevice(*audioDevice);
|
||||
emit captureDeviceChanged(device);
|
||||
createCaptureGraph();
|
||||
resetCaptureGraph();
|
||||
}else
|
||||
qWarning() << "Cannot set Capture device. The ID cannot be matched with an existant device : " << device;
|
||||
}
|
||||
|
|
@ -374,7 +389,7 @@ void SettingsModel::setPlaybackDevice (const QString &device) {
|
|||
CoreManager::getInstance()->getCore()->setPlaybackDevice(devId);
|
||||
CoreManager::getInstance()->getCore()->setOutputAudioDevice(*audioDevice);
|
||||
emit playbackDeviceChanged(device);
|
||||
createCaptureGraph();
|
||||
resetCaptureGraph();
|
||||
}else
|
||||
qWarning() << "Cannot set Playback device. The ID cannot be matched with an existant device : " << device;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -269,8 +269,12 @@ public:
|
|||
void setDeviceName(const QString& deviceName);
|
||||
|
||||
// Audio. --------------------------------------------------------------------
|
||||
|
||||
|
||||
Q_INVOKABLE void startCaptureGraph();
|
||||
Q_INVOKABLE void stopCaptureGraph();
|
||||
Q_INVOKABLE void resetCaptureGraph();
|
||||
void createCaptureGraph();
|
||||
void deleteCaptureGraph();
|
||||
bool getCaptureGraphRunning();
|
||||
void accessAudioSettings();
|
||||
void closeAudioSettings();
|
||||
|
|
@ -725,6 +729,7 @@ signals:
|
|||
private:
|
||||
int mCurrentSettingsTab = 0;
|
||||
MediastreamerUtils::SimpleCaptureGraph *mSimpleCaptureGraph = nullptr;
|
||||
int mCaptureGraphListenerCount = 0;
|
||||
|
||||
std::shared_ptr<linphone::Config> mConfig;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@ Rectangle {
|
|||
property alias title : titleBar.text //Optionnal. Show a title bar with a close button.
|
||||
property alias descriptionText: description.text // Optionnal.
|
||||
property int buttonsAlignment : Qt.AlignLeft
|
||||
property bool flat : false // Remove margins
|
||||
property bool flat : false
|
||||
property bool showMargins: !flat
|
||||
property bool expandHeight: flat
|
||||
property alias showCloseCross : titleBar.showCloseCross
|
||||
|
||||
|
|
@ -51,7 +52,7 @@ Rectangle {
|
|||
color: DialogStyle.color
|
||||
|
||||
layer {
|
||||
enabled: true
|
||||
enabled: !dialog.flat
|
||||
effect: PopupShadow {}
|
||||
}
|
||||
|
||||
|
|
@ -71,6 +72,7 @@ Rectangle {
|
|||
DialogTitle{
|
||||
id:titleBar
|
||||
//Layout.fillHeight: dialog.contentIsEmpty
|
||||
flat: dialog.flat
|
||||
showCloseCross:dialog.showCloseCross
|
||||
Layout.fillWidth: true
|
||||
onClose: exitStatus(0)
|
||||
|
|
@ -89,8 +91,8 @@ Rectangle {
|
|||
|
||||
Layout.fillHeight: (expandHeight ? true : !dialog.contentIsEmpty)
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: (flat ? 0 : DialogStyle.content.leftMargin)
|
||||
Layout.rightMargin: (flat ? 0 : DialogStyle.content.rightMargin)
|
||||
Layout.leftMargin: (showMargins ? DialogStyle.content.leftMargin : 0)
|
||||
Layout.rightMargin: (showMargins ? DialogStyle.content.rightMargin : 0)
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
|
|
|
|||
|
|
@ -16,9 +16,10 @@ Item {
|
|||
property alias text: title.text
|
||||
property bool showBar : text != ''
|
||||
property bool showCloseCross: showBar
|
||||
property bool flat: false
|
||||
signal close()
|
||||
|
||||
height: 30
|
||||
height: showBar || showCloseCross ? (flat ? 60 : 30) : 0
|
||||
|
||||
Rectangle{
|
||||
anchors.fill:parent
|
||||
|
|
@ -26,7 +27,7 @@ Item {
|
|||
GradientStop { position: 0.0; color: DialogStyle.title.lowGradient }
|
||||
GradientStop { position: 1.0; color: DialogStyle.title.highGradient }
|
||||
}
|
||||
visible:showBar
|
||||
visible:showBar && !flat
|
||||
}
|
||||
Text {
|
||||
id: title
|
||||
|
|
@ -39,7 +40,8 @@ Item {
|
|||
|
||||
color: DialogStyle.description.color
|
||||
//font.pointSize: DialogStyle.description.pointSize
|
||||
font.pointSize: Units.dp * 10
|
||||
font.pointSize: !flat ? Units.dp * 10 : Units.dp * 14
|
||||
font.weight: !flat ? Font.Normal : Font.Bold
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
wrapMode: Text.WordWrap
|
||||
|
|
|
|||
|
|
@ -6,47 +6,54 @@ import Common.Styles 1.0
|
|||
// =============================================================================
|
||||
|
||||
Controls.Slider {
|
||||
id: slider
|
||||
id: slider
|
||||
property alias backgroundImplicitHeight: backgroundItem.implicitHeight
|
||||
property alias backgroundImplicitWidth: backgroundItem.implicitWidth
|
||||
|
||||
background: Rectangle {
|
||||
color: SliderStyle.background.color
|
||||
property alias handleImplicitHeight: handleItem.implicitHeight
|
||||
property alias handleImplicitWidth: handleItem.implicitWidth
|
||||
|
||||
x: slider.leftPadding
|
||||
y: slider.topPadding + slider.availableHeight / 2 - height / 2
|
||||
background: Rectangle {
|
||||
id: backgroundItem
|
||||
color: SliderStyle.background.color
|
||||
|
||||
implicitHeight: SliderStyle.background.height
|
||||
implicitWidth: SliderStyle.background.width
|
||||
x: slider.leftPadding
|
||||
y: slider.topPadding + slider.availableHeight / 2 - height / 2
|
||||
|
||||
height: implicitHeight
|
||||
width: slider.availableWidth
|
||||
implicitHeight: SliderStyle.background.height
|
||||
implicitWidth: SliderStyle.background.width
|
||||
|
||||
radius: SliderStyle.background.radius
|
||||
height: implicitHeight
|
||||
width: slider.availableWidth
|
||||
|
||||
Rectangle {
|
||||
color: SliderStyle.background.content.color
|
||||
radius: SliderStyle.background.radius
|
||||
|
||||
height: parent.height
|
||||
width: slider.visualPosition * parent.width
|
||||
Rectangle {
|
||||
color: SliderStyle.background.content.color
|
||||
|
||||
radius: SliderStyle.background.content.radius
|
||||
}
|
||||
}
|
||||
height: parent.height
|
||||
width: slider.visualPosition * parent.width
|
||||
|
||||
handle: Rectangle {
|
||||
border.color: slider.pressed
|
||||
? SliderStyle.handle.border.color.pressed
|
||||
: SliderStyle.handle.border.color.normal
|
||||
radius: SliderStyle.background.content.radius
|
||||
}
|
||||
}
|
||||
|
||||
color: slider.pressed
|
||||
? SliderStyle.handle.color.pressed
|
||||
: SliderStyle.handle.color.normal
|
||||
handle: Rectangle {
|
||||
id: handleItem
|
||||
border.color: slider.pressed
|
||||
? SliderStyle.handle.border.color.pressed
|
||||
: SliderStyle.handle.border.color.normal
|
||||
|
||||
x: slider.leftPadding + slider.visualPosition * (slider.availableWidth - width)
|
||||
y: slider.topPadding + slider.availableHeight / 2 - height / 2
|
||||
color: slider.pressed
|
||||
? SliderStyle.handle.color.pressed
|
||||
: SliderStyle.handle.color.normal
|
||||
|
||||
implicitWidth: SliderStyle.handle.width
|
||||
implicitHeight: SliderStyle.handle.height
|
||||
x: slider.leftPadding + slider.visualPosition * (slider.availableWidth - width)
|
||||
y: slider.topPadding + slider.availableHeight / 2 - height / 2
|
||||
|
||||
radius: SliderStyle.handle.radius
|
||||
}
|
||||
implicitWidth: SliderStyle.handle.width
|
||||
implicitHeight: SliderStyle.handle.height
|
||||
|
||||
radius: SliderStyle.handle.radius
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,205 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.7
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
import Common 1.0
|
||||
import Common.Styles 1.0
|
||||
import Linphone 1.0
|
||||
import Linphone.Styles 1.0
|
||||
import Utils 1.0
|
||||
|
||||
import App.Styles 1.0
|
||||
|
||||
// =============================================================================
|
||||
|
||||
DialogPlus {
|
||||
property var call
|
||||
property bool fixedSize : true
|
||||
|
||||
property int fitHeight: MultimediaParametersDialogStyle.height+30
|
||||
property int fitWidth: MultimediaParametersDialogStyle.width
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
buttons: [
|
||||
TextButtonB {
|
||||
text: qsTr('ok')
|
||||
|
||||
onClicked: {
|
||||
if(call)
|
||||
call.updateStreams()
|
||||
exit(0)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
buttonsAlignment: Qt.AlignCenter
|
||||
Component.onCompleted: {
|
||||
SettingsModel.startCaptureGraph()
|
||||
if( fixedSize){
|
||||
height = fitHeight
|
||||
width = fitWidth
|
||||
}
|
||||
}
|
||||
Component.onDestruction: SettingsModel.stopCaptureGraph()
|
||||
onCallChanged: !call && exit(0)
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Column {
|
||||
anchors.fill: parent
|
||||
anchors.topMargin: MultimediaParametersDialogStyle.column.spacing
|
||||
spacing: MultimediaParametersDialogStyle.column.spacing
|
||||
|
||||
RowLayout {
|
||||
spacing: MultimediaParametersDialogStyle.column.entry.spacing
|
||||
width: parent.width
|
||||
|
||||
Icon {
|
||||
Layout.alignment: Qt.AlignTop
|
||||
Layout.preferredHeight: ComboBoxStyle.background.height
|
||||
|
||||
icon: MultimediaParametersDialogStyle.column.entry.speaker.icon
|
||||
overwriteColor: MultimediaParametersDialogStyle.column.entry.speaker.color
|
||||
iconSize: MultimediaParametersDialogStyle.column.entry.speaker.iconSize
|
||||
}
|
||||
|
||||
Column {
|
||||
Layout.fillWidth: true
|
||||
|
||||
spacing: MultimediaParametersDialogStyle.column.entry.spacing2
|
||||
|
||||
ComboBox {
|
||||
currentIndex: Utils.findIndex(model, function (device) {
|
||||
return device === SettingsModel.playbackDevice
|
||||
})
|
||||
model: SettingsModel.playbackDevices
|
||||
width: parent.width
|
||||
|
||||
onActivated: SettingsModel.playbackDevice = model[index]
|
||||
}
|
||||
|
||||
Slider {
|
||||
id: playbackSlider
|
||||
width: parent.width
|
||||
|
||||
value: call ? value = call.speakerVolumeGain : value = SettingsModel.playbackGain
|
||||
onPositionChanged: if(call)
|
||||
call.speakerVolumeGain = position
|
||||
else
|
||||
SettingsModel.playbackGain = position
|
||||
|
||||
ToolTip {
|
||||
parent: playbackSlider.handle
|
||||
visible: playbackSlider.pressed
|
||||
text: (playbackSlider.value * 100).toFixed(0) + " %"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: MultimediaParametersDialogStyle.column.entry.spacing
|
||||
width: parent.width
|
||||
|
||||
Icon {
|
||||
Layout.alignment: Qt.AlignTop
|
||||
Layout.preferredHeight: ComboBoxStyle.background.height
|
||||
|
||||
icon: MultimediaParametersDialogStyle.column.entry.micro.icon
|
||||
overwriteColor: MultimediaParametersDialogStyle.column.entry.micro.color
|
||||
iconSize: MultimediaParametersDialogStyle.column.entry.micro.iconSize
|
||||
}
|
||||
|
||||
Column {
|
||||
Layout.fillWidth: true
|
||||
|
||||
spacing: MultimediaParametersDialogStyle.column.entry.spacing2
|
||||
|
||||
ComboBox {
|
||||
currentIndex: Utils.findIndex(model, function (device) {
|
||||
return device === SettingsModel.captureDevice
|
||||
})
|
||||
model: SettingsModel.captureDevices
|
||||
width: parent.width
|
||||
|
||||
onActivated: SettingsModel.captureDevice = model[index]
|
||||
}
|
||||
|
||||
Slider {
|
||||
id: captureSlider
|
||||
width: parent.width
|
||||
value: call ? call.microVolumeGain : SettingsModel.captureGain
|
||||
|
||||
onPositionChanged: if(call)
|
||||
call.microVolumeGain = position
|
||||
else
|
||||
SettingsModel.captureGain = position
|
||||
|
||||
ToolTip {
|
||||
parent: captureSlider.handle
|
||||
visible: captureSlider.pressed
|
||||
text: "+ " + (captureSlider.value * 100).toFixed(0) + " %"
|
||||
}
|
||||
}
|
||||
Slider {
|
||||
id: audioTestSlider
|
||||
|
||||
enabled: false
|
||||
width: parent.width
|
||||
height: 8
|
||||
|
||||
background: Rectangle {
|
||||
x: audioTestSlider.leftPadding
|
||||
y: audioTestSlider.topPadding + audioTestSlider.availableHeight / 2 - height / 2
|
||||
implicitWidth: 200
|
||||
implicitHeight: 8
|
||||
width: audioTestSlider.availableWidth
|
||||
height: implicitHeight
|
||||
radius: 2
|
||||
color: SettingsAudioStyle.sliderBackgroundColor
|
||||
|
||||
Rectangle {
|
||||
width: audioTestSlider.visualPosition * parent.width
|
||||
height: parent.height
|
||||
color: audioTestSlider.value > 0.8 ? SettingsAudioStyle.sliderHighColor : SettingsAudioStyle.sliderLowColor
|
||||
radius: 2
|
||||
}
|
||||
}
|
||||
|
||||
//Empty slider handle
|
||||
handle: Text {text: ''; visible: false }
|
||||
|
||||
Timer {
|
||||
interval: 50
|
||||
repeat: true
|
||||
running: SettingsModel.captureGraphRunning || call
|
||||
|
||||
onTriggered: call ? parent.value = call.microVu : parent.value = SettingsModel.getMicVolume()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: MultimediaParametersDialogStyle.column.entry.spacing
|
||||
width: parent.width
|
||||
|
||||
Icon {
|
||||
icon: MultimediaParametersDialogStyle.column.entry.camera.icon
|
||||
overwriteColor: MultimediaParametersDialogStyle.column.entry.camera.color
|
||||
iconSize: MultimediaParametersDialogStyle.column.entry.speaker.iconSize
|
||||
}
|
||||
|
||||
ComboBox {
|
||||
Layout.fillWidth: true
|
||||
|
||||
currentIndex: Number(Utils.findIndex(model, function (device) {
|
||||
return device === SettingsModel.videoDevice
|
||||
}))
|
||||
model: SettingsModel.videoDevices
|
||||
|
||||
onActivated: SettingsModel.videoDevice = model[index]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
pragma Singleton
|
||||
import QtQml 2.2
|
||||
import ColorsList 1.0
|
||||
// =============================================================================
|
||||
|
||||
QtObject {
|
||||
property string sectionName: 'MultimediaParamsDialog'
|
||||
property int height: 312
|
||||
property int width: 450
|
||||
|
||||
property QtObject column: QtObject {
|
||||
property int spacing: 15
|
||||
|
||||
property QtObject entry: QtObject {
|
||||
property int iconSize: 24
|
||||
property int spacing: 10
|
||||
property int spacing2: 5
|
||||
property QtObject speaker: QtObject {
|
||||
property int iconSize: 30
|
||||
property string icon : 'speaker_on_custom'
|
||||
property string name : 'speaker'
|
||||
property color color : ColorsList.addImageColor(sectionName+'_'+name, icon, 'g').color
|
||||
}
|
||||
property QtObject micro: QtObject {
|
||||
property int iconSize: 30
|
||||
property string icon : 'micro_on_custom'
|
||||
property string name : 'micro'
|
||||
property color color : ColorsList.addImageColor(sectionName+'_'+name, icon, 'g').color
|
||||
}
|
||||
property QtObject camera: QtObject {
|
||||
property int iconSize: 30
|
||||
property string icon : 'camera_on_custom'
|
||||
property string name : 'camera'
|
||||
property color color : ColorsList.addImageColor(sectionName+'_'+name, icon, 'g').color
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -31,6 +31,7 @@ singleton ContactDescriptionStyle 1.0 Contact/ContactDescriptionSty
|
|||
singleton ContactMessageCounterStyle 1.0 Contact/ContactMessageCounterStyle.qml
|
||||
singleton ContactStyle 1.0 Contact/ContactStyle.qml
|
||||
|
||||
singleton MultimediaParametersDialogStyle 1.0 Dialog/MultimediaParametersDialogStyle.qml
|
||||
singleton OnlineInstallerDialogStyle 1.0 Dialog/OnlineInstallerDialogStyle.qml
|
||||
singleton SipAddressDialogStyle 1.0 Dialog/SipAddressDialogStyle.qml
|
||||
|
||||
|
|
|
|||
|
|
@ -6,51 +6,52 @@ module Linphone
|
|||
|
||||
# Components -------------------------------------------------------------------
|
||||
|
||||
AccountStatus 1.0 Account/AccountStatus.qml
|
||||
AccountStatus 1.0 Account/AccountStatus.qml
|
||||
|
||||
CardBlock 1.0 Blocks/CardBlock.qml
|
||||
RequestBlock 1.0 Blocks/RequestBlock.qml
|
||||
CardBlock 1.0 Blocks/CardBlock.qml
|
||||
RequestBlock 1.0 Blocks/RequestBlock.qml
|
||||
|
||||
Calls 1.0 Calls/Calls.qml
|
||||
CallStatistics 1.0 Calls/CallStatistics.qml
|
||||
IncallAvatar 1.0 Calls/IncallAvatar.qml
|
||||
Calls 1.0 Calls/Calls.qml
|
||||
CallStatistics 1.0 Calls/CallStatistics.qml
|
||||
IncallAvatar 1.0 Calls/IncallAvatar.qml
|
||||
|
||||
CameraItem 1.0 Camera/CameraItem.qml
|
||||
CameraView 1.0 Camera/CameraView.qml
|
||||
CameraItem 1.0 Camera/CameraItem.qml
|
||||
CameraView 1.0 Camera/CameraView.qml
|
||||
|
||||
Chat 1.0 Chat/Chat.qml
|
||||
ChatAudioMessage 1.0 Chat/ChatAudioMessage.qml
|
||||
ChatAudioPreview 1.0 Chat/ChatAudioPreview.qml
|
||||
ChatCalendarMessage 1.0 Chat/ChatCalendarMessage.qml
|
||||
ChatMessagePreview 1.0 Chat/ChatMessagePreview.qml
|
||||
ChatForwardMessage 1.0 Chat/ChatForwardMessage.qml
|
||||
ChatReplyMessage 1.0 Chat/ChatReplyMessage.qml
|
||||
ChatReplyPreview 1.0 Chat/ChatReplyPreview.qml
|
||||
Chat 1.0 Chat/Chat.qml
|
||||
ChatAudioMessage 1.0 Chat/ChatAudioMessage.qml
|
||||
ChatAudioPreview 1.0 Chat/ChatAudioPreview.qml
|
||||
ChatCalendarMessage 1.0 Chat/ChatCalendarMessage.qml
|
||||
ChatMessagePreview 1.0 Chat/ChatMessagePreview.qml
|
||||
ChatForwardMessage 1.0 Chat/ChatForwardMessage.qml
|
||||
ChatReplyMessage 1.0 Chat/ChatReplyMessage.qml
|
||||
ChatReplyPreview 1.0 Chat/ChatReplyPreview.qml
|
||||
|
||||
CodecsViewer 1.0 Codecs/CodecsViewer.qml
|
||||
CodecsViewer 1.0 Codecs/CodecsViewer.qml
|
||||
|
||||
Avatar 1.0 Contact/Avatar.qml
|
||||
Contact 1.0 Contact/Contact.qml
|
||||
ContactDescription 1.0 Contact/ContactDescription.qml
|
||||
Avatar 1.0 Contact/Avatar.qml
|
||||
Contact 1.0 Contact/Contact.qml
|
||||
ContactDescription 1.0 Contact/ContactDescription.qml
|
||||
|
||||
SipAddressDialog 1.0 Dialog/SipAddressDialog.qml
|
||||
SipAddressDialog 1.0 Dialog/SipAddressDialog.qml
|
||||
MultimediaParametersDialog 1.0 Dialog/MultimediaParametersDialog.qml
|
||||
|
||||
FileView 1.0 File/FileView.qml
|
||||
FileView 1.0 File/FileView.qml
|
||||
|
||||
History 1.0 History/History.qml
|
||||
History 1.0 History/History.qml
|
||||
|
||||
SipAddressesMenu 1.0 Menus/SipAddressesMenu.qml
|
||||
SipAddressesMenu 1.0 Menus/SipAddressesMenu.qml
|
||||
|
||||
MessageCounter 1.0 Misc/MessageCounter.qml
|
||||
MessageCounter 1.0 Misc/MessageCounter.qml
|
||||
|
||||
PresenceLevel 1.0 Presence/PresenceLevel.qml
|
||||
PresenceLevel 1.0 Presence/PresenceLevel.qml
|
||||
|
||||
SmartSearchBar 1.0 SmartSearchBar/SmartSearchBar.qml
|
||||
SmartSearchBar 1.0 SmartSearchBar/SmartSearchBar.qml
|
||||
|
||||
TelKeypad 1.0 TelKeypad/TelKeypad.qml
|
||||
TelKeypad 1.0 TelKeypad/TelKeypad.qml
|
||||
|
||||
Timeline 1.0 Timeline/Timeline.qml
|
||||
Timeline 1.0 Timeline/Timeline.qml
|
||||
|
||||
SipAddressesView 1.0 View/SipAddressesView.qml
|
||||
SipAddressesView 1.0 View/SipAddressesView.qml
|
||||
|
||||
ParticipantsView 1.0 View/ParticipantsView.qml
|
||||
ParticipantsView 1.0 View/ParticipantsView.qml
|
||||
|
|
|
|||
|
|
@ -392,6 +392,7 @@ Rectangle {
|
|||
isCustom: true
|
||||
backgroundRadius: width/2
|
||||
colorSet: VideoConferenceStyle.buttons.options
|
||||
toggled: rightMenu.visible
|
||||
onClicked: rightMenu.visible = !rightMenu.visible
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -197,7 +197,7 @@ Window {
|
|||
ActionButton{
|
||||
isCustom: true
|
||||
backgroundRadius: width/2
|
||||
colorSet: VideoConferenceStyle.buttons.fullscreen
|
||||
colorSet: VideoConferenceStyle.buttons.stopFullscreen
|
||||
onClicked: window.exit()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ Rectangle{
|
|||
}
|
||||
Text{
|
||||
id: title
|
||||
text: contentsStack.currentItem.objectName == 'settingsMenu' ? 'Paramètres' : 'Modifier la mise en page'
|
||||
text: 'Paramètres'
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: implicitHeight
|
||||
horizontalAlignment: Qt.AlignCenter
|
||||
|
|
@ -77,6 +77,7 @@ Rectangle{
|
|||
initialItem: settingsMenuComponent
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
onPopEnterChanged: if(nViews <= 1 ) title.text = 'Paramètres'
|
||||
}
|
||||
Component{
|
||||
id: settingsMenuComponent
|
||||
|
|
@ -85,7 +86,12 @@ Rectangle{
|
|||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
Repeater{
|
||||
model: [{text: 'Modifier la mise en page'
|
||||
model: [
|
||||
{text: 'Régler les périphériques'
|
||||
, icon: VideoConferenceMenuStyle.settingsIcons.mediaIcon
|
||||
, nextPage:mediaMenu},
|
||||
|
||||
{text: 'Modifier la mise en page'
|
||||
, icon: (mainItem.callModel.videoEnabled ?
|
||||
(mainItem.callModel.conferenceVideoLayout == LinphoneEnums.ConferenceLayoutGrid ? VideoConferenceMenuStyle.settingsIcons.gridIcon : VideoConferenceMenuStyle.settingsIcons.activeSpeakerIcon)
|
||||
: VideoConferenceMenuStyle.settingsIcons.audioOnlyIcon)
|
||||
|
|
@ -131,7 +137,10 @@ Rectangle{
|
|||
}
|
||||
MouseArea{
|
||||
anchors.fill: parent
|
||||
onClicked: contentsStack.push(modelData.nextPage)
|
||||
onClicked: {
|
||||
title.text = modelData.text
|
||||
contentsStack.push(modelData.nextPage)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -141,6 +150,28 @@ Rectangle{
|
|||
}
|
||||
}
|
||||
}
|
||||
Component{
|
||||
id: mediaMenu
|
||||
ColumnLayout{
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
MultimediaParametersDialog{
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
Layout.minimumHeight: fitHeight
|
||||
call: conference.callModel
|
||||
flat: true
|
||||
showMargins: true
|
||||
expandHeight: false
|
||||
fixedSize: false
|
||||
onExitStatus: contentsStack.pop()
|
||||
}
|
||||
Item{// Spacer
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
}
|
||||
}
|
||||
Component{
|
||||
id: layoutMenu
|
||||
ColumnLayout{
|
||||
|
|
|
|||
|
|
@ -35,17 +35,46 @@ Rectangle {
|
|||
font.pointSize: WaitingRoomStyle.title.pointSize
|
||||
horizontalAlignment: Qt.AlignCenter
|
||||
}
|
||||
|
||||
Item{
|
||||
RowLayout{
|
||||
id: loader
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
CameraView{
|
||||
id: previewLoader
|
||||
showCloseButton: false
|
||||
anchors.centerIn: parent
|
||||
height: parent.height
|
||||
width : height
|
||||
Item{
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
CameraView{
|
||||
id: previewLoader
|
||||
showCloseButton: false
|
||||
anchors.centerIn: parent
|
||||
height: Math.min( parent.height, parent.width)
|
||||
width : height
|
||||
ActionButton{
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
anchors.topMargin: 10
|
||||
anchors.rightMargin: 10
|
||||
isCustom: true
|
||||
backgroundRadius: width/2
|
||||
colorSet: WaitingRoomStyle.buttons.options
|
||||
toggled: mediaMenu.visible
|
||||
onClicked: mediaMenu.visible = !mediaMenu.visible
|
||||
}
|
||||
}
|
||||
}
|
||||
MultimediaParametersDialog{
|
||||
id: mediaMenu
|
||||
Layout.fillHeight: true
|
||||
Layout.leftMargin: 10
|
||||
Layout.rightMargin: 10
|
||||
Layout.minimumHeight: fitHeight
|
||||
Layout.minimumWidth: fitWidth
|
||||
radius: 8
|
||||
flat: true
|
||||
showMargins: true
|
||||
fixedSize: false
|
||||
onExitStatus: visible = false
|
||||
visible: false
|
||||
title: 'Régler les périphériques'
|
||||
}
|
||||
}
|
||||
// -------------------------------------------------------------------------
|
||||
|
|
@ -53,7 +82,8 @@ Rectangle {
|
|||
// -------------------------------------------------------------------------
|
||||
RowLayout{
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: 40
|
||||
Layout.topMargin: 25
|
||||
Layout.bottomMargin: 25
|
||||
Layout.leftMargin: 25
|
||||
Layout.rightMargin: 25
|
||||
Item{
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ TabContainer {
|
|||
width: parent.width
|
||||
enabled: !SettingsModel.isInCall
|
||||
|
||||
Component.onCompleted: value = SettingsModel.playbackGain
|
||||
value: SettingsModel.playbackGain
|
||||
onPositionChanged: SettingsModel.playbackGain = position
|
||||
|
||||
ToolTip {
|
||||
|
|
@ -107,7 +107,7 @@ TabContainer {
|
|||
width: parent.width
|
||||
enabled: !SettingsModel.isInCall
|
||||
|
||||
Component.onCompleted: value = SettingsModel.captureGain
|
||||
value: SettingsModel.captureGain
|
||||
onPositionChanged: SettingsModel.captureGain = position
|
||||
|
||||
ToolTip {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import ColorsList 1.0
|
|||
|
||||
QtObject {
|
||||
property string sectionName: 'CallsWindow'
|
||||
property int minimumHeight: 480
|
||||
property int minimumHeight: 640
|
||||
property int minimumWidth: 960
|
||||
|
||||
property QtObject call: QtObject {
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ QtObject {
|
|||
property string gridIcon: 'conference_layout_grid_custom'
|
||||
property string activeSpeakerIcon: 'conference_layout_active_speaker_custom'
|
||||
property string audioOnlyIcon: 'conference_audio_only_custom'
|
||||
property string mediaIcon: 'micro_on_custom'
|
||||
property int width: 40
|
||||
property int height: 40
|
||||
}
|
||||
|
|
|
|||
|
|
@ -420,9 +420,11 @@ QtObject {
|
|||
property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'me_n_b_inv_bg').color
|
||||
property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'me_h_b_inv_bg').color
|
||||
property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 'me_p_b_inv_bg').color
|
||||
property color backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_c', icon, 'me_c_b_inv_bg').color
|
||||
property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 'me_n_b_inv_fg').color
|
||||
property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 'me_h_b_inv_fg').color
|
||||
property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 'me_p_b_inv_fg').color
|
||||
property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_c', icon, 'me_c_b_inv_fg').color
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
property QtObject closePreview: QtObject {
|
||||
|
|
|
|||
|
|
@ -236,6 +236,19 @@ QtObject {
|
|||
property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's_p_b_fg').color
|
||||
property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_u', icon, 's_p_b_fg').color
|
||||
}
|
||||
property QtObject options: QtObject {
|
||||
property int iconSize: 40
|
||||
property string icon : 'options_custom'
|
||||
property string name : 'options'
|
||||
property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_n_b_bg').color
|
||||
property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_h_b_bg').color
|
||||
property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 's_p_b_bg').color
|
||||
property color backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_c', icon, 's_p_b_bg').color
|
||||
property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's_n_b_fg').color
|
||||
property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 's_n_b_fg').color
|
||||
property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's_p_b_fg').color
|
||||
property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_c', icon, 's_p_b_fg').color
|
||||
}
|
||||
/*
|
||||
property QtObject callsList: QtObject {
|
||||
property int iconSize: 40
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue