[mythtv] Some tiny cleanup code

Anduin Withers awithers at anduin.com
Sun Aug 10 14:40:59 EDT 2003


Back when I was preparing to attack a problem I was having with the rankings
I made some tiny code cleaning changes to rankprograms.cpp.

--
Anduin Withers

-------------- next part --------------
Index: rankprograms.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythfrontend/rankprograms.cpp,v
retrieving revision 1.7
diff -u -r1.7 rankprograms.cpp
--- rankprograms.cpp	4 Aug 2003 21:42:16 -0000	1.7
+++ rankprograms.cpp	10 Aug 2003 20:37:32 -0000
@@ -74,6 +74,18 @@
     return(*this);
 }
 
+namespace {
+    QString makeProgramInfoUniqueKey(const QString &title,
+            const QString &chanid, const QDateTime &startts) {
+        return title + ":" + chanid + ":" + startts.toString(Qt::ISODate);
+    }
+
+    // even cooler might be to have this part of ProgramInfo
+    QString makeProgramInfoUniqueKey(const ProgramInfo *pi) {
+        return makeProgramInfoUniqueKey(pi->title, pi->chanid, pi->startts);
+    }
+}
+
 RankPrograms::RankPrograms(QSqlDatabase *ldb, MythMainWindow *parent, 
                              const char *name)
             : MythDialog(parent, name)
@@ -442,8 +454,7 @@
 
                 // also set the origRankData with new rank so we don't
                 // save to db again when we exit
-                QString key = progInfo->title + ":" + progInfo->chanid + ":" + 
-                              progInfo->startts.toString(Qt::ISODate);
+                QString key = makeProgramInfoUniqueKey(progInfo);
                 origRankData[key] = progInfo->rank;
 
                 SortList();
@@ -503,8 +514,7 @@
     for (it = programData.begin(); it != programData.end(); ++it) 
     {
         ProgramRankInfo *progInfo = &(it.data());
-        QString key = progInfo->title + ":" + progInfo->chanid + ":" + 
-                      progInfo->startts.toString(Qt::ISODate);
+        QString key = makeProgramInfoUniqueKey(progInfo);
 
         // if this program's rank changed from when we entered
         // save new value out to db
@@ -533,8 +543,7 @@
 
         // save rank value in map so we don't have to save all program's
         // rank values when we exit
-        QString key = (*pgiter)->title + ":" + (*pgiter)->chanid + ":" + 
-                      (*pgiter)->startts.toString(Qt::ISODate);
+        QString key = makeProgramInfoUniqueKey((*pgiter));
         origRankData[key] = (*pgiter)->rank;
 
         delete (*pgiter);
@@ -597,8 +606,7 @@
             }
     
             // make a key for each program
-            QString keyA = title + ":" + chanid + ":" +
-                           startts.toString(Qt::ISODate);
+            QString keyA = makeProgramInfoUniqueKey(title, chanid, startts);
 
             // find matching program in programData and set
             // channelRank, recTypeRank and recType
@@ -606,8 +614,7 @@
             for (it = programData.begin(); it != programData.end(); ++it)
             {
                 ProgramRankInfo *progInfo = &(it.data());
-                QString keyB = progInfo->title + ":" + progInfo->chanid + ":" +
-                               progInfo->startts.toString(Qt::ISODate);
+                QString keyB = makeProgramInfoUniqueKey(progInfo);
                 if(keyA == keyB)
                 {
                     progInfo->channelRank = channelRank;
@@ -757,10 +764,7 @@
                     {
                         ProgramRankInfo *progInfo = &(it.data());
 
-                        QString key = progInfo->title + ":" + 
-                                      progInfo->chanid + ":" +
-                                      progInfo->startts.toString(Qt::ISODate);
-
+                        QString key = makeProgramInfoUniqueKey(progInfo);
                         int progRank = progInfo->rank.toInt();
                         int finalRank = progRank + progInfo->channelRank +
                                         progInfo->recTypeRank;


More information about the mythtv-dev mailing list