Merge pull request #265 from PhenomRetroShare/Add_SaveOpMode

Save last state of OpMode status bar droplist and restore it at start.
This commit is contained in:
defnax 2016-02-04 20:11:47 +01:00
commit 80ac88994f
16 changed files with 382 additions and 13 deletions

View File

@ -661,3 +661,23 @@ IdEditDialog QLabel#info_label
background: #FFFFD7; background: #FFFFD7;
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #FFFFD7, stop:1 #FFFFB2); background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #FFFFD7, stop:1 #FFFFB2);
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}

View File

@ -15,7 +15,7 @@
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, * Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA. * Boston, MA 02110-1301, USA.
****************************************************************/ ****************************************************************/
@ -23,26 +23,35 @@
#include <QLabel> #include <QLabel>
#include "gui/statusbar/OpModeStatus.h" #include "gui/statusbar/OpModeStatus.h"
#include "gui/settings/rsharesettings.h"
#include <retroshare/rsconfig.h> #include <retroshare/rsconfig.h>
#include <iostream> #include <iostream>
OpModeStatus::OpModeStatus(QWidget *parent) OpModeStatus::OpModeStatus(QWidget *parent)
: QComboBox(parent) : QComboBox(parent)
{ {
onUpdate = false;
/* add the options */ /* add the options */
addItem(tr("Normal Mode"), RS_OPMODE_FULL); addItem(tr("Normal Mode"), RS_OPMODE_FULL);
setItemData(0, opMode_Full_Color, Qt::BackgroundRole);
addItem(tr("No Anon D/L"), RS_OPMODE_NOTURTLE); addItem(tr("No Anon D/L"), RS_OPMODE_NOTURTLE);
setItemData(1, opMode_NoTurtle_Color, Qt::BackgroundRole);
addItem(tr("Gaming Mode"), RS_OPMODE_GAMING); addItem(tr("Gaming Mode"), RS_OPMODE_GAMING);
setItemData(2, opMode_Gaming_Color, Qt::BackgroundRole);
addItem(tr("Low Traffic"), RS_OPMODE_MINIMAL); addItem(tr("Low Traffic"), RS_OPMODE_MINIMAL);
setItemData(3, opMode_Minimal_Color, Qt::BackgroundRole);
connect(this, SIGNAL(activated( int )), this, SLOT(setOpMode())); connect(this, SIGNAL(activated( int )), this, SLOT(setOpMode()));
setCurrentIndex(Settings->valueFromGroup("StatusBar", "OpMode", QVariant(0)).toInt());
setOpMode();
setToolTip(tr("Use this DropList to quickly change Retroshare's behaviour\n No Anon D/L: switches off file forwarding\n Gaming Mode: 25% standard traffic and TODO: reduced popups\n Low Traffic: 10% standard traffic and TODO: pauses all file-transfers")); setToolTip(tr("Use this DropList to quickly change Retroshare's behaviour\n No Anon D/L: switches off file forwarding\n Gaming Mode: 25% standard traffic and TODO: reduced popups\n Low Traffic: 10% standard traffic and TODO: pauses all file-transfers"));
setFocusPolicy(Qt::ClickFocus); setFocusPolicy(Qt::ClickFocus);
} }
void OpModeStatus::getOpMode() void OpModeStatus::getOpMode()
{ {
int opMode = rsConfig->getOperatingMode(); int opMode = rsConfig->getOperatingMode();
@ -51,17 +60,26 @@ void OpModeStatus::getOpMode()
default: default:
case RS_OPMODE_FULL: case RS_OPMODE_FULL:
setCurrentIndex(0); setCurrentIndex(0);
break; setProperty("opMode", "Full");
break;
case RS_OPMODE_NOTURTLE: case RS_OPMODE_NOTURTLE:
setCurrentIndex(1); setCurrentIndex(1);
break; setProperty("opMode", "NoTurtle");
break;
case RS_OPMODE_GAMING: case RS_OPMODE_GAMING:
setCurrentIndex(2); setCurrentIndex(2);
break; setProperty("opMode", "Gaming");
break;
case RS_OPMODE_MINIMAL: case RS_OPMODE_MINIMAL:
setCurrentIndex(3); setCurrentIndex(3);
break; setProperty("opMode", "Minimal");
break;
} }
onUpdate = true;
style()->unpolish(this);
style()->polish(this);
update();
onUpdate = false;
} }
void OpModeStatus::setOpMode() void OpModeStatus::setOpMode()
@ -69,14 +87,65 @@ void OpModeStatus::setOpMode()
std::cerr << "OpModeStatus::setOpMode()"; std::cerr << "OpModeStatus::setOpMode()";
std::cerr << std::endl; std::cerr << std::endl;
int idx = currentIndex(); int idx = currentIndex();
QVariant var = itemData(idx); QVariant var = itemData(idx);
uint32_t opMode = var.toUInt(); uint32_t opMode = var.toUInt();
rsConfig->setOperatingMode(opMode); rsConfig->setOperatingMode(opMode);
// reload to be safe. // reload to be safe.
getOpMode(); getOpMode();
Settings->setValueToGroup("StatusBar", "OpMode", idx);
} }
QColor OpModeStatus::getOpMode_Full_Color() const
{
return opMode_Full_Color;
}
void OpModeStatus::setOpMode_Full_Color( QColor c )
{
opMode_Full_Color = c;
setItemData(0, opMode_Full_Color, Qt::BackgroundRole);
if (!onUpdate)
getOpMode();
}
QColor OpModeStatus::getOpMode_NoTurtle_Color() const
{
return opMode_NoTurtle_Color;
}
void OpModeStatus::setOpMode_NoTurtle_Color( QColor c )
{
opMode_NoTurtle_Color = c;
setItemData(1, opMode_NoTurtle_Color, Qt::BackgroundRole);
if (!onUpdate)
getOpMode();
}
QColor OpModeStatus::getOpMode_Gaming_Color() const
{
return opMode_Gaming_Color;
}
void OpModeStatus::setOpMode_Gaming_Color( QColor c )
{
opMode_Gaming_Color = c;
setItemData(2, opMode_Gaming_Color, Qt::BackgroundRole);
if (!onUpdate)
getOpMode();
}
QColor OpModeStatus::getOpMode_Minimal_Color() const
{
return opMode_Minimal_Color;
}
void OpModeStatus::setOpMode_Minimal_Color( QColor c )
{
opMode_Minimal_Color = c;
setItemData(3, opMode_Minimal_Color, Qt::BackgroundRole);
if (!onUpdate)
getOpMode();
}

