This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository x2goclient. from 94b150b Setting debug filter rules for QT>=5.2 new 94872d2 Implement different view modes for sessions explorer: Favorite sessions, running sessions, all sessions. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: debian/changelog | 2 + res/img/icons/16x16/fav.png | Bin 0 -> 897 bytes res/img/icons/16x16/fav1.png | Bin 0 -> 1020 bytes res/img/svg/fav.svg | 76 ++++++++++++++++++++++++++++++ res/img/svg/fav1.svg | 76 ++++++++++++++++++++++++++++++ res/resources.qrc | 2 + src/onmainwindow.cpp | 1 + src/sessionbutton.cpp | 84 ++++++++++++++++++++++++++++++++- src/sessionbutton.h | 20 ++++++++ src/sessionexplorer.cpp | 108 +++++++++++++++++++++++++++++++++++++++++-- src/sessionexplorer.h | 15 ++++++ 11 files changed, 379 insertions(+), 5 deletions(-) create mode 100644 res/img/icons/16x16/fav.png create mode 100644 res/img/icons/16x16/fav1.png create mode 100644 res/img/svg/fav.svg create mode 100644 res/img/svg/fav1.svg -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goclient. commit 94872d2319b91b69cdc5223c50581949f317fb42 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Thu Nov 4 10:15:37 2021 -0600 Implement different view modes for sessions explorer: Favorite sessions, running sessions, all sessions. --- debian/changelog | 2 + res/img/icons/16x16/fav.png | Bin 0 -> 897 bytes res/img/icons/16x16/fav1.png | Bin 0 -> 1020 bytes res/img/svg/fav.svg | 76 ++++++++++++++++++++++++++++++ res/img/svg/fav1.svg | 76 ++++++++++++++++++++++++++++++ res/resources.qrc | 2 + src/onmainwindow.cpp | 1 + src/sessionbutton.cpp | 84 ++++++++++++++++++++++++++++++++- src/sessionbutton.h | 20 ++++++++ src/sessionexplorer.cpp | 108 +++++++++++++++++++++++++++++++++++++++++-- src/sessionexplorer.h | 15 ++++++ 11 files changed, 379 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index ed4343b..5423307 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,6 +24,8 @@ x2goclient (4.1.2.3-0x2go1) UNRELEASED; urgency=medium - Fix loading session icon to system tray when using broker. - Add --debug argument to x2gokdriveclient in debug mode. - Setting debug filter rules for QT>=5.2 + - Implement different view modes for sessions explorer: + Favorite sessions, running sessions, all sessions. [ Ryan Schmidt ] * New upstream version (4.1.2.3): diff --git a/res/img/icons/16x16/fav.png b/res/img/icons/16x16/fav.png new file mode 100644 index 0000000..39747d0 Binary files /dev/null and b/res/img/icons/16x16/fav.png differ diff --git a/res/img/icons/16x16/fav1.png b/res/img/icons/16x16/fav1.png new file mode 100644 index 0000000..03bb285 Binary files /dev/null and b/res/img/icons/16x16/fav1.png differ diff --git a/res/img/svg/fav.svg b/res/img/svg/fav.svg new file mode 100644 index 0000000..2f22795 --- /dev/null +++ b/res/img/svg/fav.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="210mm" + height="297mm" + viewBox="0 0 210 297" + version="1.1" + id="svg8" + inkscape:export-filename="/usr/src.cur/GIT/x2goclient/res/img/icons/16x16/fav.png" + inkscape:export-xdpi="4.3711381" + inkscape:export-ydpi="4.3711381" + inkscape:version="1.0.2 (e86c870879, 2021-01-15)" + sodipodi:docname="fav.svg"> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.4257762" + inkscape:cx="389.81701" + inkscape:cy="533.96979" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" + showgrid="false" + inkscape:window-width="2560" + inkscape:window-height="1058" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Ebene 1" + inkscape:groupmode="layer" + id="layer1"> + <path + sodipodi:type="star" + style="opacity:0.996;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#397cdc;stroke-width:6.96354;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path855" + sodipodi:sides="5" + sodipodi:cx="109.69393" + sodipodi:cy="148.25699" + sodipodi:r1="69.414932" + sodipodi:r2="36.455986" + sodipodi:arg1="0.94140643" + sodipodi:arg2="1.569725" + inkscape:flatsided="false" + inkscape:rounded="0.11" + inkscape:randomized="0" + d="m 150.55515,204.3711 c -4.02898,2.93383 -35.83819,-19.66349 -40.82216,-19.65815 -4.98397,0.005 -36.744688,22.67076 -40.779943,19.74558 -4.035255,-2.92519 7.62648,-40.1605 6.08127,-44.89888 -1.545209,-4.73839 -32.915906,-27.94063 -31.380852,-32.68231 1.535053,-4.74169 40.551613,-5.15707 44.580591,-8.09089 4.028978,-2.93382 16.401534,-39.939014 21.385504,-39.944354 4.98397,-0.0053 17.4358,36.973254 21.47105,39.898444 4.03526,2.92518 43.05262,3.25695 44.59783,7.99534 1.54521,4.738 [...] + inkscape:transform-center-x="-0.032059244" + inkscape:transform-center-y="-6.3851549" + transform="matrix(1.0040637,0,0,1.054415,-0.17716926,-4.2901915)" /> + </g> +</svg> diff --git a/res/img/svg/fav1.svg b/res/img/svg/fav1.svg new file mode 100644 index 0000000..06dd299 --- /dev/null +++ b/res/img/svg/fav1.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="210mm" + height="297mm" + viewBox="0 0 210 297" + version="1.1" + id="svg8" + inkscape:export-filename="/usr/src.cur/GIT/x2goclient/res/img/icons/16x16/fav1.png" + inkscape:export-xdpi="4.3711381" + inkscape:export-ydpi="4.3711381" + inkscape:version="1.0.2 (e86c870879, 2021-01-15)" + sodipodi:docname="fav1.svg"> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.4128293" + inkscape:cx="389.81701" + inkscape:cy="534.67116" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" + showgrid="false" + inkscape:window-width="2560" + inkscape:window-height="1058" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Ebene 1" + inkscape:groupmode="layer" + id="layer1"> + <path + sodipodi:type="star" + style="opacity:0.996;fill:#ffd700;fill-opacity:1;fill-rule:nonzero;stroke:#397cdc;stroke-width:6.96354;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path855" + sodipodi:sides="5" + sodipodi:cx="109.69393" + sodipodi:cy="148.25699" + sodipodi:r1="69.414932" + sodipodi:r2="36.455986" + sodipodi:arg1="0.94140643" + sodipodi:arg2="1.569725" + inkscape:flatsided="false" + inkscape:rounded="0.11" + inkscape:randomized="0" + d="m 150.55515,204.3711 c -4.02898,2.93383 -35.83819,-19.66349 -40.82216,-19.65815 -4.98397,0.005 -36.744688,22.67076 -40.779943,19.74558 -4.035255,-2.92519 7.62648,-40.1605 6.08127,-44.89888 -1.545209,-4.73839 -32.915906,-27.94063 -31.380852,-32.68231 1.535053,-4.74169 40.551613,-5.15707 44.580591,-8.09089 4.028978,-2.93382 16.401534,-39.939014 21.385504,-39.944354 4.98397,-0.0053 17.4358,36.973254 21.47105,39.898444 4.03526,2.92518 43.05262,3.25695 44.59783,7.99534 1.54521,4.738 [...] + inkscape:transform-center-x="-0.032059244" + inkscape:transform-center-y="-6.3851549" + transform="matrix(1.0040637,0,0,1.054415,-0.17716926,-4.2901915)" /> + </g> +</svg> diff --git a/res/resources.qrc b/res/resources.qrc index cdacfe5..6f66467 100644 --- a/res/resources.qrc +++ b/res/resources.qrc @@ -62,6 +62,8 @@ <file>img/icons/16x16/file-open.png</file> <file>img/icons/16x16/delete.png</file> <file>img/icons/16x16/edit.png</file> + <file>img/icons/16x16/fav.png</file> + <file>img/icons/16x16/fav1.png</file> <file>img/icons/16x16/gnome.png</file> <file>img/icons/16x16/unity.png</file> <file>img/icons/16x16/xfce.png</file> diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp index f1febcb..349bc20 100644 --- a/src/onmainwindow.cpp +++ b/src/onmainwindow.cpp @@ -840,6 +840,7 @@ void ONMainWindow::initWidgetsNormal() users=new QScrollArea ( fr ); + vblay->addLayout(sessionExplorer->getSelectLayout()); vblay->addLayout(sessionExplorer->getNavigationLayout()); vblay->addWidget(users); diff --git a/src/sessionbutton.cpp b/src/sessionbutton.cpp index bfccf2a..1cacf1a 100644 --- a/src/sessionbutton.cpp +++ b/src/sessionbutton.cpp @@ -46,6 +46,7 @@ SessionButton::SessionButton ( ONMainWindow* mw,QWidget *parent, QString id ) { editable=mw->sessionEditEnabled(); + running=suspended=0; QPalette pal=palette(); pal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); @@ -59,6 +60,7 @@ SessionButton::SessionButton ( ONMainWindow* mw,QWidget *parent, QString id ) updated=false; + fav=false; QFont fnt=font(); if ( mw->retMiniMode() ) @@ -146,6 +148,15 @@ SessionButton::SessionButton ( ONMainWindow* mw,QWidget *parent, QString id ) editBut->setPalette ( cpal ); sessMenu=new QMenu ( this ); + + favButton=new QPushButton (this); + favButton->setIcon(QIcon(mw->iconsPath ( "/16x16/fav.png" ))); + favButton->setFlat(true); + favButton->setFixedSize(24,24); + favButton->setMouseTracking(true); + favButton->setPalette ( cpal ); + connect( favButton, SIGNAL(clicked()), this, SLOT(slotFavClick())); + connect ( sessMenu,SIGNAL ( aboutToHide() ),this, SLOT ( slotMenuHide() ) ); @@ -175,6 +186,7 @@ SessionButton::SessionButton ( ONMainWindow* mw,QWidget *parent, QString id ) #endif editBut->setToolTip ( tr ( "Session actions" ) ); + favButton->setToolTip(tr("Add to favorites")); cmdBox->setToolTip ( tr ( "Select type" ) ); geomBox->setToolTip ( tr ( "Select resolution" ) ); @@ -186,6 +198,7 @@ SessionButton::SessionButton ( ONMainWindow* mw,QWidget *parent, QString id ) sessName->move ( 80,34 ); sessStatus->move(80,50); editBut->move ( 307,156 ); + favButton->move ( 307,10 ); serverIcon->move ( 58,84 ); server->move ( 80,84 ); cmdIcon->move ( 58,108 ); @@ -200,6 +213,7 @@ SessionButton::SessionButton ( ONMainWindow* mw,QWidget *parent, QString id ) else { editBut->move ( 218,113 ); + favButton->move ( 218,10 ); sessName->move ( 64,11 ); sessStatus->hide(); serverIcon->move ( 66,44 ); @@ -248,6 +262,7 @@ SessionButton::SessionButton ( ONMainWindow* mw,QWidget *parent, QString id ) SLOT ( slot_geom_change ( const QString& ) ) ); editBut->setFocusPolicy ( Qt::NoFocus ); + favButton->setFocusPolicy ( Qt::NoFocus ); sound->setFocusPolicy ( Qt::NoFocus ); cmdBox->setFocusPolicy ( Qt::NoFocus ); geomBox->setFocusPolicy ( Qt::NoFocus ); @@ -277,6 +292,52 @@ SessionButton::SessionButton ( ONMainWindow* mw,QWidget *parent, QString id ) SessionButton::~SessionButton() {} +bool SessionButton::getFavFromConfig() +{ + X2goSettings st( "favorits" ); + return st.setting()->value("favorites").toStringList().contains(sid); +} + +void SessionButton::slotFavClick() +{ + setFav(!fav); + X2goSettings st( "favorits" ); + QStringList favs=st.setting()->value("favorites").toStringList(); + if(fav) + { + if(! favs.contains(sid)) + { + favs.append(sid); + st.setting()->setValue("favorites",favs); + } + } + else + { + if(favs.contains(sid)) + { + favs.removeAll(sid); + st.setting()->setValue("favorites",favs); + } + } + st.setting()->sync(); + emit favClicked(); +} + +void SessionButton::setFav(bool fav) +{ + this->fav=fav; + if(fav) + { + favButton->setIcon(QIcon(par->iconsPath ( "/16x16/fav1.png" ))); + favButton->setToolTip(tr("Remove from favorites")); + } + else + { + favButton->setIcon(QIcon(par->iconsPath ( "/16x16/fav.png" ))); + favButton->setToolTip(tr("Add to favorites")); + } +} + void SessionButton::slotClicked() { emit sessionSelected ( this ); @@ -338,10 +399,10 @@ void SessionButton::redraw() sessStatus->setText("("+tr("suspended")+")"); } - int suspended=st->setting()->value ( sid+"/suspended", + suspended=st->setting()->value ( sid+"/suspended", ( QVariant ) QString::null ).toUInt(); - int running=st->setting()->value ( sid+"/running", + running=st->setting()->value ( sid+"/running", ( QVariant ) QString::null ).toUInt(); if(suspended || running) { @@ -637,6 +698,7 @@ void SessionButton::redraw() cmd->setMinimumSize ( cmd->sizeHint() ); server->setMinimumSize ( server->sizeHint() ); delete st; + setFav(getFavFromConfig()); } void SessionButton::mousePressEvent ( QMouseEvent * event ) @@ -770,6 +832,24 @@ void SessionButton::mouseMoveEvent ( QMouseEvent * event ) editBut->setFlat ( true ); } + + if ( favButton->isFlat() ) + { + if ( event->x() > favButton->x() && event->x() < favButton->x() + + favButton->width() && + event->y() >favButton->y() && event->y() <favButton->y() + + favButton->height() ) + favButton->setFlat ( false ); + } + else + { + if ( event->x() < favButton->x() || event->x() > favButton->x() + + favButton->width() || + event->y() <favButton->y() || event->y() >favButton->y() + + favButton->height() ) + favButton->setFlat ( true ); + } + if ( geom->isVisible() ) if ( event->x() > geom->x() && event->x() < geom->x() + geom->width() && diff --git a/src/sessionbutton.h b/src/sessionbutton.h index d831e61..fb31d06 100644 --- a/src/sessionbutton.h +++ b/src/sessionbutton.h @@ -60,8 +60,22 @@ public: { return updated; } + bool isFav() + { + return fav; + } + int getRunning() + { + return running; + } + int getSuspended() + { + return suspended; + } private: + void setFav(bool fav); + bool getFavFromConfig(); QString nameofSession; QString sid; QString path; @@ -75,6 +89,7 @@ private: QLabel* cmdIcon; QLabel* server; QPushButton* editBut; + QPushButton* favButton; QLabel* geom; QMenu* sessMenu; QComboBox* geomBox; @@ -88,6 +103,9 @@ private: bool published; bool editable; bool updated; + bool fav; + int running; + int suspended; private slots: void slotClicked(); @@ -99,11 +117,13 @@ private slots: void slotMenuHide(); void slotShowMenu(); void slotCreateSessionIcon(); + void slotFavClick(); signals: void sessionSelected ( SessionButton* ); void signal_edit ( SessionButton* ); void signal_remove ( SessionButton* ); void clicked(); + void favClicked(); protected: virtual void mouseMoveEvent ( QMouseEvent * event ); virtual void mousePressEvent ( QMouseEvent * event ); diff --git a/src/sessionexplorer.cpp b/src/sessionexplorer.cpp index d163aa6..3bb42b0 100644 --- a/src/sessionexplorer.cpp +++ b/src/sessionexplorer.cpp @@ -33,11 +33,25 @@ #include "x2gologdebug.h" #include <QBuffer> #include <QDir> +#include <QPushButton> SessionExplorer::SessionExplorer(ONMainWindow* p):QObject(p) { parent=p; lastSession=0; + initUpdate=true; + viewMode=ALL; + runButton=new QPushButton(tr("Running"),parent->getCentralFrame()); + favButton=new QPushButton(tr("Favorites"),parent->getCentralFrame()); + allButton=new QPushButton(tr("All Sessions"),parent->getCentralFrame()); + allButton->setFlat(true); + runButton->setFocusPolicy ( Qt::NoFocus ); + favButton->setFocusPolicy ( Qt::NoFocus ); + allButton->setFocusPolicy ( Qt::NoFocus ); + selectLayout=new QHBoxLayout(); + selectLayout->addWidget(runButton); + selectLayout->addWidget(favButton); + selectLayout->addWidget(allButton); backButton=new QToolButton(parent->getCentralFrame()); backButton->setIcon(QIcon( parent->iconsPath ( "/32x32/tbhide.png" ))); backButton->setAutoRaise(true); @@ -54,6 +68,14 @@ SessionExplorer::SessionExplorer(ONMainWindow* p):QObject(p) backButton->setPalette(pal); backButton->setAutoFillBackground(true); + + runButton->setPalette(pal); + runButton->setAutoFillBackground(true); + favButton->setPalette(pal); + favButton->setAutoFillBackground(true); + allButton->setPalette(pal); + allButton->setAutoFillBackground(true); + pal=pathLabel->palette(); pal.setBrush ( QPalette::Window, QColor ( 110,112,127,255 ) ); pal.setBrush ( QPalette::WindowText, QColor ( 200,200,200,255 ) ); @@ -61,6 +83,9 @@ SessionExplorer::SessionExplorer(ONMainWindow* p):QObject(p) pathLabel->setAutoFillBackground(true); setNavigationVisible(false); connect(backButton,SIGNAL(clicked(bool)), this, SLOT(slotLevelUp())); + connect(runButton,SIGNAL(clicked(bool)), this, SLOT(slotShowRun())); + connect(allButton,SIGNAL(clicked(bool)), this, SLOT(slotShowAll())); + connect(favButton,SIGNAL(clicked(bool)), this, SLOT(slotShowFav())); } SessionExplorer::~SessionExplorer() @@ -111,11 +136,44 @@ void SessionExplorer::updateSessions(QStringList slst) delete s; } } + updateView(); +} +void SessionExplorer::updateView() +{ + bool hasFavs=false; + bool hasRun=0; + foreach (SessionButton* s, sessions) + { + if(s->isFav()) + { + hasFavs=true; + } + if(s->getRunning()||s->getSuspended()) + hasRun=true; + } + runButton->setVisible(hasRun); + favButton->setVisible(hasFavs); + allButton->setVisible(hasRun||hasFavs); + if(initUpdate) + { + initUpdate=false; + if(hasRun) + { + viewMode=RUN; + } + else if(hasFavs) + { + viewMode=FAV; + } + } + if((!hasRun && viewMode==RUN)||(!hasFavs && viewMode==FAV)) + { + viewMode=ALL; + } placeButtons(); } - void SessionExplorer::resize() { pathLabel->setMaximumWidth(parent->getUsersArea()->width()-backButton->width()); @@ -316,6 +374,7 @@ SessionButton* SessionExplorer::createBut ( const QString& id ) connect ( l,SIGNAL ( sessionSelected ( SessionButton* ) ),parent, SLOT ( slotSelectedFromList ( SessionButton* ) ) ); + connect(l, SIGNAL( favClicked()), this, SLOT(updateView())); checkPath(l); @@ -325,9 +384,10 @@ SessionButton* SessionExplorer::createBut ( const QString& id ) void SessionExplorer::placeButtons() { + getFoldersFromConfig(); - setNavigationVisible(currentPath.length()>0); + setNavigationVisible((currentPath.length()>0)&&(viewMode==ALL)); resize(); int currentVerticalPosition=0; qSort ( sessions.begin(),sessions.end(),SessionButton::lessThen ); @@ -335,6 +395,11 @@ void SessionExplorer::placeButtons() for ( int i=0; i<folders.size(); ++i ) { + if(viewMode!=ALL) + { + folders[i]->hide(); + continue; + } if((folders[i]->getPath() != currentPath)||(getFolderChildren(folders[i]).length()<=0)) { folders[i]->hide(); @@ -366,7 +431,17 @@ void SessionExplorer::placeButtons() for ( int i=0; i<sessions.size(); ++i ) { - if(sessions[i]->getPath() != currentPath) + if((viewMode==ALL) && ( sessions[i]->getPath() != currentPath)) + { + sessions[i]->hide(); + continue; + } + if((viewMode==FAV) && (! sessions[i]->isFav())) + { + sessions[i]->hide(); + continue; + } + if((viewMode==RUN) && (! (sessions[i]->getRunning() || sessions[i]->getSuspended()))) { sessions[i]->hide(); continue; @@ -689,3 +764,30 @@ void SessionExplorer::setEnable(bool enable) { backButton->setEnabled(enable); } + +void SessionExplorer::slotShowAll() +{ + viewMode=ALL; + allButton->setFlat(true); + runButton->setFlat(false); + favButton->setFlat(false); + updateView(); +} + +void SessionExplorer::slotShowRun() +{ + viewMode=RUN; + allButton->setFlat(false); + runButton->setFlat(true); + favButton->setFlat(false); + updateView(); +} + +void SessionExplorer::slotShowFav() +{ + viewMode=FAV; + allButton->setFlat(false); + runButton->setFlat(false); + favButton->setFlat(true); + updateView(); +} diff --git a/src/sessionexplorer.h b/src/sessionexplorer.h index a1ec64e..917a5de 100644 --- a/src/sessionexplorer.h +++ b/src/sessionexplorer.h @@ -26,6 +26,7 @@ class SessionButton; class FolderButton; class ONMainWindow; class QToolButton; +class QPushButton; class QLabel; class QHBoxLayout; @@ -57,6 +58,10 @@ public: { return navigationLayout; } + QHBoxLayout* getSelectLayout() + { + return selectLayout; + } bool isFolderEmpty(QString path); void resize(); void setFolderIcon(QString path, QString icon); @@ -85,9 +90,15 @@ private: SessionButton* lastSession; ONMainWindow* parent; QToolButton* backButton; + QPushButton* favButton; + QPushButton* runButton; + QPushButton* allButton; QLabel* pathLabel; QHBoxLayout* navigationLayout; + QHBoxLayout* selectLayout; QString currentPath; + enum {ALL, FAV, RUN} viewMode; + bool initUpdate; //functions private: @@ -107,6 +118,10 @@ private slots: void slotFolderSelected(FolderButton* bt); void slotLevelUp(); QStringList getFolderChildren(FolderButton* folder); + void slotShowAll(); + void slotShowRun(); + void slotShowFav(); + void updateView(); }; #endif -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git