Changeset 11061
- Timestamp:
- Jul 28, 2010, 2:43:47 PM (12 years ago)
- Location:
- trunk/qt
- Files:
-
- 2 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/qt/README.txt
r10903 r11061 1 1 VOLUNTEERS WANTED 2 2 3 - Qt developers and translators are needed 3 4 - If you find a bug, please report it at http://trac.transmissionbt.com/ 4 - New translations are encouraged5 - Windows devs: it would be interesting to see if/how this works on Windows6 5 7 6 ABOUT TRANSMISSION-QT … … 28 27 BUILDING 29 28 30 This currently is a little awkward. We're working on it...31 32 29 1. Prerequisites: Qt >= 4.4 and its development packages 33 30 2. Build Transmission as normal 34 3. If you built Transmission without DHT, edit qtr.pro: 35 - LIBS += $${TRANSMISSION_TOP}/third-party/dht/libdht.a 36 4. In the qt/ directory, type "qmake-qt4 qtr.pro" 37 5. In the qt/ directory, type "make" 38 6. In the qt/ directory, as root, type "INSTALL_ROOT=/usr make install" 31 3. In the qt/ directory, type "qmake qtr.pro" or "qmake-qt4 qtr.pro" 32 4. In the qt/ directory, type "make" 33 5. In the qt/ directory, as root, type "INSTALL_ROOT=/usr make install" 39 34 (Feel free to replace /usr with /usr/local or /opt or whatever) 40 35 -
trunk/qt/details.cc
r11059 r11061 59 59 #include "tracker-delegate.h" 60 60 #include "tracker-model.h" 61 #include "tracker-model-filter.h" 61 62 62 63 class Prefs; … … 170 171 171 172 QList<int> initKeys; 172 initKeys << Prefs :: SHOW_TRACKER_SCRAPES; 173 initKeys << Prefs :: SHOW_TRACKER_SCRAPES 174 << Prefs :: SHOW_BACKUP_TRACKERS; 173 175 foreach( int key, initKeys ) 174 176 refreshPref( key ); … … 224 226 switch( key ) 225 227 { 226 case Prefs ::SHOW_TRACKER_SCRAPES:228 case Prefs :: SHOW_TRACKER_SCRAPES: 227 229 myTrackerDelegate->setShowMore( myPrefs.getBool( key ) ); 228 myTrackerView->update( ); 230 myTrackerView->reset( ); 231 break; 232 233 case Prefs :: SHOW_BACKUP_TRACKERS: 234 myTrackerFilter->setShowBackupTrackers( myPrefs.getBool( key ) ); 229 235 break; 230 236 … … 867 873 868 874 void 875 Details :: onShowBackupTrackersToggled( bool val ) 876 { 877 myPrefs.set( Prefs::SHOW_BACKUP_TRACKERS, val ); 878 } 879 880 void 869 881 Details :: onHonorsSessionLimitsToggled( bool val ) 870 882 { … … 997 1009 assert( selectedRows.size( ) == 1 ); 998 1010 QModelIndex i = selectionModel->currentIndex( ); 999 const TrackerInfo trackerInfo = myTracker Model->data( i, TrackerModel::TrackerRole ).value<TrackerInfo>();1011 const TrackerInfo trackerInfo = myTrackerView->model()->data( i, TrackerModel::TrackerRole ).value<TrackerInfo>(); 1000 1012 1001 1013 bool ok = false; … … 1037 1049 foreach( QModelIndex i, selectedRows ) 1038 1050 { 1039 const TrackerInfo inf = myTracker Model->data( i, TrackerModel::TrackerRole ).value<TrackerInfo>();1051 const TrackerInfo inf = myTrackerView->model()->data( i, TrackerModel::TrackerRole ).value<TrackerInfo>(); 1040 1052 torrentId_to_urls[ inf.torrentId ].append( inf.st.announce ); 1041 1053 } … … 1165 1177 v2->setSpacing( HIG::PAD ); 1166 1178 1179 myTrackerModel = new TrackerModel; 1180 myTrackerFilter = new TrackerModelFilter; 1181 myTrackerFilter->setSourceModel( myTrackerModel ); 1167 1182 myTrackerView = new QTreeView; 1168 myTrackerView->setModel( myTracker Model = new TrackerModel);1183 myTrackerView->setModel( myTrackerFilter ); 1169 1184 myTrackerView->setHeaderHidden( true ); 1170 1185 myTrackerView->setSelectionMode( QTreeWidget::ExtendedSelection ); … … 1213 1228 v->addWidget( c, 1 ); 1214 1229 connect( c, SIGNAL(clicked(bool)), this, SLOT(onShowTrackerScrapesToggled(bool)) ); 1230 1231 c = new QCheckBox( tr( "Show &backup trackers" ) ); 1232 c->setChecked( myPrefs.getBool( Prefs::SHOW_BACKUP_TRACKERS ) ); 1233 myShowBackupTrackersCheck = c; 1234 v->addWidget( c, 1 ); 1235 connect( c, SIGNAL(clicked(bool)), this, SLOT(onShowBackupTrackersToggled(bool)) ); 1215 1236 1216 1237 return top; -
trunk/qt/details.h
r11059 r11061 39 39 class TrackerDelegate; 40 40 class TrackerModel; 41 class TrackerModelFilter; 41 42 42 43 class Details: public QDialog … … 93 94 QCheckBox * mySingleUpCheck; 94 95 QCheckBox * myShowTrackerScrapesCheck; 96 QCheckBox * myShowBackupTrackersCheck; 95 97 QPushButton * myAddTrackerButton; 96 98 QPushButton * myEditTrackerButton; … … 122 124 123 125 TrackerModel * myTrackerModel; 126 TrackerModelFilter * myTrackerFilter; 124 127 TrackerDelegate * myTrackerDelegate; 125 128 QTreeView * myTrackerView; … … 149 152 void onIdleLimitChanged( int ); 150 153 void onShowTrackerScrapesToggled( bool ); 154 void onShowBackupTrackersToggled( bool ); 151 155 void onTrackerSelectionChanged( ); 152 156 void onAddTrackerClicked( ); -
trunk/qt/prefs.cc
r11044 r11061 46 46 { STATUSBAR, "show-statusbar", QVariant::Bool }, 47 47 { STATUSBAR_STATS, "statusbar-stats", QVariant::String }, 48 { SHOW_TRACKER_SCRAPES, "show-tracker-scrapes", QVariant::Bool }, 48 { SHOW_TRACKER_SCRAPES, "show-extra-peer-details", QVariant::Bool }, 49 { SHOW_BACKUP_TRACKERS, "show-backup-trackers", QVariant::Bool }, 49 50 { TOOLBAR, "show-toolbar" , QVariant::Bool }, 50 51 { BLOCKLIST_DATE, "blocklist-date", QVariant::DateTime }, … … 240 241 Prefs :: initDefaults( tr_benc * d ) 241 242 { 242 tr_bencDictAddStr( d, keyStr(DIR_WATCH), tr_getDefaultDownloadDir( ) ); 243 tr_bencDictAddInt( d, keyStr(DIR_WATCH_ENABLED), false ); 244 tr_bencDictAddInt( d, keyStr(INHIBIT_HIBERNATION), false ); 245 tr_bencDictAddInt( d, keyStr(BLOCKLIST_DATE), 0 ); 246 tr_bencDictAddInt( d, keyStr(BLOCKLIST_UPDATES_ENABLED), true ); 247 tr_bencDictAddStr( d, keyStr(OPEN_DIALOG_FOLDER), QDir::home().absolutePath().toLatin1() ); 248 tr_bencDictAddInt( d, keyStr(SHOW_TRACKER_SCRAPES), false ); 249 tr_bencDictAddInt( d, keyStr(TOOLBAR), true ); 250 tr_bencDictAddInt( d, keyStr(FILTERBAR), true ); 251 tr_bencDictAddInt( d, keyStr(STATUSBAR), true ); 252 tr_bencDictAddInt( d, keyStr(SHOW_TRAY_ICON), false ); 253 tr_bencDictAddInt( d, keyStr(SHOW_DESKTOP_NOTIFICATION), true ); 254 tr_bencDictAddStr( d, keyStr(STATUSBAR_STATS), "total-ratio" ); 255 tr_bencDictAddInt( d, keyStr(OPTIONS_PROMPT), true ); 256 tr_bencDictAddInt( d, keyStr(MAIN_WINDOW_HEIGHT), 500 ); 257 tr_bencDictAddInt( d, keyStr(MAIN_WINDOW_WIDTH), 300 ); 258 tr_bencDictAddInt( d, keyStr(MAIN_WINDOW_X), 50 ); 259 tr_bencDictAddInt( d, keyStr(MAIN_WINDOW_Y), 50 ); 260 tr_bencDictAddStr( d, keyStr(FILTER_MODE), "all" ); 261 tr_bencDictAddStr( d, keyStr(MAIN_WINDOW_LAYOUT_ORDER), "menu,toolbar,filter,list,statusbar" ); 262 tr_bencDictAddStr( d, keyStr(DOWNLOAD_DIR), tr_getDefaultDownloadDir( ) ); 263 tr_bencDictAddInt( d, keyStr(ASKQUIT), true ); 264 tr_bencDictAddStr( d, keyStr(SORT_MODE), "sort-by-name" ); 265 tr_bencDictAddInt( d, keyStr(SORT_REVERSED), false ); 266 tr_bencDictAddInt( d, keyStr(COMPACT_VIEW), false ); 267 tr_bencDictAddStr( d, keyStr(SESSION_REMOTE_HOST), "localhost" ); 268 tr_bencDictAddInt( d, keyStr(SESSION_REMOTE_PORT), atoi(TR_DEFAULT_RPC_PORT_STR) ); 243 tr_bencDictAddStr ( d, keyStr(DIR_WATCH), tr_getDefaultDownloadDir( ) ); 244 tr_bencDictAddBool( d, keyStr(DIR_WATCH_ENABLED), false ); 245 tr_bencDictAddBool( d, keyStr(INHIBIT_HIBERNATION), false ); 246 tr_bencDictAddInt ( d, keyStr(BLOCKLIST_DATE), 0 ); 247 tr_bencDictAddBool( d, keyStr(BLOCKLIST_UPDATES_ENABLED), true ); 248 tr_bencDictAddStr ( d, keyStr(OPEN_DIALOG_FOLDER), QDir::home().absolutePath().toLatin1() ); 249 tr_bencDictAddInt ( d, keyStr(SHOW_TRACKER_SCRAPES), false ); 250 tr_bencDictAddBool( d, keyStr(TOOLBAR), true ); 251 tr_bencDictAddBool( d, keyStr(FILTERBAR), true ); 252 tr_bencDictAddBool( d, keyStr(STATUSBAR), true ); 253 tr_bencDictAddBool( d, keyStr(SHOW_TRAY_ICON), false ); 254 tr_bencDictAddBool( d, keyStr(SHOW_DESKTOP_NOTIFICATION), true ); 255 tr_bencDictAddStr ( d, keyStr(STATUSBAR_STATS), "total-ratio" ); 256 tr_bencDictAddBool( d, keyStr(SHOW_TRACKER_SCRAPES), false ); 257 tr_bencDictAddBool( d, keyStr(SHOW_BACKUP_TRACKERS), false ); 258 tr_bencDictAddBool( d, keyStr(OPTIONS_PROMPT), true ); 259 tr_bencDictAddInt ( d, keyStr(MAIN_WINDOW_HEIGHT), 500 ); 260 tr_bencDictAddInt ( d, keyStr(MAIN_WINDOW_WIDTH), 300 ); 261 tr_bencDictAddInt ( d, keyStr(MAIN_WINDOW_X), 50 ); 262 tr_bencDictAddInt ( d, keyStr(MAIN_WINDOW_Y), 50 ); 263 tr_bencDictAddStr ( d, keyStr(FILTER_MODE), "all" ); 264 tr_bencDictAddStr ( d, keyStr(MAIN_WINDOW_LAYOUT_ORDER), "menu,toolbar,filter,list,statusbar" ); 265 tr_bencDictAddStr ( d, keyStr(DOWNLOAD_DIR), tr_getDefaultDownloadDir( ) ); 266 tr_bencDictAddBool( d, keyStr(ASKQUIT), true ); 267 tr_bencDictAddStr ( d, keyStr(SORT_MODE), "sort-by-name" ); 268 tr_bencDictAddBool( d, keyStr(SORT_REVERSED), false ); 269 tr_bencDictAddBool( d, keyStr(COMPACT_VIEW), false ); 270 tr_bencDictAddStr ( d, keyStr(SESSION_REMOTE_HOST), "localhost" ); 271 tr_bencDictAddInt ( d, keyStr(SESSION_REMOTE_PORT), atoi(TR_DEFAULT_RPC_PORT_STR) ); 269 272 tr_bencDictAddBool( d, keyStr(SESSION_IS_REMOTE), false ); 270 273 tr_bencDictAddBool( d, keyStr(SESSION_REMOTE_AUTH), false ); -
trunk/qt/prefs.h
r11044 r11061 50 50 STATUSBAR_STATS, 51 51 SHOW_TRACKER_SCRAPES, 52 SHOW_BACKUP_TRACKERS, 52 53 TOOLBAR, 53 54 BLOCKLIST_DATE, -
trunk/qt/qtr.pro
r11059 r11061 37 37 stats-dialog.cc torrent.cc torrent-delegate.cc \ 38 38 torrent-delegate-min.cc torrent-filter.cc torrent-model.cc \ 39 tracker-delegate.cc tracker-model.cc tr iconpushbutton.cc \40 utils.cc watchdir.cc39 tracker-delegate.cc tracker-model.cc tracker-model-filter.cc \ 40 triconpushbutton.cc utils.cc watchdir.cc 41 41 HEADERS += $$replace(SOURCES, .cc, .h) 42 42 HEADERS += speed.h types.h -
trunk/qt/tracker-delegate.cc
r11059 r11061 26 26 #include <QUrl> 27 27 28 #include <libtransmission/transmission.h> 29 #include <libtransmission/utils.h> 30 28 31 #include "favicon.h" 29 32 #include "formatter.h" … … 147 150 148 151 // hostname 149 const QString host = Favicons::getHost( QUrl( inf.st.announce ) );150 152 str += inf.st.isBackup ? "<i>" : "<b>"; 151 str += host; 153 char * host = NULL; 154 int port = 0; 155 tr_urlParse( inf.st.announce.toUtf8().constData(), -1, NULL, &host, &port, NULL ); 156 str += QString( "%1:%2" ).arg( host ).arg( port ); 157 tr_free( host ); 152 158 if( !key.isEmpty( ) ) str += " - " + key; 153 159 str += inf.st.isBackup ? "</i>" : "</b>"; … … 170 176 else if( inf.st.lastAnnounceTimedOut ) 171 177 { 172 str += tr( "Peer list request timed out %1%2%3 ago; will retry" )178 str += tr( "Peer list request %1timed out%2 %3 ago; will retry" ) 173 179 .arg( timeout_markup_begin ) 174 .arg( t str)175 .arg( t imeout_markup_end);180 .arg( timeout_markup_end ) 181 .arg( tstr ); 176 182 } 177 183 else 178 184 { 179 str += tr( "Got an error %1 '%2'%3 %4 ago" )185 str += tr( "Got an error %1\"%2\"%3 %4 ago" ) 180 186 .arg( err_markup_begin ) 181 187 .arg( tstr ) … … 188 194 { 189 195 case TR_TRACKER_INACTIVE: 190 if( inf.st.hasAnnounced ) {196 if( !inf.st.hasAnnounced ) { 191 197 str += "<br/>\n"; 192 198 str += tr( "No updates scheduled" ); … … 233 239 else 234 240 { 235 str += tr( "Got a scrape error %1 '%2'%3 %4 ago" )241 str += tr( "Got a scrape error %1\"%2\"%3 %4 ago" ) 236 242 .arg( err_markup_begin ) 237 243 .arg( inf.st.lastScrapeResult ) … … 271 277 return str; 272 278 } 273 274 #if 0275 276 if( inf.isBackup )277 str += "<i>";278 QString announce;279 int announceState;280 int downloadCount;281 bool hasAnnounced; bool hasScraped;282 QString host;283 int id;284 bool isBackup;285 int lastAnnouncePeerCount;286 int lastAnnounceResult;287 int lastAnnounceStartTime;288 bool lastAnnounceSucceeded;289 int lastAnnounceTime;290 bool lastAnnounceTimedOut;291 QString lastScrapeResult;292 int lastScrapeStartTime;293 bool lastScrapeSucceeded;294 int lastScrapeTime;295 bool lastScrapeTimedOut;296 int leecherCount;297 int nextAnnounceTime;298 int nextScrapeTime;299 int scrapeState;300 int seederCount;301 int tier;302 303 }304 #endif -
trunk/qt/tracker-model.cc
r11059 r11061 64 64 struct CompareTrackers { 65 65 bool operator()( const TrackerInfo& a, const TrackerInfo& b ) const { 66 if( a.torrentId != b.torrentId ) return a.torrentId < b.torrentId; 67 if( a.st.tier != b.st.tier ) return a.st.tier < b.st.tier; 66 if( a.torrentId != b.torrentId ) return a.torrentId < b.torrentId; 67 if( a.st.tier != b.st.tier ) return a.st.tier < b.st.tier; 68 if( a.st.isBackup != b.st.isBackup ) return !a.st.isBackup; 68 69 return a.st.announce < b.st.announce; 69 70 }
Note: See TracChangeset
for help on using the changeset viewer.