View File

@ -26,16 +26,37 @@
class OpModeStatus : public QComboBox class OpModeStatus : public QComboBox
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QColor opMode_Full_Color READ getOpMode_Full_Color WRITE setOpMode_Full_Color DESIGNABLE true)
Q_PROPERTY(QColor opMode_NoTurtle_Color READ getOpMode_NoTurtle_Color WRITE setOpMode_NoTurtle_Color DESIGNABLE true)
Q_PROPERTY(QColor opMode_Gaming_Color READ getOpMode_Gaming_Color WRITE setOpMode_Gaming_Color DESIGNABLE true)
Q_PROPERTY(QColor opMode_Minimal_Color READ getOpMode_Minimal_Color WRITE setOpMode_Minimal_Color DESIGNABLE true)
public: public:
OpModeStatus(QWidget *parent = 0); OpModeStatus(QWidget *parent = 0);
QColor getOpMode_Full_Color() const;
void setOpMode_Full_Color( QColor c );
QColor getOpMode_NoTurtle_Color() const;
void setOpMode_NoTurtle_Color( QColor c );
QColor getOpMode_Gaming_Color() const;
void setOpMode_Gaming_Color( QColor c );
QColor getOpMode_Minimal_Color() const;
void setOpMode_Minimal_Color( QColor c );
private slots: private slots:
void setOpMode(); void setOpMode();
private: private:
void getOpMode(); void getOpMode();
QColor opMode_Full_Color;
QColor opMode_NoTurtle_Color;
QColor opMode_Gaming_Color;
QColor opMode_Minimal_Color;
bool onUpdate;
}; };
#endif #endif

