From 06378e09be8e90564c01dcb51faac0ed0918a546 Mon Sep 17 00:00:00 2001 From: Arnaud Demaiziere Date: Sun, 15 Apr 2007 21:31:32 +0000 Subject: [PATCH] rss : improvements of the qtreeview --- src/Icons/description.png | Bin 0 -> 821 bytes src/Icons/sphere.png | Bin 0 -> 337 bytes src/Icons/sphere2.png | Bin 0 -> 379 bytes src/Icons/time.png | Bin 0 -> 513 bytes src/Icons/url.png | Bin 0 -> 629 bytes src/icons.qrc | 9 +++++++-- src/rss.h | 4 ++++ src/rss_imp.cpp | 34 +++++++++++++++++++++++++++++++--- src/rss_imp.h | 4 ++++ 9 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 src/Icons/description.png create mode 100644 src/Icons/sphere.png create mode 100644 src/Icons/sphere2.png create mode 100644 src/Icons/time.png create mode 100644 src/Icons/url.png diff --git a/src/Icons/description.png b/src/Icons/description.png new file mode 100644 index 0000000000000000000000000000000000000000..30b4262a649a80082dfd19a44d2ee1141b805cff GIT binary patch literal 821 zcmV-51Iqk~P)A3 z$GwVYmppskb4s3BDq1V2W&jo_00fYTFhqd>JZO*Sob0KxSAQ}Yj=4P=1t&=_NCylC!X6oQjA60nh-lTykNTm_%m; zKNyb^o^_NTgvMeh5o8(~fB_g#Ina;uC{>m={W$;aQM)|jteh&^hQGgFYqdJ{qtVB2 zt**^m1SkL^xdNhOlIJ;5{_U;3YQ=qi(XBOu<}kT(`L)CC`j6k;`0S?*0syESibxZ< zal&Os-SorJBvqhquJ10*xmWM(JzciH`23>>KVLb&Fn4vc4M1rY0RRLik&wE*b5yX+ z4>#+}3+^zIahfiboO^!DR%Bc1(vkx2Cc8S9zV3+}9=lq%Tfzx^N#2Js}_c|7o3 zRh@GP8UP6kh?&)HH`;1N_xzUM9QL}S?r=mbwxzwIJ?JHGynOD<%P&nelZard6%Y|3 z0uX2Uzrkp~A8#KFHg`Lzs87~kc;##f1Q7lQ?g)bq@o-?300000NkvXXu0mjf$OUro literal 0 HcmV?d00001 diff --git a/src/Icons/sphere.png b/src/Icons/sphere.png new file mode 100644 index 0000000000000000000000000000000000000000..8cb92a1150cf57120b5bc4dab8bfab7a41fb442a GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^+#ogwGm!MqPT>SnEa{HEjtmSN`?>!lvI6-P0X`wF zk7PM|dwV~A{8(98xn;|irAwFY-@pIp(W9?ky=rW1eEIU_vuDrt?b~) z=*yQc#l^+*=g&_~O`SS*>b!aLjvP7C(a|ww%9N_Asqc zyLRnbvSi8c-@i9*+_-7erq{1u|NsC0?c2Bcj4eh$H!zk2`2{mLJiCzwvL>2=b zE)2qq4727)00r4gJbhi+ue0zAix^E4T^$P)^7nLc4B@z*oS?vGpvkq#$Z^K2LvLh~ zf?g$To3O*EyK9ZcjI(Rb96rAO5Ko%%ry}lxlZH(0fhdEP)YH7<}OQtKa`in=b!%@LTr3tmVr8=dXVM$Extb(_jBhoTmL>xccS)+xLI|U$E-M ze-oz}{~tX41=qj~WBlh1YG7gEWZ>fFX1ICx3&ZCxzZib~W@fl_;|s&7Lo*v07#J9s zV2ZC_zsq2tuf!lEz`>xTz{ema%Ee%yr@(OY`dzr~EHH+MhzNtRzA%HVBs+tIC=0{e z4}TdRJ>_P&d{qRl7;dt@t~|rdJD(Y}R5=)UxS1GK71$Z>Jp96-ry~bf%m`!Lef0Bx zR`C`FX=zCYEe$D#>o=b>Jbn6{VQP;zgR&euBZ^{}h7}v0Fq}AbgTcyNgCWdc2Ck5{ Z003k@U_tDpTVVhI002ovPDHLkV1f<`p5g!i literal 0 HcmV?d00001 diff --git a/src/Icons/time.png b/src/Icons/time.png new file mode 100644 index 0000000000000000000000000000000000000000..27389e3ab477c80ff58b12b61bb70f87089fc4f9 GIT binary patch literal 513 zcmV+c0{;DpP)rteZ=Yh#Yi#@GL~wzX1uwWYrQ_xJaV zuHJ-}oXpJ3DM@RDp2k{XgtflL-tYh3=kH^Al%=kU6aV`+rW-~Xky#+0`2 z@9*!{*VcQ6l)bjSF;R1jmc9S?|L^zzT48f*md>1>r9w$ky~ob~|NphNy{*sx=kNc< z$JWN*|1mgHl&;={mZi1F#@^@uwa@=KNm_)4oMUl>dxo4bI7*W539tYF00DGTPE!Ct z=GbNc000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iF7-6BZ)5l-aug0050iL_t&- z(_>&D4;b1p`M9cR!}5FlX&pw0fE|ymtptm?gRUSmM1aZG z)>hR<#GQlJ6C&VcYo?~Dr|YDl?+g*(6IBwimh?8|R+NGWsHp48=sMYZuyV;k1hmCm zG!!(rS=j}kwlIhbY01i4a+z4cUB+p|=BsSMNTk02s@M>#!xvfE00000NkvXXu0mjf D4X^(; literal 0 HcmV?d00001 diff --git a/src/Icons/url.png b/src/Icons/url.png new file mode 100644 index 0000000000000000000000000000000000000000..17b552b0eb821f47ad52fe02c49b934fe5ce8684 GIT binary patch literal 629 zcmV-*0*d{KP)A>Z9Q{sg-n=PLx=t~th;Yuug$;Z!P%U2&U zZJVeT8IK67qdTcTLD$cTwuH34+ZaV{V=@`pwU%u$z@Wgg>3C?R{mQvu*U+8T*%6Wu zJ8XsxxoC6W`&OaR;jlv~0h6&VMU;KgP&>}JGlg<#{?&&cUEj7jP+)H6DRhqu?z>J{<&dH=zosK+pDzl4Dv8Wbjjd27s4XR!Icons/splash.png Icons/home.png Icons/uparrow.png - Icons/rss.png Icons/downarrow.png Icons/connection.png - Icons/add_file.png Icons/refresh.png + Icons/rss.png Icons/add_folder.png + Icons/add_file.png Icons/loading.png Icons/exec.png + Icons/sphere.png + Icons/url.png + Icons/time.png + Icons/description.png + Icons/sphere2.png Icons/flags/portugal.png Icons/flags/france.png Icons/flags/ukraine.png diff --git a/src/rss.h b/src/rss.h index e33b72ff3..e2d16401b 100644 --- a/src/rss.h +++ b/src/rss.h @@ -274,6 +274,10 @@ class RssStream : public QObject{ return lastRefresh.elapsed(); } + QString getLastRefresh() const{ + return QString::number(lastRefresh.hour())+"h"+QString::number(lastRefresh.minute())+"m"; + } + bool isRead() const { return read; } diff --git a/src/rss_imp.cpp b/src/rss_imp.cpp index 8b2d8209e..2f7b8d9e3 100644 --- a/src/rss_imp.cpp +++ b/src/rss_imp.cpp @@ -71,13 +71,14 @@ rssmanager.getStream(getNumStreamSelected())->setRead(); // update the color of the stream, is it old ? updateStreamName(getNumStreamSelected(), LATENCY); - refreshNewsList(); + refreshNewsList(); } } // display the content of a new when clicked on it void RSSImp::on_listNews_clicked() { listNews->item(listNews->currentRow())->setData(Qt::ForegroundRole, QVariant(QColor("grey"))); + listNews->item(listNews->currentRow())->setData(Qt::DecorationRole, QVariant(QIcon(":/Icons/sphere.png"))); refreshTextBrowser(); } @@ -176,7 +177,17 @@ for(unsigned short i=0; isetText(0, tr("no description avalaible")); + url->setText(0, rssmanager.getStream(i)->getUrl()); + time->setText(0, tr("no refresh")); + description->setData(0,Qt::DecorationRole, QVariant(QIcon(":/Icons/description.png"))); + url->setData(0,Qt::DecorationRole, QVariant(QIcon(":/Icons/url.png"))); + time->setData(0,Qt::DecorationRole, QVariant(QIcon(":/Icons/time.png"))); + description->setData(0,Qt::ForegroundRole, QVariant(QColor("grey"))); + url->setData(0,Qt::ForegroundRole, QVariant(QColor("grey"))); + time->setData(0,Qt::ForegroundRole, QVariant(QColor("grey"))); updateStreamName(i, NEWS); } } @@ -189,8 +200,14 @@ unsigned short currentStreamSize = currentstream->getListSize(); for(unsigned short i=0; igetItem(i)->getTitle(), listNews); - if(currentstream->getItem(i)->isRead()) + if(currentstream->getItem(i)->isRead()){ listNews->item(i)->setData(Qt::ForegroundRole, QVariant(QColor("grey"))); + listNews->item(i)->setData(Qt::DecorationRole, QVariant(QIcon(":/Icons/sphere.png"))); + } + else { + listNews->item(i)->setData(Qt::DecorationRole, QVariant(QIcon(":/Icons/sphere2.png"))); + listNews->item(i)->setData(Qt::ForegroundRole, QVariant(QColor("blue"))); + } if(i%2==0) listNews->item(i)->setData(Qt::BackgroundRole, QVariant(QColor(0, 255, 255, 20))); } @@ -242,15 +259,26 @@ refreshNewsList(); } listStreams->topLevelItem(i)->setData(0,Qt::DecorationRole, QVariant(QIcon(rssmanager.getStream(i)->getIconPath()))); - listStreams->topLevelItem(i)->child(0)->setText(0, rssmanager.getStream(i)->getDescription()); + // update description and display last refresh + if(rssmanager.getStream(i)->getDescription()!="") + listStreams->topLevelItem(i)->child(DESCRIPTION_CHILD)->setText(0, rssmanager.getStream(i)->getDescription()); + listStreams->topLevelItem(i)->child(TIME_CHILD)->setText(0, rssmanager.getStream(i)->getLastRefresh()); } } RSSImp::RSSImp() : QWidget(){ setupUi(this); + // icons of bottom buttons addStream_button->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/add.png"))); delStream_button->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/remove.png"))); refreshAll_button->setIcon(QIcon(QString::fromUtf8(":/Icons/exec.png"))); + // icons of right-click menu + actionDelete->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/remove.png"))); + actionRename->setIcon(QIcon(QString::fromUtf8(":/Icons/log.png"))); + actionRefresh->setIcon(QIcon(QString::fromUtf8(":/Icons/refresh.png"))); + actionCreate->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/add.png"))); + actionRefreshAll->setIcon(QIcon(QString::fromUtf8(":/Icons/refresh.png"))); + connect(listStreams, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayRSSListMenu(const QPoint&))); connect(actionDelete, SIGNAL(triggered()), this, SLOT(deleteStream())); connect(actionRename, SIGNAL(triggered()), this, SLOT(renameStream())); diff --git a/src/rss_imp.h b/src/rss_imp.h index 4aed3b36c..2912f47ce 100644 --- a/src/rss_imp.h +++ b/src/rss_imp.h @@ -28,6 +28,10 @@ #include "rss.h" #include "GUI.h" +#define DESCRIPTION_CHILD 0 +#define URL_CHILD 1 +#define TIME_CHILD 2 + class RSSImp : public QWidget, public Ui::RSS{ Q_OBJECT