View File

@ -272,3 +272,23 @@ QTextBrowser {
QTextEdit { QTextEdit {
color: white; color: white;
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #007000;
qproperty-opMode_NoTurtle_Color: #000070;
qproperty-opMode_Gaming_Color: #707000;
qproperty-opMode_Minimal_Color: #700000;
}
OpModeStatus[opMode="Full"] {
background: #007000;
}
OpModeStatus[opMode="NoTurtle"] {
background: #000070;
}
OpModeStatus[opMode="Gaming"] {
background: #707000;
}
OpModeStatus[opMode="Minimal"] {
background: #700000;
}

View File

@ -172,3 +172,23 @@ QSplitter#splitter{
border-image: url(qss/blue/blue.png); border-image: url(qss/blue/blue.png);
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}

View File

@ -66,3 +66,23 @@ QTreeWidget::item:selected { /* when user selects item using mouse or keyboard *
} }
Q Q
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}

View File

@ -205,3 +205,23 @@ QLabel#fromText{
color: blue; color: blue;
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}

View File

@ -1056,4 +1056,24 @@ QToolBox::tab {
QStatusBar::item { QStatusBar::item {
border: 1px solid #3A3939; border: 1px solid #3A3939;
border-radius: 3px; border-radius: 3px;
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #007000;
qproperty-opMode_NoTurtle_Color: #000070;
qproperty-opMode_Gaming_Color: #707000;
qproperty-opMode_Minimal_Color: #700000;
}
OpModeStatus[opMode="Full"] {
background: #007000;
}
OpModeStatus[opMode="NoTurtle"] {
background: #000070;
}
OpModeStatus[opMode="Gaming"] {
background: #707000;
}
OpModeStatus[opMode="Minimal"] {
background: #700000;
}

View File

@ -116,3 +116,22 @@ QStatusBar{
border-image: url(qss/qlive/qb.png); border-image: url(qss/qlive/qb.png);
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}

View File

@ -287,3 +287,23 @@ QLabel#threadTitle{
background: white; background: white;
color: black; color: black;
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}

View File

@ -135,3 +135,23 @@ QLabel#fromText{
color: blue; color: blue;
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}

View File

@ -162,3 +162,23 @@ QLabel#fromText{
color: blue; color: blue;
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}

View File

@ -300,4 +300,24 @@ QStatusBar {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #BDDF7D, stop: 1 #49881F); stop: 0 #BDDF7D, stop: 1 #49881F);
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}

View File

@ -85,3 +85,23 @@ QLabel#fromText{
color: blue; color: blue;
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}

View File

@ -205,3 +205,23 @@ QToolBar#chattoolBar{
border-image: url(qss/yaba/yaba.png); border-image: url(qss/yaba/yaba.png);
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}

View File

@ -168,3 +168,23 @@ QLabel#fromText{
color: blue; color: blue;
} }
/* OpModeStatus need to be at end to overload other values*/
OpModeStatus {
qproperty-opMode_Full_Color: #CCFFCC;
qproperty-opMode_NoTurtle_Color: #CCCCFF;
qproperty-opMode_Gaming_Color: #FFFFCC;
qproperty-opMode_Minimal_Color: #FFCCCC;
}
OpModeStatus[opMode="Full"] {
background: #CCFFCC;
}
OpModeStatus[opMode="NoTurtle"] {
background: #CCCCFF;
}
OpModeStatus[opMode="Gaming"] {
background: #FFFFCC;
}
OpModeStatus[opMode="Minimal"] {
background: #FFCCCC;
}