From a73d164e9fae9059be1b347270f1c7debbc00f3e Mon Sep 17 00:00:00 2001 From: Alan Fitton Date: Wed, 4 Jan 2012 20:26:19 +0000 Subject: reindent with gnu indent. add keyboard accelerators for view menu, fix toggle filter widget also connected to toggle graph cb. add Lithuanian translation thanks to Algimantas Margevičius via launchpad. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- po/LINGUAS | 1 + po/lt.po | 1297 +++++++++++++++++++++++++++++++ src/icon-turtle.h | 122 +-- src/installer.nsi | 26 + src/protocol-constants.h | 4 +- src/torrent.c | 3 +- src/trg-cell-renderer-counter.c | 108 +-- src/trg-cell-renderer-file-icon.c | 67 +- src/trg-cell-renderer-priority.c | 8 +- src/trg-cell-renderer-speed.c | 3 +- src/trg-cell-renderer-wanted.c | 24 +- src/trg-client.c | 218 ++++-- src/trg-files-model-common.c | 101 ++- src/trg-files-model-common.h | 28 +- src/trg-files-model.c | 173 +++-- src/trg-files-tree-view-common.c | 93 ++- src/trg-files-tree-view-common.h | 23 +- src/trg-files-tree-view.c | 103 ++- src/trg-files-tree-view.h | 21 +- src/trg-icons.c | 65 +- src/trg-icons.h | 5 +- src/trg-json-widgets.c | 77 +- src/trg-json-widgets.h | 22 +- src/trg-main-window.c | 1540 ++++++++++++++++++++++--------------- src/trg-menu-bar.c | 50 +- src/trg-menu-bar.h | 3 +- src/trg-preferences-dialog.c | 5 +- src/trg-remote-prefs-dialog.c | 474 +++++++----- src/trg-state-selector.c | 427 ++++++---- src/trg-state-selector.h | 3 +- src/trg-status-bar.c | 87 ++- src/trg-torrent-add-dialog.c | 484 +++++++----- src/trg-torrent-model.c | 475 +++++++----- src/trg-torrent-props-dialog.c | 26 +- src/trg-tree-view.c | 41 +- src/util.c | 113 +-- src/util.h | 34 +- 37 files changed, 4321 insertions(+), 2033 deletions(-) create mode 100644 po/lt.po diff --git a/po/LINGUAS b/po/LINGUAS index 700da55..b1077fa 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,4 +1,5 @@ de +lt ko pl ru diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..e15963a --- /dev/null +++ b/po/lt.po @@ -0,0 +1,1297 @@ +# Lithuanian translation for transmission-remote-gtk +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the transmission-remote-gtk package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: transmission-remote-gtk\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-01-04 11:06+0000\n" +"PO-Revision-Date: 2012-01-04 10:40+0000\n" +"Last-Translator: Algimantas Margevičius \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"(n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Launchpad-Export-Date: 2012-01-04 18:56+0000\n" +"X-Generator: Launchpad (build 14616)\n" + +#: src/torrent.c:321 src/torrent.c:341 src/trg-state-selector.c:584 +msgid "Downloading" +msgstr "Atsiunčiama" + +#: src/torrent.c:323 +msgid "Queued download" +msgstr "Atsiuntimai eilėje" + +#: src/torrent.c:325 src/torrent.c:349 +msgid "Waiting To Check" +msgstr "Laukia patikros" + +#: src/torrent.c:327 src/torrent.c:347 src/trg-state-selector.c:603 +msgid "Checking" +msgstr "Tikrinama" + +#: src/torrent.c:329 +msgid "Queued seed" +msgstr "Eilėje skleidimui" + +#: src/torrent.c:331 src/torrent.c:345 src/trg-remote-prefs-dialog.c:308 +#: src/trg-state-selector.c:589 src/trg-torrent-props-dialog.c:212 +msgid "Seeding" +msgstr "Skleidžiama" + +#: src/torrent.c:333 src/torrent.c:343 src/trg-state-selector.c:594 +msgid "Paused" +msgstr "Pristabdyta" + +#: src/torrent.c:354 +msgid "Unknown" +msgstr "Nežinoma" + +#: src/trg-about-window.c:77 +msgid "A remote client to transmission-daemon." +msgstr "Nuotolinis transmission demono klientas" + +#: src/trg-cell-renderer-priority.c:74 src/trg-torrent-add-dialog.c:401 +#: src/trg-torrent-props-dialog.c:182 +msgid "Low" +msgstr "Žemas" + +#: src/trg-cell-renderer-priority.c:76 src/trg-torrent-add-dialog.c:402 +#: src/trg-torrent-props-dialog.c:182 +msgid "High" +msgstr "Aukštas" + +#: src/trg-cell-renderer-priority.c:78 src/trg-torrent-add-dialog.c:401 +#: src/trg-torrent-props-dialog.c:182 +msgid "Normal" +msgstr "Normalus" + +#: src/trg-cell-renderer-priority.c:80 +msgid "Mixed" +msgstr "Mišrus" + +#: src/trg-files-tree-view.c:163 src/trg-general-panel.c:256 +#: src/trg-torrent-add-dialog.c:306 src/trg-torrent-tree-view.c:44 +msgid "Name" +msgstr "Pavadinimas" + +#: src/trg-files-tree-view.c:166 src/trg-general-panel.c:259 +#: src/trg-torrent-add-dialog.c:324 src/trg-torrent-tree-view.c:49 +msgid "Size" +msgstr "Dydis" + +#: src/trg-files-tree-view.c:169 src/trg-peers-tree-view.c:66 +msgid "Progress" +msgstr "Eiga" + +#: src/trg-files-tree-view.c:171 src/trg-files-tree-view-common.c:65 +#: src/trg-torrent-add-dialog.c:336 +msgid "Download" +msgstr "Atsisiųsti" + +#: src/trg-files-tree-view.c:173 src/trg-torrent-add-dialog.c:350 +#: src/trg-torrent-tree-view.c:124 +msgid "Priority" +msgstr "Prioritetas" + +#: src/trg-files-tree-view-common.c:47 +msgid "High Priority" +msgstr "Aukštas prioritetas" + +#: src/trg-files-tree-view-common.c:51 +msgid "Normal Priority" +msgstr "Normalus prioritetas" + +#: src/trg-files-tree-view-common.c:55 +msgid "Low Priority" +msgstr "Žemas prioritetas" + +#: src/trg-files-tree-view-common.c:73 +msgid "Skip" +msgstr "Praleisti" + +#: src/trg-files-tree-view-common.c:79 +msgid "Expand All" +msgstr "" + +#: src/trg-files-tree-view-common.c:83 +msgid "Collapse All" +msgstr "" + +#: src/trg-general-panel.c:147 src/trg-general-panel.c:192 +msgid "N/A" +msgstr "Nėra" + +#: src/trg-general-panel.c:152 +msgid "(Private)" +msgstr "(Privatus)" + +#: src/trg-general-panel.c:152 +msgid "(Public)" +msgstr "(Viešas)" + +#: src/trg-general-panel.c:180 src/trg-main-window.c:911 +#: src/trg-main-window.c:1234 src/trg-main-window.c:1713 +#: src/trg-state-selector.c:477 src/trg-torrent-add-url-dialog.c:67 +#: src/util.c:322 +msgid "Error" +msgstr "Klaida" + +#: src/trg-general-panel.c:261 src/trg-torrent-tree-view.c:102 +msgid "ETA" +msgstr "Likęs laikas" + +#: src/trg-general-panel.c:263 src/trg-torrent-tree-view.c:130 +msgid "Completed" +msgstr "Užbaigtas" + +#: src/trg-general-panel.c:266 +msgid "Seeders" +msgstr "Skleidėjai" + +#: src/trg-general-panel.c:268 +msgid "Rate Down" +msgstr "Sumažinti įvertinimą" + +#: src/trg-general-panel.c:270 src/trg-torrent-tree-view.c:107 +msgid "Downloaded" +msgstr "Atsisiųsta" + +#: src/trg-general-panel.c:273 src/trg-torrent-tree-view.c:60 +msgid "Leechers" +msgstr "Siuntėjai" + +#: src/trg-general-panel.c:275 +msgid "Rate Up" +msgstr "Padidinti įvertinimą" + +#: src/trg-general-panel.c:277 src/trg-torrent-tree-view.c:104 +msgid "Uploaded" +msgstr "Išsiųsta" + +#: src/trg-general-panel.c:280 src/trg-torrent-tree-view.c:53 +msgid "Status" +msgstr "Būsena" + +#: src/trg-general-panel.c:282 src/trg-torrent-tree-view.c:110 +msgid "Ratio" +msgstr "Santykis" + +#: src/trg-general-panel.c:285 src/trg-torrent-tree-view.c:118 +msgid "Location" +msgstr "Vieta" + +#: src/trg-main-window.c:333 +msgid "This torrent has completed." +msgstr "Šis torentas parsiųstas." + +#: src/trg-main-window.c:343 +msgid "This torrent has been added." +msgstr "Šis torentas pridėtas." + +#: src/trg-main-window.c:513 +msgid "No hostname set" +msgstr "Nenurodytas mazgo vardas" + +#: src/trg-main-window.c:516 +msgid "Unknown error getting settings" +msgstr "Gaunant nustatymus įvyko nežinoma klaida" + +#: src/trg-main-window.c:529 +msgid "Connecting..." +msgstr "Jungiamasi..." + +#: src/trg-main-window.c:748 +#, c-format +msgid "Remove torrent \"%s\"?" +msgstr "Pašalinti torentą „%s“?" + +#: src/trg-main-window.c:749 +#, c-format +msgid "Remove %d torrents?" +msgstr "Pašalinti %d torentus?" + +#: src/trg-main-window.c:771 +#, c-format +msgid "Remove and delete torrent \"%s\"?" +msgstr "Pašalinti ir ištrinti torentą „%s“?" + +#: src/trg-main-window.c:772 +#, c-format +msgid "Remove and delete %d torrents?" +msgstr "Pašalinti ir ištrinti %d torentus?" + +#: src/trg-main-window.c:832 src/trg-preferences-dialog.c:887 +#: src/trg-remote-prefs-dialog.c:600 +msgid "General" +msgstr "Bendri" + +#: src/trg-main-window.c:839 +msgid "Trackers" +msgstr "Sekimo serveriai" + +#: src/trg-main-window.c:846 +msgid "Files" +msgstr "Failai" + +#: src/trg-main-window.c:852 src/trg-remote-prefs-dialog.c:339 +#: src/trg-torrent-props-dialog.c:230 src/trg-trackers-tree-view.c:189 +msgid "Peers" +msgstr "Siuntėjai ir skleidėjai" + +#: src/trg-main-window.c:906 +#, c-format +msgid "This application supports Transmission %.2f and later, you have %.2f." +msgstr "Ši programa palaiko Transmission %.2f ir naujesnes, jūs turite %.2f." + +#: src/trg-main-window.c:949 src/trg-torrent-tree-view.c:70 +msgid "Connected" +msgstr "Prisijungta" + +#: src/trg-main-window.c:949 src/trg-status-bar.c:70 src/trg-status-bar.c:96 +msgid "Disconnected" +msgstr "Atsijungta" + +#: src/trg-main-window.c:978 +#, c-format +msgid "Downloading %d" +msgstr "Parsiunčiama %d" + +#: src/trg-main-window.c:980 +#, c-format +msgid "Seeding %d" +msgstr "Skleidžiama %d" + +#: src/trg-main-window.c:1035 +#, c-format +msgid "Request %d/%d failed: %s" +msgstr "Užklausa %d/%d nepavyko: %s" + +#: src/trg-main-window.c:1640 +msgid "No Limit" +msgstr "Be apribojimų" + +#: src/trg-main-window.c:1732 src/trg-menu-bar.c:547 src/trg-toolbar.c:238 +msgid "Properties" +msgstr "Savybės" + +#: src/trg-main-window.c:1734 src/trg-toolbar.c:231 +msgid "Resume" +msgstr "Tęsti" + +#: src/trg-main-window.c:1736 src/trg-toolbar.c:234 +msgid "Pause" +msgstr "Pristabdyti" + +#: src/trg-main-window.c:1738 +msgid "Verify" +msgstr "Patikrinti" + +#: src/trg-main-window.c:1740 +msgid "Re-announce" +msgstr "Paskelbti iš naujo" + +#: src/trg-main-window.c:1742 src/trg-torrent-move-dialog.c:121 +#: src/trg-torrent-move-dialog.c:128 +msgid "Move" +msgstr "Perkelti" + +#: src/trg-main-window.c:1744 src/trg-menu-bar.c:576 src/trg-toolbar.c:242 +msgid "Remove" +msgstr "Pašalinti" + +#: src/trg-main-window.c:1746 +msgid "Remove & Delete" +msgstr "Pašalinti ir ištrinti" + +#: src/trg-main-window.c:1768 src/trg-preferences-dialog.c:897 +msgid "Actions" +msgstr "Veiksmai" + +#: src/trg-main-window.c:1793 src/trg-menu-bar.c:591 +msgid "Start Now" +msgstr "Pradėti dabar" + +#: src/trg-main-window.c:1795 src/trg-menu-bar.c:596 +msgid "Move Up Queue" +msgstr "Eilėje perkelti aukštyn" + +#: src/trg-main-window.c:1797 src/trg-menu-bar.c:602 +msgid "Move Down Queue" +msgstr "Eilėje perkelti žemyn" + +#: src/trg-main-window.c:1799 src/trg-menu-bar.c:608 +msgid "Bottom Of Queue" +msgstr "Eilės apačia" + +#: src/trg-main-window.c:1801 src/trg-menu-bar.c:612 +msgid "Top Of Queue" +msgstr "Eilės viršus" + +#: src/trg-main-window.c:1809 src/trg-main-window.c:1883 +msgid "Down Limit" +msgstr "Parsiuntimo riba" + +#: src/trg-main-window.c:1813 src/trg-main-window.c:1888 +msgid "Up Limit" +msgstr "Išsiuntimo riba" + +#: src/trg-main-window.c:1838 src/trg-main-window.c:1843 +#: src/trg-remote-prefs-dialog.c:427 +msgid "Updating..." +msgstr "Atnaujinama..." + +#: src/trg-main-window.c:1857 src/trg-menu-bar.c:507 src/trg-toolbar.c:208 +msgid "Connect" +msgstr "Prisijungti" + +#: src/trg-main-window.c:1863 src/trg-toolbar.c:218 +msgid "Disconnect" +msgstr "Atsijungti" + +#: src/trg-main-window.c:1867 src/trg-toolbar.c:221 +#: src/trg-trackers-tree-view.c:284 src/trg-trackers-tree-view.c:311 +msgid "Add" +msgstr "Pridėti" + +#: src/trg-main-window.c:1870 +msgid "Add from URL" +msgstr "Pridėti iš URL" + +#: src/trg-main-window.c:1873 +msgid "Resume All" +msgstr "Pratęsti visus" + +#: src/trg-main-window.c:1877 +msgid "Pause All" +msgstr "Sustabdyti visus" + +#: src/trg-main-window.c:1893 +msgid "Quit" +msgstr "Išeiti" + +#: src/trg-main-window.c:1977 src/trg-menu-bar.c:412 +msgid "Graph" +msgstr "Diagrama" + +#: src/trg-main-window.c:2131 +msgid "Transmission Remote" +msgstr "Transmission Remote" + +#: src/trg-menu-bar.c:378 +msgid "_View" +msgstr "_Rodymas" + +#: src/trg-menu-bar.c:385 src/trg-preferences-dialog.c:670 +msgid "State selector" +msgstr "Būsenos pasirinkimas" + +#: src/trg-menu-bar.c:390 src/trg-preferences-dialog.c:677 +msgid "Directory filters" +msgstr "Aplankų filtrai" + +#: src/trg-menu-bar.c:398 src/trg-preferences-dialog.c:684 +msgid "Tracker filters" +msgstr "Serverių filtrai" + +#: src/trg-menu-bar.c:406 src/trg-preferences-dialog.c:691 +msgid "Torrent Details" +msgstr "Išsamesnė torento informacija" + +#: src/trg-menu-bar.c:416 +msgid "_Statistics" +msgstr "_Statistika" + +#: src/trg-menu-bar.c:428 +msgid "_Options" +msgstr "_Parinktys" + +#: src/trg-menu-bar.c:434 +msgid "_Local Preferences" +msgstr "_Vietiniai nustatymai" + +#: src/trg-menu-bar.c:440 +msgid "_Remote Preferences" +msgstr "_Nuotoliniai nustatymai" + +#: src/trg-menu-bar.c:500 +msgid "_File" +msgstr "_Failas" + +#: src/trg-menu-bar.c:513 +msgid "_Disconnect" +msgstr "_Atsijungti" + +#: src/trg-menu-bar.c:518 +msgid "_Add" +msgstr "_Pridėti" + +#: src/trg-menu-bar.c:523 +msgid "Add from _URL" +msgstr "Pridėti iš _URL" + +#: src/trg-menu-bar.c:528 +msgid "_Quit" +msgstr "Iš_eiti" + +#: src/trg-menu-bar.c:540 +msgid "_Torrent" +msgstr "_Torentas" + +#: src/trg-menu-bar.c:552 +msgid "_Resume" +msgstr "_Tęsti" + +#: src/trg-menu-bar.c:557 +msgid "_Pause" +msgstr "_Pristabdyti" + +#: src/trg-menu-bar.c:562 +msgid "_Verify" +msgstr "_Patikrinti" + +#: src/trg-menu-bar.c:568 +msgid "Re-_announce" +msgstr "_Paskelbti iš naujo" + +#: src/trg-menu-bar.c:571 +msgid "_Move" +msgstr "P_erkelti" + +#: src/trg-menu-bar.c:582 +msgid "Remove and Delete" +msgstr "Pašalinti ir ištrinti" + +#: src/trg-menu-bar.c:620 +msgid "_Resume All" +msgstr "_Pratęsti visus" + +#: src/trg-menu-bar.c:625 +msgid "_Pause All" +msgstr "_Pristabdyti visus" + +#: src/trg-menu-bar.c:637 +msgid "_Help" +msgstr "_Žinynas" + +#: src/trg-menu-bar.c:643 +msgid "_About" +msgstr "_Apie" + +#: src/trg-peers-tree-view.c:51 +msgid "IP" +msgstr "IP" + +#: src/trg-peers-tree-view.c:55 src/trg-trackers-tree-view.c:208 +msgid "Host" +msgstr "Serveris" + +#: src/trg-peers-tree-view.c:59 +msgid "Country" +msgstr "Šalis" + +#: src/trg-peers-tree-view.c:62 src/trg-torrent-tree-view.c:96 +msgid "Down Speed" +msgstr "Parsiuntimo greitis" + +#: src/trg-peers-tree-view.c:64 src/trg-torrent-tree-view.c:99 +msgid "Up Speed" +msgstr "Išsiuntimo greitis" + +#: src/trg-peers-tree-view.c:68 +msgid "Flags" +msgstr "Vėliavos" + +#: src/trg-peers-tree-view.c:70 +msgid "Client" +msgstr "Klientas" + +#: src/trg-preferences-dialog.c:401 +msgid "Updates" +msgstr "Atnaujinimai" + +#: src/trg-preferences-dialog.c:403 +msgid "Update active torrents only" +msgstr "Atnaujinti tik aktyvius torentus" + +#: src/trg-preferences-dialog.c:410 +msgid "Full update every (?) updates" +msgstr "Pilnas atnaujinias kas (?) atnaujinimus" + +#: src/trg-preferences-dialog.c:424 +msgid "Update interval:" +msgstr "Atnaujinimo intervalas:" + +#: src/trg-preferences-dialog.c:428 +msgid "Minimised update interval:" +msgstr "Sumažinto atnaujinimo intervalas:" + +#: src/trg-preferences-dialog.c:431 +msgid "Torrents" +msgstr "Torentai" + +#: src/trg-preferences-dialog.c:433 +msgid "Start paused" +msgstr "Pradėti sustabdytoje būsenoj" + +#: src/trg-preferences-dialog.c:437 +msgid "Options dialog on add" +msgstr "Parinkčių dialogas pridedant" + +#: src/trg-preferences-dialog.c:442 src/trg-torrent-add-dialog.c:609 +msgid "Delete local .torrent file after adding" +msgstr "Pridėjus ištrinti vietinį .torrent failą" + +#: src/trg-preferences-dialog.c:595 +msgid "Commands" +msgstr "Komandos" + +#: src/trg-preferences-dialog.c:605 src/trg-preferences-dialog.c:643 +msgid "Label" +msgstr "Etiketė" + +#: src/trg-preferences-dialog.c:608 +msgid "Command" +msgstr "Komanda" + +#: src/trg-preferences-dialog.c:633 +msgid "Remote Download Directories" +msgstr "Nuotolinio parsiuntimo aplankai" + +#: src/trg-preferences-dialog.c:646 +msgid "Directory" +msgstr "Aplankas" + +#: src/trg-preferences-dialog.c:668 src/trg-preferences-dialog.c:892 +msgid "View" +msgstr "Rodymas" + +#: src/trg-preferences-dialog.c:699 +msgid "Show graph" +msgstr "Rodyti diagramą" + +#: src/trg-preferences-dialog.c:706 +msgid "System Tray" +msgstr "Sistemos dėklas" + +#: src/trg-preferences-dialog.c:708 +msgid "Show in system tray" +msgstr "Rodyti sistemos dėkle" + +#: src/trg-preferences-dialog.c:716 +msgid "Minimise to system tray" +msgstr "Sumažinti į sistemos dėklą" + +#: src/trg-preferences-dialog.c:728 +msgid "Notifications" +msgstr "Pranešimai" + +#: src/trg-preferences-dialog.c:730 +msgid "Torrent added notifications" +msgstr "Pranešimai apie pridėtą torentą" + +#: src/trg-preferences-dialog.c:734 +msgid "Torrent complete notifications" +msgstr "Pranešimai apie baigtą torentą" + +#: src/trg-preferences-dialog.c:761 +msgid "Profile: " +msgstr "Profilis: " + +#: src/trg-preferences-dialog.c:787 +msgid "Name:" +msgstr "Pavadinimas:" + +#: src/trg-preferences-dialog.c:795 src/trg-preferences-dialog.c:882 +msgid "Connection" +msgstr "Prisijungimas" + +#: src/trg-preferences-dialog.c:798 +msgid "Host:" +msgstr "Serveris:" + +#: src/trg-preferences-dialog.c:802 +msgid "Port:" +msgstr "Prievadas:" + +#: src/trg-preferences-dialog.c:805 +msgid "Username:" +msgstr "Naudotojo vardas:" + +#: src/trg-preferences-dialog.c:809 +msgid "Password:" +msgstr "Slaptažodis:" + +#: src/trg-preferences-dialog.c:811 +msgid "Automatically connect" +msgstr "Prisijungti automatiškai" + +#: src/trg-preferences-dialog.c:817 +msgid "SSL" +msgstr "SSL" + +#: src/trg-preferences-dialog.c:824 +msgid "Timeout:" +msgstr "" + +#: src/trg-preferences-dialog.c:828 +msgid "Retries:" +msgstr "" + +#: src/trg-preferences-dialog.c:871 src/trg-toolbar.c:257 +msgid "Local Preferences" +msgstr "Vietiniai nustatymai" + +#: src/trg-preferences-dialog.c:902 +msgid "Directories" +msgstr "Aplankai" + +#: src/trg-remote-prefs-dialog.c:262 +msgid "Bandwidth limits" +msgstr "Duomenų srauto ribos" + +#: src/trg-remote-prefs-dialog.c:265 +msgid "Down Limit (KiB/s)" +msgstr "Pars. riba (KiB/s)" + +#: src/trg-remote-prefs-dialog.c:272 +msgid "Up Limit (KiB/s)" +msgstr "Išs. riba (KiB/s)" + +#: src/trg-remote-prefs-dialog.c:277 +msgid "Alternate limits" +msgstr "Alternatyvios ribos" + +#: src/trg-remote-prefs-dialog.c:280 +msgid "Alternate speed limits active" +msgstr "A;ternatyvios greičio ribos įjungtos" + +#: src/trg-remote-prefs-dialog.c:285 +msgid "Alternate time range" +msgstr "Alternatyvus laiko tarpas" + +#: src/trg-remote-prefs-dialog.c:291 +msgid "Alternate down limit (KiB/s)" +msgstr "Alternatyvi parsiuntimo riba (KiB/s)" + +#: src/trg-remote-prefs-dialog.c:295 +msgid "Alternate up limit (KiB/s)" +msgstr "Alternatyvi išsiuntimo riba (KiB/s)" + +#: src/trg-remote-prefs-dialog.c:311 +msgid "Seed ratio limit" +msgstr "Skleidimo santykio riba" + +#: src/trg-remote-prefs-dialog.c:317 +msgid "Queues" +msgstr "Eilės" + +#: src/trg-remote-prefs-dialog.c:320 +msgid "Download queue size" +msgstr "Parsiuntimo eilės dydis" + +#: src/trg-remote-prefs-dialog.c:326 +msgid "Seed queue size" +msgstr "Skleidimo eilės dydis" + +#: src/trg-remote-prefs-dialog.c:332 +msgid "Ignore stalled (minutes)" +msgstr "Nepaisyti įstrigusių (minutėmis)" + +#: src/trg-remote-prefs-dialog.c:343 +msgid "Global peer limit" +msgstr "Visuotinė siuntėjų riba" + +#: src/trg-remote-prefs-dialog.c:347 +msgid "Per torrent peer limit" +msgstr "Siuntėjų-skleidėjų riba torentui" + +#: src/trg-remote-prefs-dialog.c:358 +msgid "Retest" +msgstr "Bandyti dar kartą" + +#: src/trg-remote-prefs-dialog.c:368 +msgid "Port is open" +msgstr "" +"Prievadas yra atidarytas" + +#: src/trg-remote-prefs-dialog.c:373 +msgid "Port is closed" +msgstr "" +"Prievadas yra uždarytas" + +#: src/trg-remote-prefs-dialog.c:388 src/trg-remote-prefs-dialog.c:450 +msgid "Port test" +msgstr "Prievado testas" + +#: src/trg-remote-prefs-dialog.c:389 +msgid "Testing..." +msgstr "Tikrinama..." + +#: src/trg-remote-prefs-dialog.c:403 src/trg-remote-prefs-dialog.c:499 +msgid "Update" +msgstr "Atnaujinti" + +#: src/trg-remote-prefs-dialog.c:407 src/trg-remote-prefs-dialog.c:493 +#, c-format +msgid "Blocklist (%ld entries)" +msgstr "Blokavimų sąrašas (%ld įrašai)" + +#: src/trg-remote-prefs-dialog.c:444 src/trg-remote-prefs-dialog.c:604 +msgid "Connections" +msgstr "Prisijungimai" + +#: src/trg-remote-prefs-dialog.c:448 +msgid "Peer port" +msgstr "Siuntėjo-skleidėjo prievadas" + +#: src/trg-remote-prefs-dialog.c:451 +msgid "Test" +msgstr "Testas" + +#: src/trg-remote-prefs-dialog.c:455 +msgid "Required" +msgstr "Privalomas" + +#: src/trg-remote-prefs-dialog.c:456 +msgid "Preferred" +msgstr "Pageidautinas" + +#: src/trg-remote-prefs-dialog.c:456 +msgid "Tolerated" +msgstr "Gali būti" + +#: src/trg-remote-prefs-dialog.c:466 +msgid "Encryption" +msgstr "Šifravimas" + +#: src/trg-remote-prefs-dialog.c:469 +msgid "Random peer port on start" +msgstr "Paleidžiant atsitiktinis prievadas" + +#: src/trg-remote-prefs-dialog.c:474 +msgid "Peer port forwarding" +msgstr "Siuntėjų prievado persiuntimas" + +#: src/trg-remote-prefs-dialog.c:477 +msgid "Protocol" +msgstr "Protokolas" + +#: src/trg-remote-prefs-dialog.c:480 +msgid "Peer exchange (PEX)" +msgstr "Siuntėjų apsikeitimas (PEX)" + +#: src/trg-remote-prefs-dialog.c:484 +msgid "Distributed Hash Table (DHT)" +msgstr "Distributed Hash Table (DHT)" + +#: src/trg-remote-prefs-dialog.c:488 +msgid "Local peer discovery" +msgstr "Vietinių siuntėjų ieškojimas" + +#: src/trg-remote-prefs-dialog.c:491 +msgid "Blocklist" +msgstr "Blokuotų sąrašas" + +#: src/trg-remote-prefs-dialog.c:509 +msgid "Blocklist URL:" +msgstr "Blokuotų sąrašo URL:" + +#: src/trg-remote-prefs-dialog.c:525 +msgid "Environment" +msgstr "Aplinka" + +#: src/trg-remote-prefs-dialog.c:528 +msgid "Download directory" +msgstr "Atsisiuntimų aplankas" + +#: src/trg-remote-prefs-dialog.c:531 +msgid "Incomplete download dir" +msgstr "Nebaigtų parsiuntimo aplankas" + +#: src/trg-remote-prefs-dialog.c:536 +msgid "Torrent done script" +msgstr "Torento atlikimo scenarijus" + +#: src/trg-remote-prefs-dialog.c:545 +msgid "Cache size (MiB)" +msgstr "Podėlio dydis (MB)" + +#: src/trg-remote-prefs-dialog.c:548 +msgid "Behavior" +msgstr "Elgsena" + +#: src/trg-remote-prefs-dialog.c:551 +msgid "Rename partial files" +msgstr "Pervadinti nepilnus failus" + +#: src/trg-remote-prefs-dialog.c:556 +msgid "Trash original torrent files" +msgstr "Išmesti originalius torent failus" + +#: src/trg-remote-prefs-dialog.c:560 +msgid "Start added torrents" +msgstr "Pradėti prdėtus torentus" + +#: src/trg-remote-prefs-dialog.c:581 src/trg-toolbar.c:261 +msgid "Remote Preferences" +msgstr "Nuotoliniai nustatymai" + +#: src/trg-remote-prefs-dialog.c:608 src/trg-torrent-props-dialog.c:174 +msgid "Bandwidth" +msgstr "Duomenų srautas" + +#: src/trg-remote-prefs-dialog.c:612 src/trg-torrent-props-dialog.c:299 +msgid "Limits" +msgstr "Ribos" + +#: src/trg-state-selector.c:581 +msgid "All" +msgstr "Visi" + +#: src/trg-state-selector.c:586 src/trg-state-selector.c:643 +msgid "Queue Down" +msgstr "Eilėje žemyn" + +#: src/trg-state-selector.c:591 src/trg-state-selector.c:646 +msgid "Queue Up" +msgstr "Eilėje aukštyn" + +#: src/trg-state-selector.c:596 +msgid "Complete" +msgstr "Baigta" + +#: src/trg-state-selector.c:598 +msgid "Incomplete" +msgstr "Nebaigtas" + +#: src/trg-state-selector.c:601 +msgid "Active" +msgstr "Aktyvus" + +#: src/trg-stats-dialog.c:269 +msgid "Statistics" +msgstr "Statistika" + +#: src/trg-stats-dialog.c:288 +msgid "Version" +msgstr "Versija" + +#: src/trg-stats-dialog.c:290 +msgid "Download Total" +msgstr "Iš viso parsiųsta" + +#: src/trg-stats-dialog.c:292 +msgid "Upload Total" +msgstr "Iš viso išsiųsta" + +#: src/trg-stats-dialog.c:294 +msgid "Files Added" +msgstr "Pridėta failų" + +#: src/trg-stats-dialog.c:296 +msgid "Session Count" +msgstr "Seansų skaičius" + +#: src/trg-stats-dialog.c:298 +msgid "Time Active" +msgstr "Aktyvus laikas" + +#: src/trg-stats-dialog.c:303 +msgid "Statistic" +msgstr "Statistika" + +#: src/trg-stats-dialog.c:305 +msgid "Session" +msgstr "Seansas" + +#: src/trg-stats-dialog.c:308 +msgid "Cumulative" +msgstr "Didėjantis" + +#: src/trg-status-bar.c:126 +#, c-format +msgid "Connected to Transmission %g, getting torrents..." +msgstr "Prisijungta prie Transmission %g, gaunami torentai..." + +#: src/trg-status-bar.c:142 +#, c-format +msgid "Free space: %s" +msgstr "Laisva vieta: %s" + +#: src/trg-status-bar.c:154 +msgid "Disable alternate speed limits" +msgstr "Išjungti alternatyvias greičio ribas" + +#: src/trg-status-bar.c:155 +msgid "Enable alternate speed limits" +msgstr "Įjungti alternatyvias greičio ribas" + +#: src/trg-status-bar.c:190 src/trg-status-bar.c:196 +#, c-format +msgid " (Limit: %s)" +msgstr " (Riba: %s)" + +#: src/trg-status-bar.c:200 +#, c-format +msgid "Down: %s%s, Up: %s%s" +msgstr "Pars: %s%s, Išs: %s%s" + +#: src/trg-status-bar.c:205 +#, c-format +msgid "%d torrent: %d seeding, %d downloading, %d paused" +msgid_plural "%d torrents: %d seeding, %d downloading, %d paused" +msgstr[0] "%d torentas: %d skleidžiamas, %d parsiunčiamas, %d sustabdytas" +msgstr[1] "%d torentai: %d skleidžiami, %d parsiunčiami, %d sustabdyti" +msgstr[2] "%d torentų: %d skleidžiami, %d parsiunčiami, %d sustabdyti" + +#: src/trg-toolbar.c:246 +msgid "Remove with data" +msgstr "Pašalinti su duomenimis" + +#: src/trg-torrent-add-dialog.c:409 +msgid "Torrent files" +msgstr "Torentų failai" + +#: src/trg-torrent-add-dialog.c:414 +msgid "All files" +msgstr "Visi failai" + +#: src/trg-torrent-add-dialog.c:451 +msgid "" +"Unable to parse torrent file. File preferences unavailable, but you can " +"still try uploading it." +msgstr "" +"Nepavyko apdoroti torent failo. Failo nustatymai neprieinami, bet vistiek " +"galite bandyti išsisųti." + +#: src/trg-torrent-add-dialog.c:460 +#, c-format +msgid "Unable to open torrent file: %s" +msgstr "Nepavyko atverti torent failo: %s" + +#: src/trg-torrent-add-dialog.c:510 +msgid "(None)" +msgstr "(Joks)" + +#: src/trg-torrent-add-dialog.c:512 +msgid "(Multiple)" +msgstr "(Keli)" + +#: src/trg-torrent-add-dialog.c:532 +msgid "Add a Torrent" +msgstr "Pridėti torentą" + +#: src/trg-torrent-add-dialog.c:581 +msgid "Add Torrent" +msgstr "Pridėti torentą" + +#: src/trg-torrent-add-dialog.c:602 +msgid "Start _paused" +msgstr "Paleisti _sustabdytą" + +#: src/trg-torrent-add-dialog.c:618 +msgid "_Torrent file:" +msgstr "Torento _failas:" + +#: src/trg-torrent-add-dialog.c:637 +msgid "_Destination folder:" +msgstr "_Paskirties aplankas:" + +#: src/trg-torrent-add-dialog.c:657 +msgid "Torrent _priority:" +msgstr "Torento p_rioritetas:" + +#: src/trg-torrent-add-dialog.c:743 +msgid "Show _options dialog" +msgstr "Rodyti _parinkčių langą" + +#: src/trg-torrent-add-url-dialog.c:61 +msgid "" +"You are trying to add a magnet torrent, but DHT is disabled. Distributed " +"Hash Table (DHT) should be enabled in remote settings." +msgstr "" +"Jūs bandote pridėti magnet torent, bet DHT yra išjungta. Nuotoliniuose " +"nustatymuose Distributed Hash Table (DHT) turėtų būti įjungta." + +#: src/trg-torrent-add-url-dialog.c:120 +msgid "URL:" +msgstr "URL:" + +#: src/trg-torrent-add-url-dialog.c:123 +msgid "Start Paused" +msgstr "Paleisti sustabdytą" + +#: src/trg-torrent-add-url-dialog.c:126 +msgid "Add torrent from URL" +msgstr "Pridėti torentą iš URL" + +#: src/trg-torrent-graph.c:407 +msgid "Total Uploading" +msgstr "Viso išsiunčiama" + +#: src/trg-torrent-graph.c:415 +msgid "Total Downloading" +msgstr "Viso parsiunčiama" + +#: src/trg-torrent-model.c:343 +msgid "Default" +msgstr "Numatytas" + +#: src/trg-torrent-move-dialog.c:118 +msgid "Location:" +msgstr "Vieta:" + +#: src/trg-torrent-move-dialog.c:165 +#, c-format +msgid "Move %s" +msgstr "Perkelti %s" + +#: src/trg-torrent-move-dialog.c:167 +#, c-format +msgid "Move %d torrents" +msgstr "Perkelti %d torentus" + +#: src/trg-torrent-props-dialog.c:178 +msgid "Honor global limits" +msgstr "Garbingos visuotinės ribos" + +#: src/trg-torrent-props-dialog.c:187 +msgid "Torrent priority:" +msgstr "Torento prioritetas" + +#: src/trg-torrent-props-dialog.c:193 +msgid "Queue Position:" +msgstr "Vieta eilėje:" + +#: src/trg-torrent-props-dialog.c:198 +msgid "Limit download speed (KiB/s)" +msgstr "Riboti parsiuntimų greitį (KiB/s)" + +#: src/trg-torrent-props-dialog.c:206 +msgid "Limit upload speed (KiB/s)" +msgstr "Riboti išsiuntimų greitį (KiB/s)" + +#: src/trg-torrent-props-dialog.c:215 +msgid "Use global settings" +msgstr "Naudoti visuotinius parametrus" + +#: src/trg-torrent-props-dialog.c:216 +msgid "Stop seeding at ratio" +msgstr "Baigti skleisti pasiekus santykį" + +#: src/trg-torrent-props-dialog.c:217 +msgid "Seed regardless of ratio" +msgstr "Skleisti nepaisant santykio" + +#: src/trg-torrent-props-dialog.c:220 +msgid "Seed ratio mode:" +msgstr "Skleidimo santykio režimas:" + +#: src/trg-torrent-props-dialog.c:228 +msgid "Seed ratio limit:" +msgstr "Skleidimo santykio riba:" + +#: src/trg-torrent-props-dialog.c:235 +msgid "Peer limit:" +msgstr "Siuntėjų-skleidėjų riba:" + +#: src/trg-torrent-props-dialog.c:269 +#, c-format +msgid "Multiple (%d) torrent properties" +msgstr "Kelių (%d) torentų savybės" + +#: src/trg-torrent-tree-view.c:51 +msgid "Done" +msgstr "Atlikta" + +#: src/trg-torrent-tree-view.c:55 +msgid "Seeds" +msgstr "Skleidėjai" + +#: src/trg-torrent-tree-view.c:57 +msgid "Sending" +msgstr "Siunčiama" + +#: src/trg-torrent-tree-view.c:63 +msgid "Downloads" +msgstr "Atsiuntimai" + +#: src/trg-torrent-tree-view.c:66 +msgid "Receiving" +msgstr "Gaunama" + +#: src/trg-torrent-tree-view.c:72 +msgid "PEX Peers" +msgstr "PEX siuntėjai" + +#: src/trg-torrent-tree-view.c:75 +msgid "DHT Peers" +msgstr "DHT siuntėjai" + +#: src/trg-torrent-tree-view.c:79 +msgid "Tracker Peers" +msgstr "Serverio siuntėjai" + +#: src/trg-torrent-tree-view.c:82 +msgid "LTEP Peers" +msgstr "LTEP siuntėjai" + +#: src/trg-torrent-tree-view.c:85 +msgid "Resumed Peers" +msgstr "Pratęsti siuntėjai" + +#: src/trg-torrent-tree-view.c:89 +msgid "Incoming Peers" +msgstr "Atsiunčiantys siuntėjai" + +#: src/trg-torrent-tree-view.c:93 +msgid "Peers T/I/E/H/X/L/R" +msgstr "Siuntėjai T/I/E/H/X/L/R" + +#: src/trg-torrent-tree-view.c:112 +msgid "Added" +msgstr "Pridėta" + +#: src/trg-torrent-tree-view.c:115 +msgid "First Tracker" +msgstr "Pirmas serveris" + +#: src/trg-torrent-tree-view.c:121 +msgid "ID" +msgstr "ID" + +#: src/trg-torrent-tree-view.c:127 +msgid "Queue Position" +msgstr "Eilės vieta" + +#: src/trg-torrent-tree-view.c:133 +msgid "Last Active" +msgstr "Paskutinis aktyvus" + +#: src/trg-trackers-tree-view.c:167 +msgid "Tier" +msgstr "Sujungėjas" + +#: src/trg-trackers-tree-view.c:173 +msgid "Announce URL" +msgstr "Skleidimo URL" + +#: src/trg-trackers-tree-view.c:191 +msgid "Seeder Count" +msgstr "Skleidėjų skaičius" + +#: src/trg-trackers-tree-view.c:194 +msgid "Leecher Count" +msgstr "Parsiuntėjų skaičius" + +#: src/trg-trackers-tree-view.c:198 +msgid "Last Announce" +msgstr "Paskutinis pranešimas" + +#: src/trg-trackers-tree-view.c:201 +msgid "Last Result" +msgstr "Paskutinis rezultatas" + +#: src/trg-trackers-tree-view.c:203 +msgid "Scrape URL" +msgstr "Surinkti informaciją iš URL" + +#: src/trg-trackers-tree-view.c:205 +msgid "Last Scrape" +msgstr "Paskutinis informacijos rinkimas" + +#: src/trg-trackers-tree-view.c:305 +msgid "Delete" +msgstr "Pašalinti" + +#: src/util.c:41 +msgid "KiB" +msgstr "Kb" + +#: src/util.c:42 +msgid "MiB" +msgstr "MB" + +#: src/util.c:43 +msgid "GiB" +msgstr "GB" + +#: src/util.c:44 +msgid "TiB" +msgstr "TB" + +#: src/util.c:47 +msgid "KiB/s" +msgstr "KB/s" + +#: src/util.c:48 +msgid "MiB/s" +msgstr "MB/s" + +#: src/util.c:49 +msgid "GiB/s" +msgstr "GB/s" + +#: src/util.c:50 +msgid "TiB/s" +msgstr "TB/s" + +#: src/util.c:331 +msgid "JSON decoding error." +msgstr "JSON iškodavimo klaida." + +#: src/util.c:336 +msgid "Server responded, but with no result." +msgstr "Serveris atsakė, bet be rezultato." + +#: src/util.c:340 +#, c-format +msgid "Request failed with HTTP code %d" +msgstr "Užklausa nepavyko su HTTP kodu %d" + +#: src/util.c:379 +msgid "None" +msgstr "Nėra" + +#: src/util.c:425 +#, c-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "%d diena" +msgstr[1] "%d dienos" +msgstr[2] "%d dienų" + +#: src/util.c:426 +#, c-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d valanda" +msgstr[1] "%d valandos" +msgstr[2] "%d valandų" + +#: src/util.c:428 +#, c-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minutė" +msgstr[1] "%d minutės" +msgstr[2] "%d minučių" + +#: src/util.c:431 +#, c-format +msgid "%ld second" +msgid_plural "%ld seconds" +msgstr[0] "%ld sekundė" +msgstr[1] "%ld sekundės" +msgstr[2] "%ld sekundžių" + +#~ msgid "Wanted" +#~ msgstr "Norima" diff --git a/src/icon-turtle.h b/src/icon-turtle.h index f36566a..953fb50 100644 --- a/src/icon-turtle.h +++ b/src/icon-turtle.h @@ -4,37 +4,42 @@ #pragma align 4 (blue_turtle) #endif #ifdef __GNUC__ -static const guint8 blue_turtle[] __attribute__ ((__aligned__ (4))) = +static const guint8 blue_turtle[] __attribute__ ((__aligned__(4))) = #else -static const guint8 blue_turtle[] = +static const guint8 blue_turtle[] = #endif { "" - /* Pixbuf magic (0x47646b50) */ - "GdkP" - /* length: header (24) + pixel_data (315) */ - "\0\0\1S" - /* pixdata_type (0x2010002) */ - "\2\1\0\2" - /* rowstride (80) */ - "\0\0\0P" - /* width (20) */ - "\0\0\0\24" - /* height (14) */ - "\0\0\0\16" - /* pixel_data: */ - "\304\377\377\377\0\3""66\377@77\377p55\3770\205\377\377\377\0\1\0\0\0" - "\0\211\377\377\377\0\2""66\3770<<\377\317\202\77\77\377\377\2>>\377\377" - "::\377\237\204\377\377\377\0\1\0\0\0\0\210\377\377\377\0\14""66\3770" - "BB\377\360FF\377\377II\377\377JJ\377\377HH\377\377DD\377\377==\377\237" - "\377\377\377\0""99\377`\77\77\377\377;;\377\237\207\377\377\377\0\4""5" - "5\377\20FF\377\360KK\377\377OO\377\377\202QQ\377\377\7PP\377\377NN\377" - "\377II\377\377EE\377\377FF\377\377II\377\377[[\377\267\207\377\377\377" - "\0\3EE\377\261NN\377\377TT\377\377\204VV\377\377\3UU\377\377ee\377\331" - "\252\252\377\214\202\377\377\377f\1\377\377\377@\207\377\377\377\0\3" - "\377\377\377F\224\224\377\240YY\377\377\204ZZ\377\377\3XX\377\377kk\377" - "\274\377\377\377\31\202\377\377\377\0\1\0\0\0\0\210\377\377\377\0\2m" - "m\377wvv\377\305\204\377\377\377f\3\230\230\377\237TT\377\377FF\377\237" - "\202\377\377\377\0\1\0\0\0\0\323\377\377\377\0"}; + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (315) */ + "\0\0\1S" + /* pixdata_type (0x2010002) */ + "\2\1\0\2" + /* rowstride (80) */ + "\0\0\0P" + /* width (20) */ + "\0\0\0\24" + /* height (14) */ + "\0\0\0\16" + /* pixel_data: */ + "\304\377\377\377\0\3" + "66\377@77\377p55\3770\205\377\377\377\0\1\0\0\0" + "\0\211\377\377\377\0\2" + "66\3770<<\377\317\202\77\77\377\377\2>>\377\377" + "::\377\237\204\377\377\377\0\1\0\0\0\0\210\377\377\377\0\14" + "66\3770" + "BB\377\360FF\377\377II\377\377JJ\377\377HH\377\377DD\377\377==\377\237" + "\377\377\377\0" + "99\377`\77\77\377\377;;\377\237\207\377\377\377\0\4" "5" + "5\377\20FF\377\360KK\377\377OO\377\377\202QQ\377\377\7PP\377\377NN\377" + "\377II\377\377EE\377\377FF\377\377II\377\377[[\377\267\207\377\377\377" + "\0\3EE\377\261NN\377\377TT\377\377\204VV\377\377\3UU\377\377ee\377\331" + "\252\252\377\214\202\377\377\377f\1\377\377\377@\207\377\377\377\0\3" + "\377\377\377F\224\224\377\240YY\377\377\204ZZ\377\377\3XX\377\377kk\377" + "\274\377\377\377\31\202\377\377\377\0\1\0\0\0\0\210\377\377\377\0\2m" + "m\377wvv\377\305\204\377\377\377f\3\230\230\377\237TT\377\377FF\377\237" + "\202\377\377\377\0\1\0\0\0\0\323\377\377\377\0" +}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ @@ -43,36 +48,37 @@ static const guint8 blue_turtle[] = #pragma align 4 (grey_turtle) #endif #ifdef __GNUC__ -static const guint8 grey_turtle[] __attribute__ ((__aligned__ (4))) = +static const guint8 grey_turtle[] __attribute__ ((__aligned__(4))) = #else -static const guint8 grey_turtle[] = +static const guint8 grey_turtle[] = #endif { "" - /* Pixbuf magic (0x47646b50) */ - "GdkP" - /* length: header (24) + pixel_data (315) */ - "\0\0\1S" - /* pixdata_type (0x2010002) */ - "\2\1\0\2" - /* rowstride (80) */ - "\0\0\0P" - /* width (20) */ - "\0\0\0\24" - /* height (14) */ - "\0\0\0\16" - /* pixel_data: */ - "\304\377\377\377\0\3\3\3\3@\5\5\5p\2\2\2""0\205\377\377\377\0\1\0\0\0" - "\0\211\377\377\377\0\2\3\3\3""0\13\13\13\317\202\17\17\17\377\2\16\16" - "\16\377\11\11\11\237\204\377\377\377\0\1\0\0\0\0\210\377\377\377\0\14" - "\4\4\4""0\23\23\23\360\27\27\27\377\33\33\33\377\34\34\34\377\32\32\32" - "\377\25\25\25\377\14\14\14\237\377\377\377\0\7\7\7`\17\17\17\377\12\12" - "\12\237\207\377\377\377\0\4\2\2\2\20\27\27\27\360\36\36\36\377###\377" - "\202%%%\377\7$$$\377!!!\377\33\33\33\377\26\26\26\377\30\30\30\377\33" - "\33\33\377222\267\207\377\377\377\0\3\26\26\26\261\"\"\"\377)))\377\204" - "+++\377\3***\377\77\77\77\331\225\225\225\214\202\377\377\377f\1\377" - "\377\377@\207\377\377\377\0\3\377\377\377Fyyy\240///\377\204000\377\3" - "...\377FFF\274\377\377\377\31\202\377\377\377\0\1\0\0\0\0\210\377\377" - "\377\0\2HHHwTTT\305\204\377\377\377f\3~~~\237)))\377\27\27\27\237\202" - "\377\377\377\0\1\0\0\0\0\323\377\377\377\0"}; - - + /* Pixbuf magic (0x47646b50) */ + "GdkP" + /* length: header (24) + pixel_data (315) */ + "\0\0\1S" + /* pixdata_type (0x2010002) */ + "\2\1\0\2" + /* rowstride (80) */ + "\0\0\0P" + /* width (20) */ + "\0\0\0\24" + /* height (14) */ + "\0\0\0\16" + /* pixel_data: */ + "\304\377\377\377\0\3\3\3\3@\5\5\5p\2\2\2" + "0\205\377\377\377\0\1\0\0\0" "\0\211\377\377\377\0\2\3\3\3" + "0\13\13\13\317\202\17\17\17\377\2\16\16" + "\16\377\11\11\11\237\204\377\377\377\0\1\0\0\0\0\210\377\377\377\0\14" + "\4\4\4" + "0\23\23\23\360\27\27\27\377\33\33\33\377\34\34\34\377\32\32\32" + "\377\25\25\25\377\14\14\14\237\377\377\377\0\7\7\7`\17\17\17\377\12\12" + "\12\237\207\377\377\377\0\4\2\2\2\20\27\27\27\360\36\36\36\377###\377" + "\202%%%\377\7$$$\377!!!\377\33\33\33\377\26\26\26\377\30\30\30\377\33" + "\33\33\377222\267\207\377\377\377\0\3\26\26\26\261\"\"\"\377)))\377\204" + "+++\377\3***\377\77\77\77\331\225\225\225\214\202\377\377\377f\1\377" + "\377\377@\207\377\377\377\0\3\377\377\377Fyyy\240///\377\204000\377\3" + "...\377FFF\274\377\377\377\31\202\377\377\377\0\1\0\0\0\0\210\377\377" + "\377\0\2HHHwTTT\305\204\377\377\377f\3~~~\237)))\377\27\27\27\237\202" + "\377\377\377\0\1\0\0\0\0\323\377\377\377\0" +}; diff --git a/src/installer.nsi b/src/installer.nsi index fabd6c3..c13e63c 100644 --- a/src/installer.nsi +++ b/src/installer.nsi @@ -127,6 +127,10 @@ Section $(NAME_SecTransmissionRemoteGTK) SecTransmissionRemoteGTK File "C:\MinGW\msys\1.0\lib\locale\de\LC_MESSAGES\transmission-remote-gtk.mo" + SetOutPath $INSTDIR\share\locale\lt\LC_MESSAGES + + File "C:\MinGW\msys\1.0\lib\locale\lt\LC_MESSAGES\transmission-remote-gtk.mo" + SetOutPath $INSTDIR\share\icons\hicolor\scalable\apps File "C:\MinGW\msys\1.0\share\icons\hicolor\scalable\apps\transmission-remote-gtk.svg" @@ -221,6 +225,17 @@ Section $(NAME_SecGlibGtkEtc) SecGlibGtkEtc File "..\..\gtk-2.24-win32-bin\lib\gtk-2.0\modules\libgail.dll" + SetOutPath $INSTDIR\share\locale\lt\LC_MESSAGES + + File "..\..\gtk-2.24-win32-bin\share\locale\lt\LC_MESSAGES\libiconv.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\lt\LC_MESSAGES\gtk20.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\lt\LC_MESSAGES\gtk20-properties.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\lt\LC_MESSAGES\glib20.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\lt\LC_MESSAGES\gettext-tools.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\lt\LC_MESSAGES\gettext-runtime.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\lt\LC_MESSAGES\gdk-pixbuf.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\lt\LC_MESSAGES\atk10.mo" + SetOutPath $INSTDIR\share\locale\uk\LC_MESSAGES File "..\..\gtk-2.24-win32-bin\share\locale\uk\LC_MESSAGES\libiconv.mo" @@ -409,6 +424,15 @@ Section "Uninstall" Delete "$INSTDIR\share\locale\de\LC_MESSAGES\gtk20.mo" Delete "$INSTDIR\share\locale\de\LC_MESSAGES\libiconv.mo" Delete "$INSTDIR\share\locale\de\LC_MESSAGES\transmission-remote-gtk.mo" + Delete "$INSTDIR\share\locale\lt\LC_MESSAGES\atk10.mo" + Delete "$INSTDIR\share\locale\lt\LC_MESSAGES\gdk-pixbuf.mo" + Delete "$INSTDIR\share\locale\lt\LC_MESSAGES\gettext-runtime.mo" + Delete "$INSTDIR\share\locale\lt\LC_MESSAGES\gettext-tools.mo" + Delete "$INSTDIR\share\locale\lt\LC_MESSAGES\glib20.mo" + Delete "$INSTDIR\share\locale\lt\LC_MESSAGES\gtk20-properties.mo" + Delete "$INSTDIR\share\locale\lt\LC_MESSAGES\gtk20.mo" + Delete "$INSTDIR\share\locale\lt\LC_MESSAGES\libiconv.mo" + Delete "$INSTDIR\share\locale\lt\LC_MESSAGES\transmission-remote-gtk.mo" Delete "$INSTDIR\share\locale\es\LC_MESSAGES\atk10.mo" Delete "$INSTDIR\share\locale\es\LC_MESSAGES\gdk-pixbuf.mo" Delete "$INSTDIR\share\locale\es\LC_MESSAGES\gettext-runtime.mo" @@ -497,6 +521,8 @@ Section "Uninstall" RMDir "$INSTDIR\share\locale\es" RMDir "$INSTDIR\share\locale\de\LC_MESSAGES" RMDir "$INSTDIR\share\locale\de" + RMDir "$INSTDIR\share\locale\lt\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\lt" RMDir "$INSTDIR\share\locale" RMDir "$INSTDIR\share\icons\hicolor\scalable\apps" RMDir "$INSTDIR\share\icons\hicolor\scalable" diff --git a/src/protocol-constants.h b/src/protocol-constants.h index f3f9b1d..c618487 100644 --- a/src/protocol-constants.h +++ b/src/protocol-constants.h @@ -182,8 +182,8 @@ typedef enum { } tr_torrent_activity; enum { - TR_PRI_UNSET = -3, // Not actually in the protocol. Just used in UI. - TR_PRI_MIXED = -2, // Neither is this. + TR_PRI_UNSET = -3, // Not actually in the protocol. Just used in UI. + TR_PRI_MIXED = -2, // Neither is this. TR_PRI_LOW = -1, TR_PRI_NORMAL = 0, /* since NORMAL is 0, memset initializes nicely */ TR_PRI_HIGH = 1 diff --git a/src/torrent.c b/src/torrent.c index 45e77c8..0c83995 100644 --- a/src/torrent.c +++ b/src/torrent.c @@ -610,8 +610,7 @@ gint64 peerfrom_get_lpd(JsonObject * pf) gdouble file_get_progress(gint64 length, gint64 completed) { if (length > 0) { - return ((gdouble) completed / - (gdouble) length) * 100.0; + return ((gdouble) completed / (gdouble) length) * 100.0; } else { return 0.0; } diff --git a/src/trg-cell-renderer-counter.c b/src/trg-cell-renderer-counter.c index 0548023..497f122 100644 --- a/src/trg-cell-renderer-counter.c +++ b/src/trg-cell-renderer-counter.c @@ -28,10 +28,11 @@ enum { }; G_DEFINE_TYPE(TrgCellRendererCounter, trg_cell_renderer_counter, - GTK_TYPE_CELL_RENDERER_TEXT) + GTK_TYPE_CELL_RENDERER_TEXT) #define TRG_CELL_RENDERER_COUNTER_GET_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRG_TYPE_CELL_RENDERER_COUNTER, TrgCellRendererCounterPrivate)) -typedef struct _TrgCellRendererCounterPrivate TrgCellRendererCounterPrivate; +typedef struct _TrgCellRendererCounterPrivate + TrgCellRendererCounterPrivate; struct _TrgCellRendererCounterPrivate { gint count; @@ -39,9 +40,12 @@ struct _TrgCellRendererCounterPrivate { }; static void trg_cell_renderer_counter_get_property(GObject * object, - guint property_id, GValue * value, GParamSpec * pspec) { + guint property_id, + GValue * value, + GParamSpec * pspec) +{ TrgCellRendererCounterPrivate *priv = - TRG_CELL_RENDERER_COUNTER_GET_PRIVATE(object); + TRG_CELL_RENDERER_COUNTER_GET_PRIVATE(object); switch (property_id) { case PROP_STATE_COUNT: g_value_set_int(value, priv->count); @@ -52,12 +56,15 @@ static void trg_cell_renderer_counter_get_property(GObject * object, } } -static void trg_cell_renderer_counter_refresh(TrgCellRendererCounter *cr) { +static void trg_cell_renderer_counter_refresh(TrgCellRendererCounter * cr) +{ TrgCellRendererCounterPrivate *priv = - TRG_CELL_RENDERER_COUNTER_GET_PRIVATE(cr); + TRG_CELL_RENDERER_COUNTER_GET_PRIVATE(cr); if (priv->originalLabel && priv->count > 0) { - gchar *counterLabel = g_strdup_printf("%s (%d)", priv->originalLabel, - priv->count); + gchar *counterLabel = + g_strdup_printf("%s (%d)", + priv->originalLabel, + priv->count); g_object_set(cr, "markup", counterLabel, NULL); g_free(counterLabel); } else { @@ -66,71 +73,84 @@ static void trg_cell_renderer_counter_refresh(TrgCellRendererCounter *cr) { } static void trg_cell_renderer_counter_set_property(GObject * object, - guint property_id, const GValue * value, GParamSpec * pspec) { + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ TrgCellRendererCounterPrivate *priv = - TRG_CELL_RENDERER_COUNTER_GET_PRIVATE(object); + TRG_CELL_RENDERER_COUNTER_GET_PRIVATE(object); if (property_id == PROP_STATE_LABEL) { g_free(priv->originalLabel); priv->originalLabel = g_strdup(g_value_get_string(value)); - trg_cell_renderer_counter_refresh(TRG_CELL_RENDERER_COUNTER(object)); + trg_cell_renderer_counter_refresh(TRG_CELL_RENDERER_COUNTER + (object)); } else if (property_id == PROP_STATE_COUNT) { gint newCount = g_value_get_int(value); if (priv->count != newCount) { priv->count = newCount; - trg_cell_renderer_counter_refresh( - TRG_CELL_RENDERER_COUNTER(object)); + trg_cell_renderer_counter_refresh(TRG_CELL_RENDERER_COUNTER + (object)); } } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } -static void trg_cell_renderer_counter_dispose(GObject * object) { +static void trg_cell_renderer_counter_dispose(GObject * object) +{ TrgCellRendererCounterPrivate *priv = - TRG_CELL_RENDERER_COUNTER_GET_PRIVATE(object); + TRG_CELL_RENDERER_COUNTER_GET_PRIVATE(object); g_free(priv->originalLabel); - G_OBJECT_CLASS(trg_cell_renderer_counter_parent_class)->dispose(object); + G_OBJECT_CLASS(trg_cell_renderer_counter_parent_class)-> + dispose(object); } -static void trg_cell_renderer_counter_class_init( - TrgCellRendererCounterClass * klass) { +static void +trg_cell_renderer_counter_class_init(TrgCellRendererCounterClass * klass) +{ GObjectClass *object_class = G_OBJECT_CLASS(klass); object_class->get_property = trg_cell_renderer_counter_get_property; object_class->set_property = trg_cell_renderer_counter_set_property; object_class->dispose = trg_cell_renderer_counter_dispose; - g_object_class_install_property( - object_class, - PROP_STATE_COUNT, - g_param_spec_int( - "state-count", - "State Count", - "State Count", - -1, - INT_MAX, - -1, - G_PARAM_READWRITE | G_PARAM_STATIC_NAME - | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); - - g_object_class_install_property( - object_class, - PROP_STATE_LABEL, - g_param_spec_string( - "state-label", - "State Label", - "State Label", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_NAME - | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); + g_object_class_install_property(object_class, + PROP_STATE_COUNT, + g_param_spec_int("state-count", + "State Count", + "State Count", + -1, + INT_MAX, + -1, + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property(object_class, + PROP_STATE_LABEL, + g_param_spec_string("state-label", + "State Label", + "State Label", + NULL, + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME + | + G_PARAM_STATIC_NICK + | + G_PARAM_STATIC_BLURB)); g_type_class_add_private(klass, sizeof(TrgCellRendererCounterPrivate)); } -static void trg_cell_renderer_counter_init(TrgCellRendererCounter * self) { +static void trg_cell_renderer_counter_init(TrgCellRendererCounter * self) +{ } -GtkCellRenderer *trg_cell_renderer_counter_new(void) { - return GTK_CELL_RENDERER(g_object_new(TRG_TYPE_CELL_RENDERER_COUNTER, NULL)); +GtkCellRenderer *trg_cell_renderer_counter_new(void) +{ + return + GTK_CELL_RENDERER(g_object_new + (TRG_TYPE_CELL_RENDERER_COUNTER, NULL)); } diff --git a/src/trg-cell-renderer-file-icon.c b/src/trg-cell-renderer-file-icon.c index 162444e..887ac03 100644 --- a/src/trg-cell-renderer-file-icon.c +++ b/src/trg-cell-renderer-file-icon.c @@ -33,7 +33,8 @@ G_DEFINE_TYPE(TrgCellRendererFileIcon, trg_cell_renderer_file_icon, GTK_TYPE_CELL_RENDERER_PIXBUF) #define TRG_CELL_RENDERER_FILE_ICON_GET_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRG_TYPE_CELL_RENDERER_FILE_ICON, TrgCellRendererFileIconPrivate)) -typedef struct _TrgCellRendererFileIconPrivate TrgCellRendererFileIconPrivate; +typedef struct _TrgCellRendererFileIconPrivate + TrgCellRendererFileIconPrivate; struct _TrgCellRendererFileIconPrivate { gint64 file_id; @@ -41,8 +42,9 @@ struct _TrgCellRendererFileIconPrivate { }; static void -trg_cell_renderer_file_icon_get_property(GObject * object, guint property_id, - GValue * value, GParamSpec * pspec) +trg_cell_renderer_file_icon_get_property(GObject * object, + guint property_id, GValue * value, + GParamSpec * pspec) { TrgCellRendererFileIconPrivate *priv = TRG_CELL_RENDERER_FILE_ICON_GET_PRIVATE(object); @@ -56,7 +58,8 @@ trg_cell_renderer_file_icon_get_property(GObject * object, guint property_id, } } -static void trg_cell_renderer_file_icon_refresh(TrgCellRendererFileIcon *fi) +static void trg_cell_renderer_file_icon_refresh(TrgCellRendererFileIcon * + fi) { TrgCellRendererFileIconPrivate *priv = TRG_CELL_RENDERER_FILE_ICON_GET_PRIVATE(fi); @@ -67,7 +70,8 @@ static void trg_cell_renderer_file_icon_refresh(TrgCellRendererFileIcon *fi) g_object_set(fi, "stock-id", GTK_STOCK_DIRECTORY, NULL); } else if (priv->text) { gboolean uncertain; - gchar *mimetype = g_content_type_guess(priv->text, NULL, 0, &uncertain); + gchar *mimetype = + g_content_type_guess(priv->text, NULL, 0, &uncertain); GIcon *icon = NULL; if (!uncertain && mimetype) @@ -85,20 +89,23 @@ static void trg_cell_renderer_file_icon_refresh(TrgCellRendererFileIcon *fi) } static void -trg_cell_renderer_file_icon_set_property(GObject * object, guint property_id, - const GValue * value, - GParamSpec * pspec) +trg_cell_renderer_file_icon_set_property(GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) { TrgCellRendererFileIconPrivate *priv = TRG_CELL_RENDERER_FILE_ICON_GET_PRIVATE(object); if (property_id == PROP_FILE_ID) { priv->file_id = g_value_get_int64(value); - trg_cell_renderer_file_icon_refresh(TRG_CELL_RENDERER_FILE_ICON(object)); + trg_cell_renderer_file_icon_refresh(TRG_CELL_RENDERER_FILE_ICON + (object)); } else if (property_id == PROP_FILE_NAME) { if (priv->file_id != -1) { g_free(priv->text); priv->text = g_strdup(g_value_get_string(value)); - trg_cell_renderer_file_icon_refresh(TRG_CELL_RENDERER_FILE_ICON(object)); + trg_cell_renderer_file_icon_refresh(TRG_CELL_RENDERER_FILE_ICON + (object)); } } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); @@ -107,13 +114,16 @@ trg_cell_renderer_file_icon_set_property(GObject * object, guint property_id, static void trg_cell_renderer_file_icon_dispose(GObject * object) { - TrgCellRendererFileIconPrivate *priv = TRG_CELL_RENDERER_FILE_ICON_GET_PRIVATE(object); + TrgCellRendererFileIconPrivate *priv = + TRG_CELL_RENDERER_FILE_ICON_GET_PRIVATE(object); g_free(priv->text); - G_OBJECT_CLASS(trg_cell_renderer_file_icon_parent_class)->dispose(object); + G_OBJECT_CLASS(trg_cell_renderer_file_icon_parent_class)-> + dispose(object); } static void -trg_cell_renderer_file_icon_class_init(TrgCellRendererFileIconClass * klass) +trg_cell_renderer_file_icon_class_init(TrgCellRendererFileIconClass * + klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); @@ -140,26 +150,29 @@ trg_cell_renderer_file_icon_class_init(TrgCellRendererFileIconClass * klass) g_object_class_install_property(object_class, PROP_FILE_NAME, g_param_spec_string("file-name", - "Filename", - "Filename", - NULL, - G_PARAM_READWRITE - | - G_PARAM_STATIC_NAME - | - G_PARAM_STATIC_NICK - | - G_PARAM_STATIC_BLURB)); - - g_type_class_add_private(klass, sizeof(TrgCellRendererFileIconPrivate)); + "Filename", + "Filename", + NULL, + G_PARAM_READWRITE + | + G_PARAM_STATIC_NAME + | + G_PARAM_STATIC_NICK + | + G_PARAM_STATIC_BLURB)); + + g_type_class_add_private(klass, + sizeof(TrgCellRendererFileIconPrivate)); } -static void trg_cell_renderer_file_icon_init(TrgCellRendererFileIcon * self) +static void trg_cell_renderer_file_icon_init(TrgCellRendererFileIcon * + self) { } GtkCellRenderer *trg_cell_renderer_file_icon_new(void) { return - GTK_CELL_RENDERER(g_object_new(TRG_TYPE_CELL_RENDERER_FILE_ICON, NULL)); + GTK_CELL_RENDERER(g_object_new + (TRG_TYPE_CELL_RENDERER_FILE_ICON, NULL)); } diff --git a/src/trg-cell-renderer-priority.c b/src/trg-cell-renderer-priority.c index 7714267..b91abe5 100644 --- a/src/trg-cell-renderer-priority.c +++ b/src/trg-cell-renderer-priority.c @@ -74,9 +74,9 @@ trg_cell_renderer_priority_set_property(GObject * object, g_object_set(object, "text", _("Low"), NULL); } else if (priv->priority_value == TR_PRI_HIGH) { g_object_set(object, "text", _("High"), NULL); - } else if (priv->priority_value == TR_PRI_NORMAL){ + } else if (priv->priority_value == TR_PRI_NORMAL) { g_object_set(object, "text", _("Normal"), NULL); - } else if (priv->priority_value == TR_PRI_MIXED){ + } else if (priv->priority_value == TR_PRI_MIXED) { g_object_set(object, "text", _("Mixed"), NULL); } else { g_object_set(object, "text", "", NULL); @@ -110,9 +110,7 @@ trg_cell_renderer_priority_class_init(TrgCellRendererPriorityClass * klass) sizeof(TrgCellRendererPriorityPrivate)); } -static void -trg_cell_renderer_priority_init(TrgCellRendererPriority * - self) +static void trg_cell_renderer_priority_init(TrgCellRendererPriority * self) { } diff --git a/src/trg-cell-renderer-speed.c b/src/trg-cell-renderer-speed.c index ed921ea..0c52d10 100644 --- a/src/trg-cell-renderer-speed.c +++ b/src/trg-cell-renderer-speed.c @@ -65,8 +65,7 @@ trg_cell_renderer_speed_set_property(GObject * object, guint property_id, priv->speed_value = g_value_get_int64(value); if (priv->speed_value > 0) { char speedString[32]; - trg_strlspeed(speedString, - priv->speed_value / disk_K); + trg_strlspeed(speedString, priv->speed_value / disk_K); g_object_set(object, "text", speedString, NULL); } else { g_object_set(object, "text", "", NULL); diff --git a/src/trg-cell-renderer-wanted.c b/src/trg-cell-renderer-wanted.c index 168db34..9840a2e 100644 --- a/src/trg-cell-renderer-wanted.c +++ b/src/trg-cell-renderer-wanted.c @@ -44,8 +44,8 @@ struct _TrgCellRendererWantedPrivate { static void trg_cell_renderer_wanted_get_property(GObject * object, - guint property_id, GValue * value, - GParamSpec * pspec) + guint property_id, GValue * value, + GParamSpec * pspec) { TrgCellRendererWantedPrivate *priv = TRG_CELL_RENDERER_WANTED_GET_PRIVATE(object); @@ -61,17 +61,18 @@ trg_cell_renderer_wanted_get_property(GObject * object, static void trg_cell_renderer_wanted_set_property(GObject * object, - guint property_id, - const GValue * value, - GParamSpec * pspec) + guint property_id, + const GValue * value, + GParamSpec * pspec) { TrgCellRendererWantedPrivate *priv = TRG_CELL_RENDERER_WANTED_GET_PRIVATE(object); if (property_id == PROP_WANTED_VALUE) { priv->wanted_value = g_value_get_int(value); - g_object_set(G_OBJECT(object), "inconsistent", (priv->wanted_value == TR_PRI_MIXED), - "active", (priv->wanted_value == TRUE), NULL); + g_object_set(G_OBJECT(object), "inconsistent", + (priv->wanted_value == TR_PRI_MIXED), "active", + (priv->wanted_value == TRUE), NULL); } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } @@ -97,16 +98,13 @@ trg_cell_renderer_wanted_class_init(TrgCellRendererWantedClass * klass) G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); - g_type_class_add_private(klass, - sizeof(TrgCellRendererWantedPrivate)); + g_type_class_add_private(klass, sizeof(TrgCellRendererWantedPrivate)); } -static void -trg_cell_renderer_wanted_init(TrgCellRendererWanted * - self) +static void trg_cell_renderer_wanted_init(TrgCellRendererWanted * self) { /*g_object_set(G_OBJECT(self), "xalign", (gfloat) 0.5, "yalign", (gfloat) 0.5, - NULL);*/ + NULL); */ } GtkCellRenderer *trg_cell_renderer_wanted_new(void) diff --git a/src/trg-client.c b/src/trg-client.c index 0b1d1f6..cdb018f 100644 --- a/src/trg-client.c +++ b/src/trg-client.c @@ -89,10 +89,12 @@ struct _TrgClientPrivate { GMutex *configMutex; }; -static void dispatch_async_threadfunc(trg_request * reqrsp, TrgClient * client); +static void dispatch_async_threadfunc(trg_request * reqrsp, + TrgClient * client); static void trg_client_get_property(GObject * object, guint property_id, - GValue * value, GParamSpec * pspec) { + GValue * value, GParamSpec * pspec) +{ switch (property_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); @@ -101,7 +103,9 @@ static void trg_client_get_property(GObject * object, guint property_id, } static void trg_client_set_property(GObject * object, guint property_id, - const GValue * value, GParamSpec * pspec) { + const GValue * value, + GParamSpec * pspec) +{ switch (property_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); @@ -109,11 +113,13 @@ static void trg_client_set_property(GObject * object, guint property_id, } } -static void trg_client_dispose(GObject * object) { +static void trg_client_dispose(GObject * object) +{ G_OBJECT_CLASS(trg_client_parent_class)->dispose(object); } -static void trg_client_class_init(TrgClientClass * klass) { +static void trg_client_class_init(TrgClientClass * klass) +{ GObjectClass *object_class = G_OBJECT_CLASS(klass); g_type_class_add_private(klass, sizeof(TrgClientPrivate)); @@ -123,16 +129,25 @@ static void trg_client_class_init(TrgClientClass * klass) { object_class->dispose = trg_client_dispose; signals[TC_SESSION_UPDATED] = g_signal_new("session-updated", - G_TYPE_FROM_CLASS(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET(TrgClientClass, - session_updated), NULL, NULL, - g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); + G_TYPE_FROM_CLASS + (object_class), + G_SIGNAL_RUN_LAST | + G_SIGNAL_ACTION, + G_STRUCT_OFFSET + (TrgClientClass, + session_updated), NULL, + NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, 1, + G_TYPE_POINTER); } -static void trg_client_init(TrgClient * self) { +static void trg_client_init(TrgClient * self) +{ } -TrgClient *trg_client_new(void) { +TrgClient *trg_client_new(void) +{ TrgClient *tc = g_object_new(TRG_TYPE_CLIENT, NULL); TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); TrgPrefs *prefs = priv->prefs = trg_prefs_new(); @@ -144,37 +159,42 @@ TrgClient *trg_client_new(void) { priv->tlsKey = g_private_new(NULL); priv->pool = g_thread_pool_new((GFunc) dispatch_async_threadfunc, tc, - DISPATCH_POOL_SIZE, TRUE, NULL); + DISPATCH_POOL_SIZE, TRUE, NULL); - tr_formatter_size_init(disk_K, _(disk_K_str), _(disk_M_str), _(disk_G_str), - _(disk_T_str)); + tr_formatter_size_init(disk_K, _(disk_K_str), _(disk_M_str), + _(disk_G_str), _(disk_T_str)); tr_formatter_speed_init(speed_K, _(speed_K_str), _(speed_M_str), - _(speed_G_str), _(speed_T_str)); + _(speed_G_str), _(speed_T_str)); return tc; } -const gchar *trg_client_get_version_string(TrgClient * tc) { +const gchar *trg_client_get_version_string(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return session_get_version_string(priv->session); } -float trg_client_get_version(TrgClient * tc) { +float trg_client_get_version(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->version; } -gint64 trg_client_get_rpc_version(TrgClient * tc) { +gint64 trg_client_get_rpc_version(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return session_get_rpc_version(priv->session); } -void trg_client_inc_connid(TrgClient * tc) { +void trg_client_inc_connid(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); g_atomic_int_inc(&priv->connid); } -void trg_client_set_session(TrgClient * tc, JsonObject * session) { +void trg_client_set_session(TrgClient * tc, JsonObject * session) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); if (priv->session) { @@ -189,12 +209,14 @@ void trg_client_set_session(TrgClient * tc, JsonObject * session) { g_signal_emit(tc, signals[TC_SESSION_UPDATED], 0, session); } -TrgPrefs *trg_client_get_prefs(TrgClient * tc) { +TrgPrefs *trg_client_get_prefs(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->prefs; } -int trg_client_populate_with_settings(TrgClient * tc) { +int trg_client_populate_with_settings(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); TrgPrefs *prefs = priv->prefs; @@ -217,33 +239,34 @@ int trg_client_populate_with_settings(TrgClient * tc) { g_free(priv->password); priv->password = NULL; - port = trg_prefs_get_int(prefs, TRG_PREFS_KEY_PORT, TRG_PREFS_CONNECTION); + port = + trg_prefs_get_int(prefs, TRG_PREFS_KEY_PORT, TRG_PREFS_CONNECTION); host = trg_prefs_get_string(prefs, TRG_PREFS_KEY_HOSTNAME, - TRG_PREFS_CONNECTION); + TRG_PREFS_CONNECTION); if (!host || strlen(host) < 1) { g_free(host); g_mutex_unlock(priv->configMutex); return TRG_NO_HOSTNAME_SET; } - #ifndef CURL_NO_SSL priv->ssl = trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SSL, - TRG_PREFS_CONNECTION); + TRG_PREFS_CONNECTION); #else priv->ssl = FALSE; #endif priv->url = g_strdup_printf("%s://%s:%d/transmission/rpc", - priv->ssl ? HTTPS_URI_PREFIX : HTTP_URI_PREFIX, - host, port); + priv-> + ssl ? HTTPS_URI_PREFIX : HTTP_URI_PREFIX, + host, port); g_free(host); priv->username = trg_prefs_get_string(prefs, TRG_PREFS_KEY_USERNAME, - TRG_PREFS_CONNECTION); + TRG_PREFS_CONNECTION); priv->password = trg_prefs_get_string(prefs, TRG_PREFS_KEY_PASSWORD, - TRG_PREFS_CONNECTION); + TRG_PREFS_CONNECTION); g_free(priv->proxy); priv->proxy = NULL; @@ -272,27 +295,32 @@ int trg_client_populate_with_settings(TrgClient * tc) { return 0; } -gchar *trg_client_get_password(TrgClient * tc) { +gchar *trg_client_get_password(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->password; } -gchar *trg_client_get_username(TrgClient * tc) { +gchar *trg_client_get_username(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->username; } -gchar *trg_client_get_url(TrgClient * tc) { +gchar *trg_client_get_url(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->url; } -gchar *trg_client_get_session_id(TrgClient * tc) { +gchar *trg_client_get_session_id(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->session_id ? g_strdup(priv->session_id) : NULL; } -void trg_client_set_session_id(TrgClient * tc, gchar * session_id) { +void trg_client_set_session_id(TrgClient * tc, gchar * session_id) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); g_mutex_lock(priv->configMutex); @@ -305,111 +333,132 @@ void trg_client_set_session_id(TrgClient * tc, gchar * session_id) { g_mutex_unlock(priv->configMutex); } -void trg_client_status_change(TrgClient * tc, gboolean connected) { +void trg_client_status_change(TrgClient * tc, gboolean connected) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); if (!connected) { if (priv->session) { json_object_unref(priv->session); priv->session = NULL; - }g_mutex_lock(priv->configMutex); + } + g_mutex_lock(priv->configMutex); trg_prefs_set_connection(priv->prefs, NULL); g_mutex_unlock(priv->configMutex); } } -JsonObject *trg_client_get_session(TrgClient * tc) { +JsonObject *trg_client_get_session(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->session; } -void trg_client_thread_pool_push(TrgClient * tc, gpointer data, GError ** err) { +void trg_client_thread_pool_push(TrgClient * tc, gpointer data, + GError ** err) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); g_thread_pool_push(priv->pool, data, err); } -void trg_client_inc_serial(TrgClient * tc) { +void trg_client_inc_serial(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); priv->updateSerial++; } -gint64 trg_client_get_serial(TrgClient * tc) { +gint64 trg_client_get_serial(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->updateSerial; } #ifndef CURL_NO_SSL -gboolean trg_client_get_ssl(TrgClient * tc) { +gboolean trg_client_get_ssl(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->ssl; } #endif -gchar *trg_client_get_proxy(TrgClient * tc) { +gchar *trg_client_get_proxy(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->proxy; } -void trg_client_set_torrent_table(TrgClient * tc, GHashTable * table) { +void trg_client_set_torrent_table(TrgClient * tc, GHashTable * table) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); priv->torrentTable = table; } -GHashTable *trg_client_get_torrent_table(TrgClient * tc) { +GHashTable *trg_client_get_torrent_table(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->torrentTable; } -gboolean trg_client_is_connected(TrgClient * tc) { +gboolean trg_client_is_connected(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->session != NULL; } -void trg_client_updatelock(TrgClient * tc) { +void trg_client_updatelock(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); g_mutex_lock(priv->updateMutex); } -void trg_client_configlock(TrgClient * tc) { +void trg_client_configlock(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); g_mutex_lock(priv->configMutex); } -guint trg_client_get_failcount(TrgClient * tc) { +guint trg_client_get_failcount(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return priv->failCount; } -guint trg_client_inc_failcount(TrgClient * tc) { +guint trg_client_inc_failcount(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); return ++(priv->failCount); } -void trg_client_reset_failcount(TrgClient * tc) { +void trg_client_reset_failcount(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); priv->failCount = 0; } -void trg_client_updateunlock(TrgClient * tc) { +void trg_client_updateunlock(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); g_mutex_unlock(priv->updateMutex); } -void trg_client_configunlock(TrgClient * tc) { +void trg_client_configunlock(TrgClient * tc) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); g_mutex_unlock(priv->configMutex); } /* formerly http.c */ -void trg_response_free(trg_response * response) { +void trg_response_free(trg_response * response) +{ if (response->obj) json_object_unref(response->obj); g_free(response); } static size_t http_receive_callback(void *ptr, size_t size, size_t nmemb, - void *data) { + void *data) +{ size_t realsize = size * nmemb; trg_response *mem = (trg_response *) data; @@ -423,7 +472,9 @@ static size_t http_receive_callback(void *ptr, size_t size, size_t nmemb, return realsize; } -static size_t header_callback(void *ptr, size_t size, size_t nmemb, void *data) { +static size_t header_callback(void *ptr, size_t size, size_t nmemb, + void *data) +{ char *header = (char *) (ptr); TrgClient *tc = TRG_CLIENT(data); gchar *session_id; @@ -442,11 +493,14 @@ static size_t header_callback(void *ptr, size_t size, size_t nmemb, void *data) return (nmemb * size); } -static void trg_tls_update(TrgClient * tc, trg_tls * tls, gint serial) { +static void trg_tls_update(TrgClient * tc, trg_tls * tls, gint serial) +{ gchar *proxy; - curl_easy_setopt(tls->curl, CURLOPT_PASSWORD, trg_client_get_password(tc)); - curl_easy_setopt(tls->curl, CURLOPT_USERNAME, trg_client_get_username(tc)); + curl_easy_setopt(tls->curl, CURLOPT_PASSWORD, + trg_client_get_password(tc)); + curl_easy_setopt(tls->curl, CURLOPT_USERNAME, + trg_client_get_username(tc)); curl_easy_setopt(tls->curl, CURLOPT_URL, trg_client_get_url(tc)); #ifndef CURL_NO_SSL @@ -463,13 +517,15 @@ static void trg_tls_update(TrgClient * tc, trg_tls * tls, gint serial) { tls->serial = serial; } -trg_tls *trg_tls_new(TrgClient * tc) { +trg_tls *trg_tls_new(TrgClient * tc) +{ trg_tls *tls = g_new0(trg_tls, 1); tls->curl = curl_easy_init(); curl_easy_setopt(tls->curl, CURLOPT_USERAGENT, PACKAGE_NAME); curl_easy_setopt(tls->curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); - curl_easy_setopt(tls->curl, CURLOPT_WRITEFUNCTION, &http_receive_callback); + curl_easy_setopt(tls->curl, CURLOPT_WRITEFUNCTION, + &http_receive_callback); curl_easy_setopt(tls->curl, CURLOPT_HEADERFUNCTION, &header_callback); curl_easy_setopt(tls->curl, CURLOPT_WRITEHEADER, (void *) tc); @@ -479,7 +535,9 @@ trg_tls *trg_tls_new(TrgClient * tc) { } static int trg_http_perform_inner(TrgClient * tc, gchar * reqstr, - trg_response * response, gboolean recurse) { + trg_response * response, + gboolean recurse) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); TrgPrefs *prefs = trg_client_get_prefs(tc); gpointer threadLocalStorage = g_private_get(priv->tlsKey); @@ -507,7 +565,8 @@ static int trg_http_perform_inner(TrgClient * tc, gchar * reqstr, } curl_easy_setopt(tls->curl, CURLOPT_TIMEOUT, - (long)trg_prefs_get_int(prefs, TRG_PREFS_KEY_TIMEOUT, TRG_PREFS_CONNECTION)); + (long) trg_prefs_get_int(prefs, TRG_PREFS_KEY_TIMEOUT, + TRG_PREFS_CONNECTION)); g_mutex_unlock(priv->configMutex); @@ -526,34 +585,35 @@ static int trg_http_perform_inner(TrgClient * tc, gchar * reqstr, curl_easy_getinfo(tls->curl, CURLINFO_RESPONSE_CODE, &httpCode); if (response->status == CURLE_OK) { - if (httpCode == HTTP_CONFLICT && recurse == TRUE - ) + if (httpCode == HTTP_CONFLICT && recurse == TRUE) return trg_http_perform_inner(tc, reqstr, response, FALSE); - else if (httpCode != HTTP_OK - ) + else if (httpCode != HTTP_OK) response->status = (-httpCode) - 100; } return response->status; } -int trg_http_perform(TrgClient * tc, gchar * reqstr, trg_response * reqrsp) { +int trg_http_perform(TrgClient * tc, gchar * reqstr, trg_response * reqrsp) +{ return trg_http_perform_inner(tc, reqstr, reqrsp, TRUE); } /* formerly dispatch.c */ -trg_response *dispatch(TrgClient * client, JsonNode * req) { +trg_response *dispatch(TrgClient * client, JsonNode * req) +{ gchar *serialized = trg_serialize(req); json_node_free(req); #ifdef DEBUG if (g_getenv("TRG_SHOW_OUTGOING")) - g_debug("=>(OUTgoing)=>: %s", serialized); + g_debug("=>(OUTgoing)=>: %s", serialized); #endif return dispatch_str(client, serialized); } -trg_response *dispatch_str(TrgClient * client, gchar * req) { +trg_response *dispatch_str(TrgClient * client, gchar * req) +{ trg_response *response = g_new0(trg_response, 1); GError *decode_error = NULL; JsonNode *result; @@ -582,7 +642,9 @@ trg_response *dispatch_str(TrgClient * client, gchar * req) { return response; } -static void dispatch_async_threadfunc(trg_request * req, TrgClient * client) { +static void dispatch_async_threadfunc(trg_request * req, + TrgClient * client) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(client); trg_response *rsp; @@ -603,8 +665,10 @@ static void dispatch_async_threadfunc(trg_request * req, TrgClient * client) { g_free(req); } -static gboolean dispatch_async_common(TrgClient * client, trg_request * trg_req, - GSourceFunc callback, gpointer data) { +static gboolean dispatch_async_common(TrgClient * client, + trg_request * trg_req, + GSourceFunc callback, gpointer data) +{ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(client); GError *error = NULL; @@ -624,7 +688,8 @@ static gboolean dispatch_async_common(TrgClient * client, trg_request * trg_req, } gboolean dispatch_async(TrgClient * client, JsonNode * req, - GSourceFunc callback, gpointer data) { + GSourceFunc callback, gpointer data) +{ trg_request *trg_req = g_new0(trg_request, 1); trg_req->node = req; @@ -632,7 +697,8 @@ gboolean dispatch_async(TrgClient * client, JsonNode * req, } gboolean dispatch_async_str(TrgClient * client, gchar * req, - GSourceFunc callback, gpointer data) { + GSourceFunc callback, gpointer data) +{ trg_request *trg_req = g_new0(trg_request, 1); trg_req->str = req; diff --git a/src/trg-files-model-common.c b/src/trg-files-model-common.c index 5468142..ea23c03 100644 --- a/src/trg-files-model-common.c +++ b/src/trg-files-model-common.c @@ -33,32 +33,38 @@ struct SubtreeForeachData { }; static void set_wanted_foreachfunc(GtkTreeModel * model, - GtkTreePath * path G_GNUC_UNUSED, GtkTreeIter * iter, gpointer data) { - struct SubtreeForeachData* args = (struct SubtreeForeachData*) data; + GtkTreePath * path G_GNUC_UNUSED, + GtkTreeIter * iter, gpointer data) +{ + struct SubtreeForeachData *args = (struct SubtreeForeachData *) data; gtk_tree_store_set(GTK_TREE_STORE(model), iter, args->column, - args->new_value, -1); + args->new_value, -1); trg_files_tree_model_setSubtree(model, path, iter, args->column, - args->new_value); + args->new_value); } -static void set_priority_foreachfunc(GtkTreeModel * model, GtkTreePath * path, - GtkTreeIter * iter, gpointer data) { - struct SubtreeForeachData* args = (struct SubtreeForeachData*) data; +static void set_priority_foreachfunc(GtkTreeModel * model, + GtkTreePath * path, + GtkTreeIter * iter, gpointer data) +{ + struct SubtreeForeachData *args = (struct SubtreeForeachData *) data; GValue value = { 0 }; g_value_init(&value, G_TYPE_INT); g_value_set_int(&value, args->new_value); - gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, args->column, &value); + gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, args->column, + &value); trg_files_tree_model_setSubtree(model, path, iter, args->column, - args->new_value); + args->new_value); } -void trg_files_model_set_wanted(GtkTreeView *tv, gint column, - gint new_value) { +void trg_files_model_set_wanted(GtkTreeView * tv, gint column, + gint new_value) +{ struct SubtreeForeachData args; GtkTreeSelection *selection = gtk_tree_view_get_selection(tv); @@ -66,42 +72,46 @@ void trg_files_model_set_wanted(GtkTreeView *tv, gint column, args.new_value = new_value; gtk_tree_selection_selected_foreach(selection, set_wanted_foreachfunc, - &args); + &args); } -void trg_files_tree_model_set_priority(GtkTreeView *tv, gint column, - gint new_value) { +void trg_files_tree_model_set_priority(GtkTreeView * tv, gint column, + gint new_value) +{ struct SubtreeForeachData args; GtkTreeSelection *selection = gtk_tree_view_get_selection(tv); args.column = column; args.new_value = new_value; - gtk_tree_selection_selected_foreach(selection, set_priority_foreachfunc, - &args); + gtk_tree_selection_selected_foreach(selection, + set_priority_foreachfunc, &args); } static gboolean setSubtreeForeach(GtkTreeModel * model, GtkTreePath * path, - GtkTreeIter * iter, gpointer gdata) { + GtkTreeIter * iter, gpointer gdata) +{ struct SubtreeForeachData *data = gdata; if (!gtk_tree_path_compare(path, data->path) - || gtk_tree_path_is_descendant(path, data->path)) { + || gtk_tree_path_is_descendant(path, data->path)) { GValue value = { 0 }; g_value_init(&value, G_TYPE_INT); g_value_set_int(&value, data->new_value); gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, data->column, - &value); + &value); } - return FALSE; /* keep walking */ + return FALSE; /* keep walking */ } void trg_files_tree_model_propogateChangeUp(GtkTreeModel * model, - GtkTreeIter * iter, gint column, gint new_value) { + GtkTreeIter * iter, + gint column, gint new_value) +{ GtkTreeIter back_iter = *iter; gint result = new_value; @@ -118,7 +128,8 @@ void trg_files_tree_model_propogateChangeUp(GtkTreeModel * model, GtkTreeIter child; gint current_value; - if (!gtk_tree_model_iter_nth_child(model, &child, &tmp_iter, i)) + if (!gtk_tree_model_iter_nth_child + (model, &child, &tmp_iter, i)) continue; gtk_tree_model_get(model, &child, column, ¤t_value, -1); @@ -128,15 +139,18 @@ void trg_files_tree_model_propogateChangeUp(GtkTreeModel * model, } } - gtk_tree_store_set(GTK_TREE_STORE(model), &tmp_iter, column, result, - -1); + gtk_tree_store_set(GTK_TREE_STORE(model), &tmp_iter, column, + result, -1); back_iter = tmp_iter; } } -void trg_files_tree_model_setSubtree(GtkTreeModel * model, GtkTreePath * path, - GtkTreeIter * iter, gint column, gint new_value) { +void trg_files_tree_model_setSubtree(GtkTreeModel * model, + GtkTreePath * path, + GtkTreeIter * iter, gint column, + gint new_value) +{ GtkTreeIter back_iter = *iter; if (gtk_tree_model_iter_has_child(model, iter)) { @@ -148,8 +162,8 @@ void trg_files_tree_model_setSubtree(GtkTreeModel * model, GtkTreePath * path, gtk_tree_model_foreach(model, setSubtreeForeach, &tmp); } else { - gtk_tree_store_set(GTK_TREE_STORE(model), &back_iter, column, new_value, - -1); + gtk_tree_store_set(GTK_TREE_STORE(model), &back_iter, column, + new_value, -1); } trg_files_tree_model_propogateChangeUp(model, iter, column, new_value); @@ -160,20 +174,30 @@ struct UpdateParentsSizeForeachData { GtkTreeIter *descendent_iter; }; -static gboolean trg_files_model_update_parents_size_foreach(GtkTreeModel *model, - GtkTreePath *path, GtkTreeIter *iter, gpointer data) { - struct UpdateParentsSizeForeachData *args = (struct UpdateParentsSizeForeachData*)data; +static gboolean trg_files_model_update_parents_size_foreach(GtkTreeModel * + model, + GtkTreePath * + path, + GtkTreeIter * + iter, + gpointer data) +{ + struct UpdateParentsSizeForeachData *args = + (struct UpdateParentsSizeForeachData *) data; GtkTreePath *descendentPath = gtk_tree_model_get_path(model, - args->descendent_iter); + args-> + descendent_iter); if (gtk_tree_path_is_ancestor(path, descendentPath) - && gtk_tree_model_get_iter(model, args->descendent_iter, descendentPath)) { + && gtk_tree_model_get_iter(model, args->descendent_iter, + descendentPath)) { gint64 size, oldSize; - gtk_tree_model_get(model, args->descendent_iter, args->size_column, &size, -1); + gtk_tree_model_get(model, args->descendent_iter, args->size_column, + &size, -1); gtk_tree_model_get(model, iter, args->size_column, &oldSize, -1); gtk_tree_store_set(GTK_TREE_STORE(model), iter, args->size_column, - size + oldSize, -1); + size + oldSize, -1); } gtk_tree_path_free(descendentPath); @@ -181,10 +205,13 @@ static gboolean trg_files_model_update_parents_size_foreach(GtkTreeModel *model, return FALSE; } -void trg_files_model_update_parents(GtkTreeModel *model, GtkTreeIter *iter, gint size_column) { +void trg_files_model_update_parents(GtkTreeModel * model, + GtkTreeIter * iter, gint size_column) +{ struct UpdateParentsSizeForeachData args; args.descendent_iter = iter; args.size_column = size_column; gtk_tree_model_foreach(model, - trg_files_model_update_parents_size_foreach, &args); + trg_files_model_update_parents_size_foreach, + &args); } diff --git a/src/trg-files-model-common.h b/src/trg-files-model-common.h index 0ba3d63..76eaecc 100644 --- a/src/trg-files-model-common.h +++ b/src/trg-files-model-common.h @@ -20,14 +20,22 @@ #ifndef TRG_FILES_TREE_MODEL_COMMON_H_ #define TRG_FILES_TREE_MODEL_COMMON_H_ -void trg_files_tree_model_propogateChangeUp(GtkTreeModel * model, GtkTreeIter * iter, gint column, gint new_value); -void -trg_files_tree_model_setSubtree(GtkTreeModel * model, GtkTreePath * path, GtkTreeIter * iter, - gint column, gint new_value); -void trg_files_tree_model_set_priority(GtkTreeView *tv, gint column, gint new_value); -void trg_files_model_set_wanted(GtkTreeView *tv, gint column, gint new_value); -gboolean trg_files_model_update_parent_size(GtkTreeModel *model, - GtkTreePath *path, GtkTreeIter *iter, gpointer data); -void trg_files_model_update_parents(GtkTreeModel *model, GtkTreeIter *iter, gint size_column); +void trg_files_tree_model_propogateChangeUp(GtkTreeModel * model, + GtkTreeIter * iter, + gint column, gint new_value); +void trg_files_tree_model_setSubtree(GtkTreeModel * model, + GtkTreePath * path, + GtkTreeIter * iter, gint column, + gint new_value); +void trg_files_tree_model_set_priority(GtkTreeView * tv, gint column, + gint new_value); +void trg_files_model_set_wanted(GtkTreeView * tv, gint column, + gint new_value); +gboolean trg_files_model_update_parent_size(GtkTreeModel * model, + GtkTreePath * path, + GtkTreeIter * iter, + gpointer data); +void trg_files_model_update_parents(GtkTreeModel * model, + GtkTreeIter * iter, gint size_column); -#endif /* TRG_FILES_TREE_MODEL_COMMON_H_ */ +#endif /* TRG_FILES_TREE_MODEL_COMMON_H_ */ diff --git a/src/trg-files-model.c b/src/trg-files-model.c index d6770bf..b5dc34e 100644 --- a/src/trg-files-model.c +++ b/src/trg-files-model.c @@ -44,8 +44,9 @@ struct _TrgFilesModelPrivate { gboolean accept; }; -static void iter_to_row_reference(GtkTreeModel *model, GtkTreeIter *iter, - GtkTreeRowReference **rr) { +static void iter_to_row_reference(GtkTreeModel * model, GtkTreeIter * iter, + GtkTreeRowReference ** rr) +{ GtkTreePath *path = gtk_tree_model_get_path(model, iter); if (*rr) @@ -55,8 +56,9 @@ static void iter_to_row_reference(GtkTreeModel *model, GtkTreeIter *iter, gtk_tree_path_free(path); } -static void rowref_to_iter(GtkTreeModel *model, GtkTreeRowReference *rr, - GtkTreeIter *iter) { +static void rowref_to_iter(GtkTreeModel * model, GtkTreeRowReference * rr, + GtkTreeIter * iter) +{ GtkTreePath *path = gtk_tree_row_reference_get_path(rr); gtk_tree_model_get_iter(model, iter, path); gtk_tree_path_free(path); @@ -67,23 +69,33 @@ struct UpdateParentProgressForeachData { gint64 increment; }; -static gboolean trg_files_update_parent_progress_foreachfunc(GtkTreeModel *model, - GtkTreePath *path, GtkTreeIter *iter, gpointer data) { - struct UpdateParentProgressForeachData *args = (struct UpdateParentProgressForeachData*) data; +static gboolean trg_files_update_parent_progress_foreachfunc(GtkTreeModel * + model, + GtkTreePath * + path, + GtkTreeIter * + iter, + gpointer data) +{ + struct UpdateParentProgressForeachData *args = + (struct UpdateParentProgressForeachData *) data; GtkTreePath *descendentPath = gtk_tree_model_get_path(model, - args->descendentIter); + args-> + descendentIter); if (gtk_tree_path_is_ancestor(path, descendentPath)) { gint64 lastCompleted, newCompleted, length; - gtk_tree_model_get(model, iter, FILESCOL_BYTESCOMPLETED, &lastCompleted, - FILESCOL_SIZE, &length, -1); + gtk_tree_model_get(model, iter, FILESCOL_BYTESCOMPLETED, + &lastCompleted, FILESCOL_SIZE, &length, -1); newCompleted = lastCompleted + args->increment; - gtk_tree_store_set(GTK_TREE_STORE(model), iter, FILESCOL_BYTESCOMPLETED, - newCompleted, FILESCOL_PROGRESS, - file_get_progress(length, newCompleted), -1); + gtk_tree_store_set(GTK_TREE_STORE(model), iter, + FILESCOL_BYTESCOMPLETED, newCompleted, + FILESCOL_PROGRESS, file_get_progress(length, + newCompleted), + -1); } @@ -92,7 +104,9 @@ static gboolean trg_files_update_parent_progress_foreachfunc(GtkTreeModel *model return FALSE; } -static void trg_files_update_parent_progress(GtkTreeModel *model, GtkTreeIter *iter, gint64 increment) +static void trg_files_update_parent_progress(GtkTreeModel * model, + GtkTreeIter * iter, + gint64 increment) { if (increment > 0) { struct UpdateParentProgressForeachData args; @@ -100,12 +114,15 @@ static void trg_files_update_parent_progress(GtkTreeModel *model, GtkTreeIter *i args.increment = increment; gtk_tree_model_foreach(GTK_TREE_MODEL(model), - trg_files_update_parent_progress_foreachfunc, &args); + trg_files_update_parent_progress_foreachfunc, + &args); } } -static void trg_files_model_iter_new(TrgFilesModel * model, GtkTreeIter * iter, - JsonObject * file, gint id) { +static void trg_files_model_iter_new(TrgFilesModel * model, + GtkTreeIter * iter, JsonObject * file, + gint id) +{ TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model); gchar **elements = g_strsplit(file_get_name(file), "/", -1); gchar *existingName; @@ -117,19 +134,21 @@ static void trg_files_model_iter_new(TrgFilesModel * model, GtkTreeIter * iter, GtkTreeIter *found = NULL; if (parentRowRef) - rowref_to_iter(GTK_TREE_MODEL(model), parentRowRef, &parentIter); + rowref_to_iter(GTK_TREE_MODEL(model), parentRowRef, + &parentIter); /* If this is the last component of the path, create a file node. */ if (!elements[i + 1]) { gtk_tree_store_append(GTK_TREE_STORE(model), iter, - parentRowRef ? &parentIter : NULL); + parentRowRef ? &parentIter : NULL); gtk_tree_store_set(GTK_TREE_STORE(model), iter, FILESCOL_NAME, - elements[i], FILESCOL_SIZE, file_get_length(file), - FILESCOL_ID, id, -1); + elements[i], FILESCOL_SIZE, + file_get_length(file), FILESCOL_ID, id, -1); if (parentRowRef) - trg_files_model_update_parents(GTK_TREE_MODEL(model), iter, FILESCOL_SIZE); + trg_files_model_update_parents(GTK_TREE_MODEL(model), iter, + FILESCOL_SIZE); break; } @@ -138,45 +157,50 @@ static void trg_files_model_iter_new(TrgFilesModel * model, GtkTreeIter * iter, * GtkTreeRowReferece *parent. */ if (gtk_tree_model_iter_children(GTK_TREE_MODEL(model), iter, - parentRowRef ? &parentIter : NULL)) { + parentRowRef ? &parentIter : + NULL)) { do { - gtk_tree_model_get(GTK_TREE_MODEL(model), iter, FILESCOL_NAME, - &existingName, FILESCOL_ID, &existingId, -1); + gtk_tree_model_get(GTK_TREE_MODEL(model), iter, + FILESCOL_NAME, &existingName, + FILESCOL_ID, &existingId, -1); - if (existingId == -1 && !g_strcmp0(elements[i], existingName)) { + if (existingId == -1 + && !g_strcmp0(elements[i], existingName)) { found = iter; iter_to_row_reference(GTK_TREE_MODEL(model), iter, - &parentRowRef); + &parentRowRef); } g_free(existingName); if (found) break; - } while (gtk_tree_model_iter_next(GTK_TREE_MODEL(model), iter)); + } while (gtk_tree_model_iter_next + (GTK_TREE_MODEL(model), iter)); } if (!found) { GValue gvalue = { 0 }; gtk_tree_store_append(GTK_TREE_STORE(model), iter, - parentRowRef ? &parentIter : NULL); + parentRowRef ? &parentIter : NULL); gtk_tree_store_set(GTK_TREE_STORE(model), iter, - FILESCOL_PRIORITY, TR_PRI_UNSET, - FILESCOL_NAME, elements[i], -1); + FILESCOL_PRIORITY, TR_PRI_UNSET, + FILESCOL_NAME, elements[i], -1); g_value_init(&gvalue, G_TYPE_INT); g_value_set_int(&gvalue, -1); - gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, FILESCOL_ID, - &gvalue); + gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, + FILESCOL_ID, &gvalue); memset(&gvalue, 0, sizeof(GValue)); g_value_init(&gvalue, G_TYPE_INT); g_value_set_int(&gvalue, TR_PRI_UNSET); gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, - FILESCOL_PRIORITY, &gvalue); + FILESCOL_PRIORITY, &gvalue); - iter_to_row_reference(GTK_TREE_MODEL(model), iter, &parentRowRef); + iter_to_row_reference(GTK_TREE_MODEL(model), iter, + &parentRowRef); } } @@ -187,24 +211,32 @@ static void trg_files_model_iter_new(TrgFilesModel * model, GtkTreeIter * iter, priv->n_items++; } -void trg_files_model_set_accept(TrgFilesModel * model, gboolean accept) { +void trg_files_model_set_accept(TrgFilesModel * model, gboolean accept) +{ TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model); priv->accept = accept; } static void trg_files_model_iter_update(TrgFilesModel * model, - GtkTreeIter * filesIter, gboolean isFirst, JsonObject * file, - JsonArray * wantedArray, JsonArray * prioritiesArray, int id) { + GtkTreeIter * filesIter, + gboolean isFirst, + JsonObject * file, + JsonArray * wantedArray, + JsonArray * prioritiesArray, + int id) +{ TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model); gint64 fileLength = file_get_length(file); gint64 fileCompleted = file_get_bytes_completed(file); gint64 increment; - gboolean wanted = json_node_get_int(json_array_get_element(wantedArray, id)) - == 1; - gint priority = (gint)json_node_get_int( - json_array_get_element(prioritiesArray, id)); + gboolean wanted = + json_node_get_int(json_array_get_element(wantedArray, id)) + == 1; + gint priority = + (gint) + json_node_get_int(json_array_get_element(prioritiesArray, id)); gdouble progress = file_get_progress(fileLength, fileCompleted); if (isFirst) { @@ -212,30 +244,40 @@ static void trg_files_model_iter_update(TrgFilesModel * model, } else { gint64 lastCompleted; gtk_tree_model_get(GTK_TREE_MODEL(model), filesIter, - FILESCOL_BYTESCOMPLETED, &lastCompleted, -1); + FILESCOL_BYTESCOMPLETED, &lastCompleted, -1); increment = fileCompleted - lastCompleted; } gtk_tree_store_set(GTK_TREE_STORE(model), filesIter, FILESCOL_PROGRESS, - progress, FILESCOL_BYTESCOMPLETED, fileCompleted, -1); + progress, FILESCOL_BYTESCOMPLETED, fileCompleted, + -1); - trg_files_update_parent_progress(GTK_TREE_MODEL(model), filesIter, increment); + trg_files_update_parent_progress(GTK_TREE_MODEL(model), filesIter, + increment); if (priv->accept) - gtk_tree_store_set(GTK_TREE_STORE(model), filesIter, FILESCOL_WANTED, - wanted, FILESCOL_PRIORITY, priority, -1); + gtk_tree_store_set(GTK_TREE_STORE(model), filesIter, + FILESCOL_WANTED, wanted, FILESCOL_PRIORITY, + priority, -1); if (isFirst) { - trg_files_tree_model_propogateChangeUp(GTK_TREE_MODEL(model), filesIter, FILESCOL_PRIORITY, priority); - trg_files_tree_model_propogateChangeUp(GTK_TREE_MODEL(model), filesIter, FILESCOL_WANTED, wanted); + trg_files_tree_model_propogateChangeUp(GTK_TREE_MODEL(model), + filesIter, + FILESCOL_PRIORITY, + priority); + trg_files_tree_model_propogateChangeUp(GTK_TREE_MODEL(model), + filesIter, FILESCOL_WANTED, + wanted); } } -static void trg_files_model_class_init(TrgFilesModelClass * klass) { +static void trg_files_model_class_init(TrgFilesModelClass * klass) +{ g_type_class_add_private(klass, sizeof(TrgFilesModelPrivate)); } -static void trg_files_model_init(TrgFilesModel * self) { +static void trg_files_model_init(TrgFilesModel * self) +{ TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(self); GType column_types[FILESCOL_COLUMNS]; @@ -250,11 +292,13 @@ static void trg_files_model_init(TrgFilesModel * self) { column_types[FILESCOL_BYTESCOMPLETED] = G_TYPE_INT64; gtk_tree_store_set_column_types(GTK_TREE_STORE(self), FILESCOL_COLUMNS, - column_types); + column_types); } gboolean trg_files_model_update_foreach(GtkListStore * model, - GtkTreePath * path G_GNUC_UNUSED, GtkTreeIter * iter, GList * files) { + GtkTreePath * path G_GNUC_UNUSED, + GtkTreeIter * iter, GList * files) +{ TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model); JsonObject *file; gint id; @@ -263,15 +307,17 @@ gboolean trg_files_model_update_foreach(GtkListStore * model, if (id >= 0) { file = json_node_get_object(g_list_nth_data(files, id)); - trg_files_model_iter_update(TRG_FILES_MODEL(model), iter, FALSE, file, - priv->wanted, priv->priorities, id); + trg_files_model_iter_update(TRG_FILES_MODEL(model), iter, FALSE, + file, priv->wanted, priv->priorities, + id); } return FALSE; } void trg_files_model_update(TrgFilesModel * model, gint64 updateSerial, - JsonObject * t, gint mode) { + JsonObject * t, gint mode) +{ TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model); GList *filesList, *li; GtkTreeIter filesIter; @@ -292,21 +338,22 @@ void trg_files_model_update(TrgFilesModel * model, gint64 updateSerial, trg_files_model_iter_new(model, &filesIter, file, j); trg_files_model_iter_update(model, &filesIter, TRUE, file, - priv->wanted, priv->priorities, j); + priv->wanted, priv->priorities, j); j++; } } else { guint n_updates = g_list_length(filesList); gtk_tree_model_foreach(GTK_TREE_MODEL(model), - (GtkTreeModelForeachFunc) trg_files_model_update_foreach, - filesList); + (GtkTreeModelForeachFunc) + trg_files_model_update_foreach, filesList); if (n_updates > priv->n_items) { gint n_new = n_updates - priv->n_items; for (j = n_updates - n_new; j < n_updates; j++) { file = json_node_get_object(g_list_nth_data(filesList, j)); trg_files_model_iter_new(model, &filesIter, file, j); trg_files_model_iter_update(model, &filesIter, TRUE, file, - priv->wanted, priv->priorities, j); + priv->wanted, priv->priorities, + j); } } } @@ -314,11 +361,13 @@ void trg_files_model_update(TrgFilesModel * model, gint64 updateSerial, g_list_free(filesList); } -gint64 trg_files_model_get_torrent_id(TrgFilesModel * model) { +gint64 trg_files_model_get_torrent_id(TrgFilesModel * model) +{ TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model); return priv->torrentId; } -TrgFilesModel *trg_files_model_new(void) { +TrgFilesModel *trg_files_model_new(void) +{ return g_object_new(TRG_TYPE_FILES_MODEL, NULL); } diff --git a/src/trg-files-tree-view-common.c b/src/trg-files-tree-view-common.c index 319d77d..5be2eef 100644 --- a/src/trg-files-tree-view-common.c +++ b/src/trg-files-tree-view-common.c @@ -27,19 +27,22 @@ #include "trg-files-model-common.h" #include "trg-files-tree-view-common.h" -static void expand_all_cb(GtkWidget *w, gpointer data) +static void expand_all_cb(GtkWidget * w, gpointer data) { gtk_tree_view_expand_all(GTK_TREE_VIEW(data)); } -static void collapse_all_cb(GtkWidget *w, gpointer data) +static void collapse_all_cb(GtkWidget * w, gpointer data) { gtk_tree_view_collapse_all(GTK_TREE_VIEW(data)); } static void view_popup_menu(GtkWidget * treeview, GdkEventButton * event, - GCallback low_cb, GCallback normal_cb, GCallback high_cb, - GCallback wanted_cb, GCallback unwanted_cb, gpointer data G_GNUC_UNUSED) { + GCallback low_cb, GCallback normal_cb, + GCallback high_cb, GCallback wanted_cb, + GCallback unwanted_cb, + gpointer data G_GNUC_UNUSED) +{ GtkWidget *menu, *menuitem; menu = gtk_menu_new(); @@ -56,12 +59,13 @@ static void view_popup_menu(GtkWidget * treeview, GdkEventButton * event, g_signal_connect(menuitem, "activate", low_cb, treeview); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + gtk_separator_menu_item_new()); menuitem = gtk_image_menu_item_new_with_label(GTK_STOCK_APPLY); gtk_image_menu_item_set_use_stock(GTK_IMAGE_MENU_ITEM(menuitem), TRUE); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM - (menuitem), TRUE); + (menuitem), TRUE); gtk_menu_item_set_label(GTK_MENU_ITEM(menuitem), _("Download")); g_signal_connect(menuitem, "activate", wanted_cb, treeview); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); @@ -69,38 +73,49 @@ static void view_popup_menu(GtkWidget * treeview, GdkEventButton * event, menuitem = gtk_image_menu_item_new_with_label(GTK_STOCK_CANCEL); gtk_image_menu_item_set_use_stock(GTK_IMAGE_MENU_ITEM(menuitem), TRUE); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM - (menuitem), TRUE); + (menuitem), TRUE); gtk_menu_item_set_label(GTK_MENU_ITEM(menuitem), _("Skip")); g_signal_connect(menuitem, "activate", unwanted_cb, treeview); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + gtk_separator_menu_item_new()); menuitem = gtk_image_menu_item_new_with_label(_("Expand All")); - g_signal_connect(menuitem, "activate", G_CALLBACK(expand_all_cb), treeview); + g_signal_connect(menuitem, "activate", G_CALLBACK(expand_all_cb), + treeview); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); menuitem = gtk_image_menu_item_new_with_label(_("Collapse All")); - g_signal_connect(menuitem, "activate", G_CALLBACK(collapse_all_cb), treeview); + g_signal_connect(menuitem, "activate", G_CALLBACK(collapse_all_cb), + treeview); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); gtk_widget_show_all(menu); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, - (event != NULL) ? event->button : 0, - gdk_event_get_time((GdkEvent *) event)); - } + (event != NULL) ? event->button : 0, + gdk_event_get_time((GdkEvent *) event)); +} gboolean trg_files_tree_view_viewOnPopupMenu(GtkWidget * treeview, - GCallback low_cb, GCallback normal_cb, GCallback high_cb, - GCallback wanted_cb, GCallback unwanted_cb, gpointer userdata) { + GCallback low_cb, + GCallback normal_cb, + GCallback high_cb, + GCallback wanted_cb, + GCallback unwanted_cb, + gpointer userdata) +{ view_popup_menu(treeview, NULL, low_cb, normal_cb, high_cb, wanted_cb, - unwanted_cb, userdata); + unwanted_cb, userdata); return TRUE; } -static gboolean onViewPathToggled(GtkTreeView * view, GtkTreeViewColumn * col, - GtkTreePath * path, gint pri_id, gint enabled_id, gpointer data) { +static gboolean onViewPathToggled(GtkTreeView * view, + GtkTreeViewColumn * col, + GtkTreePath * path, gint pri_id, + gint enabled_id, gpointer data) +{ int cid; gboolean handled = FALSE; @@ -129,14 +144,14 @@ static gboolean onViewPathToggled(GtkTreeView * view, GtkTreeViewColumn * col, break; } trg_files_tree_model_setSubtree(model, path, &iter, pri_id, - priority); + priority); } else { int enabled; gtk_tree_model_get(model, &iter, enabled_id, &enabled, -1); enabled = !enabled; trg_files_tree_model_setSubtree(model, path, &iter, enabled_id, - enabled); + enabled); } handled = TRUE; @@ -146,11 +161,14 @@ static gboolean onViewPathToggled(GtkTreeView * view, GtkTreeViewColumn * col, } static gboolean getAndSelectEventPath(GtkTreeView * treeview, - GdkEventButton * event, GtkTreeViewColumn ** col, GtkTreePath ** path) { + GdkEventButton * event, + GtkTreeViewColumn ** col, + GtkTreePath ** path) +{ GtkTreeSelection *sel; - if (gtk_tree_view_get_path_at_pos(treeview, event->x, event->y, path, col, - NULL, NULL)) { + if (gtk_tree_view_get_path_at_pos + (treeview, event->x, event->y, path, col, NULL, NULL)) { sel = gtk_tree_view_get_selection(treeview); if (!gtk_tree_selection_path_is_selected(sel, *path)) { gtk_tree_selection_unselect_all(sel); @@ -163,9 +181,16 @@ static gboolean getAndSelectEventPath(GtkTreeView * treeview, } gboolean trg_files_tree_view_onViewButtonPressed(GtkWidget * w, - GdkEventButton * event, gint pri_id, gint enabled_id, GCallback low_cb, - GCallback normal_cb, GCallback high_cb, GCallback wanted_cb, - GCallback unwanted_cb, gpointer gdata) { + GdkEventButton * event, + gint pri_id, + gint enabled_id, + GCallback low_cb, + GCallback normal_cb, + GCallback high_cb, + GCallback wanted_cb, + GCallback unwanted_cb, + gpointer gdata) +{ GtkTreeViewColumn *col = NULL; GtkTreePath *path = NULL; GtkTreeSelection *selection; @@ -173,22 +198,24 @@ gboolean trg_files_tree_view_onViewButtonPressed(GtkWidget * w, GtkTreeView *treeview = GTK_TREE_VIEW(w); if (event->type == GDK_BUTTON_PRESS && event->button == 1 - && !(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) - && getAndSelectEventPath(treeview, event, &col, &path)) { - handled = onViewPathToggled(treeview, col, path, pri_id, enabled_id, - NULL); + && !(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) + && getAndSelectEventPath(treeview, event, &col, &path)) { + handled = + onViewPathToggled(treeview, col, path, pri_id, enabled_id, + NULL); } else if (event->type == GDK_BUTTON_PRESS && event->button == 3) { selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview), - (gint) event->x, (gint) event->y, &path, NULL, NULL, NULL)) { + (gint) event->x, (gint) event->y, + &path, NULL, NULL, NULL)) { if (!gtk_tree_selection_path_is_selected(selection, path)) { gtk_tree_selection_unselect_all(selection); gtk_tree_selection_select_path(selection, path); } - view_popup_menu(w, event, low_cb, normal_cb, high_cb, wanted_cb, - unwanted_cb, gdata); + view_popup_menu(w, event, low_cb, normal_cb, high_cb, + wanted_cb, unwanted_cb, gdata); handled = TRUE; } } diff --git a/src/trg-files-tree-view-common.h b/src/trg-files-tree-view-common.h index e34c916..1dccf7f 100644 --- a/src/trg-files-tree-view-common.h +++ b/src/trg-files-tree-view-common.h @@ -21,12 +21,21 @@ #define TRG_FILES_TREE_VIEW_COMMON_H_ gboolean -trg_files_tree_view_onViewButtonPressed(GtkWidget * w, GdkEventButton * event, - gint pri_id, gint enabled_id, - GCallback low_cb, GCallback normal_cb, GCallback high_cb, - GCallback wanted_cb, GCallback unwanted_cb, gpointer gdata); +trg_files_tree_view_onViewButtonPressed(GtkWidget * w, + GdkEventButton * event, + gint pri_id, gint enabled_id, + GCallback low_cb, + GCallback normal_cb, + GCallback high_cb, + GCallback wanted_cb, + GCallback unwanted_cb, + gpointer gdata); gboolean trg_files_tree_view_viewOnPopupMenu(GtkWidget * treeview, - GCallback low_cb, GCallback normal_cb, GCallback high_cb, - GCallback wanted_cb, GCallback unwanted_cb, gpointer userdata); + GCallback low_cb, + GCallback normal_cb, + GCallback high_cb, + GCallback wanted_cb, + GCallback unwanted_cb, + gpointer userdata); -#endif /* TRG_FILES_TREE_VIEW_COMMON_H_ */ +#endif /* TRG_FILES_TREE_VIEW_COMMON_H_ */ diff --git a/src/trg-files-tree-view.c b/src/trg-files-tree-view.c index a1d791e..bf0d9c8 100644 --- a/src/trg-files-tree-view.c +++ b/src/trg-files-tree-view.c @@ -42,12 +42,17 @@ struct _TrgFilesTreeViewPrivate { TrgMainWindow *win; }; -static void trg_files_tree_view_class_init(TrgFilesTreeViewClass * klass) { +static void trg_files_tree_view_class_init(TrgFilesTreeViewClass * klass) +{ g_type_class_add_private(klass, sizeof(TrgFilesTreeViewPrivate)); } static gboolean send_updated_file_prefs_foreachfunc(GtkTreeModel * model, - GtkTreePath * path G_GNUC_UNUSED, GtkTreeIter * iter, gpointer data) { + GtkTreePath * + path G_GNUC_UNUSED, + GtkTreeIter * iter, + gpointer data) +{ JsonObject *args = (JsonObject *) data; gint priority; gint id; @@ -58,8 +63,8 @@ static gboolean send_updated_file_prefs_foreachfunc(GtkTreeModel * model, if (id < 0) return FALSE; - gtk_tree_model_get(model, iter, FILESCOL_WANTED, &wanted, FILESCOL_PRIORITY, - &priority, -1); + gtk_tree_model_get(model, iter, FILESCOL_WANTED, &wanted, + FILESCOL_PRIORITY, &priority, -1); if (wanted) add_file_id_to_array(args, FIELD_FILES_WANTED, id); @@ -76,12 +81,13 @@ static gboolean send_updated_file_prefs_foreachfunc(GtkTreeModel * model, return FALSE; } -static gboolean on_files_update(gpointer data) { +static gboolean on_files_update(gpointer data) +{ trg_response *response = (trg_response *) data; TrgFilesTreeViewPrivate *priv = - TRG_FILES_TREE_VIEW_GET_PRIVATE(response->cb_data); - GtkTreeModel *model = gtk_tree_view_get_model( - GTK_TREE_VIEW(response->cb_data)); + TRG_FILES_TREE_VIEW_GET_PRIVATE(response->cb_data); + GtkTreeModel *model = + gtk_tree_view_get_model(GTK_TREE_VIEW(response->cb_data)); trg_files_model_set_accept(TRG_FILES_MODEL(model), TRUE); @@ -90,7 +96,8 @@ static gboolean on_files_update(gpointer data) { return on_generic_interactive_action(data); } -static void send_updated_file_prefs(TrgFilesTreeView * tv) { +static void send_updated_file_prefs(TrgFilesTreeView * tv) +{ TrgFilesTreeViewPrivate *priv = TRG_FILES_TREE_VIEW_GET_PRIVATE(tv); JsonNode *req; JsonObject *args; @@ -107,47 +114,62 @@ static void send_updated_file_prefs(TrgFilesTreeView * tv) { args = node_get_arguments(req); request_set_tag(req, targetId); - gtk_tree_model_foreach(model, send_updated_file_prefs_foreachfunc, args); + gtk_tree_model_foreach(model, send_updated_file_prefs_foreachfunc, + args); trg_files_model_set_accept(TRG_FILES_MODEL(model), FALSE); dispatch_async(priv->client, req, on_files_update, tv); } -static void set_low(GtkWidget * w G_GNUC_UNUSED, gpointer data) { - trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), FILESCOL_PRIORITY, - TR_PRI_LOW); +static void set_low(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ + trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), + FILESCOL_PRIORITY, TR_PRI_LOW); send_updated_file_prefs(TRG_FILES_TREE_VIEW(data)); } -static void set_normal(GtkWidget * w G_GNUC_UNUSED, gpointer data) { - trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), FILESCOL_PRIORITY, - TR_PRI_NORMAL); +static void set_normal(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ + trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), + FILESCOL_PRIORITY, TR_PRI_NORMAL); send_updated_file_prefs(TRG_FILES_TREE_VIEW(data)); } -static void set_high(GtkWidget * w G_GNUC_UNUSED, gpointer data) { - trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), FILESCOL_PRIORITY, - TR_PRI_HIGH); +static void set_high(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ + trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), + FILESCOL_PRIORITY, TR_PRI_HIGH); send_updated_file_prefs(TRG_FILES_TREE_VIEW(data)); } -static void set_unwanted(GtkWidget * w G_GNUC_UNUSED, gpointer data) { - trg_files_model_set_wanted(GTK_TREE_VIEW(data), FILESCOL_WANTED, FALSE); +static void set_unwanted(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ + trg_files_model_set_wanted(GTK_TREE_VIEW(data), FILESCOL_WANTED, + FALSE); send_updated_file_prefs(TRG_FILES_TREE_VIEW(data)); } -static void set_wanted(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void set_wanted(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ trg_files_model_set_wanted(GTK_TREE_VIEW(data), FILESCOL_WANTED, TRUE); send_updated_file_prefs(TRG_FILES_TREE_VIEW(data)); } static gboolean view_onButtonPressed(GtkWidget * treeview, - GdkEventButton * event, gpointer userdata) { - gboolean handled = trg_files_tree_view_onViewButtonPressed(treeview, event, - FILESCOL_PRIORITY, FILESCOL_WANTED, G_CALLBACK(set_low), - G_CALLBACK(set_normal), G_CALLBACK(set_high), - G_CALLBACK(set_wanted), G_CALLBACK(set_unwanted), userdata); + GdkEventButton * event, + gpointer userdata) +{ + gboolean handled = + trg_files_tree_view_onViewButtonPressed(treeview, event, + FILESCOL_PRIORITY, + FILESCOL_WANTED, + G_CALLBACK(set_low), + G_CALLBACK(set_normal), + G_CALLBACK(set_high), + G_CALLBACK(set_wanted), + G_CALLBACK(set_unwanted), + userdata); if (handled) send_updated_file_prefs(TRG_FILES_TREE_VIEW(treeview)); @@ -155,37 +177,42 @@ static gboolean view_onButtonPressed(GtkWidget * treeview, return handled; } -static void trg_files_tree_view_init(TrgFilesTreeView * self) { +static void trg_files_tree_view_init(TrgFilesTreeView * self) +{ TrgTreeView *ttv = TRG_TREE_VIEW(self); trg_column_description *desc; desc = trg_tree_view_reg_column(ttv, TRG_COLTYPE_FILEICONTEXT, - FILESCOL_NAME, _("Name"), "name", 0); + FILESCOL_NAME, _("Name"), "name", 0); desc->model_column_extra = FILESCOL_ID; - trg_tree_view_reg_column(ttv, TRG_COLTYPE_SIZE, FILESCOL_SIZE, _("Size"), - "size", 0); + trg_tree_view_reg_column(ttv, TRG_COLTYPE_SIZE, FILESCOL_SIZE, + _("Size"), "size", 0); trg_tree_view_reg_column(ttv, TRG_COLTYPE_PROG, FILESCOL_PROGRESS, - _("Progress"), "progress", 0); + _("Progress"), "progress", 0); trg_tree_view_reg_column(ttv, TRG_COLTYPE_WANTED, FILESCOL_WANTED, - _("Download"), "wanted", 0); + _("Download"), "wanted", 0); trg_tree_view_reg_column(ttv, TRG_COLTYPE_PRIO, FILESCOL_PRIORITY, - _("Priority"), "priority", 0); + _("Priority"), "priority", 0); gtk_tree_view_set_search_column(GTK_TREE_VIEW(self), FILESCOL_NAME); g_signal_connect(self, "button-press-event", - G_CALLBACK(view_onButtonPressed), NULL); + G_CALLBACK(view_onButtonPressed), NULL); g_signal_connect(self, "popup-menu", - G_CALLBACK(trg_files_tree_view_viewOnPopupMenu), NULL); + G_CALLBACK(trg_files_tree_view_viewOnPopupMenu), + NULL); } TrgFilesTreeView *trg_files_tree_view_new(TrgFilesModel * model, - TrgMainWindow * win, TrgClient * client) { + TrgMainWindow * win, + TrgClient * client) +{ GObject *obj = g_object_new(TRG_TYPE_FILES_TREE_VIEW, NULL); TrgFilesTreeViewPrivate *priv = TRG_FILES_TREE_VIEW_GET_PRIVATE(obj); - trg_tree_view_set_prefs(TRG_TREE_VIEW(obj), trg_client_get_prefs(client)); + trg_tree_view_set_prefs(TRG_TREE_VIEW(obj), + trg_client_get_prefs(client)); gtk_tree_view_set_model(GTK_TREE_VIEW(obj), GTK_TREE_MODEL(model)); priv->client = client; diff --git a/src/trg-files-tree-view.h b/src/trg-files-tree-view.h index 00223e8..006fc66 100644 --- a/src/trg-files-tree-view.h +++ b/src/trg-files-tree-view.h @@ -58,15 +58,18 @@ TrgFilesTreeView *trg_files_tree_view_new(TrgFilesModel * model, TrgClient * client); void -trg_files_tree_view_renderPriority(GtkTreeViewColumn * column G_GNUC_UNUSED, - GtkCellRenderer * renderer, - GtkTreeModel * model, - GtkTreeIter * iter, gpointer data G_GNUC_UNUSED); -void -trg_files_tree_view_renderDownload(GtkTreeViewColumn * column G_GNUC_UNUSED, - GtkCellRenderer * renderer, - GtkTreeModel * model, - GtkTreeIter * iter, gpointer data G_GNUC_UNUSED); +trg_files_tree_view_renderPriority(GtkTreeViewColumn * + column G_GNUC_UNUSED, + GtkCellRenderer * renderer, + GtkTreeModel * model, + GtkTreeIter * iter, + gpointer data G_GNUC_UNUSED); +void trg_files_tree_view_renderDownload(GtkTreeViewColumn * + column G_GNUC_UNUSED, + GtkCellRenderer * renderer, + GtkTreeModel * model, + GtkTreeIter * iter, + gpointer data G_GNUC_UNUSED); G_END_DECLS #endif /* TRG_FILES_TREE_VIEW_H_ */ diff --git a/src/trg-icons.c b/src/trg-icons.c index 4cd2bae..b507ce9 100644 --- a/src/trg-icons.c +++ b/src/trg-icons.c @@ -21,52 +21,43 @@ #include "icon-turtle.h" -typedef struct -{ - const guint8* raw; - const char * name; -} -BuiltinIconInfo; - -static const BuiltinIconInfo my_fallback_icons[] = -{ - { blue_turtle, "alt-speed-on" }, - { grey_turtle, "alt-speed-off" } +typedef struct { + const guint8 *raw; + const char *name; +} BuiltinIconInfo; + +static const BuiltinIconInfo my_fallback_icons[] = { + {blue_turtle, "alt-speed-on"}, + {grey_turtle, "alt-speed-off"} }; -void -register_my_icons( GtkIconTheme *theme ) +void register_my_icons(GtkIconTheme * theme) { - int i; - const int n = G_N_ELEMENTS( my_fallback_icons ); - GtkIconFactory * factory = gtk_icon_factory_new( ); + int i; + const int n = G_N_ELEMENTS(my_fallback_icons); + GtkIconFactory *factory = gtk_icon_factory_new(); - gtk_icon_factory_add_default( factory ); + gtk_icon_factory_add_default(factory); - for( i = 0; i < n; ++i ) - { - const char * name = my_fallback_icons[i].name; + for (i = 0; i < n; ++i) { + const char *name = my_fallback_icons[i].name; - if( !gtk_icon_theme_has_icon( theme, name ) ) - { - int width; - GdkPixbuf * p; - GtkIconSet * icon_set; + if (!gtk_icon_theme_has_icon(theme, name)) { + int width; + GdkPixbuf *p; + GtkIconSet *icon_set; - p = - gdk_pixbuf_new_from_inline( -1, my_fallback_icons[i].raw, - FALSE, - NULL ); - width = gdk_pixbuf_get_width( p ); - icon_set = gtk_icon_set_new_from_pixbuf( p ); - gtk_icon_theme_add_builtin_icon( name, width, p ); - gtk_icon_factory_add( factory, name, icon_set ); + p = gdk_pixbuf_new_from_inline(-1, my_fallback_icons[i].raw, + FALSE, NULL); + width = gdk_pixbuf_get_width(p); + icon_set = gtk_icon_set_new_from_pixbuf(p); + gtk_icon_theme_add_builtin_icon(name, width, p); + gtk_icon_factory_add(factory, name, icon_set); - g_object_unref( p ); - gtk_icon_set_unref( icon_set ); + g_object_unref(p); + gtk_icon_set_unref(icon_set); } } - g_object_unref ( G_OBJECT ( factory ) ); + g_object_unref(G_OBJECT(factory)); } - diff --git a/src/trg-icons.h b/src/trg-icons.h index 9b7a714..56a01ff 100644 --- a/src/trg-icons.h +++ b/src/trg-icons.h @@ -20,7 +20,6 @@ #ifndef TRG_ICONS_H_ #define TRG_ICONS_H_ -void -register_my_icons( GtkIconTheme *theme ); +void register_my_icons(GtkIconTheme * theme); -#endif /* TRG_ICONS_H_ */ +#endif /* TRG_ICONS_H_ */ diff --git a/src/trg-json-widgets.c b/src/trg-json-widgets.c index 1814769..49e8ded 100644 --- a/src/trg-json-widgets.c +++ b/src/trg-json-widgets.c @@ -32,7 +32,8 @@ * pointers for load/save. */ -void trg_json_widgets_save(GList * list, JsonObject * out) { +void trg_json_widgets_save(GList * list, JsonObject * out) +{ GList *li; for (li = list; li; li = g_list_next(li)) { trg_json_widget_desc *wd = (trg_json_widget_desc *) li->data; @@ -40,12 +41,14 @@ void trg_json_widgets_save(GList * list, JsonObject * out) { } } -void trg_json_widget_desc_free(trg_json_widget_desc * wd) { +void trg_json_widget_desc_free(trg_json_widget_desc * wd) +{ g_free(wd->key); g_free(wd); } -void trg_json_widget_desc_list_free(GList * list) { +void trg_json_widget_desc_list_free(GList * list) +{ GList *li; for (li = list; li; li = g_list_next(li)) trg_json_widget_desc_free((trg_json_widget_desc *) li->data); @@ -53,12 +56,17 @@ void trg_json_widget_desc_list_free(GList * list) { g_list_free(list); } -void toggle_active_arg_is_sensitive(GtkToggleButton * b, gpointer data) { - gtk_widget_set_sensitive(GTK_WIDGET(data), gtk_toggle_button_get_active(b)); +void toggle_active_arg_is_sensitive(GtkToggleButton * b, gpointer data) +{ + gtk_widget_set_sensitive(GTK_WIDGET(data), + gtk_toggle_button_get_active(b)); } GtkWidget *trg_json_widget_check_new(GList ** wl, JsonObject * obj, - const gchar * key, const gchar * label, GtkWidget * toggleDep) { + const gchar * key, + const gchar * label, + GtkWidget * toggleDep) +{ GtkWidget *w = gtk_check_button_new_with_mnemonic(label); trg_json_widget_desc *wd = g_new0(trg_json_widget_desc, 1); @@ -68,13 +76,14 @@ GtkWidget *trg_json_widget_check_new(GList ** wl, JsonObject * obj, if (toggleDep) { gtk_widget_set_sensitive(w, - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggleDep))); + gtk_toggle_button_get_active + (GTK_TOGGLE_BUTTON(toggleDep))); g_signal_connect(G_OBJECT(toggleDep), "toggled", - G_CALLBACK(toggle_active_arg_is_sensitive), w); + G_CALLBACK(toggle_active_arg_is_sensitive), w); } gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), - json_object_get_boolean_member(obj, key)); + json_object_get_boolean_member(obj, key)); *wl = g_list_append(*wl, wd); @@ -82,7 +91,9 @@ GtkWidget *trg_json_widget_check_new(GList ** wl, JsonObject * obj, } GtkWidget *trg_json_widget_entry_new(GList ** wl, JsonObject * obj, - const gchar * key, GtkWidget * toggleDep) { + const gchar * key, + GtkWidget * toggleDep) +{ GtkWidget *w = gtk_entry_new(); trg_json_widget_desc *wd = g_new0(trg_json_widget_desc, 1); @@ -92,12 +103,14 @@ GtkWidget *trg_json_widget_entry_new(GList ** wl, JsonObject * obj, if (toggleDep) { gtk_widget_set_sensitive(w, - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggleDep))); + gtk_toggle_button_get_active + (GTK_TOGGLE_BUTTON(toggleDep))); g_signal_connect(G_OBJECT(toggleDep), "toggled", - G_CALLBACK(toggle_active_arg_is_sensitive), w); + G_CALLBACK(toggle_active_arg_is_sensitive), w); } - gtk_entry_set_text(GTK_ENTRY(w), json_object_get_string_member(obj, key)); + gtk_entry_set_text(GTK_ENTRY(w), + json_object_get_string_member(obj, key)); *wl = g_list_append(*wl, wd); @@ -105,16 +118,19 @@ GtkWidget *trg_json_widget_entry_new(GList ** wl, JsonObject * obj, } void trg_json_widget_time_save(GtkWidget * widget, JsonObject * obj, - gchar * key) { + gchar * key) +{ json_object_set_double_member(obj, key, - gtk_spin_button_get_value(GTK_SPIN_BUTTON - (widget))); + gtk_spin_button_get_value(GTK_SPIN_BUTTON + (widget))); } GtkWidget *trg_json_widget_spin_new(GList ** wl, JsonObject * obj, - const gchar * key, GtkWidget * toggleDep, gdouble min, gdouble max, - gdouble step) { + const gchar * key, + GtkWidget * toggleDep, gdouble min, + gdouble max, gdouble step) +{ GtkWidget *w = gtk_spin_button_new_with_range(min, max, step); trg_json_widget_desc *wd = g_new0(trg_json_widget_desc, 1); JsonNode *node = json_object_get_member(obj, key); @@ -125,13 +141,14 @@ GtkWidget *trg_json_widget_spin_new(GList ** wl, JsonObject * obj, if (toggleDep) { gtk_widget_set_sensitive(w, - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggleDep))); + gtk_toggle_button_get_active + (GTK_TOGGLE_BUTTON(toggleDep))); g_signal_connect(G_OBJECT(toggleDep), "toggled", - G_CALLBACK(toggle_active_arg_is_sensitive), w); + G_CALLBACK(toggle_active_arg_is_sensitive), w); } gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), - json_node_really_get_double(node)); + json_node_really_get_double(node)); *wl = g_list_append(*wl, wd); @@ -139,20 +156,24 @@ GtkWidget *trg_json_widget_spin_new(GList ** wl, JsonObject * obj, } void trg_json_widget_check_save(GtkWidget * widget, JsonObject * obj, - gchar * key) { - gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); + gchar * key) +{ + gboolean active = + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); json_object_set_boolean_member(obj, key, active); } void trg_json_widget_entry_save(GtkWidget * widget, JsonObject * obj, - gchar * key) { + gchar * key) +{ json_object_set_string_member(obj, key, - gtk_entry_get_text(GTK_ENTRY(widget))); + gtk_entry_get_text(GTK_ENTRY(widget))); } void trg_json_widget_spin_save_double(GtkWidget * widget, JsonObject * obj, - gchar * key) { + gchar * key) +{ json_object_set_double_member(obj, key, - gtk_spin_button_get_value(GTK_SPIN_BUTTON - (widget))); + gtk_spin_button_get_value(GTK_SPIN_BUTTON + (widget))); } diff --git a/src/trg-json-widgets.h b/src/trg-json-widgets.h index 3dafdfd..7eefe58 100644 --- a/src/trg-json-widgets.h +++ b/src/trg-json-widgets.h @@ -26,26 +26,30 @@ typedef struct { GtkWidget *widget; gchar *key; - void (*saveFunc)(GtkWidget * widget, JsonObject * obj, gchar * key); + void (*saveFunc) (GtkWidget * widget, JsonObject * obj, gchar * key); } trg_json_widget_desc; void toggle_active_arg_is_sensitive(GtkToggleButton * b, gpointer data); GtkWidget *trg_json_widget_check_new(GList ** wl, JsonObject * obj, - const gchar * key, const gchar * label, GtkWidget * toggleDep); + const gchar * key, + const gchar * label, + GtkWidget * toggleDep); GtkWidget *trg_json_widget_entry_new(GList ** wl, JsonObject * obj, - const gchar * key, GtkWidget * toggleDep); + const gchar * key, + GtkWidget * toggleDep); GtkWidget *trg_json_widget_spin_new(GList ** wl, JsonObject * obj, - const gchar * key, GtkWidget * toggleDep, gdouble min, gdouble max, - gdouble step); + const gchar * key, + GtkWidget * toggleDep, gdouble min, + gdouble max, gdouble step); void trg_json_widget_check_save(GtkWidget * widget, JsonObject * obj, - gchar * key); + gchar * key); void trg_json_widget_entry_save(GtkWidget * widget, JsonObject * obj, - gchar * key); + gchar * key); void trg_json_widget_spin_save_int(GtkWidget * widget, JsonObject * obj, - gchar * key); + gchar * key); void trg_json_widget_spin_save_double(GtkWidget * widget, JsonObject * obj, - gchar * key); + gchar * key); void trg_json_widget_desc_free(trg_json_widget_desc * wd); void trg_json_widget_desc_list_free(GList * list); diff --git a/src/trg-main-window.c b/src/trg-main-window.c index 8f5f25b..013fa50 100644 --- a/src/trg-main-window.c +++ b/src/trg-main-window.c @@ -83,24 +83,30 @@ /* The rather large main window class, which glues everything together. */ static void update_selected_torrent_notebook(TrgMainWindow * win, - gint mode, gint64 id); + gint mode, gint64 id); #ifdef HAVE_LIBNOTIFY -static void torrent_event_notification(TrgTorrentModel * model, gchar * icon, - gchar * desc, gint tmout, gchar * prefKey, GtkTreeIter * iter, - gpointer data); +static void torrent_event_notification(TrgTorrentModel * model, + gchar * icon, gchar * desc, + gint tmout, gchar * prefKey, + GtkTreeIter * iter, gpointer data); #endif static void connchange_whatever_statusicon(TrgMainWindow * win, - gboolean connected); + gboolean connected); static void update_whatever_statusicon(TrgMainWindow * win, - const gchar * speedLabel, trg_torrent_model_update_stats * stats); -static void on_torrent_completed(TrgTorrentModel * model, GtkTreeIter * iter, - gpointer data); + const gchar * speedLabel, + trg_torrent_model_update_stats * + stats); +static void on_torrent_completed(TrgTorrentModel * model, + GtkTreeIter * iter, gpointer data); static void on_torrent_added(TrgTorrentModel * model, GtkTreeIter * iter, - gpointer data); -static gboolean delete_event(GtkWidget * w, GdkEvent * event, gpointer data); + gpointer data); +static gboolean delete_event(GtkWidget * w, GdkEvent * event, + gpointer data); static void destroy_window(GtkWidget * w, gpointer data); static void torrent_tv_onRowActivated(GtkTreeView * treeview, - GtkTreePath * path, GtkTreeViewColumn * col, gpointer userdata); + GtkTreePath * path, + GtkTreeViewColumn * col, + gpointer userdata); static void add_url_cb(GtkWidget * w, gpointer data); static void add_cb(GtkWidget * w, gpointer data); static void disconnect_cb(GtkWidget * w, gpointer data); @@ -117,8 +123,11 @@ static void pause_all_cb(GtkWidget * w, gpointer data); static void move_cb(GtkWidget * w, gpointer data); static void delete_cb(GtkWidget * w, gpointer data); static void open_props_cb(GtkWidget * w, gpointer data); -static gint confirm_action_dialog(GtkWindow * win, GtkTreeSelection * selection, - gchar * question_single, gchar * question_multi, gchar * action_stock); +static gint confirm_action_dialog(GtkWindow * win, + GtkTreeSelection * selection, + gchar * question_single, + gchar * question_multi, + gchar * action_stock); static void view_stats_toggled_cb(GtkWidget * w, gpointer data); static void view_states_toggled_cb(GtkCheckMenuItem * w, gpointer data); static void view_notebook_toggled_cb(GtkCheckMenuItem * w, gpointer data); @@ -132,54 +141,65 @@ static gboolean on_torrent_get_interactive(gpointer data); static gboolean trg_update_torrents_timerfunc(gpointer data); static void open_about_cb(GtkWidget * w, GtkWindow * parent); static gboolean trg_torrent_tree_view_visible_func(GtkTreeModel * model, - GtkTreeIter * iter, gpointer data); -static TrgTorrentTreeView -* trg_main_window_torrent_tree_view_new(TrgMainWindow * win, - GtkTreeModel * model); + GtkTreeIter * iter, + gpointer data); +static TrgTorrentTreeView * +trg_main_window_torrent_tree_view_new(TrgMainWindow * win, + GtkTreeModel * model); static gboolean trg_dialog_error_handler(TrgMainWindow * win, - trg_response * response); + trg_response * response); static gboolean torrent_selection_changed(GtkTreeSelection * selection, - gpointer data); + gpointer data); static void trg_main_window_torrent_scrub(TrgMainWindow * win); static void entry_filter_changed_cb(GtkWidget * w, gpointer data); static void torrent_state_selection_changed(TrgStateSelector * selector, - guint flag, gpointer data); + guint flag, gpointer data); static void trg_main_window_conn_changed(TrgMainWindow * win, - gboolean connected); -static void trg_main_window_get_property(GObject * object, guint property_id, - GValue * value, GParamSpec * pspec); -static void trg_main_window_set_property(GObject * object, guint property_id, - const GValue * value, GParamSpec * pspec); + gboolean connected); +static void trg_main_window_get_property(GObject * object, + guint property_id, GValue * value, + GParamSpec * pspec); +static void trg_main_window_set_property(GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); static void quit_cb(GtkWidget * w, gpointer data); static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win); #ifndef HAVE_LIBAPPINDICATOR static void status_icon_activated(GtkStatusIcon * icon, gpointer data); static gboolean trg_status_icon_popup_menu_cb(GtkStatusIcon * icon, - gpointer userdata); + gpointer userdata); static gboolean status_icon_button_press_event(GtkStatusIcon * icon, - GdkEventButton * event, gpointer data); + GdkEventButton * event, + gpointer data); #endif static void clear_filter_entry_cb(GtkEntry * entry, - GtkEntryIconPosition icon_pos, GdkEvent * event, gpointer user_data); + GtkEntryIconPosition icon_pos, + GdkEvent * event, gpointer user_data); static GtkWidget *trg_imagemenuitem_new(GtkMenuShell * shell, - const gchar * text, char *stock_id, gboolean sensitive, GCallback cb, - gpointer cbdata); + const gchar * text, char *stock_id, + gboolean sensitive, GCallback cb, + gpointer cbdata); static void set_limit_cb(GtkWidget * w, gpointer data); static GtkWidget *limit_item_new(TrgMainWindow * win, GtkWidget * menu, - gint64 currentLimit, gfloat limit); + gint64 currentLimit, gfloat limit); static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title, - gchar * enabledKey, gchar * speedKey, JsonArray * ids); + gchar * enabledKey, gchar * speedKey, + JsonArray * ids); static void trg_torrent_tv_view_menu(GtkWidget * treeview, - GdkEventButton * event, gpointer data); + GdkEventButton * event, + gpointer data); static GtkMenu *trg_status_icon_view_menu(TrgMainWindow * win, - const gchar * msg); + const gchar * msg); static gboolean torrent_tv_button_pressed_cb(GtkWidget * treeview, - GdkEventButton * event, gpointer userdata); + GdkEventButton * event, + gpointer userdata); static gboolean torrent_tv_popup_menu_cb(GtkWidget * treeview, - gpointer userdata); -static gboolean is_ready_for_torrent_action(TrgMainWindow *win); + gpointer userdata); +static gboolean is_ready_for_torrent_action(TrgMainWindow * win); static gboolean window_state_event(GtkWidget * widget, - GdkEventWindowState * event, gpointer trayIcon); + GdkEventWindowState * event, + gpointer trayIcon); G_DEFINE_TYPE(TrgMainWindow, trg_main_window, GTK_TYPE_WINDOW) #define TRG_MAIN_WINDOW_GET_PRIVATE(o) \ @@ -193,7 +213,7 @@ struct _TrgMainWindowPrivate { TrgStatusBar *statusBar; GtkWidget *iconStatusItem, *iconDownloadingItem, *iconSeedingItem, - *iconSepItem; + *iconSepItem; #ifdef HAVE_LIBAPPINDICATOR AppIndicator *appIndicator; #else @@ -241,7 +261,8 @@ enum { PROP_0, PROP_CLIENT, PROP_MINIMISE_ON_START }; -static void reset_connect_args(TrgMainWindow * win) { +static void reset_connect_args(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); if (priv->args) { g_strfreev(priv->args); @@ -249,34 +270,37 @@ static void reset_connect_args(TrgMainWindow * win) { } } -static void trg_main_window_init(TrgMainWindow * self G_GNUC_UNUSED) { +static void trg_main_window_init(TrgMainWindow * self G_GNUC_UNUSED) +{ } -gint trg_mw_get_selected_torrent_id(TrgMainWindow * win) { +gint trg_mw_get_selected_torrent_id(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); return priv->selectedTorrentId; } -static void update_selected_torrent_notebook(TrgMainWindow * win, gint mode, - gint64 id) { +static void update_selected_torrent_notebook(TrgMainWindow * win, + gint mode, gint64 id) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgClient *client = priv->client; JsonObject *t; GtkTreeIter iter; if (id >= 0 - && get_torrent_data(trg_client_get_torrent_table(client), id, &t, - &iter)) { + && get_torrent_data(trg_client_get_torrent_table(client), id, &t, + &iter)) { trg_toolbar_torrent_actions_sensitive(priv->toolBar, TRUE); trg_menu_bar_torrent_actions_sensitive(priv->menuBar, TRUE); trg_general_panel_update(priv->genDetails, t, &iter); trg_trackers_model_update(priv->trackersModel, - trg_client_get_serial(client), t, mode); - trg_files_model_update(priv->filesModel, trg_client_get_serial(client), - t, mode); + trg_client_get_serial(client), t, mode); + trg_files_model_update(priv->filesModel, + trg_client_get_serial(client), t, mode); trg_peers_model_update(priv->peersModel, - TRG_TREE_VIEW(priv->peersTreeView), - trg_client_get_serial(client), t, mode); + TRG_TREE_VIEW(priv->peersTreeView), + trg_client_get_serial(client), t, mode); if (mode == TORRENT_GET_MODE_FIRST) gtk_tree_view_expand_all(GTK_TREE_VIEW(priv->filesTreeView)); @@ -289,9 +313,11 @@ static void update_selected_torrent_notebook(TrgMainWindow * win, gint mode, } #ifdef HAVE_LIBNOTIFY -static void torrent_event_notification(TrgTorrentModel * model, gchar * icon, - gchar * desc, gint tmout, gchar * prefKey, GtkTreeIter * iter, - gpointer data) { +static void torrent_event_notification(TrgTorrentModel * model, + gchar * icon, gchar * desc, + gint tmout, gchar * prefKey, + GtkTreeIter * iter, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgPrefs *prefs = trg_client_get_prefs(priv->client); gchar *name; @@ -300,20 +326,20 @@ static void torrent_event_notification(TrgTorrentModel * model, gchar * icon, if (!trg_prefs_get_bool(prefs, prefKey, TRG_PREFS_NOFLAGS)) return; - gtk_tree_model_get(GTK_TREE_MODEL(model), iter, TORRENT_COLUMN_NAME, &name, - -1); + gtk_tree_model_get(GTK_TREE_MODEL(model), iter, TORRENT_COLUMN_NAME, + &name, -1); notify = notify_notification_new(name, desc, icon #if !defined(NOTIFY_VERSION_MINOR) || (NOTIFY_VERSION_MAJOR == 0 && NOTIFY_VERSION_MINOR < 7) - , NULL + , NULL #endif - ); + ); #ifndef HAVE_LIBAPPINDICATOR #if !defined(NOTIFY_VERSION_MINOR) || (NOTIFY_VERSION_MAJOR == 0 && NOTIFY_VERSION_MINOR < 7) if (priv->statusIcon && gtk_status_icon_is_embedded(priv->statusIcon)) - notify_notification_attach_to_status_icon(notify, - priv->statusIcon); + notify_notification_attach_to_status_icon(notify, + priv->statusIcon); #endif #endif @@ -326,42 +352,49 @@ static void torrent_event_notification(TrgTorrentModel * model, gchar * icon, } #endif -static void on_torrent_completed(TrgTorrentModel * model, GtkTreeIter * iter, - gpointer data) { +static void on_torrent_completed(TrgTorrentModel * model, + GtkTreeIter * iter, gpointer data) +{ #ifdef HAVE_LIBNOTIFY torrent_event_notification(model, GTK_STOCK_APPLY, - _("This torrent has completed."), - TORRENT_COMPLETE_NOTIFY_TMOUT, TRG_PREFS_KEY_COMPLETE_NOTIFY, iter, - data); + _("This torrent has completed."), + TORRENT_COMPLETE_NOTIFY_TMOUT, + TRG_PREFS_KEY_COMPLETE_NOTIFY, iter, data); #endif } static void on_torrent_added(TrgTorrentModel * model, GtkTreeIter * iter, - gpointer data) { + gpointer data) +{ #ifdef HAVE_LIBNOTIFY torrent_event_notification(model, GTK_STOCK_ADD, - _("This torrent has been added."), TORRENT_ADD_NOTIFY_TMOUT, - TRG_PREFS_KEY_ADD_NOTIFY, iter, data); + _("This torrent has been added."), + TORRENT_ADD_NOTIFY_TMOUT, + TRG_PREFS_KEY_ADD_NOTIFY, iter, data); #endif } static gboolean delete_event(GtkWidget * w, GdkEvent * event G_GNUC_UNUSED, - gpointer data G_GNUC_UNUSED) { + gpointer data G_GNUC_UNUSED) +{ return FALSE; } -static void destroy_window(GtkWidget * w, gpointer data G_GNUC_UNUSED) { +static void destroy_window(GtkWidget * w, gpointer data G_GNUC_UNUSED) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(w); TrgPrefs *prefs = trg_client_get_prefs(priv->client); trg_prefs_set_int(prefs, TRG_PREFS_KEY_WINDOW_HEIGHT, priv->height, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); trg_prefs_set_int(prefs, TRG_PREFS_KEY_WINDOW_WIDTH, priv->width, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); trg_prefs_set_int(prefs, TRG_PREFS_KEY_NOTEBOOK_PANED_POS, - gtk_paned_get_position(GTK_PANED(priv->vpaned)), TRG_PREFS_GLOBAL); + gtk_paned_get_position(GTK_PANED(priv->vpaned)), + TRG_PREFS_GLOBAL); trg_prefs_set_int(prefs, TRG_PREFS_KEY_STATES_PANED_POS, - gtk_paned_get_position(GTK_PANED(priv->hpaned)), TRG_PREFS_GLOBAL); + gtk_paned_get_position(GTK_PANED(priv->hpaned)), + TRG_PREFS_GLOBAL); trg_tree_view_persist(TRG_TREE_VIEW(priv->peersTreeView), FALSE); trg_tree_view_persist(TRG_TREE_VIEW(priv->filesTreeView), FALSE); @@ -372,7 +405,8 @@ static void destroy_window(GtkWidget * w, gpointer data G_GNUC_UNUSED) { gtk_main_quit(); } -static void open_props_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void open_props_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgTorrentPropsDialog *dialog; @@ -380,51 +414,61 @@ static void open_props_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { return; dialog = trg_torrent_props_dialog_new(GTK_WINDOW(data), - priv->torrentTreeView, priv->client); + priv->torrentTreeView, + priv->client); gtk_widget_show_all(GTK_WIDGET(dialog)); } static void torrent_tv_onRowActivated(GtkTreeView * treeview, - GtkTreePath * path G_GNUC_UNUSED, GtkTreeViewColumn * col G_GNUC_UNUSED, - gpointer userdata) { + GtkTreePath * path G_GNUC_UNUSED, + GtkTreeViewColumn * + col G_GNUC_UNUSED, gpointer userdata) +{ open_props_cb(GTK_WIDGET(treeview), userdata); } -static void add_url_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void add_url_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindow *win = TRG_MAIN_WINDOW(data); TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgTorrentAddUrlDialog *dlg = trg_torrent_add_url_dialog_new(win, - priv->client); + priv-> + client); gtk_widget_show_all(GTK_WIDGET(dlg)); } -static void add_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void add_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) trg_torrent_add_dialog(TRG_MAIN_WINDOW(data), priv->client); } -static void pause_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void pause_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) dispatch_async(priv->client, - torrent_pause(build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + torrent_pause(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void pause_all_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void pause_all_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) dispatch_async(priv->client, torrent_pause(NULL), - on_generic_interactive_action, data); + on_generic_interactive_action, data); } -gboolean trg_add_from_filename(TrgMainWindow * win, gchar ** uris) { +gboolean trg_add_from_filename(TrgMainWindow * win, gchar ** uris) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgClient *client = priv->client; TrgPrefs *prefs = trg_client_get_prefs(client); @@ -435,14 +479,15 @@ gboolean trg_add_from_filename(TrgMainWindow * win, gchar ** uris) { filesList = g_slist_append(filesList, uris[i]); if (trg_prefs_get_bool(prefs, TRG_PREFS_KEY_ADD_OPTIONS_DIALOG, - TRG_PREFS_GLOBAL)) { - TrgTorrentAddDialog *dialog = trg_torrent_add_dialog_new(win, client, - filesList); + TRG_PREFS_GLOBAL)) { + TrgTorrentAddDialog *dialog = + trg_torrent_add_dialog_new(win, client, + filesList); gtk_widget_show_all(GTK_WIDGET(dialog)); } else { struct add_torrent_threadfunc_args *args = - g_new0(struct add_torrent_threadfunc_args, 1); + g_new0(struct add_torrent_threadfunc_args, 1); args->list = filesList; args->cb_data = win; args->client = client; @@ -452,31 +497,35 @@ gboolean trg_add_from_filename(TrgMainWindow * win, gchar ** uris) { launch_add_thread(args); } - g_free(uris); // launch_add_thread() or trg_torrent_add_dialog() will free the filenames and fileList; + g_free(uris); // launch_add_thread() or trg_torrent_add_dialog() will free the filenames and fileList; priv->args = NULL; return TRUE; } -static void resume_all_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void resume_all_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) dispatch_async(priv->client, torrent_start(NULL), - on_generic_interactive_action, data); + on_generic_interactive_action, data); } -static void resume_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void resume_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) dispatch_async(priv->client, - torrent_start(build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + torrent_start(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void disconnect_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void disconnect_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); trg_client_inc_connid(priv->client); @@ -484,7 +533,8 @@ static void disconnect_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { trg_status_bar_reset(priv->statusBar); } -void connect_cb(GtkWidget * w, gpointer data) { +void connect_cb(GtkWidget * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgPrefs *prefs = trg_client_get_prefs(priv->client); JsonObject *currentProfile = trg_prefs_get_profile(prefs); @@ -518,157 +568,187 @@ void connect_cb(GtkWidget * w, gpointer data) { } dialog = gtk_message_dialog_new(GTK_WINDOW(data), - GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, "%s", msg); + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, + "%s", msg); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); reset_connect_args(TRG_MAIN_WINDOW(data)); return; } - trg_status_bar_push_connection_msg(priv->statusBar, _("Connecting...")); + trg_status_bar_push_connection_msg(priv->statusBar, + _("Connecting...")); trg_client_inc_connid(priv->client); dispatch_async(priv->client, session_get(), on_session_get, data); } -static void open_local_prefs_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void open_local_prefs_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); - GtkWidget *dlg = trg_preferences_dialog_get_instance(TRG_MAIN_WINDOW(data), - priv->client); + GtkWidget *dlg = + trg_preferences_dialog_get_instance(TRG_MAIN_WINDOW(data), + priv->client); gtk_widget_show_all(dlg); } -static void open_remote_prefs_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void open_remote_prefs_cb(GtkWidget * w G_GNUC_UNUSED, + gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) - gtk_widget_show_all(GTK_WIDGET(trg_remote_prefs_dialog_get_instance( - TRG_MAIN_WINDOW(data), priv->client))); + gtk_widget_show_all(GTK_WIDGET + (trg_remote_prefs_dialog_get_instance + (TRG_MAIN_WINDOW(data), priv->client))); } -static void main_window_toggle_filter_dirs(GtkCheckMenuItem * w, gpointer win) { +static void main_window_toggle_filter_dirs(GtkCheckMenuItem * w, + gpointer win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); - trg_state_selector_set_show_dirs(priv->stateSelector, - gtk_check_menu_item_get_active(w)); + + if (gtk_widget_is_sensitive(GTK_WIDGET(w))) + trg_state_selector_set_show_dirs(priv->stateSelector, + gtk_check_menu_item_get_active + (w)); } static void main_window_toggle_filter_trackers(GtkCheckMenuItem * w, - gpointer win) { + gpointer win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); - trg_state_selector_set_show_trackers(priv->stateSelector, - gtk_check_menu_item_get_active(w)); + + if (gtk_widget_is_sensitive(GTK_WIDGET(w))) + trg_state_selector_set_show_trackers(priv->stateSelector, + gtk_check_menu_item_get_active + (w)); } -static TrgToolbar *trg_main_window_toolbar_new(TrgMainWindow * win) { +static TrgToolbar *trg_main_window_toolbar_new(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgPrefs *prefs = trg_client_get_prefs(priv->client); GObject *b_connect, *b_disconnect, *b_add, *b_resume, *b_pause; - GObject *b_remove, *b_delete, *b_props, *b_local_prefs, *b_remote_prefs; + GObject *b_remove, *b_delete, *b_props, *b_local_prefs, + *b_remote_prefs; TrgToolbar *toolBar = trg_toolbar_new(win, prefs); - g_object_get(toolBar, "connect-button", &b_connect, "disconnect-button", - &b_disconnect, "add-button", &b_add, "resume-button", &b_resume, - "pause-button", &b_pause, "delete-button", &b_delete, - "remove-button", &b_remove, "props-button", &b_props, - "remote-prefs-button", &b_remote_prefs, "local-prefs-button", - &b_local_prefs, NULL); + g_object_get(toolBar, "connect-button", &b_connect, + "disconnect-button", &b_disconnect, "add-button", &b_add, + "resume-button", &b_resume, "pause-button", &b_pause, + "delete-button", &b_delete, "remove-button", &b_remove, + "props-button", &b_props, "remote-prefs-button", + &b_remote_prefs, "local-prefs-button", &b_local_prefs, + NULL); g_signal_connect(b_connect, "clicked", G_CALLBACK(connect_cb), win); - g_signal_connect(b_disconnect, "clicked", G_CALLBACK(disconnect_cb), win); + g_signal_connect(b_disconnect, "clicked", G_CALLBACK(disconnect_cb), + win); g_signal_connect(b_add, "clicked", G_CALLBACK(add_cb), win); g_signal_connect(b_resume, "clicked", G_CALLBACK(resume_cb), win); g_signal_connect(b_pause, "clicked", G_CALLBACK(pause_cb), win); g_signal_connect(b_delete, "clicked", G_CALLBACK(delete_cb), win); g_signal_connect(b_remove, "clicked", G_CALLBACK(remove_cb), win); g_signal_connect(b_props, "clicked", G_CALLBACK(open_props_cb), win); - g_signal_connect(b_local_prefs, "clicked", G_CALLBACK(open_local_prefs_cb), - win); + g_signal_connect(b_local_prefs, "clicked", + G_CALLBACK(open_local_prefs_cb), win); g_signal_connect(b_remote_prefs, "clicked", - G_CALLBACK(open_remote_prefs_cb), win); + G_CALLBACK(open_remote_prefs_cb), win); return toolBar; } -static void reannounce_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void reannounce_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) dispatch_async(priv->client, - torrent_reannounce(build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + torrent_reannounce(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void verify_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void verify_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) dispatch_async(priv->client, - torrent_verify(build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + torrent_verify(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void start_now_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void start_now_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) dispatch_async(priv->client, - torrent_start_now(build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + torrent_start_now(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void up_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void up_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (priv->queuesEnabled - && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) - dispatch_async( - priv->client, - torrent_queue_move_up( - build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) + dispatch_async(priv->client, + torrent_queue_move_up(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void top_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void top_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (priv->queuesEnabled - && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) - dispatch_async( - priv->client, - torrent_queue_move_top( - build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) + dispatch_async(priv->client, + torrent_queue_move_top(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void bottom_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void bottom_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (priv->queuesEnabled - && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) - dispatch_async( - priv->client, - torrent_queue_move_bottom( - build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) + dispatch_async(priv->client, + torrent_queue_move_bottom(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void down_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void down_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (priv->queuesEnabled - && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) - dispatch_async( - priv->client, - torrent_queue_move_down( - build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) + dispatch_async(priv->client, + torrent_queue_move_down(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static gint confirm_action_dialog(GtkWindow * win, GtkTreeSelection * selection, - gchar * question_single, gchar * question_multi, gchar * action_stock) { +static gint confirm_action_dialog(GtkWindow * win, + GtkTreeSelection * selection, + gchar * question_single, + gchar * question_multi, + gchar * action_stock) +{ TrgMainWindowPrivate *priv; gint selectCount; gint response; @@ -688,51 +768,65 @@ static gint confirm_action_dialog(GtkWindow * win, GtkTreeSelection * selection, firstNode = g_list_first(list); gtk_tree_model_get_iter(GTK_TREE_MODEL - (priv->filteredTorrentModel), &firstIter, firstNode->data); + (priv->filteredTorrentModel), &firstIter, + firstNode->data); gtk_tree_model_get(GTK_TREE_MODEL(priv->filteredTorrentModel), - &firstIter, TORRENT_COLUMN_NAME, &name, -1); + &firstIter, TORRENT_COLUMN_NAME, &name, -1); g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL); g_list_free(list); dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(win), - GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, - GTK_BUTTONS_NONE, question_single, name); + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, + question_single, name); g_free(name); } else if (selectCount > 1) { dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(win), - GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, - GTK_BUTTONS_NONE, question_multi, selectCount); + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, + question_multi, + selectCount); } else { return 0; } gtk_dialog_add_buttons(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, - GTK_RESPONSE_CANCEL, action_stock, GTK_RESPONSE_ACCEPT, NULL); - gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_CANCEL); + GTK_RESPONSE_CANCEL, action_stock, + GTK_RESPONSE_ACCEPT, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), + GTK_RESPONSE_CANCEL); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dialog), - GTK_RESPONSE_ACCEPT, GTK_RESPONSE_CANCEL, -1); + GTK_RESPONSE_ACCEPT, + GTK_RESPONSE_CANCEL, -1); response = gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); return response; } -static gboolean is_ready_for_torrent_action(TrgMainWindow *win) { +static gboolean is_ready_for_torrent_action(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); - return priv->selectedTorrentId >= 0 && trg_client_is_connected(priv->client); + return priv->selectedTorrentId >= 0 + && trg_client_is_connected(priv->client); } -static void move_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void move_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) - gtk_widget_show_all( - GTK_WIDGET(trg_torrent_move_dialog_new( - TRG_MAIN_WINDOW(data), priv->client, priv->torrentTreeView))); + gtk_widget_show_all(GTK_WIDGET + (trg_torrent_move_dialog_new + (TRG_MAIN_WINDOW(data), priv->client, + priv->torrentTreeView))); } -static void remove_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void remove_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); GtkTreeSelection *selection; JsonArray *ids; @@ -740,67 +834,80 @@ static void remove_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { if (!is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) return; - selection = gtk_tree_view_get_selection( - GTK_TREE_VIEW(priv->torrentTreeView)); + selection = + gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->torrentTreeView)); ids = build_json_id_array(priv->torrentTreeView); if (confirm_action_dialog(GTK_WINDOW(data), selection, _ - ("Remove torrent \"%s\"?"), - _("Remove %d torrents?"), GTK_STOCK_REMOVE) - == GTK_RESPONSE_ACCEPT) + ("Remove torrent \"%s\"?"), + _("Remove %d torrents?"), + GTK_STOCK_REMOVE) + == GTK_RESPONSE_ACCEPT) dispatch_async(priv->client, torrent_remove(ids, FALSE), - on_generic_interactive_action, data); + on_generic_interactive_action, data); else json_array_unref(ids); } -static void delete_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void delete_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv; GtkTreeSelection *selection; JsonArray *ids; priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); - selection = gtk_tree_view_get_selection( - GTK_TREE_VIEW(priv->torrentTreeView)); + selection = + gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->torrentTreeView)); ids = build_json_id_array(priv->torrentTreeView); if (!is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) return; if (confirm_action_dialog(GTK_WINDOW(data), selection, _ - ("Remove and delete torrent \"%s\"?"), _ - ("Remove and delete %d torrents?"), - GTK_STOCK_DELETE) == GTK_RESPONSE_ACCEPT) + ("Remove and delete torrent \"%s\"?"), + _ + ("Remove and delete %d torrents?"), + GTK_STOCK_DELETE) == GTK_RESPONSE_ACCEPT) dispatch_async(priv->client, torrent_remove(ids, TRUE), - on_generic_interactive_action, data); + on_generic_interactive_action, data); else json_array_unref(ids); } -static void view_stats_toggled_cb(GtkWidget * w, gpointer data) { +static void view_stats_toggled_cb(GtkWidget * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); - TrgStatsDialog *dlg = trg_stats_dialog_get_instance(TRG_MAIN_WINDOW(data), - priv->client); + TrgStatsDialog *dlg = + trg_stats_dialog_get_instance(TRG_MAIN_WINDOW(data), + priv->client); gtk_widget_show_all(GTK_WIDGET(dlg)); } -static void view_states_toggled_cb(GtkCheckMenuItem * w, gpointer data) { +static void view_states_toggled_cb(GtkCheckMenuItem * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); trg_widget_set_visible(priv->stateSelectorScroller, - gtk_check_menu_item_get_active(w)); + gtk_check_menu_item_get_active(w)); } -static void view_notebook_toggled_cb(GtkCheckMenuItem * w, gpointer data) { +static void view_notebook_toggled_cb(GtkCheckMenuItem * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); - trg_widget_set_visible(priv->notebook, gtk_check_menu_item_get_active(w)); + trg_widget_set_visible(priv->notebook, + gtk_check_menu_item_get_active(w)); } #ifndef TRG_NO_GRAPH -static void trg_main_window_toggle_graph_cb(GtkCheckMenuItem * w, gpointer win) { +static void trg_main_window_toggle_graph_cb(GtkCheckMenuItem * w, + gpointer win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); - if (gtk_check_menu_item_get_active(w)) { + + if (!gtk_widget_is_sensitive(GTK_WIDGET(w))) { + return; + } else if (gtk_check_menu_item_get_active(w)) { if (priv->graphNotebookIndex < 0) trg_main_window_add_graph(TRG_MAIN_WINDOW(win), TRUE); } else { @@ -810,49 +917,59 @@ static void trg_main_window_toggle_graph_cb(GtkCheckMenuItem * w, gpointer win) } #endif -void trg_main_window_notebook_set_visible(TrgMainWindow * win, gboolean visible) { +void trg_main_window_notebook_set_visible(TrgMainWindow * win, + gboolean visible) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); trg_widget_set_visible(priv->notebook, visible); } -static GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win) { +static GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgPrefs *prefs = trg_client_get_prefs(priv->client); GtkWidget *notebook = priv->notebook = gtk_notebook_new(); GtkWidget *genScrolledWin = gtk_scrolled_window_new(NULL, NULL); - priv->genDetails = trg_general_panel_new(GTK_TREE_MODEL(priv->torrentModel), - priv->client); + priv->genDetails = + trg_general_panel_new(GTK_TREE_MODEL(priv->torrentModel), + priv->client); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(genScrolledWin), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(genScrolledWin), - GTK_WIDGET(priv->genDetails)); + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW + (genScrolledWin), + GTK_WIDGET(priv->genDetails)); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), genScrolledWin, - gtk_label_new(_("General"))); + gtk_label_new(_("General"))); priv->trackersModel = trg_trackers_model_new(); - priv->trackersTreeView = trg_trackers_tree_view_new(priv->trackersModel, - priv->client, win); + priv->trackersTreeView = + trg_trackers_tree_view_new(priv->trackersModel, priv->client, win); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), - my_scrolledwin_new(GTK_WIDGET - (priv->trackersTreeView)), gtk_label_new(_("Trackers"))); + my_scrolledwin_new(GTK_WIDGET + (priv->trackersTreeView)), + gtk_label_new(_("Trackers"))); priv->filesModel = trg_files_model_new(); priv->filesTreeView = trg_files_tree_view_new(priv->filesModel, win, - priv->client); + priv->client); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), - my_scrolledwin_new(GTK_WIDGET - (priv->filesTreeView)), gtk_label_new(_("Files"))); + my_scrolledwin_new(GTK_WIDGET + (priv->filesTreeView)), + gtk_label_new(_("Files"))); priv->peersModel = trg_peers_model_new(); priv->peersTreeView = trg_peers_tree_view_new(prefs, priv->peersModel); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), - my_scrolledwin_new(GTK_WIDGET - (priv->peersTreeView)), gtk_label_new(_("Peers"))); + my_scrolledwin_new(GTK_WIDGET + (priv->peersTreeView)), + gtk_label_new(_("Peers"))); #ifndef TRG_NO_GRAPH - if (trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SHOW_GRAPH, TRG_PREFS_GLOBAL)) + if (trg_prefs_get_bool + (prefs, TRG_PREFS_KEY_SHOW_GRAPH, TRG_PREFS_GLOBAL)) trg_main_window_add_graph(win, FALSE); else priv->graphNotebookIndex = -1; @@ -861,15 +978,16 @@ static GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win) { return notebook; } -gboolean on_session_set(gpointer data) { +gboolean on_session_set(gpointer data) +{ trg_response *response = (trg_response *) data; - TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); + TrgMainWindowPrivate *priv = + TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); if (response->status == CURLE_OK - || response->status == FAIL_RESPONSE_UNSUCCESSFUL - ) + || response->status == FAIL_RESPONSE_UNSUCCESSFUL) dispatch_async(priv->client, session_get(), on_session_get, - response->cb_data); + response->cb_data); trg_dialog_error_handler(TRG_MAIN_WINDOW(response->cb_data), response); trg_response_free(response); @@ -877,10 +995,12 @@ gboolean on_session_set(gpointer data) { return FALSE; } -static gboolean on_session_get(gpointer data) { +static gboolean on_session_get(gpointer data) +{ trg_response *response = (trg_response *) data; TrgMainWindow *win = TRG_MAIN_WINDOW(response->cb_data); - TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); + TrgMainWindowPrivate *priv = + TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); TrgClient *client = priv->client; gboolean isConnected = trg_client_is_connected(client); JsonObject *lastSession = trg_client_get_session(client); @@ -899,15 +1019,17 @@ static gboolean on_session_get(gpointer data) { } if (session_get_version(newSession, &version) == 0 - || version < TRANSMISSION_MIN_SUPPORTED) { + || version < TRANSMISSION_MIN_SUPPORTED) { gchar *msg = - g_strdup_printf( - _ - ("This application supports Transmission %.2f and later, you have %.2f."), - TRANSMISSION_MIN_SUPPORTED, version); + g_strdup_printf(_ + ("This application supports Transmission %.2f and later, you have %.2f."), +TRANSMISSION_MIN_SUPPORTED, version); GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(win), - GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", - msg); + GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + "%s", + msg); gtk_window_set_title(GTK_WINDOW(dialog), _("Error")); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); @@ -922,8 +1044,8 @@ static gboolean on_session_get(gpointer data) { if (newSession) { gboolean reloadAliases = lastSession - && g_strcmp0(session_get_download_dir(lastSession), - session_get_download_dir(newSession)); + && g_strcmp0(session_get_download_dir(lastSession), + session_get_download_dir(newSession)); trg_client_set_session(client, newSession); @@ -933,9 +1055,10 @@ static gboolean on_session_get(gpointer data) { if (!isConnected) { trg_main_window_conn_changed(win, TRUE); - trg_trackers_tree_view_new_connection(priv->trackersTreeView, client); + trg_trackers_tree_view_new_connection(priv->trackersTreeView, + client); dispatch_async(client, torrent_get(TORRENT_GET_TAG_MODE_FULL), - on_torrent_get_first, win); + on_torrent_get_first, win); } trg_response_free(response); @@ -944,7 +1067,8 @@ static gboolean on_session_get(gpointer data) { } static void connchange_whatever_statusicon(TrgMainWindow * win, - gboolean connected) { + gboolean connected) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); const gchar *display = connected ? _("Connected") : _("Disconnected"); @@ -967,7 +1091,10 @@ static void connchange_whatever_statusicon(TrgMainWindow * win, } static void update_whatever_statusicon(TrgMainWindow * win, - const gchar * speedLabel, trg_torrent_model_update_stats * stats) { + const gchar * speedLabel, + trg_torrent_model_update_stats * + stats) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); gtk_widget_set_visible(priv->iconSeedingItem, stats != NULL); @@ -976,19 +1103,20 @@ static void update_whatever_statusicon(TrgMainWindow * win, if (stats) { gchar *downloadingLabel = g_strdup_printf(_("Downloading %d"), - stats->down); - gchar *seedingLabel = g_strdup_printf(_("Seeding %d"), stats->seeding); - gtk_menu_item_set_label(GTK_MENU_ITEM - (priv->iconSeedingItem), seedingLabel); - gtk_menu_item_set_label(GTK_MENU_ITEM - (priv->iconDownloadingItem), downloadingLabel); + stats->down); + gchar *seedingLabel = + g_strdup_printf(_("Seeding %d"), stats->seeding); + gtk_menu_item_set_label(GTK_MENU_ITEM(priv->iconSeedingItem), + seedingLabel); + gtk_menu_item_set_label(GTK_MENU_ITEM(priv->iconDownloadingItem), + downloadingLabel); g_free(downloadingLabel); g_free(seedingLabel); } if (priv->iconStatusItem) gtk_menu_item_set_label(GTK_MENU_ITEM - (priv->iconStatusItem), speedLabel); + (priv->iconStatusItem), speedLabel); #ifndef HAVE_LIBAPPINDICATOR if (priv->statusIcon) @@ -1000,10 +1128,12 @@ static void update_whatever_statusicon(TrgMainWindow * win, * The callback for a torrent-get response. */ -static gboolean on_torrent_get(gpointer data, int mode) { +static gboolean on_torrent_get(gpointer data, int mode) +{ trg_response *response = (trg_response *) data; TrgMainWindow *win = TRG_MAIN_WINDOW(response->cb_data); - TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); + TrgMainWindowPrivate *priv = + TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); TrgClient *client = priv->client; TrgPrefs *prefs = trg_client_get_prefs(client); trg_torrent_model_update_stats *stats; @@ -1018,27 +1148,35 @@ static gboolean on_torrent_get(gpointer data, int mode) { trg_client_updatelock(client); interval = - gtk_widget_get_visible(GTK_WIDGET(win)) ? trg_prefs_get_int(prefs, - TRG_PREFS_KEY_UPDATE_INTERVAL, TRG_PREFS_CONNECTION) : - trg_prefs_get_int(prefs, TRG_PREFS_KEY_MINUPDATE_INTERVAL, + gtk_widget_get_visible(GTK_WIDGET(win)) ? trg_prefs_get_int(prefs, + TRG_PREFS_KEY_UPDATE_INTERVAL, + TRG_PREFS_CONNECTION) + : trg_prefs_get_int(prefs, TRG_PREFS_KEY_MINUPDATE_INTERVAL, TRG_PREFS_CONNECTION); if (interval < 1) interval = TRG_INTERVAL_DEFAULT; if (response->status != CURLE_OK) { - gint64 max_retries = trg_prefs_get_int(prefs, TRG_PREFS_KEY_RETRIES, TRG_PREFS_CONNECTION); + gint64 max_retries = + trg_prefs_get_int(prefs, TRG_PREFS_KEY_RETRIES, + TRG_PREFS_CONNECTION); if (trg_client_inc_failcount(client) >= max_retries) { trg_main_window_conn_changed(win, FALSE); trg_dialog_error_handler(win, response); } else { - gchar *msg = make_error_message(response->obj, response->status); - gchar *statusBarMsg = g_strdup_printf(_("Request %d/%d failed: %s"), - trg_client_get_failcount(client), max_retries, msg); - trg_status_bar_push_connection_msg(priv->statusBar, statusBarMsg); + gchar *msg = + make_error_message(response->obj, response->status); + gchar *statusBarMsg = + g_strdup_printf(_("Request %d/%d failed: %s"), + trg_client_get_failcount(client), + max_retries, msg); + trg_status_bar_push_connection_msg(priv->statusBar, + statusBarMsg); g_free(msg); g_free(statusBarMsg); priv->timerId = g_timeout_add_seconds(interval, - trg_update_torrents_timerfunc, win); + trg_update_torrents_timerfunc, + win); } trg_client_updateunlock(client); trg_response_free(response); @@ -1048,12 +1186,15 @@ static gboolean on_torrent_get(gpointer data, int mode) { trg_client_reset_failcount(client); trg_client_inc_serial(client); - stats = trg_torrent_model_update(priv->torrentModel, client, response->obj, - mode); + stats = + trg_torrent_model_update(priv->torrentModel, client, response->obj, + mode); update_selected_torrent_notebook(win, mode, priv->selectedTorrentId); trg_status_bar_update(priv->statusBar, stats, client); update_whatever_statusicon(win, - trg_status_bar_get_speed_text(priv->statusBar), stats); + trg_status_bar_get_speed_text(priv-> + statusBar), + stats); #ifndef TRG_NO_GRAPH if (priv->graphNotebookIndex >= 0) @@ -1062,20 +1203,24 @@ static gboolean on_torrent_get(gpointer data, int mode) { if (mode != TORRENT_GET_MODE_INTERACTION) priv->timerId = g_timeout_add_seconds(interval, - trg_update_torrents_timerfunc, win); + trg_update_torrents_timerfunc, + win); trg_client_updateunlock(client); trg_response_free(response); return FALSE; } -static gboolean on_torrent_get_active(gpointer data) { +static gboolean on_torrent_get_active(gpointer data) +{ return on_torrent_get(data, TORRENT_GET_MODE_ACTIVE); } -static gboolean on_torrent_get_first(gpointer data) { +static gboolean on_torrent_get_first(gpointer data) +{ trg_response *response = (trg_response *) data; - TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); + TrgMainWindowPrivate *priv = + TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); TrgMainWindow *win = TRG_MAIN_WINDOW(response->cb_data); gboolean result = on_torrent_get(data, TORRENT_GET_MODE_FIRST); @@ -1086,45 +1231,49 @@ static gboolean on_torrent_get_first(gpointer data) { return result; } -static gboolean on_torrent_get_interactive(gpointer data) { +static gboolean on_torrent_get_interactive(gpointer data) +{ return on_torrent_get(data, TORRENT_GET_MODE_INTERACTION); } -static gboolean on_torrent_get_update(gpointer data) { +static gboolean on_torrent_get_update(gpointer data) +{ return on_torrent_get(data, TORRENT_GET_MODE_UPDATE); } -static gboolean trg_update_torrents_timerfunc(gpointer data) { +static gboolean trg_update_torrents_timerfunc(gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgClient *tc = priv->client; TrgPrefs *prefs = trg_client_get_prefs(tc); if (trg_client_is_connected(tc)) { gboolean activeOnly = trg_prefs_get_bool(prefs, - TRG_PREFS_KEY_UPDATE_ACTIVE_ONLY, TRG_PREFS_CONNECTION) - && (!trg_prefs_get_bool(prefs, - TRG_PREFS_ACTIVEONLY_FULLSYNC_ENABLED, - TRG_PREFS_CONNECTION) - || (trg_client_get_serial(tc) - % trg_prefs_get_int(prefs, + TRG_PREFS_KEY_UPDATE_ACTIVE_ONLY, + TRG_PREFS_CONNECTION) + && (!trg_prefs_get_bool(prefs, + TRG_PREFS_ACTIVEONLY_FULLSYNC_ENABLED, + TRG_PREFS_CONNECTION) + || (trg_client_get_serial(tc) + % trg_prefs_get_int(prefs, TRG_PREFS_ACTIVEONLY_FULLSYNC_EVERY, TRG_PREFS_CONNECTION) != 0)); - dispatch_async( - tc, - torrent_get( - activeOnly ? TORRENT_GET_TAG_MODE_UPDATE : - TORRENT_GET_TAG_MODE_FULL), - activeOnly ? on_torrent_get_active : on_torrent_get_update, - data); + dispatch_async(tc, + torrent_get(activeOnly ? TORRENT_GET_TAG_MODE_UPDATE + : TORRENT_GET_TAG_MODE_FULL), + activeOnly ? on_torrent_get_active : + on_torrent_get_update, data); if (trg_client_get_serial(tc) % SESSION_UPDATE_DIVISOR == 0) - dispatch_async(priv->client, session_get(), on_session_get, data); + dispatch_async(priv->client, session_get(), on_session_get, + data); } return FALSE; } -static void open_about_cb(GtkWidget * w G_GNUC_UNUSED, GtkWindow * parent) { +static void open_about_cb(GtkWidget * w G_GNUC_UNUSED, GtkWindow * parent) +{ GtkWidget *aboutDialog = trg_about_window_new(parent); gtk_dialog_run(GTK_DIALOG(aboutDialog)); @@ -1132,7 +1281,9 @@ static void open_about_cb(GtkWidget * w G_GNUC_UNUSED, GtkWindow * parent) { } static gboolean trg_torrent_tree_view_visible_func(GtkTreeModel * model, - GtkTreeIter * iter, gpointer data) { + GtkTreeIter * iter, + gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); guint flags; @@ -1145,26 +1296,28 @@ static gboolean trg_torrent_tree_view_visible_func(GtkTreeModel * model, if (criteria != 0) { if (criteria & FILTER_FLAG_TRACKER) { - gchar *text = trg_state_selector_get_selected_text( - priv->stateSelector); + gchar *text = + trg_state_selector_get_selected_text(priv->stateSelector); JsonObject *json = NULL; gboolean matchesTracker; - gtk_tree_model_get(model, iter, TORRENT_COLUMN_JSON, &json, -1); + gtk_tree_model_get(model, iter, TORRENT_COLUMN_JSON, &json, + -1); matchesTracker = (!json - || !torrent_has_tracker( - json, - trg_state_selector_get_url_host_regex( - priv->stateSelector), text)); + || !torrent_has_tracker(json, + trg_state_selector_get_url_host_regex + (priv-> + stateSelector), + text)); g_free(text); if (matchesTracker) return FALSE; } else if (criteria & FILTER_FLAG_DIR) { - gchar *text = trg_state_selector_get_selected_text( - priv->stateSelector); + gchar *text = + trg_state_selector_get_selected_text(priv->stateSelector); gchar *dd; int cmp; - gtk_tree_model_get(model, iter, TORRENT_COLUMN_DOWNLOADDIR_SHORT, - &dd, -1); + gtk_tree_model_get(model, iter, + TORRENT_COLUMN_DOWNLOADDIR_SHORT, &dd, -1); cmp = g_strcmp0(text, dd); g_free(dd); g_free(text); @@ -1197,29 +1350,34 @@ static gboolean trg_torrent_tree_view_visible_func(GtkTreeModel * model, return visible; } -void trg_main_window_reload_dir_aliases(TrgMainWindow * win) { +void trg_main_window_reload_dir_aliases(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); trg_torrent_model_reload_dir_aliases(priv->client, GTK_TREE_MODEL - (priv->torrentModel)); + (priv->torrentModel)); } -static TrgTorrentTreeView * trg_main_window_torrent_tree_view_new( - TrgMainWindow * win, GtkTreeModel * model) { +static TrgTorrentTreeView + *trg_main_window_torrent_tree_view_new(TrgMainWindow * win, + GtkTreeModel * model) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); - TrgTorrentTreeView *torrentTreeView = trg_torrent_tree_view_new( - trg_client_get_prefs(priv->client), model); + TrgTorrentTreeView *torrentTreeView = + trg_torrent_tree_view_new(trg_client_get_prefs(priv->client), + model); - GtkTreeSelection *selection = gtk_tree_view_get_selection( - GTK_TREE_VIEW(torrentTreeView)); + GtkTreeSelection *selection = + gtk_tree_view_get_selection(GTK_TREE_VIEW(torrentTreeView)); g_signal_connect(G_OBJECT(selection), "changed", - G_CALLBACK(torrent_selection_changed), win); + G_CALLBACK(torrent_selection_changed), win); return torrentTreeView; } static gboolean trg_dialog_error_handler(TrgMainWindow * win, - trg_response * response) { + trg_response * response) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); if (response->status != CURLE_OK) { @@ -1230,7 +1388,8 @@ static gboolean trg_dialog_error_handler(TrgMainWindow * win, trg_status_bar_clear_indicators(priv->statusBar); trg_status_bar_push_connection_msg(priv->statusBar, msg); dialog = gtk_message_dialog_new(GTK_WINDOW(win), GTK_DIALOG_MODAL, - GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", msg); + GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, + "%s", msg); gtk_window_set_title(GTK_WINDOW(dialog), _("Error")); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); @@ -1242,7 +1401,8 @@ static gboolean trg_dialog_error_handler(TrgMainWindow * win, } static gboolean torrent_selection_changed(GtkTreeSelection * selection, - gpointer data) { + gpointer data) +{ TrgMainWindow *win = TRG_MAIN_WINDOW(data); TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); GList *selectionList; @@ -1261,9 +1421,9 @@ static gboolean torrent_selection_changed(GtkTreeSelection * selection, if (firstNode) { GtkTreeIter iter; if (gtk_tree_model_get_iter(priv->filteredTorrentModel, &iter, - (GtkTreePath *) firstNode->data)) { + (GtkTreePath *) firstNode->data)) { gtk_tree_model_get(priv->filteredTorrentModel, &iter, - TORRENT_COLUMN_ID, &id, -1); + TORRENT_COLUMN_ID, &id, -1); } } @@ -1275,10 +1435,12 @@ static gboolean torrent_selection_changed(GtkTreeSelection * selection, return TRUE; } -gboolean on_generic_interactive_action(gpointer data) { +gboolean on_generic_interactive_action(gpointer data) +{ trg_response *response = (trg_response *) data; TrgMainWindow *win = TRG_MAIN_WINDOW(response->cb_data); - TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); + TrgMainWindowPrivate *priv = + TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); TrgClient *tc = priv->client; TrgPrefs *prefs = trg_client_get_prefs(tc); @@ -1289,14 +1451,15 @@ gboolean on_generic_interactive_action(gpointer data) { gint64 id; if (json_object_has_member(response->obj, PARAM_TAG)) id = json_object_get_int_member(response->obj, PARAM_TAG); - else if (trg_prefs_get_bool(prefs, TRG_PREFS_KEY_UPDATE_ACTIVE_ONLY, - TRG_PREFS_CONNECTION)) + else if (trg_prefs_get_bool + (prefs, TRG_PREFS_KEY_UPDATE_ACTIVE_ONLY, + TRG_PREFS_CONNECTION)) id = TORRENT_GET_TAG_MODE_UPDATE; else id = TORRENT_GET_TAG_MODE_FULL; dispatch_async(tc, torrent_get(id), on_torrent_get_interactive, - win); + win); } } @@ -1305,7 +1468,8 @@ gboolean on_generic_interactive_action(gpointer data) { } static -void trg_main_window_torrent_scrub(TrgMainWindow * win) { +void trg_main_window_torrent_scrub(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); gtk_tree_store_clear(GTK_TREE_STORE(priv->filesModel)); @@ -1313,31 +1477,35 @@ void trg_main_window_torrent_scrub(TrgMainWindow * win) { gtk_list_store_clear(GTK_LIST_STORE(priv->peersModel)); trg_general_panel_clear(priv->genDetails); trg_trackers_model_set_no_selection(TRG_TRACKERS_MODEL - (priv->trackersModel)); + (priv->trackersModel)); trg_toolbar_torrent_actions_sensitive(priv->toolBar, FALSE); trg_menu_bar_torrent_actions_sensitive(priv->menuBar, FALSE); } -static void entry_filter_changed_cb(GtkWidget * w, gpointer data) { +static void entry_filter_changed_cb(GtkWidget * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); gboolean clearSensitive = gtk_entry_get_text_length(GTK_ENTRY(w)) > 0; gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER - (priv->filteredTorrentModel)); + (priv->filteredTorrentModel)); - g_object_set(priv->filterEntry, "secondary-icon-sensitive", clearSensitive, - NULL); + g_object_set(priv->filterEntry, "secondary-icon-sensitive", + clearSensitive, NULL); } -static void torrent_state_selection_changed( - TrgStateSelector * selector G_GNUC_UNUSED, guint flag G_GNUC_UNUSED, - gpointer data) { +static void torrent_state_selection_changed(TrgStateSelector * + selector G_GNUC_UNUSED, + guint flag G_GNUC_UNUSED, + gpointer data) +{ gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(data)); } static -void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected) { +void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgClient *tc = priv->client; @@ -1347,7 +1515,8 @@ void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected) { gtk_widget_set_sensitive(GTK_WIDGET(priv->torrentTreeView), connected); gtk_widget_set_sensitive(GTK_WIDGET(priv->peersTreeView), connected); gtk_widget_set_sensitive(GTK_WIDGET(priv->filesTreeView), connected); - gtk_widget_set_sensitive(GTK_WIDGET(priv->trackersTreeView), connected); + gtk_widget_set_sensitive(GTK_WIDGET(priv->trackersTreeView), + connected); gtk_widget_set_sensitive(GTK_WIDGET(priv->genDetails), connected); if (!connected) { @@ -1368,8 +1537,10 @@ void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected) { connchange_whatever_statusicon(win, connected); } -static void trg_main_window_get_property(GObject * object, guint property_id, - GValue * value, GParamSpec * pspec) { +static void trg_main_window_get_property(GObject * object, + guint property_id, GValue * value, + GParamSpec * pspec) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(object); switch (property_id) { case PROP_CLIENT: @@ -1384,8 +1555,11 @@ static void trg_main_window_get_property(GObject * object, guint property_id, } } -static void trg_main_window_set_property(GObject * object, guint property_id, - const GValue * value, GParamSpec * pspec) { +static void trg_main_window_set_property(GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(object); switch (property_id) { case PROP_CLIENT: @@ -1400,23 +1574,25 @@ static void trg_main_window_set_property(GObject * object, guint property_id, } } -static void quit_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void quit_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ gtk_widget_destroy(GTK_WIDGET(data)); } -static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) { +static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); - GObject *b_disconnect, *b_add, *b_resume, *b_pause, *b_verify, *b_remove, - *b_delete, *b_props, *b_local_prefs, *b_remote_prefs, *b_about, - *b_view_states, *b_view_notebook, *b_view_stats, *b_add_url, - *b_quit, *b_move, *b_reannounce, *b_pause_all, *b_resume_all, - *b_dir_filters, *b_tracker_filters, *b_up_queue, *b_down_queue, - *b_top_queue, *b_bottom_queue, + GObject *b_disconnect, *b_add, *b_resume, *b_pause, *b_verify, + *b_remove, *b_delete, *b_props, *b_local_prefs, *b_remote_prefs, + *b_about, *b_view_states, *b_view_notebook, *b_view_stats, + *b_add_url, *b_quit, *b_move, *b_reannounce, *b_pause_all, + *b_resume_all, *b_dir_filters, *b_tracker_filters, *b_up_queue, + *b_down_queue, *b_top_queue, *b_bottom_queue, #ifndef TRG_NO_GRAPH - *b_show_graph, + *b_show_graph, #endif - *b_start_now; + *b_start_now; TrgMenuBar *menuBar; GtkAccelGroup *accel_group; @@ -1424,67 +1600,72 @@ static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) { accel_group = gtk_accel_group_new(); menuBar = trg_menu_bar_new(win, trg_client_get_prefs(priv->client), - accel_group); + accel_group); g_object_get(menuBar, "disconnect-button", &b_disconnect, "add-button", - &b_add, "add-url-button", &b_add_url, "resume-button", &b_resume, - "resume-all-button", &b_resume_all, "pause-button", &b_pause, - "pause-all-button", &b_pause_all, "delete-button", &b_delete, - "remove-button", &b_remove, "move-button", &b_move, "verify-button", - &b_verify, "reannounce-button", &b_reannounce, "props-button", - &b_props, "remote-prefs-button", &b_remote_prefs, - "local-prefs-button", &b_local_prefs, "view-notebook-button", - &b_view_notebook, "view-states-button", &b_view_states, - "view-stats-button", &b_view_stats, "about-button", &b_about, - "quit-button", &b_quit, "dir-filters", &b_dir_filters, - "tracker-filters", &b_tracker_filters, + &b_add, "add-url-button", &b_add_url, "resume-button", + &b_resume, "resume-all-button", &b_resume_all, + "pause-button", &b_pause, "pause-all-button", + &b_pause_all, "delete-button", &b_delete, "remove-button", + &b_remove, "move-button", &b_move, "verify-button", + &b_verify, "reannounce-button", &b_reannounce, + "props-button", &b_props, "remote-prefs-button", + &b_remote_prefs, "local-prefs-button", &b_local_prefs, + "view-notebook-button", &b_view_notebook, + "view-states-button", &b_view_states, "view-stats-button", + &b_view_stats, "about-button", &b_about, "quit-button", + &b_quit, "dir-filters", &b_dir_filters, "tracker-filters", + &b_tracker_filters, #ifndef TRG_NO_GRAPH - "show-graph", &b_show_graph, + "show-graph", &b_show_graph, #endif - "up-queue", &b_up_queue, "down-queue", &b_down_queue, "top-queue", - &b_top_queue, "bottom-queue", &b_bottom_queue, "start-now", - &b_start_now, NULL); + "up-queue", &b_up_queue, "down-queue", &b_down_queue, + "top-queue", &b_top_queue, "bottom-queue", + &b_bottom_queue, "start-now", &b_start_now, NULL); - g_signal_connect(b_disconnect, "activate", G_CALLBACK(disconnect_cb), win); + g_signal_connect(b_disconnect, "activate", G_CALLBACK(disconnect_cb), + win); g_signal_connect(b_add, "activate", G_CALLBACK(add_cb), win); g_signal_connect(b_add_url, "activate", G_CALLBACK(add_url_cb), win); g_signal_connect(b_resume, "activate", G_CALLBACK(resume_cb), win); - g_signal_connect(b_resume_all, "activate", G_CALLBACK(resume_all_cb), win); + g_signal_connect(b_resume_all, "activate", G_CALLBACK(resume_all_cb), + win); g_signal_connect(b_pause, "activate", G_CALLBACK(pause_cb), win); - g_signal_connect(b_pause_all, "activate", G_CALLBACK(pause_all_cb), win); + g_signal_connect(b_pause_all, "activate", G_CALLBACK(pause_all_cb), + win); g_signal_connect(b_verify, "activate", G_CALLBACK(verify_cb), win); - g_signal_connect(b_reannounce, "activate", G_CALLBACK(reannounce_cb), win); + g_signal_connect(b_reannounce, "activate", G_CALLBACK(reannounce_cb), + win); g_signal_connect(b_delete, "activate", G_CALLBACK(delete_cb), win); g_signal_connect(b_remove, "activate", G_CALLBACK(remove_cb), win); g_signal_connect(b_up_queue, "activate", G_CALLBACK(up_queue_cb), win); - g_signal_connect(b_down_queue, "activate", G_CALLBACK(down_queue_cb), win); - g_signal_connect(b_top_queue, "activate", G_CALLBACK(top_queue_cb), win); - g_signal_connect(b_bottom_queue, "activate", G_CALLBACK(bottom_queue_cb), - win); - g_signal_connect(b_start_now, "activate", G_CALLBACK(start_now_cb), win); + g_signal_connect(b_down_queue, "activate", G_CALLBACK(down_queue_cb), + win); + g_signal_connect(b_top_queue, "activate", G_CALLBACK(top_queue_cb), + win); + g_signal_connect(b_bottom_queue, "activate", + G_CALLBACK(bottom_queue_cb), win); + g_signal_connect(b_start_now, "activate", G_CALLBACK(start_now_cb), + win); g_signal_connect(b_move, "activate", G_CALLBACK(move_cb), win); g_signal_connect(b_about, "activate", G_CALLBACK(open_about_cb), win); - g_signal_connect(b_local_prefs, "activate", G_CALLBACK(open_local_prefs_cb), - win); + g_signal_connect(b_local_prefs, "activate", + G_CALLBACK(open_local_prefs_cb), win); g_signal_connect(b_remote_prefs, "activate", - G_CALLBACK(open_remote_prefs_cb), win); + G_CALLBACK(open_remote_prefs_cb), win); g_signal_connect(b_view_notebook, "toggled", - G_CALLBACK(view_notebook_toggled_cb), win); + G_CALLBACK(view_notebook_toggled_cb), win); g_signal_connect(b_dir_filters, "toggled", - G_CALLBACK(main_window_toggle_filter_dirs), win); - g_signal_connect(b_tracker_filters, "toggled", - G_CALLBACK(main_window_toggle_filter_trackers), win); -#ifndef TRG_NO_GRAPH + G_CALLBACK(main_window_toggle_filter_dirs), win); g_signal_connect(b_tracker_filters, "toggled", - G_CALLBACK(trg_main_window_toggle_graph_cb), win); -#endif + G_CALLBACK(main_window_toggle_filter_trackers), win); g_signal_connect(b_view_states, "toggled", - G_CALLBACK(view_states_toggled_cb), win); + G_CALLBACK(view_states_toggled_cb), win); g_signal_connect(b_view_stats, "activate", - G_CALLBACK(view_stats_toggled_cb), win); + G_CALLBACK(view_stats_toggled_cb), win); #ifndef TRG_NO_GRAPH g_signal_connect(b_show_graph, "toggled", - G_CALLBACK(trg_main_window_toggle_graph_cb), win); + G_CALLBACK(trg_main_window_toggle_graph_cb), win); #endif g_signal_connect(b_props, "activate", G_CALLBACK(open_props_cb), win); g_signal_connect(b_quit, "activate", G_CALLBACK(quit_cb), win); @@ -1496,7 +1677,8 @@ static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) { #ifndef HAVE_LIBAPPINDICATOR static void status_icon_activated(GtkStatusIcon * icon G_GNUC_UNUSED, - gpointer data) { + gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); gtk_window_deiconify(GTK_WINDOW(data)); @@ -1504,28 +1686,34 @@ static void status_icon_activated(GtkStatusIcon * icon G_GNUC_UNUSED, if (priv->timerId > 0) { g_source_remove(priv->timerId); - dispatch_async(priv->client, torrent_get(TORRENT_GET_TAG_MODE_FULL), - on_torrent_get_first, data); + dispatch_async(priv->client, + torrent_get(TORRENT_GET_TAG_MODE_FULL), + on_torrent_get_first, data); } } static gboolean trg_status_icon_popup_menu_cb(GtkStatusIcon * icon, - gpointer userdata) { + gpointer userdata) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(userdata); - gtk_menu_popup(priv->iconMenu, NULL, NULL, gtk_status_icon_position_menu, - priv->statusIcon, 0, gtk_get_current_event_time()); + gtk_menu_popup(priv->iconMenu, NULL, NULL, + gtk_status_icon_position_menu, priv->statusIcon, 0, + gtk_get_current_event_time()); return TRUE; } static gboolean status_icon_button_press_event(GtkStatusIcon * icon, - GdkEventButton * event, gpointer data) { + GdkEventButton * event, + gpointer data) +{ if (event->type == GDK_BUTTON_PRESS && event->button == 3) { TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); gtk_menu_popup(priv->iconMenu, NULL, NULL, - gtk_status_icon_position_menu, priv->statusIcon, event->button, - gdk_event_get_time((GdkEvent *) event)); + gtk_status_icon_position_menu, priv->statusIcon, + event->button, + gdk_event_get_time((GdkEvent *) event)); return TRUE; } else { return FALSE; @@ -1534,18 +1722,22 @@ static gboolean status_icon_button_press_event(GtkStatusIcon * icon, #endif static void clear_filter_entry_cb(GtkEntry * entry, - GtkEntryIconPosition icon_pos, GdkEvent * event, gpointer user_data) { + GtkEntryIconPosition icon_pos, + GdkEvent * event, gpointer user_data) +{ gtk_entry_set_text(entry, ""); } static GtkWidget *trg_imagemenuitem_new(GtkMenuShell * shell, - const gchar * text, char *stock_id, gboolean sensitive, GCallback cb, - gpointer cbdata) { + const gchar * text, char *stock_id, + gboolean sensitive, GCallback cb, + gpointer cbdata) +{ GtkWidget *item = gtk_image_menu_item_new_with_label(stock_id); gtk_image_menu_item_set_use_stock(GTK_IMAGE_MENU_ITEM(item), TRUE); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM - (item), TRUE); + (item), TRUE); gtk_menu_item_set_label(GTK_MENU_ITEM(item), text); g_signal_connect(item, "activate", cb, cbdata); gtk_widget_set_sensitive(item, sensitive); @@ -1554,7 +1746,8 @@ static GtkWidget *trg_imagemenuitem_new(GtkMenuShell * shell, return item; } -static void set_limit_cb(GtkWidget * w, gpointer data) { +static void set_limit_cb(GtkWidget * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); GtkWidget *parent = gtk_widget_get_parent(w); @@ -1580,13 +1773,15 @@ static void set_limit_cb(GtkWidget * w, gpointer data) { json_object_set_boolean_member(args, enabledKey, speed >= 0); if (limitIds) - dispatch_async(priv->client, req, on_generic_interactive_action, data); + dispatch_async(priv->client, req, on_generic_interactive_action, + data); else dispatch_async(priv->client, req, on_session_set, data); } static GtkWidget *limit_item_new(TrgMainWindow * win, GtkWidget * menu, - gint64 currentLimit, gfloat limit) { + gint64 currentLimit, gfloat limit) +{ char speed[32]; GtkWidget *item; gboolean active = limit < 0 ? FALSE : (currentLimit == (gint64) limit); @@ -1595,7 +1790,8 @@ static GtkWidget *limit_item_new(TrgMainWindow * win, GtkWidget * menu, item = gtk_check_menu_item_new_with_label(speed); - g_object_set_data(G_OBJECT(item), "limit", GINT_TO_POINTER((gint) limit)); + g_object_set_data(G_OBJECT(item), "limit", + GINT_TO_POINTER((gint) limit)); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), active); g_signal_connect(item, "activate", G_CALLBACK(set_limit_cb), win); @@ -1604,7 +1800,9 @@ static GtkWidget *limit_item_new(TrgMainWindow * win, GtkWidget * menu, } static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title, - gchar * enabledKey, gchar * speedKey, JsonArray * ids) { + gchar * enabledKey, gchar * speedKey, + JsonArray * ids) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgClient *client = priv->client; JsonObject *current = NULL; @@ -1614,28 +1812,28 @@ static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title, if (ids) get_torrent_data(trg_client_get_torrent_table(client), - priv->selectedTorrentId, ¤t, &iter); + priv->selectedTorrentId, ¤t, &iter); else current = trg_client_get_session(client); limit = - json_object_get_boolean_member(current, enabledKey) ? json_object_get_int_member( - current, speedKey) : - -1; + json_object_get_boolean_member(current, + enabledKey) ? + json_object_get_int_member(current, speedKey) : -1; toplevel = gtk_image_menu_item_new_with_label(GTK_STOCK_NETWORK); gtk_image_menu_item_set_use_stock(GTK_IMAGE_MENU_ITEM(toplevel), TRUE); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM - (toplevel), TRUE); + (toplevel), TRUE); gtk_menu_item_set_label(GTK_MENU_ITEM(toplevel), title); menu = gtk_menu_new(); g_object_set_data_full(G_OBJECT(menu), "speedKey", g_strdup(speedKey), - g_free); - g_object_set_data_full(G_OBJECT(menu), "enabledKey", g_strdup(enabledKey), - g_free); + g_free); + g_object_set_data_full(G_OBJECT(menu), "enabledKey", + g_strdup(enabledKey), g_free); g_object_set_data_full(G_OBJECT(menu), "limit-ids", ids, - (GDestroyNotify) json_array_unref); + (GDestroyNotify) json_array_unref); item = gtk_check_menu_item_new_with_label(_("No Limit")); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), limit < 0); @@ -1643,7 +1841,8 @@ static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title, g_signal_connect(item, "activate", G_CALLBACK(set_limit_cb), win); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + gtk_separator_menu_item_new()); limit_item_new(win, menu, limit, 0); limit_item_new(win, menu, limit, 5); @@ -1670,24 +1869,24 @@ static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title, return toplevel; } -static void exec_cmd_cb(GtkWidget * w, gpointer data) { +static void exec_cmd_cb(GtkWidget * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); JsonObject *cmd_obj = (JsonObject *) g_object_get_data(G_OBJECT(w), - "cmd-object"); - GtkTreeSelection *selection = gtk_tree_view_get_selection( - GTK_TREE_VIEW(priv->torrentTreeView)); + "cmd-object"); + GtkTreeSelection *selection = + gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->torrentTreeView)); GtkTreeModel *model; GList *selectedRows = gtk_tree_selection_get_selected_rows(selection, - &model); + &model); GError *cmd_error = NULL; gchar *cmd_line, **argv; - cmd_line = build_remote_exec_cmd( - priv->client, - model, - selectedRows, - json_object_get_string_member(cmd_obj, - TRG_PREFS_KEY_EXEC_COMMANDS_SUBKEY_CMD)); + cmd_line = build_remote_exec_cmd(priv->client, + model, + selectedRows, + json_object_get_string_member(cmd_obj, + TRG_PREFS_KEY_EXEC_COMMANDS_SUBKEY_CMD)); g_debug("Exec: %s", cmd_line); @@ -1699,7 +1898,7 @@ static void exec_cmd_cb(GtkWidget * w, gpointer data) { g_shell_parse_argv(cmd_line, NULL, &argv, NULL); g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, - &cmd_error); + &cmd_error); g_list_foreach(selectedRows, (GFunc) gtk_tree_path_free, NULL); g_list_free(selectedRows); @@ -1708,8 +1907,10 @@ static void exec_cmd_cb(GtkWidget * w, gpointer data) { if (cmd_error) { GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(data), - GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", - cmd_error->message); + GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, "%s", + cmd_error->message); gtk_window_set_title(GTK_WINDOW(dialog), _("Error")); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); @@ -1718,7 +1919,8 @@ static void exec_cmd_cb(GtkWidget * w, gpointer data) { } static void trg_torrent_tv_view_menu(GtkWidget * treeview, - GdkEventButton * event, gpointer data) { + GdkEventButton * event, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgPrefs *prefs = trg_client_get_prefs(priv->client); GtkWidget *menu; @@ -1730,24 +1932,32 @@ static void trg_torrent_tv_view_menu(GtkWidget * treeview, ids = build_json_id_array(TRG_TORRENT_TREE_VIEW(treeview)); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Properties"), - GTK_STOCK_PROPERTIES, TRUE, G_CALLBACK(open_props_cb), data); + GTK_STOCK_PROPERTIES, TRUE, + G_CALLBACK(open_props_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Resume"), - GTK_STOCK_MEDIA_PLAY, TRUE, G_CALLBACK(resume_cb), data); + GTK_STOCK_MEDIA_PLAY, TRUE, + G_CALLBACK(resume_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Pause"), - GTK_STOCK_MEDIA_PAUSE, TRUE, G_CALLBACK(pause_cb), data); - trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Verify"), GTK_STOCK_REFRESH, - TRUE, G_CALLBACK(verify_cb), data); + GTK_STOCK_MEDIA_PAUSE, TRUE, + G_CALLBACK(pause_cb), data); + trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Verify"), + GTK_STOCK_REFRESH, TRUE, G_CALLBACK(verify_cb), + data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Re-announce"), - GTK_STOCK_REFRESH, TRUE, G_CALLBACK(reannounce_cb), data); - trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Move"), GTK_STOCK_HARDDISK, - TRUE, G_CALLBACK(move_cb), data); - trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Remove"), GTK_STOCK_REMOVE, - TRUE, G_CALLBACK(remove_cb), data); + GTK_STOCK_REFRESH, TRUE, + G_CALLBACK(reannounce_cb), data); + trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Move"), + GTK_STOCK_HARDDISK, TRUE, G_CALLBACK(move_cb), + data); + trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Remove"), + GTK_STOCK_REMOVE, TRUE, G_CALLBACK(remove_cb), + data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Remove & Delete"), - GTK_STOCK_CLEAR, TRUE, G_CALLBACK(delete_cb), data); + GTK_STOCK_CLEAR, TRUE, G_CALLBACK(delete_cb), + data); cmds = trg_prefs_get_array(prefs, TRG_PREFS_KEY_EXEC_COMMANDS, - TRG_PREFS_CONNECTION); + TRG_PREFS_CONNECTION); n_cmds = json_array_get_length(cmds); if (n_cmds > 0) { @@ -1757,71 +1967,84 @@ static void trg_torrent_tv_view_menu(GtkWidget * treeview, if (n_cmds < 3) { gtk_menu_shell_append(GTK_MENU_SHELL(menu), - gtk_separator_menu_item_new()); + gtk_separator_menu_item_new()); cmds_shell = GTK_MENU_SHELL(menu); } else { GtkImageMenuItem *cmds_menu = - GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_label - (GTK_STOCK_EXECUTE)); + GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_label + (GTK_STOCK_EXECUTE)); gtk_image_menu_item_set_use_stock(cmds_menu, TRUE); gtk_image_menu_item_set_always_show_image(cmds_menu, TRUE); - gtk_menu_item_set_label(GTK_MENU_ITEM(cmds_menu), _("Actions")); + gtk_menu_item_set_label(GTK_MENU_ITEM(cmds_menu), + _("Actions")); cmds_shell = GTK_MENU_SHELL(gtk_menu_new()); gtk_menu_item_set_submenu(GTK_MENU_ITEM(cmds_menu), - GTK_WIDGET(cmds_shell)); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), GTK_WIDGET(cmds_menu)); + GTK_WIDGET(cmds_shell)); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + GTK_WIDGET(cmds_menu)); } for (cmds_li = cmds_list; cmds_li; cmds_li = g_list_next(cmds_li)) { - JsonObject *cmd_obj = json_node_get_object( - (JsonNode *) cmds_li->data); + JsonObject *cmd_obj = json_node_get_object((JsonNode *) + cmds_li->data); const gchar *cmd_label = json_object_get_string_member(cmd_obj, - "label"); + "label"); GtkWidget *item = trg_imagemenuitem_new(cmds_shell, cmd_label, - GTK_STOCK_EXECUTE, TRUE, G_CALLBACK - (exec_cmd_cb), data); + GTK_STOCK_EXECUTE, + TRUE, + G_CALLBACK + (exec_cmd_cb), data); g_object_set_data(G_OBJECT(item), "cmd-object", cmd_obj); } g_list_free(cmds_list); } - gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + gtk_separator_menu_item_new()); if (priv->queuesEnabled) { trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Start Now"), - GTK_STOCK_MEDIA_PLAY, TRUE, G_CALLBACK(start_now_cb), data); + GTK_STOCK_MEDIA_PLAY, TRUE, + G_CALLBACK(start_now_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Move Up Queue"), - GTK_STOCK_GO_UP, TRUE, G_CALLBACK(up_queue_cb), data); + GTK_STOCK_GO_UP, TRUE, + G_CALLBACK(up_queue_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Move Down Queue"), - GTK_STOCK_GO_DOWN, TRUE, G_CALLBACK(down_queue_cb), data); + GTK_STOCK_GO_DOWN, TRUE, + G_CALLBACK(down_queue_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Bottom Of Queue"), - GTK_STOCK_GOTO_BOTTOM, TRUE, G_CALLBACK(bottom_queue_cb), data); + GTK_STOCK_GOTO_BOTTOM, TRUE, + G_CALLBACK(bottom_queue_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Top Of Queue"), - GTK_STOCK_GOTO_TOP, TRUE, G_CALLBACK(top_queue_cb), data); + GTK_STOCK_GOTO_TOP, TRUE, + G_CALLBACK(top_queue_cb), data); gtk_menu_shell_append(GTK_MENU_SHELL(menu), - gtk_separator_menu_item_new()); + gtk_separator_menu_item_new()); } - gtk_menu_shell_append( - GTK_MENU_SHELL(menu), - limit_menu_new(TRG_MAIN_WINDOW(data), _("Down Limit"), - FIELD_DOWNLOAD_LIMITED, FIELD_DOWNLOAD_LIMIT, ids)); - gtk_menu_shell_append( - GTK_MENU_SHELL(menu), - limit_menu_new(TRG_MAIN_WINDOW(data), _("Up Limit"), - FIELD_UPLOAD_LIMITED, FIELD_UPLOAD_LIMIT, ids)); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + limit_menu_new(TRG_MAIN_WINDOW(data), + _("Down Limit"), + FIELD_DOWNLOAD_LIMITED, + FIELD_DOWNLOAD_LIMIT, ids)); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + limit_menu_new(TRG_MAIN_WINDOW(data), + _("Up Limit"), + FIELD_UPLOAD_LIMITED, + FIELD_UPLOAD_LIMIT, ids)); gtk_widget_show_all(menu); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, - (event != NULL) ? event->button : 0, - gdk_event_get_time((GdkEvent *) event)); - } + (event != NULL) ? event->button : 0, + gdk_event_get_time((GdkEvent *) event)); +} static GtkMenu *trg_status_icon_view_menu(TrgMainWindow * win, - const gchar * msg) { + const gchar * msg) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgPrefs *prefs = trg_client_get_prefs(priv->client); gboolean connected = trg_client_is_connected(priv->client); @@ -1834,13 +2057,15 @@ static GtkMenu *trg_status_icon_view_menu(TrgMainWindow * win, gtk_menu_shell_append(GTK_MENU_SHELL(menu), priv->iconStatusItem); if (connected) { - priv->iconDownloadingItem = gtk_menu_item_new_with_label( - _("Updating...")); + priv->iconDownloadingItem = + gtk_menu_item_new_with_label(_("Updating...")); gtk_widget_set_visible(priv->iconDownloadingItem, FALSE); gtk_widget_set_sensitive(priv->iconDownloadingItem, FALSE); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), priv->iconDownloadingItem); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + priv->iconDownloadingItem); - priv->iconSeedingItem = gtk_menu_item_new_with_label(_("Updating...")); + priv->iconSeedingItem = + gtk_menu_item_new_with_label(_("Updating...")); gtk_widget_set_visible(priv->iconSeedingItem, FALSE); gtk_widget_set_sensitive(priv->iconSeedingItem, FALSE); gtk_menu_shell_append(GTK_MENU_SHELL(menu), priv->iconSeedingItem); @@ -1853,45 +2078,48 @@ static GtkMenu *trg_status_icon_view_menu(TrgMainWindow * win, connect = gtk_image_menu_item_new_with_label(GTK_STOCK_CONNECT); gtk_image_menu_item_set_use_stock(GTK_IMAGE_MENU_ITEM(connect), TRUE); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(connect), - TRUE); + TRUE); gtk_menu_item_set_label(GTK_MENU_ITEM(connect), _("Connect")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(connect), - trg_menu_bar_file_connect_menu_new(win, prefs)); + trg_menu_bar_file_connect_menu_new(win, + prefs)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), connect); if (connected) { trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Disconnect"), - GTK_STOCK_DISCONNECT, connected, G_CALLBACK(disconnect_cb), - win); + GTK_STOCK_DISCONNECT, connected, + G_CALLBACK(disconnect_cb), win); - trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Add"), GTK_STOCK_ADD, - connected, G_CALLBACK(add_cb), win); + trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Add"), + GTK_STOCK_ADD, connected, G_CALLBACK(add_cb), + win); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Add from URL"), - GTK_STOCK_ADD, connected, G_CALLBACK(add_url_cb), win); + GTK_STOCK_ADD, connected, + G_CALLBACK(add_url_cb), win); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Resume All"), - GTK_STOCK_MEDIA_PLAY, connected, G_CALLBACK(resume_all_cb), - win); + GTK_STOCK_MEDIA_PLAY, connected, + G_CALLBACK(resume_all_cb), win); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Pause All"), - GTK_STOCK_MEDIA_PAUSE, connected, G_CALLBACK(pause_all_cb), - win); - - gtk_menu_shell_append( - GTK_MENU_SHELL(menu), - limit_menu_new(win, _("Down Limit"), - SGET_SPEED_LIMIT_DOWN_ENABLED, SGET_SPEED_LIMIT_DOWN, - NULL)); - gtk_menu_shell_append( - GTK_MENU_SHELL(menu), - limit_menu_new(win, _("Up Limit"), SGET_SPEED_LIMIT_UP_ENABLED, - SGET_SPEED_LIMIT_UP, NULL)); + GTK_STOCK_MEDIA_PAUSE, connected, + G_CALLBACK(pause_all_cb), win); + + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + limit_menu_new(win, _("Down Limit"), + SGET_SPEED_LIMIT_DOWN_ENABLED, + SGET_SPEED_LIMIT_DOWN, NULL)); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + limit_menu_new(win, _("Up Limit"), + SGET_SPEED_LIMIT_UP_ENABLED, + SGET_SPEED_LIMIT_UP, NULL)); } - gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); - trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Quit"), GTK_STOCK_QUIT, TRUE, - G_CALLBACK(quit_cb), win); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + gtk_separator_menu_item_new()); + trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Quit"), GTK_STOCK_QUIT, + TRUE, G_CALLBACK(quit_cb), win); gtk_widget_show_all(menu); @@ -1899,7 +2127,9 @@ static GtkMenu *trg_status_icon_view_menu(TrgMainWindow * win, } static gboolean torrent_tv_button_pressed_cb(GtkWidget * treeview, - GdkEventButton * event, gpointer userdata) { + GdkEventButton * event, + gpointer userdata) +{ GtkTreeSelection *selection; GtkTreePath *path; @@ -1907,7 +2137,8 @@ static gboolean torrent_tv_button_pressed_cb(GtkWidget * treeview, selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview), - (gint) event->x, (gint) event->y, &path, NULL, NULL, NULL)) { + (gint) event->x, (gint) event->y, + &path, NULL, NULL, NULL)) { if (!gtk_tree_selection_path_is_selected(selection, path)) { gtk_tree_selection_unselect_all(selection); gtk_tree_selection_select_path(selection, path); @@ -1924,24 +2155,27 @@ static gboolean torrent_tv_button_pressed_cb(GtkWidget * treeview, } static gboolean torrent_tv_popup_menu_cb(GtkWidget * treeview, - gpointer userdata) { + gpointer userdata) +{ trg_torrent_tv_view_menu(treeview, NULL, userdata); return TRUE; } static gboolean window_state_event(GtkWidget * widget, - GdkEventWindowState * event, gpointer trayIcon) { + GdkEventWindowState * event, + gpointer trayIcon) +{ #ifndef HAVE_LIBAPPINDICATOR TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(widget); TrgPrefs *prefs = trg_client_get_prefs(priv->client); - if (priv->statusIcon && event->changed_mask == GDK_WINDOW_STATE_ICONIFIED - && (event->new_window_state == GDK_WINDOW_STATE_ICONIFIED - || event->new_window_state - == (GDK_WINDOW_STATE_ICONIFIED - | GDK_WINDOW_STATE_MAXIMIZED)) - && trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SYSTEM_TRAY_MINIMISE, - TRG_PREFS_GLOBAL)) { + if (priv->statusIcon + && event->changed_mask == GDK_WINDOW_STATE_ICONIFIED + && (event->new_window_state == GDK_WINDOW_STATE_ICONIFIED + || event->new_window_state == + (GDK_WINDOW_STATE_ICONIFIED | GDK_WINDOW_STATE_MAXIMIZED)) + && trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SYSTEM_TRAY_MINIMISE, + TRG_PREFS_GLOBAL)) { gtk_widget_hide(GTK_WIDGET(widget)); } @@ -1951,11 +2185,12 @@ static gboolean window_state_event(GtkWidget * widget, #endif } -void trg_main_window_remove_status_icon(TrgMainWindow * win) { +void trg_main_window_remove_status_icon(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); #ifdef HAVE_LIBAPPINDICATOR if (priv->appIndicator) - g_object_unref(G_OBJECT(priv->appIndicator)); + g_object_unref(G_OBJECT(priv->appIndicator)); priv->appIndicator = NULL; #else @@ -1968,13 +2203,16 @@ void trg_main_window_remove_status_icon(TrgMainWindow * win) { } #ifndef TRG_NO_GRAPH -void trg_main_window_add_graph(TrgMainWindow * win, gboolean show) { +void trg_main_window_add_graph(TrgMainWindow * win, gboolean show) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); - priv->graph = trg_torrent_graph_new(gtk_widget_get_style(priv->notebook)); - priv->graphNotebookIndex = gtk_notebook_append_page( - GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(priv->graph), - gtk_label_new(_("Graph"))); + priv->graph = + trg_torrent_graph_new(gtk_widget_get_style(priv->notebook)); + priv->graphNotebookIndex = + gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), + GTK_WIDGET(priv->graph), + gtk_label_new(_("Graph"))); if (show) gtk_widget_show_all(priv->notebook); @@ -1982,27 +2220,29 @@ void trg_main_window_add_graph(TrgMainWindow * win, gboolean show) { trg_torrent_graph_start(priv->graph); } -void trg_main_window_remove_graph(TrgMainWindow * win) { +void trg_main_window_remove_graph(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); if (priv->graphNotebookIndex >= 0) { gtk_notebook_remove_page(GTK_NOTEBOOK(priv->notebook), - priv->graphNotebookIndex); + priv->graphNotebookIndex); priv->graphNotebookIndex = -1; } } #endif -void trg_main_window_add_status_icon(TrgMainWindow * win) { +void trg_main_window_add_status_icon(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); #ifdef HAVE_LIBAPPINDICATOR if ((priv->appIndicator = - app_indicator_new(PACKAGE_NAME, PACKAGE_NAME, - APP_INDICATOR_CATEGORY_APPLICATION_STATUS))) { + app_indicator_new(PACKAGE_NAME, PACKAGE_NAME, + APP_INDICATOR_CATEGORY_APPLICATION_STATUS))) { app_indicator_set_status(priv->appIndicator, - APP_INDICATOR_STATUS_ACTIVE); + APP_INDICATOR_STATUS_ACTIVE); app_indicator_set_menu(priv->appIndicator, - trg_status_icon_view_menu(win, NULL)); + trg_status_icon_view_menu(win, NULL)); } #else if (!priv->icon) @@ -2010,35 +2250,42 @@ void trg_main_window_add_status_icon(TrgMainWindow * win) { priv->statusIcon = gtk_status_icon_new_from_pixbuf(priv->icon); gtk_status_icon_set_screen(priv->statusIcon, - gtk_window_get_screen(GTK_WINDOW(win))); + gtk_window_get_screen(GTK_WINDOW(win))); g_signal_connect(priv->statusIcon, "activate", - G_CALLBACK(status_icon_activated), win); + G_CALLBACK(status_icon_activated), win); g_signal_connect(priv->statusIcon, "button-press-event", - G_CALLBACK(status_icon_button_press_event), win); + G_CALLBACK(status_icon_button_press_event), win); g_signal_connect(priv->statusIcon, "popup-menu", - G_CALLBACK(trg_status_icon_popup_menu_cb), win); + G_CALLBACK(trg_status_icon_popup_menu_cb), win); gtk_status_icon_set_visible(priv->statusIcon, TRUE); #endif - connchange_whatever_statusicon(win, trg_client_is_connected(priv->client)); + connchange_whatever_statusicon(win, + trg_client_is_connected(priv->client)); } -TrgStateSelector *trg_main_window_get_state_selector(TrgMainWindow * win) { +TrgStateSelector *trg_main_window_get_state_selector(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); return priv->stateSelector; } static gboolean trg_main_window_config_event(GtkWidget * widget, - GdkEvent * event, gpointer user_data G_GNUC_UNUSED) { + GdkEvent * event, + gpointer user_data + G_GNUC_UNUSED) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(widget); priv->width = event->configure.width; priv->height = event->configure.height; return FALSE; } -static void trg_client_session_updated_cb(TrgClient * tc, JsonObject * session, - gpointer data) { +static void trg_client_session_updated_cb(TrgClient * tc, + JsonObject * session, + gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); gboolean queuesEnabled; @@ -2046,9 +2293,9 @@ static void trg_client_session_updated_cb(TrgClient * tc, JsonObject * session, if (json_object_has_member(session, SGET_DOWNLOAD_QUEUE_ENABLED)) { queuesEnabled = json_object_get_boolean_member(session, - SGET_DOWNLOAD_QUEUE_ENABLED) - || json_object_get_boolean_member(session, - SGET_SEED_QUEUE_ENABLED); + SGET_DOWNLOAD_QUEUE_ENABLED) + || json_object_get_boolean_member(session, + SGET_SEED_QUEUE_ENABLED); } else { queuesEnabled = FALSE; } @@ -2056,7 +2303,7 @@ static void trg_client_session_updated_cb(TrgClient * tc, JsonObject * session, if (priv->queuesEnabled != queuesEnabled) { trg_menu_bar_set_supports_queues(priv->menuBar, queuesEnabled); trg_state_selector_set_queues_enabled(priv->stateSelector, - queuesEnabled); + queuesEnabled); } priv->queuesEnabled = queuesEnabled; @@ -2065,27 +2312,29 @@ static void trg_client_session_updated_cb(TrgClient * tc, JsonObject * session, /* Drag & Drop support */ static GtkTargetEntry target_list[] = { /* datatype (string), restrictions on DnD (GtkTargetFlags), datatype (int) */ -{ "text/uri-list", GTK_TARGET_OTHER_APP | GTK_TARGET_OTHER_WIDGET, 0 } }; + {"text/uri-list", GTK_TARGET_OTHER_APP | GTK_TARGET_OTHER_WIDGET, 0} +}; static guint n_targets = G_N_ELEMENTS(target_list); static void on_dropped_file(GtkWidget * widget, GdkDragContext * context, - gint x, gint y, GtkSelectionData * data, guint info, guint time, - gpointer user_data) { + gint x, gint y, GtkSelectionData * data, + guint info, guint time, gpointer user_data) +{ TrgMainWindow *win = user_data; if ((gtk_selection_data_get_length(data) >= 0) - && (gtk_selection_data_get_format(data) == 8)) { + && (gtk_selection_data_get_format(data) == 8)) { if (gdk_drag_context_get_actions(context) == GDK_ACTION_MOVE) { - g_debug("GDK_ACTION_MOVE"); gchar **uri_list = gtk_selection_data_get_uris(data); guint num_files = g_strv_length(uri_list); gchar **file_list = g_new0(gchar *, num_files + 1); int i; - for (i = 0; i < num_files; i++) { - file_list[i] = g_filename_from_uri(uri_list[i], NULL, NULL); - g_debug("to be added: %s", file_list[i]); - } + + for (i = 0; i < num_files; i++) + file_list[i] = + g_filename_from_uri(uri_list[i], NULL, NULL); + g_strfreev(uri_list); gtk_drag_finish(context, TRUE, FALSE, time); trg_add_from_filename(win, file_list); @@ -2096,7 +2345,10 @@ static void on_dropped_file(GtkWidget * widget, GdkDragContext * context, } static GObject *trg_main_window_constructor(GType type, - guint n_construct_properties, GObjectConstructParam * construct_params) { + guint n_construct_properties, + GObjectConstructParam * + construct_params) +{ TrgMainWindow *self; TrgMainWindowPrivate *priv; GtkWidget *w; @@ -2108,9 +2360,9 @@ static GObject *trg_main_window_constructor(GType type, TrgPrefs *prefs; self = TRG_MAIN_WINDOW(G_OBJECT_CLASS - (trg_main_window_parent_class)->constructor - (type, n_construct_properties, - construct_params)); + (trg_main_window_parent_class)->constructor + (type, n_construct_properties, + construct_params)); priv = TRG_MAIN_WINDOW_GET_PRIVATE(self); priv->queuesEnabled = TRUE; @@ -2120,7 +2372,8 @@ static GObject *trg_main_window_constructor(GType type, theme = gtk_icon_theme_get_default(); register_my_icons(theme); priv->icon = gtk_icon_theme_load_icon(theme, PACKAGE_NAME, 48, - GTK_ICON_LOOKUP_USE_BUILTIN, NULL); + GTK_ICON_LOOKUP_USE_BUILTIN, + NULL); #ifdef HAVE_LIBNOTIFY notify_init(PACKAGE_NAME); @@ -2131,69 +2384,72 @@ static GObject *trg_main_window_constructor(GType type, gtk_window_set_title(GTK_WINDOW(self), _("Transmission Remote")); gtk_window_set_default_size(GTK_WINDOW(self), 1000, 600); - g_signal_connect(G_OBJECT(self), "delete-event", G_CALLBACK(delete_event), - NULL); + g_signal_connect(G_OBJECT(self), "delete-event", + G_CALLBACK(delete_event), NULL); g_signal_connect(G_OBJECT(self), "destroy", G_CALLBACK(destroy_window), - NULL); + NULL); g_signal_connect(G_OBJECT(self), "window-state-event", - G_CALLBACK(window_state_event), NULL); + G_CALLBACK(window_state_event), NULL); g_signal_connect(G_OBJECT(self), "configure-event", - G_CALLBACK(trg_main_window_config_event), NULL); + G_CALLBACK(trg_main_window_config_event), NULL); priv->torrentModel = trg_torrent_model_new(); trg_client_set_torrent_table(priv->client, - get_torrent_table(priv->torrentModel)); + get_torrent_table(priv->torrentModel)); g_signal_connect(priv->torrentModel, "torrent-completed", - G_CALLBACK(on_torrent_completed), self); + G_CALLBACK(on_torrent_completed), self); g_signal_connect(priv->torrentModel, "torrent-added", - G_CALLBACK(on_torrent_added), self); + G_CALLBACK(on_torrent_added), self); - priv->sortedTorrentModel = gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL - (priv->torrentModel)); + priv->sortedTorrentModel = + gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL + (priv->torrentModel)); - priv->filteredTorrentModel = trg_sortable_filtered_model_new( - GTK_TREE_SORTABLE - (priv->sortedTorrentModel), NULL); + priv->filteredTorrentModel = + trg_sortable_filtered_model_new(GTK_TREE_SORTABLE + (priv->sortedTorrentModel), NULL); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER - (priv->filteredTorrentModel), trg_torrent_tree_view_visible_func, - self, NULL); + (priv->filteredTorrentModel), + trg_torrent_tree_view_visible_func, + self, NULL); priv->torrentTreeView = trg_main_window_torrent_tree_view_new(self, - priv->filteredTorrentModel); + priv-> + filteredTorrentModel); g_signal_connect(priv->torrentTreeView, "popup-menu", - G_CALLBACK(torrent_tv_popup_menu_cb), self); + G_CALLBACK(torrent_tv_popup_menu_cb), self); g_signal_connect(priv->torrentTreeView, "button-press-event", - G_CALLBACK(torrent_tv_button_pressed_cb), self); + G_CALLBACK(torrent_tv_button_pressed_cb), self); g_signal_connect(priv->torrentTreeView, "row-activated", - G_CALLBACK(torrent_tv_onRowActivated), self); + G_CALLBACK(torrent_tv_onRowActivated), self); outerVbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(self), outerVbox); priv->menuBar = trg_main_window_menu_bar_new(self); - gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(priv->menuBar), FALSE, - FALSE, 0); + gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(priv->menuBar), + FALSE, FALSE, 0); toolbarHbox = gtk_hbox_new(FALSE, 0); priv->toolBar = trg_main_window_toolbar_new(self); - gtk_box_pack_start(GTK_BOX(toolbarHbox), GTK_WIDGET(priv->toolBar), TRUE, - TRUE, 0); + gtk_box_pack_start(GTK_BOX(toolbarHbox), GTK_WIDGET(priv->toolBar), + TRUE, TRUE, 0); w = gtk_entry_new(); gtk_entry_set_icon_from_stock(GTK_ENTRY(w), GTK_ENTRY_ICON_SECONDARY, - GTK_STOCK_CLEAR); + GTK_STOCK_CLEAR); g_signal_connect(w, "icon-release", G_CALLBACK(clear_filter_entry_cb), - NULL); + NULL); gtk_box_pack_start(GTK_BOX(toolbarHbox), w, FALSE, FALSE, 0); g_object_set(w, "secondary-icon-sensitive", FALSE, NULL); priv->filterEntry = w; g_signal_connect(G_OBJECT(priv->filterEntry), "changed", - G_CALLBACK(entry_filter_changed_cb), self); + G_CALLBACK(entry_filter_changed_cb), self); gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(toolbarHbox), FALSE, - FALSE, 0); + FALSE, 0); priv->vpaned = gtk_vpaned_new(); priv->hpaned = gtk_hpaned_new(); @@ -2201,24 +2457,27 @@ static GObject *trg_main_window_constructor(GType type, gtk_paned_pack1(GTK_PANED(priv->vpaned), priv->hpaned, TRUE, TRUE); priv->stateSelector = trg_state_selector_new(priv->client, - priv->torrentModel); - priv->stateSelectorScroller = my_scrolledwin_new( - GTK_WIDGET(priv->stateSelector)); - gtk_paned_pack1(GTK_PANED(priv->hpaned), priv->stateSelectorScroller, FALSE, - FALSE); + priv->torrentModel); + priv->stateSelectorScroller = + my_scrolledwin_new(GTK_WIDGET(priv->stateSelector)); + gtk_paned_pack1(GTK_PANED(priv->hpaned), priv->stateSelectorScroller, + FALSE, FALSE); gtk_paned_pack2(GTK_PANED(priv->hpaned), my_scrolledwin_new(GTK_WIDGET - (priv->torrentTreeView)), TRUE, TRUE); + (priv-> + torrentTreeView)), + TRUE, TRUE); - g_signal_connect(G_OBJECT(priv->stateSelector), "torrent-state-changed", - G_CALLBACK(torrent_state_selection_changed), - priv->filteredTorrentModel); + g_signal_connect(G_OBJECT(priv->stateSelector), + "torrent-state-changed", + G_CALLBACK(torrent_state_selection_changed), + priv->filteredTorrentModel); priv->notebook = trg_main_window_notebook_new(self); gtk_paned_pack2(GTK_PANED(priv->vpaned), priv->notebook, FALSE, FALSE); tray = trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SYSTEM_TRAY, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); if (tray) trg_main_window_add_status_icon(self); else @@ -2226,18 +2485,18 @@ static GObject *trg_main_window_constructor(GType type, priv->statusBar = trg_status_bar_new(self, priv->client); g_signal_connect(priv->client, "session-updated", - G_CALLBACK(trg_client_session_updated_cb), self); + G_CALLBACK(trg_client_session_updated_cb), self); - gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(priv->statusBar), FALSE, - FALSE, 2); + gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(priv->statusBar), + FALSE, FALSE, 2); width = trg_prefs_get_int(prefs, TRG_PREFS_KEY_WINDOW_WIDTH, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); height = trg_prefs_get_int(prefs, TRG_PREFS_KEY_WINDOW_HEIGHT, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); pos = trg_prefs_get_int(prefs, TRG_PREFS_KEY_NOTEBOOK_PANED_POS, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); if (width > 0 && height > 0) gtk_window_set_default_size(GTK_WINDOW(self), width, height); @@ -2249,17 +2508,17 @@ static GObject *trg_main_window_constructor(GType type, gtk_widget_show_all(GTK_WIDGET(self)); - trg_widget_set_visible( - priv->stateSelectorScroller, - trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SHOW_STATE_SELECTOR, - TRG_PREFS_GLOBAL)); - trg_widget_set_visible( - priv->notebook, - trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SHOW_NOTEBOOK, - TRG_PREFS_GLOBAL)); + trg_widget_set_visible(priv->stateSelectorScroller, + trg_prefs_get_bool(prefs, + TRG_PREFS_KEY_SHOW_STATE_SELECTOR, + TRG_PREFS_GLOBAL)); + trg_widget_set_visible(priv->notebook, + trg_prefs_get_bool(prefs, + TRG_PREFS_KEY_SHOW_NOTEBOOK, + TRG_PREFS_GLOBAL)); pos = trg_prefs_get_int(prefs, TRG_PREFS_KEY_STATES_PANED_POS, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); if (pos > 0) gtk_paned_set_position(GTK_PANED(priv->hpaned), pos); @@ -2268,20 +2527,21 @@ static GObject *trg_main_window_constructor(GType type, /* Drag and Drop */ gtk_drag_dest_set(GTK_WIDGET(self), // widget that will accept a drop - GTK_DEST_DEFAULT_ALL, // default actions for dest on DnD - target_list, // lists of target to support - n_targets, // size of list - GDK_ACTION_MOVE // what to do with data after dropped - // | GDK_ACTION_COPY ... seems that file managers only need ACTION_MOVE, not ACTION_COPY - ); + GTK_DEST_DEFAULT_ALL, // default actions for dest on DnD + target_list, // lists of target to support + n_targets, // size of list + GDK_ACTION_MOVE // what to do with data after dropped + // | GDK_ACTION_COPY ... seems that file managers only need ACTION_MOVE, not ACTION_COPY + ); //g_signal_connect (priv->torrentTreeView, "drag-motion",G_CALLBACK (drag_motion_handl), NULL); - g_signal_connect(self, "drag-data-received", G_CALLBACK(on_dropped_file), - self); + g_signal_connect(self, "drag-data-received", + G_CALLBACK(on_dropped_file), self); return G_OBJECT(self); } -static void trg_main_window_class_init(TrgMainWindowClass * klass) { +static void trg_main_window_class_init(TrgMainWindowClass * klass) +{ GObjectClass *object_class = G_OBJECT_CLASS(klass); g_type_class_add_private(klass, sizeof(TrgMainWindowPrivate)); @@ -2290,42 +2550,51 @@ static void trg_main_window_class_init(TrgMainWindowClass * klass) { object_class->get_property = trg_main_window_get_property; object_class->set_property = trg_main_window_set_property; - g_object_class_install_property( - object_class, - PROP_CLIENT, - g_param_spec_pointer( - "trg-client", - "TClient", - "Client", - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY - | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK - | G_PARAM_STATIC_BLURB)); - - g_object_class_install_property( - object_class, - PROP_MINIMISE_ON_START, - g_param_spec_boolean( - "min-on-start", - "Min On Start", - "Min On Start", - FALSE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY - | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK - | G_PARAM_STATIC_BLURB)); -} - -void auto_connect_if_required(TrgMainWindow * win, gchar ** args) { + g_object_class_install_property(object_class, + PROP_CLIENT, + g_param_spec_pointer("trg-client", + "TClient", + "Client", + G_PARAM_READWRITE + | + G_PARAM_CONSTRUCT_ONLY + | + G_PARAM_STATIC_NAME + | + G_PARAM_STATIC_NICK + | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property(object_class, + PROP_MINIMISE_ON_START, + g_param_spec_boolean("min-on-start", + "Min On Start", + "Min On Start", + FALSE, + G_PARAM_READWRITE + | + G_PARAM_CONSTRUCT_ONLY + | + G_PARAM_STATIC_NAME + | + G_PARAM_STATIC_NICK + | + G_PARAM_STATIC_BLURB)); +} + +void auto_connect_if_required(TrgMainWindow * win, gchar ** args) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgPrefs *prefs = trg_client_get_prefs(priv->client); gchar *host = trg_prefs_get_string(prefs, TRG_PREFS_KEY_HOSTNAME, - TRG_PREFS_PROFILE); + TRG_PREFS_PROFILE); if (host) { gint len = strlen(host); g_free(host); if (len > 0 - && trg_prefs_get_bool(prefs, TRG_PREFS_KEY_AUTO_CONNECT, - TRG_PREFS_PROFILE)) { + && trg_prefs_get_bool(prefs, TRG_PREFS_KEY_AUTO_CONNECT, + TRG_PREFS_PROFILE)) { priv->args = args; connect_cb(NULL, win); return; @@ -2336,7 +2605,8 @@ void auto_connect_if_required(TrgMainWindow * win, gchar ** args) { g_strfreev(args); } -TrgMainWindow *trg_main_window_new(TrgClient * tc, gboolean minonstart) { - return g_object_new(TRG_TYPE_MAIN_WINDOW, "trg-client", tc, "min-on-start", - minonstart, NULL); +TrgMainWindow *trg_main_window_new(TrgClient * tc, gboolean minonstart) +{ + return g_object_new(TRG_TYPE_MAIN_WINDOW, "trg-client", tc, + "min-on-start", minonstart, NULL); } diff --git a/src/trg-menu-bar.c b/src/trg-menu-bar.c index a9e4f08..b5e049f 100644 --- a/src/trg-menu-bar.c +++ b/src/trg-menu-bar.c @@ -305,12 +305,13 @@ GtkWidget *trg_menu_bar_item_new(GtkMenuShell * shell, const gchar * text, return item; } -static void trg_menu_bar_accel_add(TrgMenuBar *menu, GtkWidget *item, guint key, GdkModifierType mods) +static void trg_menu_bar_accel_add(TrgMenuBar * menu, GtkWidget * item, + guint key, GdkModifierType mods) { TrgMenuBarPrivate *priv = TRG_MENU_BAR_GET_PRIVATE(menu); gtk_widget_add_accelerator(item, "activate", priv->accel_group, - key, mods, GTK_ACCEL_VISIBLE); + key, mods, GTK_ACCEL_VISIBLE); } @@ -383,12 +384,14 @@ static GtkWidget *trg_menu_bar_view_menu_new(TrgMenuBar * mb) trg_menu_bar_view_item_new(priv->prefs, TRG_PREFS_KEY_SHOW_STATE_SELECTOR, _("State selector"), NULL); + trg_menu_bar_accel_add(mb, priv->mb_view_states, GDK_F2, 0); gtk_menu_shell_append(GTK_MENU_SHELL(viewMenu), priv->mb_view_states); priv->mb_directory_filters = trg_menu_bar_view_item_new(priv->prefs, TRG_PREFS_KEY_FILTER_DIRS, _("Directory filters"), priv->mb_view_states); + trg_menu_bar_accel_add(mb, priv->mb_directory_filters, GDK_F3, 0); gtk_menu_shell_append(GTK_MENU_SHELL(viewMenu), priv->mb_directory_filters); @@ -397,6 +400,7 @@ static GtkWidget *trg_menu_bar_view_menu_new(TrgMenuBar * mb) TRG_PREFS_KEY_FILTER_TRACKERS, _("Tracker filters"), priv->mb_view_states); + trg_menu_bar_accel_add(mb, priv->mb_tracker_filters, GDK_F4, 0); gtk_menu_shell_append(GTK_MENU_SHELL(viewMenu), priv->mb_tracker_filters); @@ -404,16 +408,19 @@ static GtkWidget *trg_menu_bar_view_menu_new(TrgMenuBar * mb) trg_menu_bar_view_item_new(priv->prefs, TRG_PREFS_KEY_SHOW_NOTEBOOK, _("Torrent Details"), NULL); + trg_menu_bar_accel_add(mb, priv->mb_view_notebook, GDK_F5, 0); gtk_menu_shell_append(GTK_MENU_SHELL(viewMenu), priv->mb_view_notebook); priv->mb_view_graph = trg_menu_bar_view_item_new(priv->prefs, TRG_PREFS_KEY_SHOW_GRAPH, _("Graph"), priv->mb_view_notebook); + trg_menu_bar_accel_add(mb, priv->mb_view_graph, GDK_F6, 0); gtk_menu_shell_append(GTK_MENU_SHELL(viewMenu), priv->mb_view_graph); priv->mb_view_stats = gtk_menu_item_new_with_mnemonic(_("_Statistics")); + trg_menu_bar_accel_add(mb, priv->mb_view_stats, GDK_F7, 0); gtk_widget_set_sensitive(priv->mb_view_stats, FALSE); gtk_menu_shell_append(GTK_MENU_SHELL(viewMenu), priv->mb_view_stats); @@ -421,7 +428,7 @@ static GtkWidget *trg_menu_bar_view_menu_new(TrgMenuBar * mb) } static -GtkWidget *trg_menu_bar_options_menu_new(TrgMenuBar *menu) +GtkWidget *trg_menu_bar_options_menu_new(TrgMenuBar * menu) { TrgMenuBarPrivate *priv = TRG_MENU_BAR_GET_PRIVATE(menu); @@ -433,13 +440,15 @@ GtkWidget *trg_menu_bar_options_menu_new(TrgMenuBar *menu) trg_menu_bar_item_new(GTK_MENU_SHELL(optsMenu), _("_Local Preferences"), GTK_STOCK_PREFERENCES, TRUE); - trg_menu_bar_accel_add(menu, priv->mb_local_prefs, GDK_s, GDK_CONTROL_MASK); + trg_menu_bar_accel_add(menu, priv->mb_local_prefs, GDK_s, + GDK_CONTROL_MASK); priv->mb_remote_prefs = trg_menu_bar_item_new(GTK_MENU_SHELL(optsMenu), _("_Remote Preferences"), GTK_STOCK_NETWORK, FALSE); - trg_menu_bar_accel_add(menu, priv->mb_remote_prefs, GDK_s, GDK_MOD1_MASK); + trg_menu_bar_accel_add(menu, priv->mb_remote_prefs, GDK_s, + GDK_MOD1_MASK); return opts; } @@ -512,7 +521,8 @@ GtkWidget *trg_menu_bar_file_file_menu_new(TrgMenuBar * menu) priv->mb_disconnect = trg_menu_bar_item_new(GTK_MENU_SHELL(fileMenu), _("_Disconnect"), GTK_STOCK_DISCONNECT, FALSE); - trg_menu_bar_accel_add(menu, priv->mb_disconnect, GDK_d, GDK_CONTROL_MASK); + trg_menu_bar_accel_add(menu, priv->mb_disconnect, GDK_d, + GDK_CONTROL_MASK); priv->mb_add = trg_menu_bar_item_new(GTK_MENU_SHELL(fileMenu), _("_Add"), @@ -522,7 +532,8 @@ GtkWidget *trg_menu_bar_file_file_menu_new(TrgMenuBar * menu) priv->mb_add_url = trg_menu_bar_item_new(GTK_MENU_SHELL(fileMenu), _("Add from _URL"), GTK_STOCK_ADD, FALSE); - trg_menu_bar_accel_add(menu, priv->mb_add_url, GDK_u, GDK_CONTROL_MASK); + trg_menu_bar_accel_add(menu, priv->mb_add_url, GDK_u, + GDK_CONTROL_MASK); priv->mb_quit = trg_menu_bar_item_new(GTK_MENU_SHELL(fileMenu), _("_Quit"), @@ -534,7 +545,7 @@ GtkWidget *trg_menu_bar_file_file_menu_new(TrgMenuBar * menu) } static -GtkWidget *trg_menu_bar_torrent_menu_new(TrgMenuBar *menu) +GtkWidget *trg_menu_bar_torrent_menu_new(TrgMenuBar * menu) { TrgMenuBarPrivate *priv = TRG_MENU_BAR_GET_PRIVATE(menu); GtkWidget *torrent = gtk_menu_item_new_with_mnemonic(_("_Torrent")); @@ -561,7 +572,7 @@ GtkWidget *trg_menu_bar_torrent_menu_new(TrgMenuBar *menu) priv->mb_verify = trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu), _("_Verify"), GTK_STOCK_REFRESH, FALSE); - trg_menu_bar_accel_add(menu, priv->mb_verify, GDK_v, GDK_CONTROL_MASK); + trg_menu_bar_accel_add(menu, priv->mb_verify, GDK_h, GDK_CONTROL_MASK); priv->mb_reannounce = trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu), @@ -581,7 +592,8 @@ GtkWidget *trg_menu_bar_torrent_menu_new(TrgMenuBar *menu) trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu), _("Remove and Delete"), GTK_STOCK_CLEAR, FALSE); - trg_menu_bar_accel_add(menu, priv->mb_delete, GDK_Delete, GDK_SHIFT_MASK); + trg_menu_bar_accel_add(menu, priv->mb_delete, GDK_Delete, + GDK_SHIFT_MASK); priv->mb_queues_seperator = gtk_separator_menu_item_new(); gtk_menu_shell_append(GTK_MENU_SHELL(torrentMenu), @@ -595,13 +607,15 @@ GtkWidget *trg_menu_bar_torrent_menu_new(TrgMenuBar *menu) priv->mb_up_queue = trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu), _("Move Up Queue"), GTK_STOCK_GO_UP, FALSE); - trg_menu_bar_accel_add(menu, priv->mb_up_queue, GDK_Up, GDK_SHIFT_MASK); + trg_menu_bar_accel_add(menu, priv->mb_up_queue, GDK_Up, + GDK_SHIFT_MASK); priv->mb_down_queue = trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu), _("Move Down Queue"), GTK_STOCK_GO_DOWN, FALSE); - trg_menu_bar_accel_add(menu, priv->mb_down_queue, GDK_Down, GDK_SHIFT_MASK); + trg_menu_bar_accel_add(menu, priv->mb_down_queue, GDK_Down, + GDK_SHIFT_MASK); priv->mb_bottom_queue = trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu), @@ -619,12 +633,14 @@ GtkWidget *trg_menu_bar_torrent_menu_new(TrgMenuBar *menu) trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu), _("_Resume All"), GTK_STOCK_MEDIA_PLAY, FALSE); - trg_menu_bar_accel_add(menu, priv->mb_resume_all, GDK_r, GDK_SHIFT_MASK | GDK_CONTROL_MASK); + trg_menu_bar_accel_add(menu, priv->mb_resume_all, GDK_r, + GDK_SHIFT_MASK | GDK_CONTROL_MASK); priv->mb_pause_all = trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu), _("_Pause All"), GTK_STOCK_MEDIA_PAUSE, FALSE); - trg_menu_bar_accel_add(menu, priv->mb_pause_all, GDK_p, GDK_SHIFT_MASK | GDK_CONTROL_MASK); + trg_menu_bar_accel_add(menu, priv->mb_pause_all, GDK_p, + GDK_SHIFT_MASK | GDK_CONTROL_MASK); return torrent; } @@ -822,8 +838,10 @@ static void trg_menu_bar_init(TrgMenuBar * self) { } -TrgMenuBar *trg_menu_bar_new(TrgMainWindow * win, TrgPrefs * prefs, GtkAccelGroup *accel_group) +TrgMenuBar *trg_menu_bar_new(TrgMainWindow * win, TrgPrefs * prefs, + GtkAccelGroup * accel_group) { return g_object_new(TRG_TYPE_MENU_BAR, - "prefs", prefs, "mainwin", win, "accel-group", accel_group, NULL); + "prefs", prefs, "mainwin", win, "accel-group", + accel_group, NULL); } diff --git a/src/trg-menu-bar.h b/src/trg-menu-bar.h index 7a47a07..2c8fd18 100644 --- a/src/trg-menu-bar.h +++ b/src/trg-menu-bar.h @@ -48,7 +48,8 @@ typedef struct { GType trg_menu_bar_get_type(void); -TrgMenuBar *trg_menu_bar_new(TrgMainWindow * win, TrgPrefs * prefs, GtkAccelGroup *accel_group); +TrgMenuBar *trg_menu_bar_new(TrgMainWindow * win, TrgPrefs * prefs, + GtkAccelGroup * accel_group); GtkWidget *trg_menu_bar_item_new(GtkMenuShell * shell, const gchar * text, const gchar * stock_id, gboolean sensitive); diff --git a/src/trg-preferences-dialog.c b/src/trg-preferences-dialog.c index 266733c..4c774ec 100644 --- a/src/trg-preferences-dialog.c +++ b/src/trg-preferences-dialog.c @@ -385,7 +385,8 @@ static void trgp_double_special_dependent(GtkWidget * widget, (priv->fullUpdateCheck) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON - (priv->fullUpdateCheck))); + (priv-> + fullUpdateCheck))); } static GtkWidget *trg_prefs_generalPage(TrgPreferencesDialog * dlg) @@ -888,7 +889,7 @@ static GObject *trg_preferences_dialog_constructor(GType type, gtk_notebook_append_page(GTK_NOTEBOOK(notebook), trg_prefs_viewPage(TRG_PREFERENCES_DIALOG - (object)), + (object)), gtk_label_new(_("View"))); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), diff --git a/src/trg-remote-prefs-dialog.c b/src/trg-remote-prefs-dialog.c index 1511ecc..8f866ea 100644 --- a/src/trg-remote-prefs-dialog.c +++ b/src/trg-remote-prefs-dialog.c @@ -41,7 +41,8 @@ * as soon as the set is complete. */ -G_DEFINE_TYPE(TrgRemotePrefsDialog, trg_remote_prefs_dialog, GTK_TYPE_DIALOG) +G_DEFINE_TYPE(TrgRemotePrefsDialog, trg_remote_prefs_dialog, + GTK_TYPE_DIALOG) #define TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRG_TYPE_REMOTE_PREFS_DIALOG, TrgRemotePrefsDialogPrivate)) enum { @@ -63,8 +64,10 @@ struct _TrgRemotePrefsDialogPrivate { static GObject *instance = NULL; -static void update_session(GtkDialog * dlg) { - TrgRemotePrefsDialogPrivate *priv = TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(dlg); +static void update_session(GtkDialog * dlg) +{ + TrgRemotePrefsDialogPrivate *priv = + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(dlg); JsonNode *request = session_set(); JsonObject *args = node_get_arguments(request); @@ -72,7 +75,8 @@ static void update_session(GtkDialog * dlg) { /* Connection */ - switch (gtk_combo_box_get_active(GTK_COMBO_BOX(priv->encryption_combo))) { + switch (gtk_combo_box_get_active + (GTK_COMBO_BOX(priv->encryption_combo))) { case 0: encryption = "required"; break; @@ -92,8 +96,10 @@ static void update_session(GtkDialog * dlg) { } static void trg_remote_prefs_response_cb(GtkDialog * dlg, gint res_id, - gpointer data G_GNUC_UNUSED) { - TrgRemotePrefsDialogPrivate *priv = TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(dlg); + gpointer data G_GNUC_UNUSED) +{ + TrgRemotePrefsDialogPrivate *priv = + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(dlg); if (res_id == GTK_RESPONSE_OK) update_session(dlg); @@ -105,9 +111,12 @@ static void trg_remote_prefs_response_cb(GtkDialog * dlg, gint res_id, } static void trg_remote_prefs_dialog_get_property(GObject * object, - guint property_id, GValue * value, GParamSpec * pspec) { + guint property_id, + GValue * value, + GParamSpec * pspec) +{ TrgRemotePrefsDialogPrivate *priv = - TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(object); + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(object); switch (property_id) { case PROP_PARENT: g_value_set_object(value, priv->parent); @@ -122,9 +131,12 @@ static void trg_remote_prefs_dialog_get_property(GObject * object, } static void trg_remote_prefs_dialog_set_property(GObject * object, - guint property_id, const GValue * value, GParamSpec * pspec) { + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ TrgRemotePrefsDialogPrivate *priv = - TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(object); + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(object); switch (property_id) { case PROP_PARENT: priv->parent = g_value_get_object(value); @@ -139,62 +151,76 @@ static void trg_remote_prefs_dialog_set_property(GObject * object, } static void trg_remote_prefs_double_special_dependent(GtkWidget * widget, - gpointer data) { + gpointer data) +{ TrgRemotePrefsDialogPrivate *priv = - TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(gtk_widget_get_toplevel(GTK_WIDGET(widget))); - - gtk_widget_set_sensitive( - GTK_WIDGET(data), - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON - (priv->alt_time_check)) - || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON - (priv->alt_check))); + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(gtk_widget_get_toplevel + (GTK_WIDGET(widget))); + + gtk_widget_set_sensitive(GTK_WIDGET(data), + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON + (priv-> + alt_time_check)) + || + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON + (priv-> + alt_check))); } -static void trg_rprefs_time_widget_savefunc(GtkWidget *w, JsonObject * obj, - gchar * key) { +static void trg_rprefs_time_widget_savefunc(GtkWidget * w, + JsonObject * obj, gchar * key) +{ GtkWidget *hourSpin = g_object_get_data(G_OBJECT(w), "hours-spin"); GtkWidget *minutesSpin = g_object_get_data(G_OBJECT(w), "mins-spin"); - gdouble hoursValue = gtk_spin_button_get_value(GTK_SPIN_BUTTON(hourSpin)); - gdouble minutesValue = gtk_spin_button_get_value( - GTK_SPIN_BUTTON(minutesSpin)); + gdouble hoursValue = + gtk_spin_button_get_value(GTK_SPIN_BUTTON(hourSpin)); + gdouble minutesValue = + gtk_spin_button_get_value(GTK_SPIN_BUTTON(minutesSpin)); json_object_set_int_member(obj, key, - (gint64) ((hoursValue * 60.0) + minutesValue)); + (gint64) ((hoursValue * 60.0) + + minutesValue)); } -static gboolean on_output(GtkSpinButton *spin, gpointer data) { +static gboolean on_output(GtkSpinButton * spin, gpointer data) +{ GtkAdjustment *adj; gchar *text; int value; adj = gtk_spin_button_get_adjustment(spin); value = (int) gtk_adjustment_get_value(adj); text = g_strdup_printf("%02d", value); - gtk_entry_set_text(GTK_ENTRY (spin), text); + gtk_entry_set_text(GTK_ENTRY(spin), text); g_free(text); return TRUE; } static GtkWidget *trg_rprefs_timer_widget_spin_new(gint max, - GtkWidget *alt_time_check) { + GtkWidget * + alt_time_check) +{ GtkWidget *w = gtk_spin_button_new_with_range(0, max, 1); gtk_widget_set_sensitive(w, - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(alt_time_check))); + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON + (alt_time_check))); g_signal_connect(G_OBJECT(alt_time_check), "toggled", - G_CALLBACK(toggle_active_arg_is_sensitive), w); + G_CALLBACK(toggle_active_arg_is_sensitive), w); g_signal_connect(G_OBJECT(w), "output", G_CALLBACK(on_output), NULL); return w; } static GtkWidget *trg_rprefs_time_widget_new(GList ** wl, JsonObject * obj, - const gchar *key, GtkWidget *alt_time_check) { + const gchar * key, + GtkWidget * alt_time_check) +{ GtkWidget *hbox = gtk_hbox_new(FALSE, 0); GtkWidget *colonLabel = gtk_label_new(":"); - GtkWidget *hourSpin = trg_rprefs_timer_widget_spin_new(23, alt_time_check); + GtkWidget *hourSpin = + trg_rprefs_timer_widget_spin_new(23, alt_time_check); GtkWidget *minutesSpin = trg_rprefs_timer_widget_spin_new(69, - alt_time_check); + alt_time_check); gint64 value = json_object_get_int_member(obj, key); trg_json_widget_desc *wd = g_new0(trg_json_widget_desc, 1); @@ -206,9 +232,9 @@ static GtkWidget *trg_rprefs_time_widget_new(GList ** wl, JsonObject * obj, g_object_set_data(G_OBJECT(hbox), "mins-spin", minutesSpin); gtk_spin_button_set_value(GTK_SPIN_BUTTON(hourSpin), - floor((gdouble) value / 60.0)); + floor((gdouble) value / 60.0)); gtk_spin_button_set_value(GTK_SPIN_BUTTON(minutesSpin), - (gdouble) (value % 60)); + (gdouble) (value % 60)); gtk_box_pack_start(GTK_BOX(hbox), hourSpin, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), colonLabel, TRUE, FALSE, 2); @@ -219,41 +245,54 @@ static GtkWidget *trg_rprefs_time_widget_new(GList ** wl, JsonObject * obj, return hbox; } -static GtkWidget *trg_rprefs_time_begin_end_new(GList ** wl, JsonObject * obj, - GtkWidget *alt_time_check) { +static GtkWidget *trg_rprefs_time_begin_end_new(GList ** wl, + JsonObject * obj, + GtkWidget * alt_time_check) +{ GtkWidget *hbox = gtk_hbox_new(FALSE, 0); GtkWidget *begin = trg_rprefs_time_widget_new(wl, obj, - SGET_ALT_SPEED_TIME_BEGIN, alt_time_check); + SGET_ALT_SPEED_TIME_BEGIN, + alt_time_check); GtkWidget *end = trg_rprefs_time_widget_new(wl, obj, - SGET_ALT_SPEED_TIME_END, alt_time_check); + SGET_ALT_SPEED_TIME_END, + alt_time_check); gtk_box_pack_start(GTK_BOX(hbox), begin, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new("-"), FALSE, FALSE, 10); + gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new("-"), FALSE, FALSE, + 10); gtk_box_pack_start(GTK_BOX(hbox), end, FALSE, FALSE, 0); return hbox; } -static GtkWidget *trg_rprefs_alt_speed_spin_new(GList **wl, JsonObject *obj, - const gchar *key, - GtkWidget *alt_check, GtkWidget *alt_time_check) +static GtkWidget *trg_rprefs_alt_speed_spin_new(GList ** wl, + JsonObject * obj, + const gchar * key, + GtkWidget * alt_check, + GtkWidget * alt_time_check) { GtkWidget *w = trg_json_widget_spin_new(wl, obj, key, - NULL, 0, INT_MAX, 5); - gtk_widget_set_sensitive( - w, - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(alt_check)) - || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(alt_time_check))); + NULL, 0, INT_MAX, 5); + gtk_widget_set_sensitive(w, + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON + (alt_check)) + || + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON + (alt_time_check))); g_signal_connect(G_OBJECT(alt_time_check), "toggled", - G_CALLBACK(trg_remote_prefs_double_special_dependent), w); + G_CALLBACK(trg_remote_prefs_double_special_dependent), + w); g_signal_connect(G_OBJECT(alt_check), "toggled", - G_CALLBACK(trg_remote_prefs_double_special_dependent), w); + G_CALLBACK(trg_remote_prefs_double_special_dependent), + w); return w; } static GtkWidget *trg_rprefs_bandwidthPage(TrgRemotePrefsDialog * win, - JsonObject * json) { - TrgRemotePrefsDialogPrivate *priv = TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(win); + JsonObject * json) +{ + TrgRemotePrefsDialogPrivate *priv = + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(win); GtkWidget *w, *tb, *t; gint row = 0; @@ -262,44 +301,53 @@ static GtkWidget *trg_rprefs_bandwidthPage(TrgRemotePrefsDialog * win, hig_workarea_add_section_title(t, &row, _("Bandwidth limits")); tb = trg_json_widget_check_new(&priv->widgets, json, - SGET_SPEED_LIMIT_DOWN_ENABLED, _("Down Limit (KiB/s)"), - NULL); - w = trg_json_widget_spin_new(&priv->widgets, json, SGET_SPEED_LIMIT_DOWN, - tb, 0, INT_MAX, 5); + SGET_SPEED_LIMIT_DOWN_ENABLED, + _("Down Limit (KiB/s)"), NULL); + w = trg_json_widget_spin_new(&priv->widgets, json, + SGET_SPEED_LIMIT_DOWN, tb, 0, INT_MAX, 5); hig_workarea_add_row_w(t, &row, tb, w, NULL); tb = trg_json_widget_check_new(&priv->widgets, json, - SGET_SPEED_LIMIT_UP_ENABLED, _("Up Limit (KiB/s)"), NULL); - w = trg_json_widget_spin_new(&priv->widgets, json, SGET_SPEED_LIMIT_UP, tb, - 0, INT_MAX, 5); + SGET_SPEED_LIMIT_UP_ENABLED, + _("Up Limit (KiB/s)"), NULL); + w = trg_json_widget_spin_new(&priv->widgets, json, SGET_SPEED_LIMIT_UP, + tb, 0, INT_MAX, 5); hig_workarea_add_row_w(t, &row, tb, w, NULL); hig_workarea_add_section_title(t, &row, _("Alternate limits")); w = priv->alt_check = trg_json_widget_check_new(&priv->widgets, json, - SGET_ALT_SPEED_ENABLED, _("Alternate speed limits active"), - NULL); + SGET_ALT_SPEED_ENABLED, + _ + ("Alternate speed limits active"), + NULL); hig_workarea_add_wide_control(t, &row, w); - tb = priv->alt_time_check = trg_json_widget_check_new(&priv->widgets, json, - SGET_ALT_SPEED_TIME_ENABLED, _("Alternate time range"), NULL); + tb = priv->alt_time_check = + trg_json_widget_check_new(&priv->widgets, json, + SGET_ALT_SPEED_TIME_ENABLED, + _("Alternate time range"), NULL); w = trg_rprefs_time_begin_end_new(&priv->widgets, json, tb); hig_workarea_add_row_w(t, &row, tb, w, NULL); - w = trg_rprefs_alt_speed_spin_new(&priv->widgets, json, SGET_ALT_SPEED_DOWN, - priv->alt_check, tb); + w = trg_rprefs_alt_speed_spin_new(&priv->widgets, json, + SGET_ALT_SPEED_DOWN, priv->alt_check, + tb); hig_workarea_add_row(t, &row, _("Alternate down limit (KiB/s)"), w, w); - w = trg_rprefs_alt_speed_spin_new(&priv->widgets, json, SGET_ALT_SPEED_UP, - priv->alt_check, tb); + w = trg_rprefs_alt_speed_spin_new(&priv->widgets, json, + SGET_ALT_SPEED_UP, priv->alt_check, + tb); hig_workarea_add_row(t, &row, _("Alternate up limit (KiB/s)"), w, w); return t; } static GtkWidget *trg_rprefs_limitsPage(TrgRemotePrefsDialog * win, - JsonObject * json) { - TrgRemotePrefsDialogPrivate *priv = TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(win); + JsonObject * json) +{ + TrgRemotePrefsDialogPrivate *priv = + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(win); GtkWidget *w, *tb, *t; gint row = 0; @@ -308,69 +356,81 @@ static GtkWidget *trg_rprefs_limitsPage(TrgRemotePrefsDialog * win, hig_workarea_add_section_title(t, &row, _("Seeding")); tb = trg_json_widget_check_new(&priv->widgets, json, - SGET_SEED_RATIO_LIMITED, _("Seed ratio limit"), NULL); - w = trg_json_widget_spin_new(&priv->widgets, json, SGET_SEED_RATIO_LIMIT, - tb, 0, INT_MAX, 0.1); + SGET_SEED_RATIO_LIMITED, + _("Seed ratio limit"), NULL); + w = trg_json_widget_spin_new(&priv->widgets, json, + SGET_SEED_RATIO_LIMIT, tb, 0, INT_MAX, + 0.1); hig_workarea_add_row_w(t, &row, tb, w, NULL); if (json_object_has_member(json, SGET_DOWNLOAD_QUEUE_ENABLED)) { hig_workarea_add_section_title(t, &row, _("Queues")); tb = trg_json_widget_check_new(&priv->widgets, json, - SGET_DOWNLOAD_QUEUE_ENABLED, _("Download queue size"), NULL); + SGET_DOWNLOAD_QUEUE_ENABLED, + _("Download queue size"), NULL); w = trg_json_widget_spin_new(&priv->widgets, json, - SGET_DOWNLOAD_QUEUE_SIZE, tb, 0, INT_MAX, 1); + SGET_DOWNLOAD_QUEUE_SIZE, tb, 0, + INT_MAX, 1); hig_workarea_add_row_w(t, &row, tb, w, NULL); tb = trg_json_widget_check_new(&priv->widgets, json, - SGET_SEED_QUEUE_ENABLED, _("Seed queue size"), NULL); - w = trg_json_widget_spin_new(&priv->widgets, json, SGET_SEED_QUEUE_SIZE, - tb, 0, INT_MAX, 1); + SGET_SEED_QUEUE_ENABLED, + _("Seed queue size"), NULL); + w = trg_json_widget_spin_new(&priv->widgets, json, + SGET_SEED_QUEUE_SIZE, tb, 0, INT_MAX, + 1); hig_workarea_add_row_w(t, &row, tb, w, NULL); tb = trg_json_widget_check_new(&priv->widgets, json, - SGET_QUEUE_STALLED_ENABLED, _("Ignore stalled (minutes)"), - NULL); + SGET_QUEUE_STALLED_ENABLED, + _("Ignore stalled (minutes)"), + NULL); w = trg_json_widget_spin_new(&priv->widgets, json, - SGET_QUEUE_STALLED_MINUTES, tb, 0, INT_MAX, 1); + SGET_QUEUE_STALLED_MINUTES, tb, 0, + INT_MAX, 1); hig_workarea_add_row_w(t, &row, tb, w, NULL); } hig_workarea_add_section_title(t, &row, _("Peers")); - w = trg_json_widget_spin_new(&priv->widgets, json, SGET_PEER_LIMIT_GLOBAL, - NULL, 0, INT_MAX, 5); + w = trg_json_widget_spin_new(&priv->widgets, json, + SGET_PEER_LIMIT_GLOBAL, NULL, 0, INT_MAX, + 5); hig_workarea_add_row(t, &row, _("Global peer limit"), w, w); w = trg_json_widget_spin_new(&priv->widgets, json, - SGET_PEER_LIMIT_PER_TORRENT, NULL, 0, INT_MAX, 5); + SGET_PEER_LIMIT_PER_TORRENT, NULL, 0, + INT_MAX, 5); hig_workarea_add_row(t, &row, _("Per torrent peer limit"), w, w); return t; } -static gboolean on_port_tested(gpointer data) { +static gboolean on_port_tested(gpointer data) +{ trg_response *response = (trg_response *) data; if (TRG_IS_REMOTE_PREFS_DIALOG(response->cb_data)) { TrgRemotePrefsDialogPrivate *priv = - TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(response->cb_data); + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(response->cb_data); - gtk_button_set_label(GTK_BUTTON(priv->port_test_button), _("Retest")); + gtk_button_set_label(GTK_BUTTON(priv->port_test_button), + _("Retest")); gtk_widget_set_sensitive(priv->port_test_button, TRUE); if (response->status == CURLE_OK) { - gboolean isOpen = json_object_get_boolean_member( - get_arguments(response->obj), "port-is-open"); + gboolean isOpen = + json_object_get_boolean_member(get_arguments + (response->obj), + "port-is-open"); if (isOpen) - gtk_label_set_markup( - GTK_LABEL(priv->port_test_label), - _ - ("Port is open")); + gtk_label_set_markup(GTK_LABEL(priv->port_test_label), + _ + ("Port is open")); else - gtk_label_set_markup( - GTK_LABEL(priv->port_test_label), - _ - ("Port is closed")); + gtk_label_set_markup(GTK_LABEL(priv->port_test_label), + _ + ("Port is closed")); } else { trg_error_dialog(GTK_WINDOW(data), response); } @@ -380,9 +440,10 @@ static gboolean on_port_tested(gpointer data) { return FALSE; } -static void port_test_cb(GtkButton * b, gpointer data) { +static void port_test_cb(GtkButton * b, gpointer data) +{ TrgRemotePrefsDialogPrivate *priv = - TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(data); + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(data); JsonNode *req = port_test(); gtk_label_set_text(GTK_LABEL(priv->port_test_label), _("Port test")); @@ -392,21 +453,25 @@ static void port_test_cb(GtkButton * b, gpointer data) { dispatch_async(priv->client, req, on_port_tested, data); } -static gboolean on_blocklist_updated(gpointer data) { +static gboolean on_blocklist_updated(gpointer data) +{ trg_response *response = (trg_response *) data; if (TRG_IS_REMOTE_PREFS_DIALOG(response->cb_data)) { TrgRemotePrefsDialogPrivate *priv = - TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(response->cb_data); + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(response->cb_data); gtk_widget_set_sensitive(priv->blocklist_update_button, TRUE); gtk_button_set_label(GTK_BUTTON(priv->blocklist_update_button), - _("Update")); + _("Update")); if (response->status == CURLE_OK) { JsonObject *args = get_arguments(response->obj); - gchar *labelText = g_strdup_printf(_("Blocklist (%ld entries)"), - json_object_get_int_member(args, SGET_BLOCKLIST_SIZE)); - gtk_button_set_label(GTK_BUTTON(priv->blocklist_check), labelText); + gchar *labelText = + g_strdup_printf(_("Blocklist (%ld entries)"), + json_object_get_int_member(args, + SGET_BLOCKLIST_SIZE)); + gtk_button_set_label(GTK_BUTTON(priv->blocklist_check), + labelText); g_free(labelText); } else { trg_error_dialog(GTK_WINDOW(response->cb_data), response); @@ -418,9 +483,10 @@ static gboolean on_blocklist_updated(gpointer data) { return FALSE; } -static gboolean update_blocklist_cb(GtkButton * b, gpointer data) { +static gboolean update_blocklist_cb(GtkButton * b, gpointer data) +{ TrgRemotePrefsDialogPrivate *priv = - TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(data); + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(data); JsonNode *req = blocklist_update(); gtk_widget_set_sensitive(GTK_WIDGET(b), FALSE); @@ -432,8 +498,10 @@ static gboolean update_blocklist_cb(GtkButton * b, gpointer data) { } static GtkWidget *trg_rprefs_connPage(TrgRemotePrefsDialog * win, - JsonObject * s) { - TrgRemotePrefsDialogPrivate *priv = TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(win); + JsonObject * s) +{ + TrgRemotePrefsDialogPrivate *priv = + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(win); GtkWidget *w, *tb, *t; const gchar *stringValue; @@ -443,8 +511,8 @@ static GtkWidget *trg_rprefs_connPage(TrgRemotePrefsDialog * win, hig_workarea_add_section_title(t, &row, _("Connections")); - w = trg_json_widget_spin_new(&priv->widgets, s, SGET_PEER_PORT, NULL, 0, - 65535, 1); + w = trg_json_widget_spin_new(&priv->widgets, s, SGET_PEER_PORT, NULL, + 0, 65535, 1); hig_workarea_add_row(t, &row, _("Peer port"), w, w); w = priv->port_test_label = gtk_label_new(_("Port test")); @@ -453,7 +521,9 @@ static GtkWidget *trg_rprefs_connPage(TrgRemotePrefsDialog * win, hig_workarea_add_row_w(t, &row, priv->port_test_label, w, NULL); w = priv->encryption_combo = gtr_combo_box_new_enum(_("Required"), 0, - _("Preferred"), 1, _("Tolerated"), 2, NULL); + _("Preferred"), 1, + _("Tolerated"), 2, + NULL); stringValue = session_get_encryption(s); if (g_strcmp0(stringValue, "required") == 0) { gtk_combo_box_set_active(GTK_COMBO_BOX(w), 0); @@ -466,46 +536,50 @@ static GtkWidget *trg_rprefs_connPage(TrgRemotePrefsDialog * win, hig_workarea_add_row(t, &row, _("Encryption"), w, NULL); w = trg_json_widget_check_new(&priv->widgets, s, - SGET_PEER_PORT_RANDOM_ON_START, _("Random peer port on start"), - NULL); + SGET_PEER_PORT_RANDOM_ON_START, + _("Random peer port on start"), NULL); hig_workarea_add_wide_control(t, &row, w); w = trg_json_widget_check_new(&priv->widgets, s, - SGET_PORT_FORWARDING_ENABLED, _("Peer port forwarding"), NULL); + SGET_PORT_FORWARDING_ENABLED, + _("Peer port forwarding"), NULL); hig_workarea_add_wide_control(t, &row, w); hig_workarea_add_section_title(t, &row, _("Protocol")); w = trg_json_widget_check_new(&priv->widgets, s, SGET_PEX_ENABLED, - _("Peer exchange (PEX)"), NULL); + _("Peer exchange (PEX)"), NULL); hig_workarea_add_wide_control(t, &row, w); w = trg_json_widget_check_new(&priv->widgets, s, SGET_DHT_ENABLED, - _("Distributed Hash Table (DHT)"), NULL); + _("Distributed Hash Table (DHT)"), NULL); hig_workarea_add_wide_control(t, &row, w); w = trg_json_widget_check_new(&priv->widgets, s, SGET_LPD_ENABLED, - _("Local peer discovery"), NULL); + _("Local peer discovery"), NULL); hig_workarea_add_wide_control(t, &row, w); hig_workarea_add_section_title(t, &row, _("Blocklist")); stringValue = g_strdup_printf(_("Blocklist (%ld entries)"), - session_get_blocklist_size(s)); - tb = priv->blocklist_check = trg_json_widget_check_new(&priv->widgets, s, - SGET_BLOCKLIST_ENABLED, stringValue, NULL); + session_get_blocklist_size(s)); + tb = priv->blocklist_check = + trg_json_widget_check_new(&priv->widgets, s, + SGET_BLOCKLIST_ENABLED, stringValue, + NULL); g_free((gchar *) stringValue); - w = priv->blocklist_update_button = gtk_button_new_with_label(_("Update")); - g_signal_connect(G_OBJECT(w), "clicked", G_CALLBACK(update_blocklist_cb), - win); + w = priv->blocklist_update_button = + gtk_button_new_with_label(_("Update")); + g_signal_connect(G_OBJECT(w), "clicked", + G_CALLBACK(update_blocklist_cb), win); hig_workarea_add_row_w(t, &row, tb, w, NULL); //GtkWidget *trg_json_widget_entry_new(GList **wl, JsonObject *obj, gchar *key, GtkWidget *toggleDep); stringValue = session_get_blocklist_url(s); if (stringValue) { - w = trg_json_widget_entry_new(&priv->widgets, s, SGET_BLOCKLIST_URL, - NULL); + w = trg_json_widget_entry_new(&priv->widgets, s, + SGET_BLOCKLIST_URL, NULL); hig_workarea_add_row(t, &row, _("Blocklist URL:"), w, NULL); } @@ -513,8 +587,10 @@ static GtkWidget *trg_rprefs_connPage(TrgRemotePrefsDialog * win, } static GtkWidget *trg_rprefs_generalPage(TrgRemotePrefsDialog * win, - JsonObject * s) { - TrgRemotePrefsDialogPrivate *priv = TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(win); + JsonObject * s) +{ + TrgRemotePrefsDialogPrivate *priv = + TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(win); GtkWidget *w, *tb, *t; gint row = 0; @@ -524,92 +600,109 @@ static GtkWidget *trg_rprefs_generalPage(TrgRemotePrefsDialog * win, hig_workarea_add_section_title(t, &row, _("Environment")); - w = trg_json_widget_entry_new(&priv->widgets, s, SGET_DOWNLOAD_DIR, NULL); + w = trg_json_widget_entry_new(&priv->widgets, s, SGET_DOWNLOAD_DIR, + NULL); hig_workarea_add_row(t, &row, _("Download directory"), w, NULL); tb = trg_json_widget_check_new(&priv->widgets, s, - SGET_INCOMPLETE_DIR_ENABLED, _("Incomplete download dir"), NULL); - w = trg_json_widget_entry_new(&priv->widgets, s, SGET_INCOMPLETE_DIR, tb); + SGET_INCOMPLETE_DIR_ENABLED, + _("Incomplete download dir"), NULL); + w = trg_json_widget_entry_new(&priv->widgets, s, SGET_INCOMPLETE_DIR, + tb); hig_workarea_add_row_w(t, &row, tb, w, NULL); tb = trg_json_widget_check_new(&priv->widgets, s, - SGET_SCRIPT_TORRENT_DONE_ENABLED, _("Torrent done script"), NULL); + SGET_SCRIPT_TORRENT_DONE_ENABLED, + _("Torrent done script"), NULL); w = trg_json_widget_entry_new(&priv->widgets, s, - SGET_SCRIPT_TORRENT_DONE_FILENAME, tb); + SGET_SCRIPT_TORRENT_DONE_FILENAME, tb); hig_workarea_add_row_w(t, &row, tb, w, NULL); cache_size_mb = session_get_cache_size_mb(s); if (cache_size_mb >= 0) { w = trg_json_widget_spin_new(&priv->widgets, s, SGET_CACHE_SIZE_MB, - NULL, 0, INT_MAX, 1); + NULL, 0, INT_MAX, 1); hig_workarea_add_row(t, &row, _("Cache size (MiB)"), w, w); } hig_workarea_add_section_title(t, &row, _("Behavior")); - w = trg_json_widget_check_new(&priv->widgets, s, SGET_RENAME_PARTIAL_FILES, - _("Rename partial files"), NULL); + w = trg_json_widget_check_new(&priv->widgets, s, + SGET_RENAME_PARTIAL_FILES, + _("Rename partial files"), NULL); hig_workarea_add_wide_control(t, &row, w); w = trg_json_widget_check_new(&priv->widgets, s, - SGET_TRASH_ORIGINAL_TORRENT_FILES, _ - ("Trash original torrent files"), NULL); + SGET_TRASH_ORIGINAL_TORRENT_FILES, _ + ("Trash original torrent files"), NULL); hig_workarea_add_wide_control(t, &row, w); - w = trg_json_widget_check_new(&priv->widgets, s, SGET_START_ADDED_TORRENTS, - _("Start added torrents"), NULL); + w = trg_json_widget_check_new(&priv->widgets, s, + SGET_START_ADDED_TORRENTS, + _("Start added torrents"), NULL); hig_workarea_add_wide_control(t, &row, w); return t; } static GObject *trg_remote_prefs_dialog_constructor(GType type, - guint n_construct_properties, GObjectConstructParam * construct_params) { + guint + n_construct_properties, + GObjectConstructParam * + construct_params) +{ GObject *object; TrgRemotePrefsDialogPrivate *priv; JsonObject *session; GtkWidget *notebook, *contentvbox; object = G_OBJECT_CLASS - (trg_remote_prefs_dialog_parent_class)->constructor(type, - n_construct_properties, construct_params); + (trg_remote_prefs_dialog_parent_class)->constructor(type, + n_construct_properties, + construct_params); priv = TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(object); session = trg_client_get_session(priv->client); contentvbox = gtk_dialog_get_content_area(GTK_DIALOG(object)); gtk_window_set_title(GTK_WINDOW(object), _("Remote Preferences")); - gtk_window_set_transient_for(GTK_WINDOW(object), GTK_WINDOW(priv->parent)); + gtk_window_set_transient_for(GTK_WINDOW(object), + GTK_WINDOW(priv->parent)); gtk_window_set_destroy_with_parent(GTK_WINDOW(object), TRUE); gtk_dialog_add_button(GTK_DIALOG(object), GTK_STOCK_CLOSE, - GTK_RESPONSE_CLOSE); - gtk_dialog_add_button(GTK_DIALOG(object), GTK_STOCK_OK, GTK_RESPONSE_OK); + GTK_RESPONSE_CLOSE); + gtk_dialog_add_button(GTK_DIALOG(object), GTK_STOCK_OK, + GTK_RESPONSE_OK); gtk_container_set_border_width(GTK_CONTAINER(object), GUI_PAD); gtk_dialog_set_default_response(GTK_DIALOG(object), GTK_RESPONSE_OK); g_signal_connect(G_OBJECT(object), "response", - G_CALLBACK(trg_remote_prefs_response_cb), NULL); + G_CALLBACK(trg_remote_prefs_response_cb), NULL); notebook = gtk_notebook_new(); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), - trg_rprefs_generalPage(TRG_REMOTE_PREFS_DIALOG - (object), session), gtk_label_new(_("General"))); + trg_rprefs_generalPage(TRG_REMOTE_PREFS_DIALOG + (object), session), + gtk_label_new(_("General"))); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), - trg_rprefs_connPage(TRG_REMOTE_PREFS_DIALOG - (object), session), gtk_label_new(_("Connections"))); + trg_rprefs_connPage(TRG_REMOTE_PREFS_DIALOG + (object), session), + gtk_label_new(_("Connections"))); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), - trg_rprefs_bandwidthPage(TRG_REMOTE_PREFS_DIALOG - (object), session), gtk_label_new(_("Bandwidth"))); + trg_rprefs_bandwidthPage + (TRG_REMOTE_PREFS_DIALOG(object), session), + gtk_label_new(_("Bandwidth"))); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), - trg_rprefs_limitsPage(TRG_REMOTE_PREFS_DIALOG - (object), session), gtk_label_new(_("Limits"))); + trg_rprefs_limitsPage(TRG_REMOTE_PREFS_DIALOG + (object), session), + gtk_label_new(_("Limits"))); gtk_container_set_border_width(GTK_CONTAINER(notebook), GUI_PAD); @@ -618,8 +711,9 @@ static GObject *trg_remote_prefs_dialog_constructor(GType type, return object; } -static void trg_remote_prefs_dialog_class_init( - TrgRemotePrefsDialogClass * klass) { +static void trg_remote_prefs_dialog_class_init(TrgRemotePrefsDialogClass * + klass) +{ GObjectClass *object_class = G_OBJECT_CLASS(klass); g_type_class_add_private(klass, sizeof(TrgRemotePrefsDialogPrivate)); @@ -628,39 +722,51 @@ static void trg_remote_prefs_dialog_class_init( object_class->get_property = trg_remote_prefs_dialog_get_property; object_class->set_property = trg_remote_prefs_dialog_set_property; - g_object_class_install_property( - object_class, - PROP_CLIENT, - g_param_spec_pointer( - "trg-client", - "TClient", - "Client", - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY - | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK - | G_PARAM_STATIC_BLURB)); - - g_object_class_install_property( - object_class, - PROP_PARENT, - g_param_spec_object( - "parent-window", - "Parent window", - "Parent window", - TRG_TYPE_MAIN_WINDOW, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY - | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK - | G_PARAM_STATIC_BLURB)); + g_object_class_install_property(object_class, + PROP_CLIENT, + g_param_spec_pointer("trg-client", + "TClient", + "Client", + G_PARAM_READWRITE + | + G_PARAM_CONSTRUCT_ONLY + | + G_PARAM_STATIC_NAME + | + G_PARAM_STATIC_NICK + | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property(object_class, + PROP_PARENT, + g_param_spec_object("parent-window", + "Parent window", + "Parent window", + TRG_TYPE_MAIN_WINDOW, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY + | + G_PARAM_STATIC_NAME + | + G_PARAM_STATIC_NICK + | + G_PARAM_STATIC_BLURB)); } -static void trg_remote_prefs_dialog_init( - TrgRemotePrefsDialog * self G_GNUC_UNUSED) { +static void trg_remote_prefs_dialog_init(TrgRemotePrefsDialog * + self G_GNUC_UNUSED) +{ } -TrgRemotePrefsDialog *trg_remote_prefs_dialog_get_instance( - TrgMainWindow * parent, TrgClient * client) { +TrgRemotePrefsDialog *trg_remote_prefs_dialog_get_instance(TrgMainWindow * + parent, + TrgClient * + client) +{ if (instance == NULL) { - instance = g_object_new(TRG_TYPE_REMOTE_PREFS_DIALOG, "parent-window", - parent, "trg-client", client, NULL); + instance = + g_object_new(TRG_TYPE_REMOTE_PREFS_DIALOG, "parent-window", + parent, "trg-client", client, NULL); } return TRG_REMOTE_PREFS_DIALOG(instance); diff --git a/src/trg-state-selector.c b/src/trg-state-selector.c index 710a0ec..3eeb1ec 100644 --- a/src/trg-state-selector.c +++ b/src/trg-state-selector.c @@ -69,17 +69,21 @@ struct _TrgStateSelectorPrivate { GtkTreeRowReference *down_wait_rr; }; -GRegex *trg_state_selector_get_url_host_regex(TrgStateSelector * s) { +GRegex *trg_state_selector_get_url_host_regex(TrgStateSelector * s) +{ TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(s); return priv->urlHostRegex; } -guint32 trg_state_selector_get_flag(TrgStateSelector * s) { +guint32 trg_state_selector_get_flag(TrgStateSelector * s) +{ TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(s); return priv->flag; } -static void state_selection_changed(GtkTreeSelection * selection, gpointer data) { +static void state_selection_changed(GtkTreeSelection * selection, + gpointer data) +{ TrgStateSelectorPrivate *priv; GtkTreeIter iter; GtkTreeModel *stateModel; @@ -88,20 +92,21 @@ static void state_selection_changed(GtkTreeSelection * selection, gpointer data) priv = TRG_STATE_SELECTOR_GET_PRIVATE(data); if (gtk_tree_selection_get_selected(selection, &stateModel, &iter)) - gtk_tree_model_get(stateModel, &iter, STATE_SELECTOR_BIT, &priv->flag, - STATE_SELECTOR_INDEX, &index, -1); + gtk_tree_model_get(stateModel, &iter, STATE_SELECTOR_BIT, + &priv->flag, STATE_SELECTOR_INDEX, &index, -1); else priv->flag = 0; trg_prefs_set_int(priv->prefs, TRG_PREFS_STATE_SELECTOR_LAST, index, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); - g_signal_emit(TRG_STATE_SELECTOR(data), signals[SELECTOR_STATE_CHANGED], 0, - priv->flag); + g_signal_emit(TRG_STATE_SELECTOR(data), + signals[SELECTOR_STATE_CHANGED], 0, priv->flag); } static GtkTreeRowReference *quick_tree_ref_new(GtkTreeModel * model, - GtkTreeIter * iter) { + GtkTreeIter * iter) +{ GtkTreePath *path = gtk_tree_model_get_path(model, iter); GtkTreeRowReference *rr = gtk_tree_row_reference_new(model, path); gtk_tree_path_free(path); @@ -113,8 +118,10 @@ struct cruft_remove_args { gint64 serial; }; -static gboolean trg_state_selector_remove_cruft(gpointer key, gpointer value, - gpointer data) { +static gboolean trg_state_selector_remove_cruft(gpointer key, + gpointer value, + gpointer data) +{ struct cruft_remove_args *args = (struct cruft_remove_args *) data; GtkTreeRowReference *rr = (GtkTreeRowReference *) value; GtkTreeModel *model = gtk_tree_row_reference_get_model(rr); @@ -125,7 +132,8 @@ static gboolean trg_state_selector_remove_cruft(gpointer key, gpointer value, gint64 currentSerial; gtk_tree_model_get_iter(model, &iter, path); - gtk_tree_model_get(model, &iter, STATE_SELECTOR_SERIAL, ¤tSerial, -1); + gtk_tree_model_get(model, &iter, STATE_SELECTOR_SERIAL, ¤tSerial, + -1); remove = (args->serial != currentSerial); @@ -134,7 +142,8 @@ static gboolean trg_state_selector_remove_cruft(gpointer key, gpointer value, return remove; } -gchar *trg_state_selector_get_selected_text(TrgStateSelector * s) { +gchar *trg_state_selector_get_selected_text(TrgStateSelector * s) +{ GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(s)); GtkTreeModel *model; GtkTreeIter iter; @@ -147,7 +156,9 @@ gchar *trg_state_selector_get_selected_text(TrgStateSelector * s) { } static void trg_state_selector_update_dynamic_filter(GtkTreeModel * model, - GtkTreeRowReference * rr, gint64 serial) { + GtkTreeRowReference * + rr, gint64 serial) +{ GtkTreeIter iter; GtkTreePath *path = gtk_tree_row_reference_get_path(rr); gint64 oldSerial; @@ -156,38 +167,40 @@ static void trg_state_selector_update_dynamic_filter(GtkTreeModel * model, gtk_tree_model_get_iter(model, &iter, path); gtk_tree_model_get(model, &iter, STATE_SELECTOR_SERIAL, &oldSerial, - STATE_SELECTOR_COUNT, &oldCount, -1); + STATE_SELECTOR_COUNT, &oldCount, -1); if (oldSerial != serial) { g_value_init(&gvalue, G_TYPE_INT); g_value_set_int(&gvalue, 1); gtk_list_store_set_value(GTK_LIST_STORE(model), &iter, - STATE_SELECTOR_COUNT, &gvalue); + STATE_SELECTOR_COUNT, &gvalue); memset(&gvalue, 0, sizeof(GValue)); g_value_init(&gvalue, G_TYPE_INT64); g_value_set_int64(&gvalue, serial); gtk_list_store_set_value(GTK_LIST_STORE(model), &iter, - STATE_SELECTOR_SERIAL, &gvalue); + STATE_SELECTOR_SERIAL, &gvalue); } else { g_value_init(&gvalue, G_TYPE_INT); g_value_set_int(&gvalue, ++oldCount); gtk_list_store_set_value(GTK_LIST_STORE(model), &iter, - STATE_SELECTOR_COUNT, &gvalue); + STATE_SELECTOR_COUNT, &gvalue); } gtk_tree_path_free(path); } -static void refresh_statelist_cb(GtkWidget * w, gpointer data) { +static void refresh_statelist_cb(GtkWidget * w, gpointer data) +{ TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(data); trg_client_inc_serial(priv->client); trg_state_selector_update(TRG_STATE_SELECTOR(data), - TORRENT_UPDATE_ADDREMOVE); + TORRENT_UPDATE_ADDREMOVE); } static void view_popup_menu(GtkWidget * treeview, GdkEventButton * event, - gpointer data G_GNUC_UNUSED) { + gpointer data G_GNUC_UNUSED) +{ GtkWidget *menu, *item; menu = gtk_menu_new(); @@ -195,25 +208,28 @@ static void view_popup_menu(GtkWidget * treeview, GdkEventButton * event, item = gtk_image_menu_item_new_with_label(GTK_STOCK_REFRESH); gtk_image_menu_item_set_use_stock(GTK_IMAGE_MENU_ITEM(item), TRUE); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM - (item), TRUE); + (item), TRUE); g_signal_connect(item, "activate", G_CALLBACK(refresh_statelist_cb), - treeview); + treeview); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); gtk_widget_show_all(menu); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, - (event != NULL) ? event->button : 0, - gdk_event_get_time((GdkEvent *) event)); - } + (event != NULL) ? event->button : 0, + gdk_event_get_time((GdkEvent *) event)); +} -static gboolean view_onPopupMenu(GtkWidget * treeview, gpointer userdata) { +static gboolean view_onPopupMenu(GtkWidget * treeview, gpointer userdata) +{ view_popup_menu(treeview, NULL, userdata); return TRUE; } static gboolean view_onButtonPressed(GtkWidget * treeview, - GdkEventButton * event, gpointer userdata) { + GdkEventButton * event, + gpointer userdata) +{ if (event->type == GDK_BUTTON_PRESS && event->button == 3) { view_popup_menu(treeview, event, userdata); return TRUE; @@ -230,7 +246,10 @@ struct state_find_pos { }; static gboolean trg_state_selector_find_pos_foreach(GtkTreeModel * model, - GtkTreePath * path, GtkTreeIter * iter, gpointer data) { + GtkTreePath * path, + GtkTreeIter * iter, + gpointer data) +{ struct state_find_pos *args = (struct state_find_pos *) data; gchar *name; gboolean res; @@ -238,7 +257,8 @@ static gboolean trg_state_selector_find_pos_foreach(GtkTreeModel * model, if (args->pos < args->offset) { args->pos++; return FALSE; - } else if (args->range >= 0 && args->pos > args->offset + args->range - 1) { + } else if (args->range >= 0 + && args->pos > args->offset + args->range - 1) { return TRUE; } @@ -253,7 +273,9 @@ static gboolean trg_state_selector_find_pos_foreach(GtkTreeModel * model, } static void trg_state_selector_insert(TrgStateSelector * s, int offset, - gint range, const gchar * name, GtkTreeIter * iter) { + gint range, const gchar * name, + GtkTreeIter * iter) +{ GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(s)); struct state_find_pos args; @@ -262,11 +284,13 @@ static void trg_state_selector_insert(TrgStateSelector * s, int offset, args.range = range; args.name = name; - gtk_tree_model_foreach(model, trg_state_selector_find_pos_foreach, &args); + gtk_tree_model_foreach(model, trg_state_selector_find_pos_foreach, + &args); gtk_list_store_insert(GTK_LIST_STORE(model), iter, args.pos); } -void trg_state_selector_update(TrgStateSelector * s, guint whatsChanged) { +void trg_state_selector_update(TrgStateSelector * s, guint whatsChanged) +{ TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(s); GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(s)); TrgClient *client = priv->client; @@ -283,8 +307,8 @@ void trg_state_selector_update(TrgStateSelector * s, guint whatsChanged) { if (!trg_client_is_connected(client)) return; - torrentItemRefs = g_hash_table_get_values( - trg_client_get_torrent_table(client)); + torrentItemRefs = + g_hash_table_get_values(trg_client_get_torrent_table(client)); for (li = torrentItemRefs; li; li = g_list_next(li)) { JsonObject *t = NULL; @@ -295,7 +319,7 @@ void trg_state_selector_update(TrgStateSelector * s, guint whatsChanged) { if (path) { if (gtk_tree_model_get_iter(torrentModel, &torrentIter, path)) { gtk_tree_model_get(torrentModel, &torrentIter, - TORRENT_COLUMN_JSON, &t, -1); + TORRENT_COLUMN_JSON, &t, -1); } gtk_tree_path_free(path); } @@ -303,16 +327,19 @@ void trg_state_selector_update(TrgStateSelector * s, guint whatsChanged) { if (!t) continue; - if (priv->showTrackers && (whatsChanged & TORRENT_UPDATE_ADDREMOVE)) { - trackersList = json_array_get_elements( - torrent_get_tracker_stats(t)); + if (priv->showTrackers + && (whatsChanged & TORRENT_UPDATE_ADDREMOVE)) { + trackersList = + json_array_get_elements(torrent_get_tracker_stats(t)); for (trackerItem = trackersList; trackerItem; - trackerItem = g_list_next(trackerItem)) { - JsonObject *tracker = json_node_get_object( - (JsonNode *) trackerItem->data); - const gchar *announceUrl = tracker_stats_get_announce(tracker); - gchar *announceHost = trg_gregex_get_first(priv->urlHostRegex, - announceUrl); + trackerItem = g_list_next(trackerItem)) { + JsonObject *tracker = + json_node_get_object((JsonNode *) trackerItem->data); + const gchar *announceUrl = + tracker_stats_get_announce(tracker); + gchar *announceHost = + trg_gregex_get_first(priv->urlHostRegex, + announceUrl); if (!announceHost) continue; @@ -321,47 +348,60 @@ void trg_state_selector_update(TrgStateSelector * s, guint whatsChanged) { if (result) { trg_state_selector_update_dynamic_filter(model, - (GtkTreeRowReference *) result, updateSerial); + (GtkTreeRowReference + *) result, + updateSerial); g_free(announceHost); } else { trg_state_selector_insert(s, priv->n_categories, - g_hash_table_size(priv->trackers), announceHost, - &iter); + g_hash_table_size(priv-> + trackers), + announceHost, &iter); gtk_list_store_set(GTK_LIST_STORE(model), &iter, - STATE_SELECTOR_ICON, GTK_STOCK_NETWORK, - STATE_SELECTOR_NAME, announceHost, - STATE_SELECTOR_SERIAL, updateSerial, - STATE_SELECTOR_COUNT, 1, STATE_SELECTOR_BIT, - FILTER_FLAG_TRACKER, STATE_SELECTOR_INDEX, 0, -1); + STATE_SELECTOR_ICON, + GTK_STOCK_NETWORK, + STATE_SELECTOR_NAME, announceHost, + STATE_SELECTOR_SERIAL, updateSerial, + STATE_SELECTOR_COUNT, 1, + STATE_SELECTOR_BIT, + FILTER_FLAG_TRACKER, + STATE_SELECTOR_INDEX, 0, -1); g_hash_table_insert(priv->trackers, announceHost, - quick_tree_ref_new(model, &iter)); + quick_tree_ref_new(model, &iter)); } } g_list_free(trackersList); } - if (priv->showDirs - && ((whatsChanged & TORRENT_UPDATE_ADDREMOVE) - || (whatsChanged & TORRENT_UPDATE_PATH_CHANGE))) { + if (priv->showDirs && ((whatsChanged & TORRENT_UPDATE_ADDREMOVE) + || (whatsChanged & + TORRENT_UPDATE_PATH_CHANGE))) { gchar *dir; gtk_tree_model_get(torrentModel, &torrentIter, - TORRENT_COLUMN_DOWNLOADDIR_SHORT, &dir, -1); + TORRENT_COLUMN_DOWNLOADDIR_SHORT, &dir, -1); result = g_hash_table_lookup(priv->directories, dir); if (result) { trg_state_selector_update_dynamic_filter(model, - (GtkTreeRowReference *) result, updateSerial); + (GtkTreeRowReference + *) result, + updateSerial); } else { trg_state_selector_insert(s, - priv->n_categories + g_hash_table_size(priv->trackers), - -1, dir, &iter); + priv->n_categories + + g_hash_table_size(priv-> + trackers), -1, + dir, &iter); gtk_list_store_set(GTK_LIST_STORE(model), &iter, - STATE_SELECTOR_ICON, GTK_STOCK_DIRECTORY, - STATE_SELECTOR_NAME, dir, STATE_SELECTOR_SERIAL, - updateSerial, STATE_SELECTOR_BIT, FILTER_FLAG_DIR, - STATE_SELECTOR_COUNT, 1, STATE_SELECTOR_INDEX, 0, -1); + STATE_SELECTOR_ICON, + GTK_STOCK_DIRECTORY, + STATE_SELECTOR_NAME, dir, + STATE_SELECTOR_SERIAL, updateSerial, + STATE_SELECTOR_BIT, FILTER_FLAG_DIR, + STATE_SELECTOR_COUNT, 1, + STATE_SELECTOR_INDEX, 0, -1); g_hash_table_insert(priv->directories, g_strdup(dir), - quick_tree_ref_new(model, &iter)); + quick_tree_ref_new(model, &iter)); } g_free(dir); @@ -375,19 +415,21 @@ void trg_state_selector_update(TrgStateSelector * s, guint whatsChanged) { if (priv->showTrackers && ((whatsChanged & TORRENT_UPDATE_ADDREMOVE))) { cruft.table = priv->trackers; g_hash_table_foreach_remove(priv->trackers, - trg_state_selector_remove_cruft, &cruft); + trg_state_selector_remove_cruft, + &cruft); } - if (priv->showDirs - && ((whatsChanged & TORRENT_UPDATE_ADDREMOVE) - || (whatsChanged & TORRENT_UPDATE_PATH_CHANGE))) { + if (priv->showDirs && ((whatsChanged & TORRENT_UPDATE_ADDREMOVE) + || (whatsChanged & TORRENT_UPDATE_PATH_CHANGE))) { cruft.table = priv->directories; g_hash_table_foreach_remove(priv->directories, - trg_state_selector_remove_cruft, &cruft); + trg_state_selector_remove_cruft, + &cruft); } } -void trg_state_selector_set_show_dirs(TrgStateSelector * s, gboolean show) { +void trg_state_selector_set_show_dirs(TrgStateSelector * s, gboolean show) +{ TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(s); priv->showDirs = show; if (!show) @@ -397,17 +439,21 @@ void trg_state_selector_set_show_dirs(TrgStateSelector * s, gboolean show) { } static void on_torrents_state_change(TrgTorrentModel * model, - guint whatsChanged, gpointer data) { + guint whatsChanged, gpointer data) +{ TrgStateSelector *selector = TRG_STATE_SELECTOR(data); trg_state_selector_update(selector, whatsChanged); if ((whatsChanged & TORRENT_UPDATE_ADDREMOVE) - || (whatsChanged & TORRENT_UPDATE_STATE_CHANGE)) + || (whatsChanged & TORRENT_UPDATE_STATE_CHANGE)) trg_state_selector_stats_update(selector, - trg_torrent_model_get_stats(model)); + trg_torrent_model_get_stats + (model)); } -void trg_state_selector_set_show_trackers(TrgStateSelector * s, gboolean show) { +void trg_state_selector_set_show_trackers(TrgStateSelector * s, + gboolean show) +{ TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(s); priv->showTrackers = show; if (!show) @@ -417,11 +463,15 @@ void trg_state_selector_set_show_trackers(TrgStateSelector * s, gboolean show) { } static void trg_state_selector_add_state(TrgStateSelector * selector, - GtkTreeIter * iter, gint pos, gchar * icon, gchar * name, guint32 flag, - GtkTreeRowReference **rr) { - TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(selector); + GtkTreeIter * iter, gint pos, + gchar * icon, gchar * name, + guint32 flag, + GtkTreeRowReference ** rr) +{ + TrgStateSelectorPrivate *priv = + TRG_STATE_SELECTOR_GET_PRIVATE(selector); GtkListStore *model = - GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(selector))); + GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(selector))); if (pos < 0) gtk_list_store_append(priv->store, iter); @@ -429,9 +479,11 @@ static void trg_state_selector_add_state(TrgStateSelector * selector, gtk_list_store_insert(priv->store, iter, pos); gtk_list_store_set(model, iter, STATE_SELECTOR_ICON, icon, - STATE_SELECTOR_NAME, name, STATE_SELECTOR_BIT, flag, - STATE_SELECTOR_INDEX, gtk_tree_model_iter_n_children(GTK_TREE_MODEL - (model), NULL) - 1, -1); + STATE_SELECTOR_NAME, name, STATE_SELECTOR_BIT, flag, + STATE_SELECTOR_INDEX, + gtk_tree_model_iter_n_children(GTK_TREE_MODEL + (model), NULL) - 1, + -1); if (rr) *rr = quick_tree_ref_new(GTK_TREE_MODEL(model), iter); @@ -439,7 +491,8 @@ static void trg_state_selector_add_state(TrgStateSelector * selector, priv->n_categories++; } -static void remove_row_ref_and_free(GtkTreeRowReference * rr) { +static void remove_row_ref_and_free(GtkTreeRowReference * rr) +{ GtkTreeModel *model = gtk_tree_row_reference_get_model(rr); GtkTreePath *path = gtk_tree_row_reference_get_path(rr); GtkTreeIter iter; @@ -450,7 +503,9 @@ static void remove_row_ref_and_free(GtkTreeRowReference * rr) { gtk_tree_row_reference_free(rr); } -static void trg_state_selector_update_stat(GtkTreeRowReference *rr, gint count) { +static void trg_state_selector_update_stat(GtkTreeRowReference * rr, + gint count) +{ if (rr) { GValue gvalue = { 0 }; GtkTreeIter iter; @@ -462,20 +517,22 @@ static void trg_state_selector_update_stat(GtkTreeRowReference *rr, gint count) g_value_init(&gvalue, G_TYPE_INT); g_value_set_int(&gvalue, count); gtk_list_store_set_value(GTK_LIST_STORE(model), &iter, - STATE_SELECTOR_COUNT, &gvalue); + STATE_SELECTOR_COUNT, &gvalue); gtk_tree_path_free(path); } } void trg_state_selector_stats_update(TrgStateSelector * s, - trg_torrent_model_update_stats * stats) { + trg_torrent_model_update_stats * + stats) +{ TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(s); GtkTreeIter iter; if (stats->error > 0 && !priv->error_rr) { trg_state_selector_add_state(s, &iter, priv->n_categories - 1, - GTK_STOCK_DIALOG_WARNING, _("Error"), TORRENT_FLAG_ERROR, - &priv->error_rr); + GTK_STOCK_DIALOG_WARNING, _("Error"), + TORRENT_FLAG_ERROR, &priv->error_rr); } else if (stats->error < 1 && priv->error_rr) { remove_row_ref_and_free(priv->error_rr); @@ -496,7 +553,8 @@ void trg_state_selector_stats_update(TrgStateSelector * s, trg_state_selector_update_stat(priv->seed_wait_rr, stats->seed_wait); } -void trg_state_selector_disconnect(TrgStateSelector * s) { +void trg_state_selector_disconnect(TrgStateSelector * s) +{ TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(s); if (priv->error_rr) { @@ -519,20 +577,27 @@ void trg_state_selector_disconnect(TrgStateSelector * s) { trg_state_selector_update_stat(priv->checking_rr, -1); } -static void trg_state_selector_init(TrgStateSelector * self) { +static void trg_state_selector_init(TrgStateSelector * self) +{ } TrgStateSelector *trg_state_selector_new(TrgClient * client, - TrgTorrentModel *tmodel) { - TrgStateSelector *selector = g_object_new(TRG_TYPE_STATE_SELECTOR, "client", - client, NULL); + TrgTorrentModel * tmodel) +{ + TrgStateSelector *selector = + g_object_new(TRG_TYPE_STATE_SELECTOR, "client", + client, NULL); g_signal_connect(tmodel, "torrents-state-change", - G_CALLBACK(on_torrents_state_change), selector); + G_CALLBACK(on_torrents_state_change), selector); return selector; } static GObject *trg_state_selector_constructor(GType type, - guint n_construct_properties, GObjectConstructParam * construct_params) { + guint + n_construct_properties, + GObjectConstructParam * + construct_params) +{ GObject *object; TrgStateSelector *selector; TrgStateSelectorPrivate *priv; @@ -544,17 +609,20 @@ static GObject *trg_state_selector_constructor(GType type, GtkTreeSelection *selection; object = G_OBJECT_CLASS - (trg_state_selector_parent_class)->constructor(type, - n_construct_properties, construct_params); + (trg_state_selector_parent_class)->constructor(type, + n_construct_properties, + construct_params); selector = TRG_STATE_SELECTOR(object); priv = TRG_STATE_SELECTOR_GET_PRIVATE(object); priv->urlHostRegex = trg_uri_host_regex_new(); priv->trackers = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, - (GDestroyNotify) remove_row_ref_and_free); - priv->directories = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, - (GDestroyNotify) remove_row_ref_and_free); + (GDestroyNotify) + remove_row_ref_and_free); + priv->directories = + g_hash_table_new_full(g_str_hash, g_str_equal, g_free, + (GDestroyNotify) remove_row_ref_and_free); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(object), FALSE); @@ -564,43 +632,53 @@ static GObject *trg_state_selector_constructor(GType type, gtk_tree_view_column_pack_start(column, renderer, FALSE); g_object_set(renderer, "stock-size", 4, NULL); gtk_tree_view_column_set_attributes(column, renderer, "stock-id", - STATE_SELECTOR_ICON, NULL); + STATE_SELECTOR_ICON, NULL); renderer = trg_cell_renderer_counter_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_attributes(column, renderer, "state-label", - STATE_SELECTOR_NAME, "state-count", STATE_SELECTOR_COUNT, NULL); + STATE_SELECTOR_NAME, "state-count", + STATE_SELECTOR_COUNT, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(object), column); store = priv->store = gtk_list_store_new(STATE_SELECTOR_COLUMNS, - G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT64, - G_TYPE_UINT); + G_TYPE_STRING, G_TYPE_STRING, + G_TYPE_INT, G_TYPE_UINT, + G_TYPE_INT64, G_TYPE_UINT); gtk_tree_view_set_model(GTK_TREE_VIEW(object), GTK_TREE_MODEL(store)); - trg_state_selector_add_state(selector, &iter, -1, GTK_STOCK_ABOUT, _("All"), - 0, &priv->all_rr); + trg_state_selector_add_state(selector, &iter, -1, GTK_STOCK_ABOUT, + _("All"), 0, &priv->all_rr); trg_state_selector_add_state(selector, &iter, -1, GTK_STOCK_GO_DOWN, - _("Downloading"), TORRENT_FLAG_DOWNLOADING, &priv->down_rr); - trg_state_selector_add_state(selector, &iter, -1, GTK_STOCK_MEDIA_REWIND, - _("Queue Down"), TORRENT_FLAG_DOWNLOADING_WAIT, - &priv->down_wait_rr); + _("Downloading"), + TORRENT_FLAG_DOWNLOADING, &priv->down_rr); + trg_state_selector_add_state(selector, &iter, -1, + GTK_STOCK_MEDIA_REWIND, _("Queue Down"), + TORRENT_FLAG_DOWNLOADING_WAIT, + &priv->down_wait_rr); trg_state_selector_add_state(selector, &iter, -1, GTK_STOCK_GO_UP, - _("Seeding"), TORRENT_FLAG_SEEDING, &priv->seeding_rr); - trg_state_selector_add_state(selector, &iter, -1, GTK_STOCK_MEDIA_FORWARD, - _("Queue Up"), TORRENT_FLAG_SEEDING_WAIT, - &priv->seed_wait_rr); - trg_state_selector_add_state(selector, &iter, -1, GTK_STOCK_MEDIA_PAUSE, - _("Paused"), TORRENT_FLAG_PAUSED, &priv->paused_rr); + _("Seeding"), TORRENT_FLAG_SEEDING, + &priv->seeding_rr); + trg_state_selector_add_state(selector, &iter, -1, + GTK_STOCK_MEDIA_FORWARD, _("Queue Up"), + TORRENT_FLAG_SEEDING_WAIT, + &priv->seed_wait_rr); + trg_state_selector_add_state(selector, &iter, -1, + GTK_STOCK_MEDIA_PAUSE, _("Paused"), + TORRENT_FLAG_PAUSED, &priv->paused_rr); trg_state_selector_add_state(selector, &iter, -1, GTK_STOCK_APPLY, - _("Complete"), TORRENT_FLAG_COMPLETE, &priv->complete_rr); + _("Complete"), TORRENT_FLAG_COMPLETE, + &priv->complete_rr); trg_state_selector_add_state(selector, &iter, -1, GTK_STOCK_SELECT_ALL, - _("Incomplete"), TORRENT_FLAG_INCOMPLETE, - &priv->incomplete_rr); + _("Incomplete"), TORRENT_FLAG_INCOMPLETE, + &priv->incomplete_rr); trg_state_selector_add_state(selector, &iter, -1, GTK_STOCK_NETWORK, - _("Active"), TORRENT_FLAG_ACTIVE, &priv->active_rr); + _("Active"), TORRENT_FLAG_ACTIVE, + &priv->active_rr); trg_state_selector_add_state(selector, &iter, -1, GTK_STOCK_REFRESH, - _("Checking"), TORRENT_FLAG_CHECKING_ANY, &priv->checking_rr); + _("Checking"), TORRENT_FLAG_CHECKING_ANY, + &priv->checking_rr); trg_state_selector_add_state(selector, &iter, -1, NULL, NULL, 0, NULL); gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(object), TRUE); @@ -608,43 +686,50 @@ static GObject *trg_state_selector_constructor(GType type, selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(object)); g_signal_connect(G_OBJECT(selection), "changed", - G_CALLBACK(state_selection_changed), object); + G_CALLBACK(state_selection_changed), object); g_signal_connect(object, "button-press-event", - G_CALLBACK(view_onButtonPressed), NULL); - g_signal_connect(object, "popup-menu", G_CALLBACK(view_onPopupMenu), NULL); + G_CALLBACK(view_onButtonPressed), NULL); + g_signal_connect(object, "popup-menu", G_CALLBACK(view_onPopupMenu), + NULL); - gtk_tree_view_set_search_column(GTK_TREE_VIEW(object), STATE_SELECTOR_NAME); + gtk_tree_view_set_search_column(GTK_TREE_VIEW(object), + STATE_SELECTOR_NAME); index = trg_prefs_get_int(priv->prefs, TRG_PREFS_STATE_SELECTOR_LAST, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); if (index > 0 - && gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, - index)) { - GtkTreeSelection *selection = gtk_tree_view_get_selection( - GTK_TREE_VIEW(object)); + && gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, + NULL, index)) { + GtkTreeSelection *selection = + gtk_tree_view_get_selection(GTK_TREE_VIEW(object)); gtk_tree_selection_select_iter(selection, &iter); } - priv->showDirs = trg_prefs_get_bool(priv->prefs, TRG_PREFS_KEY_FILTER_DIRS, - TRG_PREFS_GLOBAL); - priv->showTrackers = trg_prefs_get_bool(priv->prefs, - TRG_PREFS_KEY_FILTER_TRACKERS, TRG_PREFS_GLOBAL); + priv->showDirs = + trg_prefs_get_bool(priv->prefs, TRG_PREFS_KEY_FILTER_DIRS, + TRG_PREFS_GLOBAL); + priv->showTrackers = + trg_prefs_get_bool(priv->prefs, TRG_PREFS_KEY_FILTER_TRACKERS, + TRG_PREFS_GLOBAL); return object; } void trg_state_selector_set_queues_enabled(TrgStateSelector * s, - gboolean enabled) { + gboolean enabled) +{ TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(s); GtkTreeIter iter; if (enabled) { trg_state_selector_add_state(s, &iter, 2, GTK_STOCK_MEDIA_REWIND, - _("Queue Down"), TORRENT_FLAG_DOWNLOADING_WAIT, - &priv->down_wait_rr); + _("Queue Down"), + TORRENT_FLAG_DOWNLOADING_WAIT, + &priv->down_wait_rr); trg_state_selector_add_state(s, &iter, 4, GTK_STOCK_MEDIA_FORWARD, - _("Queue Up"), TORRENT_FLAG_SEEDING_WAIT, - &priv->seed_wait_rr); + _("Queue Up"), + TORRENT_FLAG_SEEDING_WAIT, + &priv->seed_wait_rr); } else { remove_row_ref_and_free(priv->seed_wait_rr); remove_row_ref_and_free(priv->down_wait_rr); @@ -654,8 +739,11 @@ void trg_state_selector_set_queues_enabled(TrgStateSelector * s, } } -static void trg_state_selector_get_property(GObject * object, guint property_id, - GValue * value, GParamSpec * pspec) { +static void trg_state_selector_get_property(GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(object); switch (property_id) { case PROP_CLIENT: @@ -667,8 +755,12 @@ static void trg_state_selector_get_property(GObject * object, guint property_id, } } -static void trg_state_selector_set_property(GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec G_GNUC_UNUSED) { +static void trg_state_selector_set_property(GObject * object, + guint prop_id, + const GValue * value, + GParamSpec * + pspec G_GNUC_UNUSED) +{ TrgStateSelectorPrivate *priv = TRG_STATE_SELECTOR_GET_PRIVATE(object); switch (prop_id) { @@ -679,31 +771,40 @@ static void trg_state_selector_set_property(GObject * object, guint prop_id, } } -static void trg_state_selector_class_init(TrgStateSelectorClass * klass) { +static void trg_state_selector_class_init(TrgStateSelectorClass * klass) +{ GObjectClass *object_class = G_OBJECT_CLASS(klass); object_class->constructor = trg_state_selector_constructor; object_class->set_property = trg_state_selector_set_property; object_class->get_property = trg_state_selector_get_property; signals[SELECTOR_STATE_CHANGED] = g_signal_new("torrent-state-changed", - G_TYPE_FROM_CLASS - (object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET - (TrgStateSelectorClass, - torrent_state_changed), NULL, NULL, - g_cclosure_marshal_VOID__UINT, G_TYPE_NONE, 1, G_TYPE_UINT); - - g_object_class_install_property( - object_class, - PROP_CLIENT, - g_param_spec_object( - "client", - "Client", - "Client", - TRG_TYPE_CLIENT, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY - | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK - | G_PARAM_STATIC_BLURB)); + G_TYPE_FROM_CLASS + (object_class), + G_SIGNAL_RUN_LAST | + G_SIGNAL_ACTION, + G_STRUCT_OFFSET + (TrgStateSelectorClass, + torrent_state_changed), + NULL, NULL, + g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, 1, + G_TYPE_UINT); + + g_object_class_install_property(object_class, + PROP_CLIENT, + g_param_spec_object("client", + "Client", + "Client", + TRG_TYPE_CLIENT, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY + | + G_PARAM_STATIC_NAME + | + G_PARAM_STATIC_NICK + | + G_PARAM_STATIC_BLURB)); g_type_class_add_private(klass, sizeof(TrgStateSelectorPrivate)); } diff --git a/src/trg-state-selector.h b/src/trg-state-selector.h index 2d9af17..a00251c 100644 --- a/src/trg-state-selector.h +++ b/src/trg-state-selector.h @@ -61,7 +61,8 @@ typedef struct { } TrgStateSelectorClass; GType trg_state_selector_get_type(void); -TrgStateSelector *trg_state_selector_new(TrgClient * client, TrgTorrentModel *tmodel); +TrgStateSelector *trg_state_selector_new(TrgClient * client, + TrgTorrentModel * tmodel); G_END_DECLS guint32 trg_state_selector_get_flag(TrgStateSelector * s); void trg_state_selector_update(TrgStateSelector * s, guint whatsChanged); diff --git a/src/trg-status-bar.c b/src/trg-status-bar.c index 5fdee8c..4d3efc2 100644 --- a/src/trg-status-bar.c +++ b/src/trg-status-bar.c @@ -54,24 +54,29 @@ struct _TrgStatusBarPrivate { TrgMainWindow *win; }; -static void trg_status_bar_class_init(TrgStatusBarClass * klass) { +static void trg_status_bar_class_init(TrgStatusBarClass * klass) +{ g_type_class_add_private(klass, sizeof(TrgStatusBarPrivate)); } -void trg_status_bar_clear_indicators(TrgStatusBar * sb) { +void trg_status_bar_clear_indicators(TrgStatusBar * sb) +{ TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(sb); gtk_label_set_text(GTK_LABEL(priv->free_lbl), ""); gtk_label_set_text(GTK_LABEL(priv->speed_lbl), ""); } -void trg_status_bar_reset(TrgStatusBar * sb) { +void trg_status_bar_reset(TrgStatusBar * sb) +{ TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(sb); trg_status_bar_clear_indicators(sb); gtk_label_set_text(GTK_LABEL(priv->info_lbl), _("Disconnected")); gtk_widget_set_visible(priv->turtleEventBox, FALSE); } -static void turtle_toggle(GtkWidget *w, GdkEventButton * event, gpointer data) { +static void turtle_toggle(GtkWidget * w, GdkEventButton * event, + gpointer data) +{ TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(data); JsonNode *req = session_set(); JsonObject *args = node_get_arguments(req); @@ -82,14 +87,16 @@ static void turtle_toggle(GtkWidget *w, GdkEventButton * event, gpointer data) { altSpeedOn = g_strcmp0(stockName, "alt-speed-on") == 0; gtk_image_set_from_stock(GTK_IMAGE(priv->turtleImage), - altSpeedOn ? "alt-speed-off" : "alt-speed-on", - GTK_ICON_SIZE_SMALL_TOOLBAR); - json_object_set_boolean_member(args, SGET_ALT_SPEED_ENABLED, !altSpeedOn); + altSpeedOn ? "alt-speed-off" : "alt-speed-on", + GTK_ICON_SIZE_SMALL_TOOLBAR); + json_object_set_boolean_member(args, SGET_ALT_SPEED_ENABLED, + !altSpeedOn); dispatch_async(priv->client, req, on_session_set, priv->win); } -static void trg_status_bar_init(TrgStatusBar * self) { +static void trg_status_bar_init(TrgStatusBar * self) +{ TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(self); gtk_container_set_border_width(GTK_CONTAINER(self), 2); @@ -100,9 +107,10 @@ static void trg_status_bar_init(TrgStatusBar * self) { priv->turtleEventBox = gtk_event_box_new(); g_signal_connect(priv->turtleEventBox, "button-press-event", - G_CALLBACK(turtle_toggle), self); + G_CALLBACK(turtle_toggle), self); gtk_widget_set_visible(priv->turtleEventBox, FALSE); - gtk_container_add(GTK_CONTAINER(priv->turtleEventBox), priv->turtleImage); + gtk_container_add(GTK_CONTAINER(priv->turtleEventBox), + priv->turtleImage); gtk_box_pack_end(GTK_BOX(self), priv->turtleEventBox, FALSE, TRUE, 5); priv->speed_lbl = gtk_label_new(NULL); @@ -112,25 +120,30 @@ static void trg_status_bar_init(TrgStatusBar * self) { gtk_box_pack_end(GTK_BOX(self), priv->free_lbl, FALSE, TRUE, 30); } -void trg_status_bar_push_connection_msg(TrgStatusBar * sb, const gchar * msg) { +void trg_status_bar_push_connection_msg(TrgStatusBar * sb, + const gchar * msg) +{ TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(sb); gtk_label_set_text(GTK_LABEL(priv->info_lbl), msg); } -void trg_status_bar_connect(TrgStatusBar * sb, JsonObject * session) { +void trg_status_bar_connect(TrgStatusBar * sb, JsonObject * session) +{ gchar *statusMsg; float version; session_get_version(session, &version); - statusMsg = g_strdup_printf( - _("Connected to Transmission %g, getting torrents..."), - version); + statusMsg = + g_strdup_printf(_ + ("Connected to Transmission %g, getting torrents..."), + version); g_message("%s", statusMsg); trg_status_bar_push_connection_msg(sb, statusMsg); g_free(statusMsg); } -void trg_status_bar_session_update(TrgStatusBar * sb, JsonObject * session) { +void trg_status_bar_session_update(TrgStatusBar * sb, JsonObject * session) +{ TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(sb); gint64 free = session_get_download_dir_free_space(session); gboolean altSpeedEnabled = session_get_alt_speed_enabled(session); @@ -147,17 +160,19 @@ void trg_status_bar_session_update(TrgStatusBar * sb, JsonObject * session) { } gtk_image_set_from_stock(GTK_IMAGE(priv->turtleImage), - altSpeedEnabled ? "alt-speed-on" : "alt-speed-off", - GTK_ICON_SIZE_SMALL_TOOLBAR); - gtk_widget_set_tooltip_text( - priv->turtleImage, - altSpeedEnabled ? _("Disable alternate speed limits") : - _("Enable alternate speed limits")); + altSpeedEnabled ? "alt-speed-on" : + "alt-speed-off", GTK_ICON_SIZE_SMALL_TOOLBAR); + gtk_widget_set_tooltip_text(priv->turtleImage, + altSpeedEnabled ? + _("Disable alternate speed limits") : + _("Enable alternate speed limits")); gtk_widget_set_visible(priv->turtleEventBox, TRUE); } void trg_status_bar_update(TrgStatusBar * sb, - trg_torrent_model_update_stats * stats, TrgClient * client) { + trg_torrent_model_update_stats * stats, + TrgClient * client) +{ TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(sb); JsonObject *session = trg_client_get_session(client); gboolean altLimits = session_get_speed_limit_alt_enabled(session); @@ -187,25 +202,27 @@ void trg_status_bar_update(TrgStatusBar * sb, if (uplimitraw >= 0) { gchar uplimitstring[32]; trg_strlspeed(uplimitstring, uplimitraw); - g_snprintf(uplimit, sizeof(uplimit), _(" (Limit: %s)"), uplimitstring); + g_snprintf(uplimit, sizeof(uplimit), _(" (Limit: %s)"), + uplimitstring); } if (downlimitraw >= 0) { gchar downlimitstring[32]; trg_strlspeed(downlimitstring, downlimitraw); g_snprintf(downlimit, sizeof(downlimit), _(" (Limit: %s)"), - downlimitstring); + downlimitstring); } - speedText = g_strdup_printf(_("Down: %s%s, Up: %s%s"), downRateTotalString, - downlimitraw >= 0 ? downlimit : "", upRateTotalString, - uplimitraw >= 0 ? uplimit : ""); + speedText = + g_strdup_printf(_("Down: %s%s, Up: %s%s"), downRateTotalString, + downlimitraw >= 0 ? downlimit : "", + upRateTotalString, uplimitraw >= 0 ? uplimit : ""); infoText = g_strdup_printf(ngettext - ("%d torrent: %d seeding, %d downloading, %d paused", - "%d torrents: %d seeding, %d downloading, %d paused", - stats->count), stats->count, stats->seeding, stats->down, - stats->paused); + ("%d torrent: %d seeding, %d downloading, %d paused", + "%d torrents: %d seeding, %d downloading, %d paused", + stats->count), stats->count, + stats->seeding, stats->down, stats->paused); gtk_label_set_text(GTK_LABEL(priv->info_lbl), infoText); gtk_label_set_text(GTK_LABEL(priv->speed_lbl), speedText); @@ -214,12 +231,14 @@ void trg_status_bar_update(TrgStatusBar * sb, g_free(infoText); } -const gchar *trg_status_bar_get_speed_text(TrgStatusBar * s) { +const gchar *trg_status_bar_get_speed_text(TrgStatusBar * s) +{ TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(s); return gtk_label_get_text(GTK_LABEL(priv->speed_lbl)); } -TrgStatusBar *trg_status_bar_new(TrgMainWindow *win, TrgClient *client) { +TrgStatusBar *trg_status_bar_new(TrgMainWindow * win, TrgClient * client) +{ TrgStatusBar *sb = g_object_new(TRG_TYPE_STATUS_BAR, NULL); TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(sb); priv->client = client; diff --git a/src/trg-torrent-add-dialog.c b/src/trg-torrent-add-dialog.c index 48f4666..c072b28 100644 --- a/src/trg-torrent-add-dialog.c +++ b/src/trg-torrent-add-dialog.c @@ -51,7 +51,8 @@ enum { }; enum { - FC_ICON, FC_INDEX, FC_LABEL, FC_SIZE, FC_PRIORITY, FC_ENABLED, N_FILE_COLS + FC_ICON, FC_INDEX, FC_LABEL, FC_SIZE, FC_PRIORITY, FC_ENABLED, + N_FILE_COLS }; G_DEFINE_TYPE(TrgTorrentAddDialog, trg_torrent_add_dialog, GTK_TYPE_DIALOG) @@ -72,10 +73,14 @@ struct _TrgTorrentAddDialogPrivate { GtkWidget *delete_check; }; -static void trg_torrent_add_dialog_set_property(GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec G_GNUC_UNUSED) { +static void trg_torrent_add_dialog_set_property(GObject * object, + guint prop_id, + const GValue * value, + GParamSpec * + pspec G_GNUC_UNUSED) +{ TrgTorrentAddDialogPrivate *priv = - TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(object); + TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(object); switch (prop_id) { case PROP_FILENAME: @@ -90,10 +95,14 @@ static void trg_torrent_add_dialog_set_property(GObject * object, guint prop_id, } } -static void trg_torrent_add_dialog_get_property(GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec G_GNUC_UNUSED) { +static void trg_torrent_add_dialog_get_property(GObject * object, + guint prop_id, + GValue * value, + GParamSpec * + pspec G_GNUC_UNUSED) +{ TrgTorrentAddDialogPrivate *priv = - TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(object); + TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(object); switch (prop_id) { case PROP_FILENAME: @@ -105,21 +114,25 @@ static void trg_torrent_add_dialog_get_property(GObject * object, guint prop_id, } } -static void add_set_common_args(JsonObject * args, gint priority, gchar * dir) { +static void add_set_common_args(JsonObject * args, gint priority, + gchar * dir) +{ json_object_set_string_member(args, FIELD_FILE_DOWNLOAD_DIR, dir); json_object_set_int_member(args, FIELD_BANDWIDTH_PRIORITY, - (gint64) priority); + (gint64) priority); } -static gpointer add_files_threadfunc(gpointer data) { +static gpointer add_files_threadfunc(gpointer data) +{ struct add_torrent_threadfunc_args *files_thread_data = - (struct add_torrent_threadfunc_args *) data; + (struct add_torrent_threadfunc_args *) data; GSList *li; for (li = files_thread_data->list; li; li = g_slist_next(li)) { gchar *fileName = (gchar *) li->data; - JsonNode *request = torrent_add(fileName, files_thread_data->flags); + JsonNode *request = + torrent_add(fileName, files_thread_data->flags); JsonObject *args; trg_response *response; @@ -130,7 +143,7 @@ static gpointer add_files_threadfunc(gpointer data) { if (files_thread_data->extraArgs) add_set_common_args(args, files_thread_data->priority, - files_thread_data->dir); + files_thread_data->dir); response = dispatch(files_thread_data->client, request); response->cb_data = files_thread_data->cb_data; @@ -147,7 +160,8 @@ static gpointer add_files_threadfunc(gpointer data) { return NULL; } -void launch_add_thread(struct add_torrent_threadfunc_args *args) { +void launch_add_thread(struct add_torrent_threadfunc_args *args) +{ GError *error = NULL; g_thread_create(add_files_threadfunc, args, FALSE, &error); @@ -160,12 +174,16 @@ void launch_add_thread(struct add_torrent_threadfunc_args *args) { } static gboolean add_file_indexes_foreachfunc(GtkTreeModel * model, - GtkTreePath * path G_GNUC_UNUSED, GtkTreeIter * iter, gpointer data) { + GtkTreePath * + path G_GNUC_UNUSED, + GtkTreeIter * iter, + gpointer data) +{ JsonObject *args = (JsonObject *) data; gint priority, index, wanted; - gtk_tree_model_get(model, iter, FC_PRIORITY, &priority, FC_ENABLED, &wanted, - FC_INDEX, &index, -1); + gtk_tree_model_get(model, iter, FC_PRIORITY, &priority, FC_ENABLED, + &wanted, FC_INDEX, &index, -1); if (gtk_tree_model_iter_has_child(model, iter) || index < 0) return FALSE; @@ -186,35 +204,43 @@ static gboolean add_file_indexes_foreachfunc(GtkTreeModel * model, } static void trg_torrent_add_response_cb(GtkDialog * dlg, gint res_id, - gpointer data) { - TrgTorrentAddDialogPrivate *priv = TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(dlg); + gpointer data) +{ + TrgTorrentAddDialogPrivate *priv = + TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(dlg); guint flags = 0x00; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->paused_check))) + if (gtk_toggle_button_get_active + (GTK_TOGGLE_BUTTON(priv->paused_check))) flags |= TORRENT_ADD_FLAG_PAUSED; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->delete_check))) + if (gtk_toggle_button_get_active + (GTK_TOGGLE_BUTTON(priv->delete_check))) flags |= TORRENT_ADD_FLAG_DELETE; if (res_id == GTK_RESPONSE_ACCEPT) { - gint priority = gtk_combo_box_get_active( - GTK_COMBO_BOX(priv->priority_combo)) - 1; - gchar *dir = trg_destination_combo_get_dir(TRG_DESTINATION_COMBO - (priv->dest_combo)); + gint priority = + gtk_combo_box_get_active(GTK_COMBO_BOX(priv->priority_combo)) - + 1; + gchar *dir = + trg_destination_combo_get_dir(TRG_DESTINATION_COMBO + (priv->dest_combo)); if (g_slist_length(priv->filenames) == 1) { - JsonNode *req = torrent_add((gchar *) priv->filenames->data, flags); + JsonNode *req = + torrent_add((gchar *) priv->filenames->data, flags); if (req) { JsonObject *args = node_get_arguments(req); gtk_tree_model_foreach(GTK_TREE_MODEL(priv->store), - add_file_indexes_foreachfunc, args); + add_file_indexes_foreachfunc, args); add_set_common_args(args, priority, dir); - dispatch_async(priv->client, req, on_generic_interactive_action, - priv->parent); + dispatch_async(priv->client, req, + on_generic_interactive_action, + priv->parent); } g_str_slist_free(priv->filenames); } else { struct add_torrent_threadfunc_args *args = - g_new(struct add_torrent_threadfunc_args, 1); + g_new(struct add_torrent_threadfunc_args, 1); args->list = priv->filenames; args->cb_data = priv->parent; args->client = priv->client; @@ -234,38 +260,49 @@ static void trg_torrent_add_response_cb(GtkDialog * dlg, gint res_id, gtk_widget_destroy(GTK_WIDGET(dlg)); } -static void set_low(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void set_low(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), FC_PRIORITY, - TR_PRI_LOW); + TR_PRI_LOW); } -static void set_normal(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void set_normal(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), FC_PRIORITY, - TR_PRI_NORMAL); + TR_PRI_NORMAL); } -static void set_high(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void set_high(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), FC_PRIORITY, - TR_PRI_HIGH); + TR_PRI_HIGH); } -static void set_unwanted(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void set_unwanted(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ trg_files_model_set_wanted(GTK_TREE_VIEW(data), FC_ENABLED, FALSE); } -static void set_wanted(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void set_wanted(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ trg_files_model_set_wanted(GTK_TREE_VIEW(data), FC_ENABLED, TRUE); } static gboolean onViewButtonPressed(GtkWidget * w, GdkEventButton * event, - gpointer gdata) { + gpointer gdata) +{ return trg_files_tree_view_onViewButtonPressed(w, event, FC_PRIORITY, - FC_ENABLED, G_CALLBACK(set_low), G_CALLBACK(set_normal), - G_CALLBACK(set_high), G_CALLBACK(set_wanted), - G_CALLBACK(set_unwanted), gdata); + FC_ENABLED, + G_CALLBACK(set_low), + G_CALLBACK(set_normal), + G_CALLBACK(set_high), + G_CALLBACK(set_wanted), + G_CALLBACK + (set_unwanted), gdata); } -GtkWidget *gtr_file_list_new(GtkTreeStore ** store) { +GtkWidget *gtr_file_list_new(GtkTreeStore ** store) +{ int size; int width; GtkWidget *view; @@ -285,11 +322,12 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) { gtk_tree_view_set_rules_hint(tree_view, TRUE); gtk_container_set_border_width(GTK_CONTAINER(view), GUI_PAD_BIG); g_signal_connect(view, "button-press-event", - G_CALLBACK(onViewButtonPressed), view); + G_CALLBACK(onViewButtonPressed), view); pango_context = gtk_widget_create_pango_context(view); - pango_font_description = pango_font_description_copy( - pango_context_get_font_description(pango_context)); + pango_font_description = + pango_font_description_copy(pango_context_get_font_description + (pango_context)); size = pango_font_description_get_size(pango_font_description); pango_font_description_set_size(pango_font_description, size * 0.8); g_object_unref(G_OBJECT(pango_context)); @@ -302,18 +340,18 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) { /* add file column */ col = GTK_TREE_VIEW_COLUMN(g_object_new(GTK_TYPE_TREE_VIEW_COLUMN, - "expand", TRUE, - "title", _("Name"), NULL)); + "expand", TRUE, + "title", _("Name"), NULL)); gtk_tree_view_column_set_resizable(col, TRUE); rend = trg_cell_renderer_file_icon_new(); gtk_tree_view_column_pack_start(col, rend, FALSE); gtk_tree_view_column_set_attributes(col, rend, "file-name", FC_LABEL, - "file-id", FC_INDEX, NULL); + "file-id", FC_INDEX, NULL); /* add text renderer */ rend = gtk_cell_renderer_text_new(); g_object_set(rend, "ellipsize", PANGO_ELLIPSIZE_END, "font-desc", - pango_font_description, NULL); + pango_font_description, NULL); gtk_tree_view_column_pack_start(col, rend, TRUE); gtk_tree_view_column_set_attributes(col, rend, "text", FC_LABEL, NULL); gtk_tree_view_column_set_sort_column_id(col, FC_LABEL); @@ -324,23 +362,26 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) { title = _("Size"); rend = trg_cell_renderer_size_new(); g_object_set(rend, "alignment", PANGO_ALIGN_RIGHT, "font-desc", - pango_font_description, "xpad", GUI_PAD, "xalign", 1.0f, "yalign", - 0.5f, NULL); + pango_font_description, "xpad", GUI_PAD, "xalign", 1.0f, + "yalign", 0.5f, NULL); col = gtk_tree_view_column_new_with_attributes(title, rend, NULL); gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_GROW_ONLY); gtk_tree_view_column_set_sort_column_id(col, FC_SIZE); - gtk_tree_view_column_set_attributes(col, rend, "size-value", FC_SIZE, NULL); + gtk_tree_view_column_set_attributes(col, rend, "size-value", FC_SIZE, + NULL); gtk_tree_view_append_column(tree_view, col); /* add "enabled" column */ title = _("Download"); pango_layout = gtk_widget_create_pango_layout(view, title); pango_layout_get_pixel_size(pango_layout, &width, NULL); - width += 30; /* room for the sort indicator */ + width += 30; /* room for the sort indicator */ g_object_unref(G_OBJECT(pango_layout)); rend = trg_cell_renderer_wanted_new(); - col = gtk_tree_view_column_new_with_attributes(title, rend, "wanted-value", - FC_ENABLED, NULL); + col = + gtk_tree_view_column_new_with_attributes(title, rend, + "wanted-value", + FC_ENABLED, NULL); gtk_tree_view_column_set_fixed_width(col, width); gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_sort_column_id(col, FC_ENABLED); @@ -350,22 +391,23 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) { title = _("Priority"); pango_layout = gtk_widget_create_pango_layout(view, title); pango_layout_get_pixel_size(pango_layout, &width, NULL); - width += 30; /* room for the sort indicator */ + width += 30; /* room for the sort indicator */ g_object_unref(G_OBJECT(pango_layout)); rend = trg_cell_renderer_priority_new(); col = gtk_tree_view_column_new_with_attributes(title, rend, - "priority-value", FC_PRIORITY, NULL); + "priority-value", + FC_PRIORITY, NULL); gtk_tree_view_column_set_fixed_width(col, width); gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_sort_column_id(col, FC_PRIORITY); gtk_tree_view_append_column(tree_view, col); - *store = gtk_tree_store_new(N_FILE_COLS, G_TYPE_STRING, /* icon */ - G_TYPE_INT, /* index */ - G_TYPE_STRING, /* label */ - G_TYPE_INT64, /* size */ - G_TYPE_INT, /* priority */ - G_TYPE_INT); /* dl enabled */ + *store = gtk_tree_store_new(N_FILE_COLS, G_TYPE_STRING, /* icon */ + G_TYPE_INT, /* index */ + G_TYPE_STRING, /* label */ + G_TYPE_INT64, /* size */ + G_TYPE_INT, /* priority */ + G_TYPE_INT); /* dl enabled */ gtk_tree_view_set_model(tree_view, GTK_TREE_MODEL(*store)); g_object_unref(G_OBJECT(*store)); @@ -373,9 +415,10 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) { /* create the scrolled window and stick the view in it */ scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll), - GTK_SHADOW_IN); + GTK_SHADOW_IN); gtk_container_add(GTK_CONTAINER(scroll), view); gtk_widget_set_size_request(scroll, -1, 200); @@ -383,7 +426,8 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) { return scroll; } -static GtkWidget *gtr_dialog_get_content_area(GtkDialog * dialog) { +static GtkWidget *gtr_dialog_get_content_area(GtkDialog * dialog) +{ #if GTK_CHECK_VERSION( 2,14,0 ) return gtk_dialog_get_content_area(dialog); #else @@ -391,18 +435,22 @@ static GtkWidget *gtr_dialog_get_content_area(GtkDialog * dialog) { #endif } -static void gtr_dialog_set_content(GtkDialog * dialog, GtkWidget * content) { +static void gtr_dialog_set_content(GtkDialog * dialog, GtkWidget * content) +{ GtkWidget *vbox = gtr_dialog_get_content_area(dialog); gtk_box_pack_start(GTK_BOX(vbox), content, TRUE, TRUE, 0); gtk_widget_show_all(content); } -GtkWidget *gtr_priority_combo_new(void) { +GtkWidget *gtr_priority_combo_new(void) +{ return gtr_combo_box_new_enum(_("Low"), TR_PRI_LOW, _("Normal"), - TR_PRI_NORMAL, _("High"), TR_PRI_HIGH, NULL); + TR_PRI_NORMAL, _("High"), TR_PRI_HIGH, + NULL); } -static void addTorrentFilters(GtkFileChooser * chooser) { +static void addTorrentFilters(GtkFileChooser * chooser) +{ GtkFileFilter *filter; filter = gtk_file_filter_new(); @@ -417,55 +465,64 @@ static void addTorrentFilters(GtkFileChooser * chooser) { } static void store_add_node(GtkTreeStore * store, GtkTreeIter * parent, - trg_torrent_file_node * node) { + trg_torrent_file_node * node) +{ GtkTreeIter child; GList *li; if (node->name) { gtk_tree_store_append(store, &child, parent); - gtk_tree_store_set(store, &child, FC_LABEL, node->name, FC_ENABLED, 1, - FC_ICON, node->children ? GTK_STOCK_DIRECTORY : GTK_STOCK_FILE, - FC_INDEX, node->children ? -1 : node->index, - FC_PRIORITY, TR_PRI_NORMAL, - -1); + gtk_tree_store_set(store, &child, FC_LABEL, node->name, FC_ENABLED, + 1, FC_ICON, + node-> + children ? GTK_STOCK_DIRECTORY : GTK_STOCK_FILE, + FC_INDEX, node->children ? -1 : node->index, + FC_PRIORITY, TR_PRI_NORMAL, -1); if (!node->children) { gtk_tree_store_set(store, &child, FC_SIZE, node->length, -1); - trg_files_model_update_parents(GTK_TREE_MODEL(store), &child, FC_SIZE); + trg_files_model_update_parents(GTK_TREE_MODEL(store), &child, + FC_SIZE); } } for (li = node->children; li; li = g_list_next(li)) store_add_node(store, node->name ? &child : NULL, - (trg_torrent_file_node *) li->data); + (trg_torrent_file_node *) li->data); } -static void torrent_not_parsed_warning(GtkWindow * parent) { - GtkWidget *dialog = - gtk_message_dialog_new( - parent, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_WARNING, - GTK_BUTTONS_OK, - _ - ("Unable to parse torrent file. File preferences unavailable, but you can still try uploading it.")); +static void torrent_not_parsed_warning(GtkWindow * parent) +{ + GtkWidget *dialog = gtk_message_dialog_new(parent, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK, + _ + ("Unable to parse torrent file. File preferences unavailable, but you can still try uploading it.")); gtk_window_set_transient_for(GTK_WINDOW(dialog), parent); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); } -static void torrent_not_found_error(GtkWindow * parent, gchar * file) { +static void torrent_not_found_error(GtkWindow * parent, gchar * file) +{ GtkWidget *dialog = gtk_message_dialog_new(parent, - GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, - _("Unable to open torrent file: %s"), file); + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + _ + ("Unable to open torrent file: %s"), + file); gtk_window_set_transient_for(GTK_WINDOW(dialog), parent); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); } static void trg_torrent_add_dialog_set_filenames(TrgTorrentAddDialog * d, - GSList * filenames) { - TrgTorrentAddDialogPrivate *priv = TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(d); + GSList * filenames) +{ + TrgTorrentAddDialogPrivate *priv = + TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(d); GtkButton *chooser = GTK_BUTTON(priv->source_chooser); gint nfiles = filenames ? g_slist_length(filenames) : 0; @@ -499,7 +556,8 @@ static void trg_torrent_add_dialog_set_filenames(TrgTorrentAddDialog * d, trg_torrent_file_free(tor_data); } } else { - torrent_not_found_error(GTK_WINDOW(priv->parent), file_name); + torrent_not_found_error(GTK_WINDOW(priv->parent), + file_name); } gtk_widget_set_sensitive(priv->file_list, tor_data != NULL); @@ -517,60 +575,79 @@ static void trg_torrent_add_dialog_set_filenames(TrgTorrentAddDialog * d, } static void trg_torrent_add_dialog_generic_save_dir(GtkFileChooser * c, - TrgPrefs * prefs) { + TrgPrefs * prefs) +{ gchar *cwd = gtk_file_chooser_get_current_folder(c); if (cwd) { trg_prefs_set_string(prefs, TRG_PREFS_KEY_LAST_TORRENT_DIR, cwd, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); g_free(cwd); } } static GtkWidget *trg_torrent_add_dialog_generic(GtkWindow * parent, - TrgPrefs * prefs) { + TrgPrefs * prefs) +{ GtkWidget *w = gtk_file_chooser_dialog_new(_("Add a Torrent"), parent, - GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT, NULL); - gchar *dir = trg_prefs_get_string(prefs, TRG_PREFS_KEY_LAST_TORRENT_DIR, - TRG_PREFS_GLOBAL); + GTK_FILE_CHOOSER_ACTION_OPEN, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + GTK_STOCK_ADD, + GTK_RESPONSE_ACCEPT, NULL); + gchar *dir = + trg_prefs_get_string(prefs, TRG_PREFS_KEY_LAST_TORRENT_DIR, + TRG_PREFS_GLOBAL); if (dir) { gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(w), dir); g_free(dir); } addTorrentFilters(GTK_FILE_CHOOSER(w)); - gtk_dialog_set_alternative_button_order(GTK_DIALOG(w), GTK_RESPONSE_ACCEPT, - GTK_RESPONSE_CANCEL, -1); + gtk_dialog_set_alternative_button_order(GTK_DIALOG(w), + GTK_RESPONSE_ACCEPT, + GTK_RESPONSE_CANCEL, -1); gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(w), TRUE); return w; } -static void trg_torrent_add_dialog_source_click_cb(GtkWidget * w, gpointer data) { - TrgTorrentAddDialogPrivate *priv = TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(data); +static void trg_torrent_add_dialog_source_click_cb(GtkWidget * w, + gpointer data) +{ + TrgTorrentAddDialogPrivate *priv = + TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(data); GtkWidget *d = trg_torrent_add_dialog_generic(GTK_WINDOW(data), - trg_client_get_prefs(priv->client)); + trg_client_get_prefs + (priv->client)); if (gtk_dialog_run(GTK_DIALOG(d)) == GTK_RESPONSE_ACCEPT) { if (priv->filenames) g_str_slist_free(priv->filenames); - priv->filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(d)); + priv->filenames = + gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(d)); trg_torrent_add_dialog_generic_save_dir(GTK_FILE_CHOOSER(d), - trg_client_get_prefs(priv->client)); + trg_client_get_prefs(priv-> + client)); trg_torrent_add_dialog_set_filenames(TRG_TORRENT_ADD_DIALOG(data), - priv->filenames); + priv->filenames); } gtk_widget_destroy(GTK_WIDGET(d)); } static GObject *trg_torrent_add_dialog_constructor(GType type, - guint n_construct_properties, GObjectConstructParam * construct_params) { + guint + n_construct_properties, + GObjectConstructParam * + construct_params) +{ GObject *obj = G_OBJECT_CLASS - (trg_torrent_add_dialog_parent_class)->constructor(type, - n_construct_properties, construct_params); - TrgTorrentAddDialogPrivate *priv = TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(obj); + (trg_torrent_add_dialog_parent_class)->constructor(type, + n_construct_properties, + construct_params); + TrgTorrentAddDialogPrivate *priv = + TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(obj); TrgPrefs *prefs = trg_client_get_prefs(priv->client); GtkWidget *t, *l; @@ -579,15 +656,18 @@ static GObject *trg_torrent_add_dialog_constructor(GType type, /* window */ gtk_window_set_title(GTK_WINDOW(obj), _("Add Torrent")); - gtk_window_set_transient_for(GTK_WINDOW(obj), GTK_WINDOW(priv->parent)); + gtk_window_set_transient_for(GTK_WINDOW(obj), + GTK_WINDOW(priv->parent)); gtk_window_set_destroy_with_parent(GTK_WINDOW(obj), TRUE); /* buttons */ gtk_dialog_add_button(GTK_DIALOG(obj), GTK_STOCK_CANCEL, - GTK_RESPONSE_CANCEL); - gtk_dialog_add_button(GTK_DIALOG(obj), GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT); + GTK_RESPONSE_CANCEL); + gtk_dialog_add_button(GTK_DIALOG(obj), GTK_STOCK_OPEN, + GTK_RESPONSE_ACCEPT); gtk_dialog_set_alternative_button_order(GTK_DIALOG(obj), - GTK_RESPONSE_ACCEPT, GTK_RESPONSE_CANCEL, -1); + GTK_RESPONSE_ACCEPT, + GTK_RESPONSE_CANCEL, -1); gtk_dialog_set_default_response(GTK_DIALOG(obj), GTK_RESPONSE_ACCEPT); /* workspace */ @@ -599,88 +679,94 @@ static GObject *trg_torrent_add_dialog_constructor(GType type, priv->file_list = gtr_file_list_new(&priv->store); gtk_widget_set_sensitive(priv->file_list, FALSE); - priv->paused_check = gtk_check_button_new_with_mnemonic(_("Start _paused")); - gtk_toggle_button_set_active( - GTK_TOGGLE_BUTTON(priv->paused_check), - trg_prefs_get_bool(prefs, TRG_PREFS_KEY_START_PAUSED, - TRG_PREFS_GLOBAL)); + priv->paused_check = + gtk_check_button_new_with_mnemonic(_("Start _paused")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->paused_check), + trg_prefs_get_bool(prefs, + TRG_PREFS_KEY_START_PAUSED, + TRG_PREFS_GLOBAL)); priv->delete_check = gtk_check_button_new_with_mnemonic(_ - ("Delete local .torrent file after adding")); - gtk_toggle_button_set_active( - GTK_TOGGLE_BUTTON(priv->delete_check), - trg_prefs_get_bool(prefs, TRG_PREFS_KEY_DELETE_LOCAL_TORRENT, - TRG_PREFS_GLOBAL)); + ("Delete local .torrent file after adding")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->delete_check), + trg_prefs_get_bool(prefs, + TRG_PREFS_KEY_DELETE_LOCAL_TORRENT, + TRG_PREFS_GLOBAL)); priv->priority_combo = gtr_priority_combo_new(); gtk_combo_box_set_active(GTK_COMBO_BOX(priv->priority_combo), 1); l = gtk_label_new_with_mnemonic(_("_Torrent file:")); gtk_misc_set_alignment(GTK_MISC(l), 0.0f, 0.5f); - gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, GTK_FILL, 0, - 0, 0); + gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, GTK_FILL, + 0, 0, 0); ++col; priv->source_chooser = gtk_button_new(); gtk_button_set_alignment(GTK_BUTTON(priv->source_chooser), 0.0f, 0.5f); trg_torrent_add_dialog_set_filenames(TRG_TORRENT_ADD_DIALOG(obj), - priv->filenames); + priv->filenames); gtk_table_attach(GTK_TABLE(t), priv->source_chooser, col, col + 1, row, - row + 1, ~0, 0, 0, 0); + row + 1, ~0, 0, 0, 0); gtk_label_set_mnemonic_widget(GTK_LABEL(l), priv->source_chooser); g_signal_connect(priv->source_chooser, "clicked", - G_CALLBACK(trg_torrent_add_dialog_source_click_cb), obj); + G_CALLBACK(trg_torrent_add_dialog_source_click_cb), + obj); ++row; col = 0; l = gtk_label_new_with_mnemonic(_("_Destination folder:")); gtk_misc_set_alignment(GTK_MISC(l), 0.0f, 0.5f); - gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, GTK_FILL, 0, - 0, 0); + gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, GTK_FILL, + 0, 0, 0); ++col; priv->dest_combo = trg_destination_combo_new(priv->client, NULL); gtk_combo_box_set_active(GTK_COMBO_BOX(priv->dest_combo), 0); - gtk_table_attach(GTK_TABLE(t), priv->dest_combo, col, col + 1, row, row + 1, - ~0, 0, 0, 0); + gtk_table_attach(GTK_TABLE(t), priv->dest_combo, col, col + 1, row, + row + 1, ~0, 0, 0, 0); gtk_label_set_mnemonic_widget(GTK_LABEL(l), priv->dest_combo); ++row; col = 0; gtk_widget_set_size_request(priv->file_list, 466u, 300u); - gtk_table_attach_defaults(GTK_TABLE(t), priv->file_list, col, col + 2, row, - row + 1); + gtk_table_attach_defaults(GTK_TABLE(t), priv->file_list, col, col + 2, + row, row + 1); ++row; col = 0; l = gtk_label_new_with_mnemonic(_("Torrent _priority:")); gtk_misc_set_alignment(GTK_MISC(l), 0.0f, 0.5f); - gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, ~0, 0, 0, 0); + gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, ~0, 0, 0, + 0); ++col; gtk_table_attach(GTK_TABLE(t), priv->priority_combo, col, col + 1, row, - row + 1, ~0, 0, 0, 0); + row + 1, ~0, 0, 0, 0); gtk_label_set_mnemonic_widget(GTK_LABEL(l), priv->priority_combo); ++row; col = 0; gtk_table_attach(GTK_TABLE(t), priv->paused_check, col, col + 2, row, - row + 1, GTK_FILL, 0, 0, 0); + row + 1, GTK_FILL, 0, 0, 0); ++row; col = 0; gtk_table_attach(GTK_TABLE(t), priv->delete_check, col, col + 2, row, - row + 1, GTK_FILL, 0, 0, 0); + row + 1, GTK_FILL, 0, 0, 0); gtr_dialog_set_content(GTK_DIALOG(obj), t); g_signal_connect(G_OBJECT(obj), "response", - G_CALLBACK(trg_torrent_add_response_cb), priv->parent); + G_CALLBACK(trg_torrent_add_response_cb), + priv->parent); return obj; } -static void trg_torrent_add_dialog_class_init(TrgTorrentAddDialogClass * klass) { +static void trg_torrent_add_dialog_class_init(TrgTorrentAddDialogClass * + klass) +{ GObjectClass *object_class = G_OBJECT_CLASS(klass); g_type_class_add_private(klass, sizeof(TrgTorrentAddDialogPrivate)); @@ -689,51 +775,67 @@ static void trg_torrent_add_dialog_class_init(TrgTorrentAddDialogClass * klass) object_class->get_property = trg_torrent_add_dialog_get_property; object_class->constructor = trg_torrent_add_dialog_constructor; - g_object_class_install_property( - object_class, - PROP_FILENAME, - g_param_spec_pointer( - "filenames", - "filenames", - "filenames", - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY - | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK - | G_PARAM_STATIC_BLURB)); - - g_object_class_install_property( - object_class, - PROP_CLIENT, - g_param_spec_pointer( - "client", - "client", - "client", - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY - | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK - | G_PARAM_STATIC_BLURB)); - - g_object_class_install_property( - object_class, - PROP_PARENT, - g_param_spec_object( - "parent", - "parent", - "parent", - TRG_TYPE_MAIN_WINDOW, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY - | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK - | G_PARAM_STATIC_BLURB)); + g_object_class_install_property(object_class, + PROP_FILENAME, + g_param_spec_pointer("filenames", + "filenames", + "filenames", + G_PARAM_READWRITE + | + G_PARAM_CONSTRUCT_ONLY + | + G_PARAM_STATIC_NAME + | + G_PARAM_STATIC_NICK + | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property(object_class, + PROP_CLIENT, + g_param_spec_pointer("client", + "client", + "client", + G_PARAM_READWRITE + | + G_PARAM_CONSTRUCT_ONLY + | + G_PARAM_STATIC_NAME + | + G_PARAM_STATIC_NICK + | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property(object_class, + PROP_PARENT, + g_param_spec_object("parent", + "parent", + "parent", + TRG_TYPE_MAIN_WINDOW, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY + | + G_PARAM_STATIC_NAME + | + G_PARAM_STATIC_NICK + | + G_PARAM_STATIC_BLURB)); } -static void trg_torrent_add_dialog_init(TrgTorrentAddDialog * self) { +static void trg_torrent_add_dialog_init(TrgTorrentAddDialog * self) +{ } TrgTorrentAddDialog *trg_torrent_add_dialog_new(TrgMainWindow * parent, - TrgClient * client, GSList * filenames) { - return g_object_new(TRG_TYPE_TORRENT_ADD_DIALOG, "filenames", filenames, - "parent", parent, "client", client, NULL); + TrgClient * client, + GSList * filenames) +{ + return g_object_new(TRG_TYPE_TORRENT_ADD_DIALOG, "filenames", + filenames, "parent", parent, "client", client, + NULL); } -void trg_torrent_add_dialog(TrgMainWindow * win, TrgClient * client) { +void trg_torrent_add_dialog(TrgMainWindow * win, TrgClient * client) +{ GtkWidget *w; GtkWidget *c; TrgPrefs *prefs = trg_client_get_prefs(client); @@ -741,29 +843,31 @@ void trg_torrent_add_dialog(TrgMainWindow * win, TrgClient * client) { w = trg_torrent_add_dialog_generic(GTK_WINDOW(win), prefs); c = gtk_check_button_new_with_mnemonic(_("Show _options dialog")); - gtk_toggle_button_set_active( - GTK_TOGGLE_BUTTON(c), - trg_prefs_get_bool(prefs, TRG_PREFS_KEY_ADD_OPTIONS_DIALOG, - TRG_PREFS_GLOBAL)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(c), + trg_prefs_get_bool(prefs, + TRG_PREFS_KEY_ADD_OPTIONS_DIALOG, + TRG_PREFS_GLOBAL)); gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(w), c); if (gtk_dialog_run(GTK_DIALOG(w)) == GTK_RESPONSE_ACCEPT) { GtkFileChooser *chooser = GTK_FILE_CHOOSER(w); GtkToggleButton *tb = - GTK_TOGGLE_BUTTON(gtk_file_chooser_get_extra_widget(chooser)); + GTK_TOGGLE_BUTTON(gtk_file_chooser_get_extra_widget(chooser)); gboolean showOptions = gtk_toggle_button_get_active(tb); GSList *l = gtk_file_chooser_get_filenames(chooser); - trg_torrent_add_dialog_generic_save_dir(GTK_FILE_CHOOSER(w), prefs); + trg_torrent_add_dialog_generic_save_dir(GTK_FILE_CHOOSER(w), + prefs); if (showOptions) { TrgTorrentAddDialog *dialog = trg_torrent_add_dialog_new(win, - client, l); + client, + l); gtk_widget_show_all(GTK_WIDGET(dialog)); } else { struct add_torrent_threadfunc_args *args = - g_new0(struct add_torrent_threadfunc_args, 1); + g_new0(struct add_torrent_threadfunc_args, 1); args->list = l; args->cb_data = win; diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c index 26a6698..c7408fe 100644 --- a/src/trg-torrent-model.c +++ b/src/trg-torrent-model.c @@ -73,7 +73,8 @@ struct _TrgTorrentModelPrivate { trg_torrent_model_update_stats stats; }; -static void trg_torrent_model_dispose(GObject * object) { +static void trg_torrent_model_dispose(GObject * object) +{ TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(object); g_hash_table_destroy(priv->ht); G_OBJECT_CLASS(trg_torrent_model_parent_class)->dispose(object); @@ -81,49 +82,70 @@ static void trg_torrent_model_dispose(GObject * object) { static void update_torrent_iter(TrgTorrentModel * model, TrgClient * tc, gint64 rpcv, - gint64 serial, GtkTreeIter * iter, JsonObject * t, - trg_torrent_model_update_stats * stats, guint *whatsChanged); + gint64 serial, GtkTreeIter * iter, JsonObject * t, + trg_torrent_model_update_stats * stats, + guint * whatsChanged); -static void trg_torrent_model_class_init(TrgTorrentModelClass * klass) { +static void trg_torrent_model_class_init(TrgTorrentModelClass * klass) +{ GObjectClass *object_class = G_OBJECT_CLASS(klass); g_type_class_add_private(klass, sizeof(TrgTorrentModelPrivate)); object_class->dispose = trg_torrent_model_dispose; signals[TMODEL_TORRENT_COMPLETED] = g_signal_new("torrent-completed", - G_TYPE_FROM_CLASS - (object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET - (TrgTorrentModelClass, - torrent_completed), NULL, NULL, - g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); + G_TYPE_FROM_CLASS + (object_class), + G_SIGNAL_RUN_LAST | + G_SIGNAL_ACTION, + G_STRUCT_OFFSET + (TrgTorrentModelClass, + torrent_completed), + NULL, NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, 1, + G_TYPE_POINTER); signals[TMODEL_TORRENT_ADDED] = g_signal_new("torrent-added", - G_TYPE_FROM_CLASS - (object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET - (TrgTorrentModelClass, - torrent_added), NULL, NULL, - g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); + G_TYPE_FROM_CLASS + (object_class), + G_SIGNAL_RUN_LAST | + G_SIGNAL_ACTION, + G_STRUCT_OFFSET + (TrgTorrentModelClass, + torrent_added), NULL, + NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, 1, + G_TYPE_POINTER); signals[TMODEL_STATE_CHANGED] = g_signal_new("torrents-state-change", - G_TYPE_FROM_CLASS - (object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET - (TrgTorrentModelClass, - torrent_removed), NULL, NULL, g_cclosure_marshal_VOID__UINT, - G_TYPE_NONE, 1, G_TYPE_UINT); + G_TYPE_FROM_CLASS + (object_class), + G_SIGNAL_RUN_LAST | + G_SIGNAL_ACTION, + G_STRUCT_OFFSET + (TrgTorrentModelClass, + torrent_removed), NULL, + NULL, + g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, 1, + G_TYPE_UINT); } -trg_torrent_model_update_stats *trg_torrent_model_get_stats( - TrgTorrentModel * model) { +trg_torrent_model_update_stats *trg_torrent_model_get_stats(TrgTorrentModel + * model) +{ TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(model); return &(priv->stats); } static void trg_torrent_model_count_peers(TrgTorrentModel * model, - GtkTreeIter * iter, JsonObject * t) { - GList *trackersList = json_array_get_elements(torrent_get_tracker_stats(t)); + GtkTreeIter * iter, + JsonObject * t) +{ + GList *trackersList = + json_array_get_elements(torrent_get_tracker_stats(t)); gint seeders = 0; gint leechers = 0; gint downloads = 0; @@ -140,11 +162,12 @@ static void trg_torrent_model_count_peers(TrgTorrentModel * model, g_list_free(trackersList); gtk_list_store_set(GTK_LIST_STORE(model), iter, TORRENT_COLUMN_SEEDS, - seeders, TORRENT_COLUMN_LEECHERS, leechers, - TORRENT_COLUMN_DOWNLOADS, downloads, -1); + seeders, TORRENT_COLUMN_LEECHERS, leechers, + TORRENT_COLUMN_DOWNLOADS, downloads, -1); } -static void trg_torrent_model_ref_free(gpointer data) { +static void trg_torrent_model_ref_free(gpointer data) +{ GtkTreeRowReference *rr = (GtkTreeRowReference *) data; GtkTreeModel *model = gtk_tree_row_reference_get_model(rr); GtkTreePath *path = gtk_tree_row_reference_get_path(rr); @@ -152,13 +175,14 @@ static void trg_torrent_model_ref_free(gpointer data) { GtkTreeIter iter; JsonObject *json; if (gtk_tree_model_get_iter(model, &iter, path)) { - gtk_tree_model_get(model, &iter, TORRENT_COLUMN_JSON, &json, -1); + gtk_tree_model_get(model, &iter, TORRENT_COLUMN_JSON, &json, + -1); json_object_unref(json); g_object_set_data(G_OBJECT(model), PROP_REMOVE_IN_PROGRESS, - GINT_TO_POINTER(TRUE)); + GINT_TO_POINTER(TRUE)); gtk_list_store_remove(GTK_LIST_STORE(model), &iter); g_object_set_data(G_OBJECT(model), PROP_REMOVE_IN_PROGRESS, - GINT_TO_POINTER(FALSE)); + GINT_TO_POINTER(FALSE)); } gtk_tree_path_free(path); @@ -167,7 +191,8 @@ static void trg_torrent_model_ref_free(gpointer data) { gtk_tree_row_reference_free(rr); } -static void trg_torrent_model_init(TrgTorrentModel * self) { +static void trg_torrent_model_init(TrgTorrentModel * self) +{ TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(self); GType column_types[TORRENT_COLUMN_COLUMNS]; @@ -210,35 +235,43 @@ static void trg_torrent_model_init(TrgTorrentModel * self) { column_types[TORRENT_COLUMN_LASTACTIVE] = G_TYPE_INT64; gtk_list_store_set_column_types(GTK_LIST_STORE(self), - TORRENT_COLUMN_COLUMNS, column_types); + TORRENT_COLUMN_COLUMNS, column_types); priv->ht = g_hash_table_new_full(g_int64_hash, g_int64_equal, - (GDestroyNotify) g_free, trg_torrent_model_ref_free); + (GDestroyNotify) g_free, + trg_torrent_model_ref_free); g_object_set_data(G_OBJECT(self), PROP_REMOVE_IN_PROGRESS, - GINT_TO_POINTER(FALSE)); + GINT_TO_POINTER(FALSE)); priv->urlHostRegex = trg_uri_host_regex_new(); } -gboolean trg_torrent_model_is_remove_in_progress(TrgTorrentModel * model) { +gboolean trg_torrent_model_is_remove_in_progress(TrgTorrentModel * model) +{ return (gboolean) GPOINTER_TO_INT(g_object_get_data - (G_OBJECT(model), - PROP_REMOVE_IN_PROGRESS)); + (G_OBJECT(model), + PROP_REMOVE_IN_PROGRESS)); } -static gboolean trg_torrent_model_reload_dir_aliases_foreachfunc( - GtkTreeModel * model, GtkTreePath * path G_GNUC_UNUSED, - GtkTreeIter * iter, gpointer gdata) { +static gboolean +trg_torrent_model_reload_dir_aliases_foreachfunc(GtkTreeModel * model, + GtkTreePath * + path G_GNUC_UNUSED, + GtkTreeIter * iter, + gpointer gdata) +{ gchar *downloadDir, *shortDownloadDir; - gtk_tree_model_get(model, iter, TORRENT_COLUMN_DOWNLOADDIR, &downloadDir, - -1); + gtk_tree_model_get(model, iter, TORRENT_COLUMN_DOWNLOADDIR, + &downloadDir, -1); - shortDownloadDir = shorten_download_dir((TrgClient *) gdata, downloadDir); + shortDownloadDir = + shorten_download_dir((TrgClient *) gdata, downloadDir); gtk_list_store_set(GTK_LIST_STORE(model), iter, - TORRENT_COLUMN_DOWNLOADDIR_SHORT, shortDownloadDir, -1); + TORRENT_COLUMN_DOWNLOADDIR_SHORT, shortDownloadDir, + -1); g_free(downloadDir); g_free(shortDownloadDir); @@ -246,55 +279,56 @@ static gboolean trg_torrent_model_reload_dir_aliases_foreachfunc( return FALSE; } -void trg_torrent_model_reload_dir_aliases(TrgClient * tc, GtkTreeModel * model) { +void trg_torrent_model_reload_dir_aliases(TrgClient * tc, + GtkTreeModel * model) +{ gtk_tree_model_foreach(model, - trg_torrent_model_reload_dir_aliases_foreachfunc, tc); + trg_torrent_model_reload_dir_aliases_foreachfunc, + tc); g_signal_emit(model, signals[TMODEL_STATE_CHANGED], 0, - TORRENT_UPDATE_PATH_CHANGE); + TORRENT_UPDATE_PATH_CHANGE); } -static gboolean trg_torrent_model_stats_scan_foreachfunc(GtkTreeModel * model, - GtkTreePath * path G_GNUC_UNUSED, GtkTreeIter * iter, gpointer gdata) { +static gboolean trg_torrent_model_stats_scan_foreachfunc(GtkTreeModel * + model, + GtkTreePath * + path + G_GNUC_UNUSED, + GtkTreeIter * + iter, + gpointer gdata) +{ trg_torrent_model_update_stats *stats = - (trg_torrent_model_update_stats *) gdata; + (trg_torrent_model_update_stats *) gdata; guint flags; gtk_tree_model_get(model, iter, TORRENT_COLUMN_FLAGS, &flags, -1); - if (flags & TORRENT_FLAG_SEEDING - ) + if (flags & TORRENT_FLAG_SEEDING) stats->seeding++; - else if (flags & TORRENT_FLAG_DOWNLOADING - ) + else if (flags & TORRENT_FLAG_DOWNLOADING) stats->down++; - else if (flags & TORRENT_FLAG_PAUSED - ) + else if (flags & TORRENT_FLAG_PAUSED) stats->paused++; - if (flags & TORRENT_FLAG_ERROR - ) + if (flags & TORRENT_FLAG_ERROR) stats->error++; - if (flags & TORRENT_FLAG_COMPLETE - ) + if (flags & TORRENT_FLAG_COMPLETE) stats->complete++; else stats->incomplete++; - if (flags & TORRENT_FLAG_CHECKING - ) + if (flags & TORRENT_FLAG_CHECKING) stats->checking++; - if (flags & TORRENT_FLAG_ACTIVE - ) + if (flags & TORRENT_FLAG_ACTIVE) stats->active++; - if (flags & TORRENT_FLAG_SEEDING_WAIT - ) + if (flags & TORRENT_FLAG_SEEDING_WAIT) stats->seed_wait++; - if (flags & TORRENT_FLAG_DOWNLOADING_WAIT - ) + if (flags & TORRENT_FLAG_DOWNLOADING_WAIT) stats->down_wait++; stats->count++; @@ -302,16 +336,19 @@ static gboolean trg_torrent_model_stats_scan_foreachfunc(GtkTreeModel * model, return FALSE; } -void trg_torrent_model_remove_all(TrgTorrentModel * model) { +void trg_torrent_model_remove_all(TrgTorrentModel * model) +{ TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(model); g_hash_table_remove_all(priv->ht); gtk_list_store_clear(GTK_LIST_STORE(model)); } -gchar *shorten_download_dir(TrgClient * tc, const gchar * downloadDir) { +gchar *shorten_download_dir(TrgClient * tc, const gchar * downloadDir) +{ TrgPrefs *prefs = trg_client_get_prefs(tc); - JsonArray *labels = trg_prefs_get_array(prefs, TRG_PREFS_KEY_DESTINATIONS, - TRG_PREFS_CONNECTION); + JsonArray *labels = + trg_prefs_get_array(prefs, TRG_PREFS_KEY_DESTINATIONS, + TRG_PREFS_CONNECTION); JsonObject *session = trg_client_get_session(tc); const gchar *defaultDownloadDir = session_get_download_dir(session); gchar *shortDownloadDir = NULL; @@ -321,13 +358,15 @@ gchar *shorten_download_dir(TrgClient * tc, const gchar * downloadDir) { if (labelsList) { GList *li; for (li = labelsList; li; li = g_list_next(li)) { - JsonObject *labelObj = json_node_get_object( - (JsonNode *) li->data); - const gchar *labelDir = json_object_get_string_member(labelObj, - TRG_PREFS_KEY_DESTINATIONS_SUBKEY_DIR); + JsonObject *labelObj = json_node_get_object((JsonNode *) + li->data); + const gchar *labelDir = + json_object_get_string_member(labelObj, + TRG_PREFS_KEY_DESTINATIONS_SUBKEY_DIR); if (!g_strcmp0(downloadDir, labelDir)) { - const gchar *labelLabel = json_object_get_string_member( - labelObj, TRG_PREFS_SUBKEY_LABEL); + const gchar *labelLabel = + json_object_get_string_member(labelObj, + TRG_PREFS_SUBKEY_LABEL); shortDownloadDir = g_strdup(labelLabel); break; } @@ -355,9 +394,13 @@ gchar *shorten_download_dir(TrgClient * tc, const gchar * downloadDir) { return g_strdup(downloadDir); } -static inline void update_torrent_iter(TrgTorrentModel * model, TrgClient * tc, - gint64 rpcv, gint64 serial, GtkTreeIter * iter, JsonObject * t, - trg_torrent_model_update_stats * stats, guint *whatsChanged) { +static inline void update_torrent_iter(TrgTorrentModel * model, + TrgClient * tc, gint64 rpcv, + gint64 serial, GtkTreeIter * iter, + JsonObject * t, + trg_torrent_model_update_stats * + stats, guint * whatsChanged) +{ TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(model); GtkListStore *ls = GTK_LIST_STORE(model); guint lastFlags, newFlags; @@ -390,147 +433,154 @@ static inline void update_torrent_iter(TrgTorrentModel * model, TrgClient * tc, trackerStats = torrent_get_tracker_stats(t); gtk_tree_model_get(GTK_TREE_MODEL(model), iter, TORRENT_COLUMN_FLAGS, - &lastFlags, TORRENT_COLUMN_JSON, &lastJson, - TORRENT_COLUMN_DOWNLOADDIR, &lastDownloadDir, -1); + &lastFlags, TORRENT_COLUMN_JSON, &lastJson, + TORRENT_COLUMN_DOWNLOADDIR, &lastDownloadDir, -1); json_object_ref(t); if (json_array_get_length(trackerStats) > 0) { - JsonObject *firstTracker = json_array_get_object_element(trackerStats, - 0); + JsonObject *firstTracker = + json_array_get_object_element(trackerStats, + 0); firstTrackerHost = trg_gregex_get_first(priv->urlHostRegex, - tracker_stats_get_host(firstTracker)); + tracker_stats_get_host + (firstTracker)); } lpd = peerfrom_get_lpd(pf); if (newFlags & TORRENT_FLAG_ACTIVE) { if (lpd >= 0) { - peerSources = g_strdup_printf( - "%ld / %ld / %ld / %ld / %ld / %ld / %ld", - peerfrom_get_trackers(pf), peerfrom_get_incoming(pf), - peerfrom_get_ltep(pf), peerfrom_get_dht(pf), - peerfrom_get_pex(pf), lpd, peerfrom_get_resume(pf)); + peerSources = + g_strdup_printf("%ld / %ld / %ld / %ld / %ld / %ld / %ld", + peerfrom_get_trackers(pf), + peerfrom_get_incoming(pf), + peerfrom_get_ltep(pf), + peerfrom_get_dht(pf), peerfrom_get_pex(pf), + lpd, peerfrom_get_resume(pf)); } else { - peerSources = g_strdup_printf( - "%ld / %ld / %ld / %ld / %ld / N/A / %ld", - peerfrom_get_trackers(pf), peerfrom_get_incoming(pf), - peerfrom_get_ltep(pf), peerfrom_get_dht(pf), - peerfrom_get_pex(pf), peerfrom_get_resume(pf)); + peerSources = + g_strdup_printf("%ld / %ld / %ld / %ld / %ld / N/A / %ld", + peerfrom_get_trackers(pf), + peerfrom_get_incoming(pf), + peerfrom_get_ltep(pf), + peerfrom_get_dht(pf), peerfrom_get_pex(pf), + peerfrom_get_resume(pf)); } } #ifdef DEBUG gtk_list_store_set(ls, iter, TORRENT_COLUMN_ICON, statusIcon, -1); gtk_list_store_set(ls, iter, - TORRENT_COLUMN_NAME, torrent_get_name(t), -1); + TORRENT_COLUMN_NAME, torrent_get_name(t), -1); gtk_list_store_set(ls, iter, - TORRENT_COLUMN_SIZE, torrent_get_size(t), -1); + TORRENT_COLUMN_SIZE, torrent_get_size(t), -1); gtk_list_store_set(ls, iter, - TORRENT_COLUMN_DONE, - (newFlags & TORRENT_FLAG_CHECKING) ? - torrent_get_recheck_progress(t) - : torrent_get_percent_done(t), -1); + TORRENT_COLUMN_DONE, + (newFlags & TORRENT_FLAG_CHECKING) ? + torrent_get_recheck_progress(t) + : torrent_get_percent_done(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_STATUS, statusString, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_DOWNSPEED, downRate, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FLAGS, newFlags, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_UPSPEED, upRate, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_ETA, - torrent_get_eta(t), -1); + torrent_get_eta(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_UPLOADED, uploaded, -1); gtk_list_store_set(ls, iter, - TORRENT_COLUMN_DOWNLOADED, downloaded, -1); + TORRENT_COLUMN_DOWNLOADED, downloaded, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_RATIO, - uploaded > 0 - && downloaded > - 0 ? (double) uploaded / (double) downloaded : 0, - -1); + uploaded > 0 + && downloaded > + 0 ? (double) uploaded / (double) downloaded : 0, + -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_ID, id, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_JSON, t, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_UPDATESERIAL, serial, -1); gtk_list_store_set(ls, iter, - TORRENT_COLUMN_ADDED, torrent_get_added_date(t), - -1); + TORRENT_COLUMN_ADDED, torrent_get_added_date(t), + -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_DOWNLOADDIR, - downloadDir, -1); + downloadDir, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_BANDWIDTH_PRIORITY, - torrent_get_bandwidth_priority(t), -1); + torrent_get_bandwidth_priority(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_DONE_DATE, - torrent_get_done_date(t), -1); + torrent_get_done_date(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMPEX, - peerfrom_get_pex(pf), -1); + peerfrom_get_pex(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMDHT, - peerfrom_get_dht(pf), -1); + peerfrom_get_dht(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMTRACKERS, - peerfrom_get_trackers(pf), -1); + peerfrom_get_trackers(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMLTEP, - peerfrom_get_ltep(pf), -1); + peerfrom_get_ltep(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMRESUME, - peerfrom_get_resume(pf), -1); + peerfrom_get_resume(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMINCOMING, - peerfrom_get_incoming(pf), -1); + peerfrom_get_incoming(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_PEER_SOURCES, - peerSources, -1); + peerSources, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_PEERS_CONNECTED, - torrent_get_peers_connected(t), -1); + torrent_get_peers_connected(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_PEERS_TO_US, - torrent_get_peers_sending_to_us(t), -1); + torrent_get_peers_sending_to_us(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_PEERS_FROM_US, - torrent_get_peers_getting_from_us(t), -1); + torrent_get_peers_getting_from_us(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_TRACKERHOST, - firstTrackerHost ? firstTrackerHost : "", -1); + firstTrackerHost ? firstTrackerHost : "", -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_QUEUE_POSITION, - torrent_get_queue_position(t), -1); + torrent_get_queue_position(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_LASTACTIVE, - torrent_get_activity_date(t), -1); + torrent_get_activity_date(t), -1); #else gtk_list_store_set(ls, iter, TORRENT_COLUMN_ICON, statusIcon, - TORRENT_COLUMN_ADDED, torrent_get_added_date(t), - TORRENT_COLUMN_DONE_DATE, torrent_get_done_date(t), - TORRENT_COLUMN_NAME, torrent_get_name(t), TORRENT_COLUMN_SIZE, - torrent_get_size(t), TORRENT_COLUMN_DONE, - (newFlags & TORRENT_FLAG_CHECKING) ? - torrent_get_recheck_progress(t) - : torrent_get_percent_done(t), - TORRENT_COLUMN_STATUS, statusString, - TORRENT_COLUMN_DOWNSPEED, downRate, - TORRENT_COLUMN_FLAGS, newFlags, - TORRENT_COLUMN_UPSPEED, upRate, TORRENT_COLUMN_ETA, - torrent_get_eta(t), TORRENT_COLUMN_UPLOADED, - uploaded, TORRENT_COLUMN_DOWNLOADED, downloaded, - TORRENT_COLUMN_FROMPEX, peerfrom_get_pex(pf), - TORRENT_COLUMN_FROMDHT, peerfrom_get_dht(pf), - TORRENT_COLUMN_FROMTRACKERS, - peerfrom_get_trackers(pf), TORRENT_COLUMN_FROMLTEP, - peerfrom_get_ltep(pf), TORRENT_COLUMN_FROMRESUME, - peerfrom_get_resume(pf), - TORRENT_COLUMN_FROMINCOMING, - peerfrom_get_incoming(pf), - TORRENT_COLUMN_PEER_SOURCES, peerSources, - TORRENT_COLUMN_PEERS_CONNECTED, - torrent_get_peers_connected(t), - TORRENT_COLUMN_PEERS_TO_US, - torrent_get_peers_sending_to_us(t), - TORRENT_COLUMN_PEERS_FROM_US, - torrent_get_peers_getting_from_us(t), - TORRENT_COLUMN_QUEUE_POSITION, - torrent_get_queue_position(t), - TORRENT_COLUMN_LASTACTIVE, - torrent_get_activity_date(t), TORRENT_COLUMN_RATIO, - uploaded > 0 - && downloaded > - 0 ? (double) uploaded / (double) downloaded : 0, - TORRENT_COLUMN_DOWNLOADDIR, downloadDir, - TORRENT_COLUMN_BANDWIDTH_PRIORITY, - torrent_get_bandwidth_priority(t), - TORRENT_COLUMN_ID, id, TORRENT_COLUMN_JSON, t, - TORRENT_COLUMN_TRACKERHOST, - firstTrackerHost ? firstTrackerHost : "", - TORRENT_COLUMN_UPDATESERIAL, serial, -1); + TORRENT_COLUMN_ADDED, torrent_get_added_date(t), + TORRENT_COLUMN_DONE_DATE, torrent_get_done_date(t), + TORRENT_COLUMN_NAME, torrent_get_name(t), + TORRENT_COLUMN_SIZE, torrent_get_size(t), + TORRENT_COLUMN_DONE, + (newFlags & TORRENT_FLAG_CHECKING) ? + torrent_get_recheck_progress(t) + : torrent_get_percent_done(t), + TORRENT_COLUMN_STATUS, statusString, + TORRENT_COLUMN_DOWNSPEED, downRate, + TORRENT_COLUMN_FLAGS, newFlags, + TORRENT_COLUMN_UPSPEED, upRate, TORRENT_COLUMN_ETA, + torrent_get_eta(t), TORRENT_COLUMN_UPLOADED, + uploaded, TORRENT_COLUMN_DOWNLOADED, downloaded, + TORRENT_COLUMN_FROMPEX, peerfrom_get_pex(pf), + TORRENT_COLUMN_FROMDHT, peerfrom_get_dht(pf), + TORRENT_COLUMN_FROMTRACKERS, + peerfrom_get_trackers(pf), TORRENT_COLUMN_FROMLTEP, + peerfrom_get_ltep(pf), TORRENT_COLUMN_FROMRESUME, + peerfrom_get_resume(pf), + TORRENT_COLUMN_FROMINCOMING, + peerfrom_get_incoming(pf), + TORRENT_COLUMN_PEER_SOURCES, peerSources, + TORRENT_COLUMN_PEERS_CONNECTED, + torrent_get_peers_connected(t), + TORRENT_COLUMN_PEERS_TO_US, + torrent_get_peers_sending_to_us(t), + TORRENT_COLUMN_PEERS_FROM_US, + torrent_get_peers_getting_from_us(t), + TORRENT_COLUMN_QUEUE_POSITION, + torrent_get_queue_position(t), + TORRENT_COLUMN_LASTACTIVE, + torrent_get_activity_date(t), TORRENT_COLUMN_RATIO, + uploaded > 0 + && downloaded > + 0 ? (double) uploaded / (double) downloaded : 0, + TORRENT_COLUMN_DOWNLOADDIR, downloadDir, + TORRENT_COLUMN_BANDWIDTH_PRIORITY, + torrent_get_bandwidth_priority(t), + TORRENT_COLUMN_ID, id, TORRENT_COLUMN_JSON, t, + TORRENT_COLUMN_TRACKERHOST, + firstTrackerHost ? firstTrackerHost : "", + TORRENT_COLUMN_UPDATESERIAL, serial, -1); #endif if (!lastDownloadDir || g_strcmp0(downloadDir, lastDownloadDir)) { gchar *shortDownloadDir = shorten_download_dir(tc, downloadDir); gtk_list_store_set(ls, iter, TORRENT_COLUMN_DOWNLOADDIR_SHORT, - shortDownloadDir, -1); + shortDownloadDir, -1); g_free(shortDownloadDir); *whatsChanged |= TORRENT_UPDATE_PATH_CHANGE; } @@ -539,7 +589,7 @@ static inline void update_torrent_iter(TrgTorrentModel * model, TrgClient * tc, json_object_unref(lastJson); if ((lastFlags & TORRENT_FLAG_DOWNLOADING) - && (newFlags & TORRENT_FLAG_COMPLETE)) + && (newFlags & TORRENT_FLAG_COMPLETE)) g_signal_emit(model, signals[TMODEL_TORRENT_COMPLETED], 0, iter); if (lastFlags != newFlags) @@ -558,7 +608,8 @@ static inline void update_torrent_iter(TrgTorrentModel * model, TrgClient * tc, g_free(statusIcon); } -TrgTorrentModel *trg_torrent_model_new(void) { +TrgTorrentModel *trg_torrent_model_new(void) +{ return g_object_new(TRG_TYPE_TORRENT_MODEL, NULL); } @@ -567,18 +618,23 @@ struct TrgModelRemoveData { gint64 currentSerial; }; -GHashTable *get_torrent_table(TrgTorrentModel * model) { +GHashTable *get_torrent_table(TrgTorrentModel * model) +{ TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(model); return priv->ht; } gboolean trg_model_find_removed_foreachfunc(GtkTreeModel * model, - GtkTreePath * path G_GNUC_UNUSED, GtkTreeIter * iter, gpointer gdata) { + GtkTreePath * + path G_GNUC_UNUSED, + GtkTreeIter * iter, + gpointer gdata) +{ struct TrgModelRemoveData *args = (struct TrgModelRemoveData *) gdata; gint64 rowSerial; - gtk_tree_model_get(model, iter, TORRENT_COLUMN_UPDATESERIAL, &rowSerial, - -1); + gtk_tree_model_get(model, iter, TORRENT_COLUMN_UPDATESERIAL, + &rowSerial, -1); if (rowSerial != args->currentSerial) { gint64 *id = g_new(gint64, 1); @@ -590,19 +646,21 @@ gboolean trg_model_find_removed_foreachfunc(GtkTreeModel * model, } GList *trg_torrent_model_find_removed(GtkTreeModel * model, - gint64 currentSerial) { + gint64 currentSerial) +{ struct TrgModelRemoveData args; args.toRemove = NULL; args.currentSerial = currentSerial; gtk_tree_model_foreach(GTK_TREE_MODEL(model), - trg_model_find_removed_foreachfunc, &args); + trg_model_find_removed_foreachfunc, &args); return args.toRemove; } gboolean get_torrent_data(GHashTable * table, gint64 id, JsonObject ** t, - GtkTreeIter * out_iter) { + GtkTreeIter * out_iter) +{ gpointer result = g_hash_table_lookup(table, &id); gboolean found = FALSE; @@ -616,7 +674,8 @@ gboolean get_torrent_data(GHashTable * table, gint64 id, JsonObject ** t, if (out_iter) *out_iter = iter; if (t) - gtk_tree_model_get(model, &iter, TORRENT_COLUMN_JSON, t, -1); + gtk_tree_model_get(model, &iter, TORRENT_COLUMN_JSON, t, + -1); found = TRUE; gtk_tree_path_free(path); } @@ -625,16 +684,22 @@ gboolean get_torrent_data(GHashTable * table, gint64 id, JsonObject ** t, return found; } -static void trg_torrent_model_stat_counts_clear( - trg_torrent_model_update_stats *stats) { - stats->count = stats->down = stats->error = stats->paused = stats->seeding = - stats->complete = stats->incomplete = stats->active = - stats->checking = stats->seed_wait = stats->down_wait = 0; +static void +trg_torrent_model_stat_counts_clear(trg_torrent_model_update_stats * stats) +{ + stats->count = stats->down = stats->error = stats->paused = + stats->seeding = stats->complete = stats->incomplete = + stats->active = stats->checking = stats->seed_wait = + stats->down_wait = 0; } -trg_torrent_model_update_stats *trg_torrent_model_update( - TrgTorrentModel * model, TrgClient * tc, JsonObject * response, - gint mode) { +trg_torrent_model_update_stats *trg_torrent_model_update(TrgTorrentModel * + model, + TrgClient * tc, + JsonObject * + response, + gint mode) +{ TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(model); GList *torrentList; @@ -662,15 +727,15 @@ trg_torrent_model_update_stats *trg_torrent_model_update( id = torrent_get_id(t); result = - mode == TORRENT_GET_MODE_FIRST ? NULL : - g_hash_table_lookup(priv->ht, &id); + mode == TORRENT_GET_MODE_FIRST ? NULL : + g_hash_table_lookup(priv->ht, &id); if (!result) { gtk_list_store_append(GTK_LIST_STORE(model), &iter); whatsChanged |= TORRENT_UPDATE_ADDREMOVE; update_torrent_iter(model, tc, rpcv, trg_client_get_serial(tc), - &iter, t, &(priv->stats), &whatsChanged); + &iter, t, &(priv->stats), &whatsChanged); path = gtk_tree_model_get_path(GTK_TREE_MODEL(model), &iter); rr = gtk_tree_row_reference_new(GTK_TREE_MODEL(model), path); @@ -680,16 +745,17 @@ trg_torrent_model_update_stats *trg_torrent_model_update( gtk_tree_path_free(path); if (mode != TORRENT_GET_MODE_FIRST) - g_signal_emit(model, signals[TMODEL_TORRENT_ADDED], 0, &iter); + g_signal_emit(model, signals[TMODEL_TORRENT_ADDED], 0, + &iter); } else { - path = gtk_tree_row_reference_get_path( - (GtkTreeRowReference *) result); + path = gtk_tree_row_reference_get_path((GtkTreeRowReference *) + result); if (path) { if (gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, - path)) { + path)) { update_torrent_iter(model, tc, rpcv, - trg_client_get_serial(tc), &iter, t, &(priv->stats), - &whatsChanged); + trg_client_get_serial(tc), &iter, + t, &(priv->stats), &whatsChanged); } gtk_tree_path_free(path); } @@ -699,8 +765,9 @@ trg_torrent_model_update_stats *trg_torrent_model_update( g_list_free(torrentList); if (mode == TORRENT_GET_MODE_UPDATE) { - GList *hitlist = trg_torrent_model_find_removed(GTK_TREE_MODEL(model), - trg_client_get_serial(tc)); + GList *hitlist = + trg_torrent_model_find_removed(GTK_TREE_MODEL(model), + trg_client_get_serial(tc)); if (hitlist) { for (li = hitlist; li; li = g_list_next(li)) { g_hash_table_remove(priv->ht, li->data); @@ -724,12 +791,14 @@ trg_torrent_model_update_stats *trg_torrent_model_update( if (whatsChanged != 0) { if ((whatsChanged & TORRENT_UPDATE_ADDREMOVE) - || (whatsChanged & TORRENT_UPDATE_STATE_CHANGE)) { + || (whatsChanged & TORRENT_UPDATE_STATE_CHANGE)) { trg_torrent_model_stat_counts_clear(&priv->stats); gtk_tree_model_foreach(GTK_TREE_MODEL(model), - trg_torrent_model_stats_scan_foreachfunc, &(priv->stats)); + trg_torrent_model_stats_scan_foreachfunc, + &(priv->stats)); } - g_signal_emit(model, signals[TMODEL_STATE_CHANGED], 0, whatsChanged); + g_signal_emit(model, signals[TMODEL_STATE_CHANGED], 0, + whatsChanged); } return &(priv->stats); diff --git a/src/trg-torrent-props-dialog.c b/src/trg-torrent-props-dialog.c index 399405b..05ebaa8 100644 --- a/src/trg-torrent-props-dialog.c +++ b/src/trg-torrent-props-dialog.c @@ -137,12 +137,10 @@ trg_torrent_props_response_cb(GtkDialog * dlg, gint res_id, json_object_set_int_member(args, FIELD_SEED_RATIO_MODE, gtk_combo_box_get_active(GTK_COMBO_BOX - (priv-> - seedRatioMode))); + (priv->seedRatioMode))); json_object_set_int_member(args, FIELD_BANDWIDTH_PRIORITY, gtk_combo_box_get_active(GTK_COMBO_BOX - (priv-> - bandwidthPriorityCombo)) + (priv->bandwidthPriorityCombo)) - 1); trg_json_widgets_save(priv->widgets, args); @@ -188,25 +186,24 @@ static GtkWidget *trg_props_limitsPage(TrgTorrentPropsDialog * win, if (json_object_has_member(json, FIELD_QUEUE_POSITION)) { w = trg_json_widget_spin_new(&priv->widgets, json, - FIELD_QUEUE_POSITION, NULL, 0, - INT_MAX, 1); + FIELD_QUEUE_POSITION, NULL, 0, + INT_MAX, 1); hig_workarea_add_row(t, &row, _("Queue Position:"), w, w); } tb = trg_json_widget_check_new(&priv->widgets, json, FIELD_DOWNLOAD_LIMITED, - _("Limit download speed (KiB/s)"), NULL); + _("Limit download speed (KiB/s)"), + NULL); w = trg_json_widget_spin_new(&priv->widgets, json, - FIELD_DOWNLOAD_LIMIT, tb, 0, INT_MAX, - 1); + FIELD_DOWNLOAD_LIMIT, tb, 0, INT_MAX, 1); hig_workarea_add_row_w(t, &row, tb, w, NULL); tb = trg_json_widget_check_new(&priv->widgets, json, FIELD_UPLOAD_LIMITED, _("Limit upload speed (KiB/s)"), NULL); w = trg_json_widget_spin_new(&priv->widgets, json, - FIELD_UPLOAD_LIMIT, tb, 0, INT_MAX, - 1); + FIELD_UPLOAD_LIMIT, tb, 0, INT_MAX, 1); hig_workarea_add_row_w(t, &row, tb, w, NULL); hig_workarea_add_section_title(t, &row, _("Seeding")); @@ -220,8 +217,8 @@ static GtkWidget *trg_props_limitsPage(TrgTorrentPropsDialog * win, hig_workarea_add_row(t, &row, _("Seed ratio mode:"), w, NULL); w = trg_json_widget_spin_new(&priv->widgets, json, - FIELD_SEED_RATIO_LIMIT, NULL, 0, - INT_MAX, 0.2); + FIELD_SEED_RATIO_LIMIT, NULL, 0, + INT_MAX, 0.2); seed_ratio_mode_changed_cb(priv->seedRatioMode, w); g_signal_connect(G_OBJECT(priv->seedRatioMode), "changed", G_CALLBACK(seed_ratio_mode_changed_cb), w); @@ -230,8 +227,7 @@ static GtkWidget *trg_props_limitsPage(TrgTorrentPropsDialog * win, hig_workarea_add_section_title(t, &row, _("Peers")); w = trg_json_widget_spin_new(&priv->widgets, json, - FIELD_PEER_LIMIT, NULL, 0, INT_MAX, - 5); + FIELD_PEER_LIMIT, NULL, 0, INT_MAX, 5); hig_workarea_add_row(t, &row, _("Peer limit:"), w, w); return t; diff --git a/src/trg-tree-view.c b/src/trg-tree-view.c index de2cd71..4265c7d 100644 --- a/src/trg-tree-view.c +++ b/src/trg-tree-view.c @@ -287,7 +287,8 @@ static GtkTreeViewColumn gtk_tree_view_column_set_attributes(column, renderer, "file-id", desc->model_column_extra, - "file-name", desc->model_column, NULL); + "file-name", desc->model_column, + NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); @@ -312,7 +313,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "text", - desc->model_column, + desc-> + model_column, NULL); break; @@ -321,7 +323,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "speed-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_EPOCH: @@ -329,7 +332,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "epoch-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_ETA: @@ -337,7 +341,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "eta-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_SIZE: @@ -345,7 +350,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "size-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_PROG: @@ -353,7 +359,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_RATIO: @@ -361,17 +368,19 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "ratio-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_WANTED: column = gtk_tree_view_column_new(); renderer = trg_cell_renderer_wanted_new(); /*gtk_cell_renderer_set_alignment(GTK_CELL_RENDERER(renderer), 0.5f, - 0.0);*/ + 0.0); */ gtk_tree_view_column_set_title(column, desc->header); gtk_tree_view_column_pack_start(column, renderer, TRUE); - gtk_tree_view_column_set_attributes(column, renderer, "wanted-value", + gtk_tree_view_column_set_attributes(column, renderer, + "wanted-value", desc->model_column, NULL); break; case TRG_COLTYPE_STOCKICONTEXT: @@ -385,7 +394,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "priority-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_NUMGTZERO: @@ -393,7 +403,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_NUMGTEQZERO: @@ -401,7 +412,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "value", - desc->model_column, + desc-> + model_column, NULL); break; } @@ -555,7 +567,8 @@ void trg_tree_view_setup_columns(TrgTreeView * tv) json_node_get_string ((JsonNode *) - cli->data)); + cli-> + data)); if (desc) { gint64 width = json_node_get_int((JsonNode *) wli->data); trg_tree_view_add_column(tv, desc, width); diff --git a/src/util.c b/src/util.c index ef03482..7594c46 100644 --- a/src/util.c +++ b/src/util.c @@ -38,93 +38,93 @@ ***/ const int disk_K = 1024; -const char * disk_K_str = N_("KiB"); -const char * disk_M_str = N_("MiB"); -const char * disk_G_str = N_("GiB"); -const char * disk_T_str = N_("TiB"); +const char *disk_K_str = N_("KiB"); +const char *disk_M_str = N_("MiB"); +const char *disk_G_str = N_("GiB"); +const char *disk_T_str = N_("TiB"); const int speed_K = 1024; -const char * speed_K_str = N_("KiB/s"); -const char * speed_M_str = N_("MiB/s"); -const char * speed_G_str = N_("GiB/s"); -const char * speed_T_str = N_("TiB/s"); +const char *speed_K_str = N_("KiB/s"); +const char *speed_M_str = N_("MiB/s"); +const char *speed_G_str = N_("GiB/s"); +const char *speed_T_str = N_("TiB/s"); -struct formatter_unit -{ - char * name; +struct formatter_unit { + char *name; gint64 value; }; -struct formatter_units -{ +struct formatter_units { struct formatter_unit units[4]; }; enum { TR_FMT_KB, TR_FMT_MB, TR_FMT_GB, TR_FMT_TB }; static void -formatter_init( struct formatter_units * units, - unsigned int kilo, - const char * kb, const char * mb, - const char * gb, const char * tb ) +formatter_init(struct formatter_units *units, + unsigned int kilo, + const char *kb, const char *mb, + const char *gb, const char *tb) { guint64 value = kilo; - units->units[TR_FMT_KB].name = g_strdup( kb ); + units->units[TR_FMT_KB].name = g_strdup(kb); units->units[TR_FMT_KB].value = value; value *= kilo; - units->units[TR_FMT_MB].name = g_strdup( mb ); + units->units[TR_FMT_MB].name = g_strdup(mb); units->units[TR_FMT_MB].value = value; value *= kilo; - units->units[TR_FMT_GB].name = g_strdup( gb ); + units->units[TR_FMT_GB].name = g_strdup(gb); units->units[TR_FMT_GB].value = value; value *= kilo; - units->units[TR_FMT_TB].name = g_strdup( tb ); + units->units[TR_FMT_TB].name = g_strdup(tb); units->units[TR_FMT_TB].value = value; } -static char* -formatter_get_size_str( const struct formatter_units * u, - char * buf, gint64 bytes, size_t buflen ) +static char *formatter_get_size_str(const struct formatter_units *u, + char *buf, gint64 bytes, size_t buflen) { int precision; double value; - const char * units; - const struct formatter_unit * unit; - - if( bytes < u->units[1].value ) unit = &u->units[0]; - else if( bytes < u->units[2].value ) unit = &u->units[1]; - else if( bytes < u->units[3].value ) unit = &u->units[2]; - else unit = &u->units[3]; + const char *units; + const struct formatter_unit *unit; + + if (bytes < u->units[1].value) + unit = &u->units[0]; + else if (bytes < u->units[2].value) + unit = &u->units[1]; + else if (bytes < u->units[3].value) + unit = &u->units[2]; + else + unit = &u->units[3]; - value = (double)bytes / unit->value; + value = (double) bytes / unit->value; units = unit->name; - if( unit->value == 1 ) + if (unit->value == 1) precision = 0; - else if( value < 100 ) + else if (value < 100) precision = 2; else precision = 1; - tr_snprintf( buf, buflen, "%.*f %s", precision, value, units ); + tr_snprintf(buf, buflen, "%.*f %s", precision, value, units); return buf; } static struct formatter_units size_units; void -tr_formatter_size_init( unsigned int kilo, - const char * kb, const char * mb, - const char * gb, const char * tb ) +tr_formatter_size_init(unsigned int kilo, + const char *kb, const char *mb, + const char *gb, const char *tb) { - formatter_init( &size_units, kilo, kb, mb, gb, tb ); + formatter_init(&size_units, kilo, kb, mb, gb, tb); } -char* -tr_formatter_size_B( char * buf, gint64 bytes, size_t buflen ) +char *tr_formatter_size_B(char *buf, gint64 bytes, size_t buflen) { - return formatter_get_size_str( &size_units, buf, bytes, buflen ); + return formatter_get_size_str(&size_units, buf, bytes, buflen); } static struct formatter_units speed_units; @@ -132,31 +132,34 @@ static struct formatter_units speed_units; unsigned int tr_speed_K = 0u; void -tr_formatter_speed_init( unsigned int kilo, - const char * kb, const char * mb, - const char * gb, const char * tb ) +tr_formatter_speed_init(unsigned int kilo, + const char *kb, const char *mb, + const char *gb, const char *tb) { tr_speed_K = kilo; - formatter_init( &speed_units, kilo, kb, mb, gb, tb ); + formatter_init(&speed_units, kilo, kb, mb, gb, tb); } -char* -tr_formatter_speed_KBps( char * buf, double KBps, size_t buflen ) +char *tr_formatter_speed_KBps(char *buf, double KBps, size_t buflen) { const double K = speed_units.units[TR_FMT_KB].value; double speed = KBps; - if( speed <= 999.95 ) /* 0.0 KB to 999.9 KB */ - tr_snprintf( buf, buflen, "%d %s", (int)speed, speed_units.units[TR_FMT_KB].name ); + if (speed <= 999.95) /* 0.0 KB to 999.9 KB */ + tr_snprintf(buf, buflen, "%d %s", (int) speed, + speed_units.units[TR_FMT_KB].name); else { speed /= K; - if( speed <= 99.995 ) /* 0.98 MB to 99.99 MB */ - tr_snprintf( buf, buflen, "%.2f %s", speed, speed_units.units[TR_FMT_MB].name ); - else if (speed <= 999.95) /* 100.0 MB to 999.9 MB */ - tr_snprintf( buf, buflen, "%.1f %s", speed, speed_units.units[TR_FMT_MB].name ); + if (speed <= 99.995) /* 0.98 MB to 99.99 MB */ + tr_snprintf(buf, buflen, "%.2f %s", speed, + speed_units.units[TR_FMT_MB].name); + else if (speed <= 999.95) /* 100.0 MB to 999.9 MB */ + tr_snprintf(buf, buflen, "%.1f %s", speed, + speed_units.units[TR_FMT_MB].name); else { speed /= K; - tr_snprintf( buf, buflen, "%.1f %s", speed, speed_units.units[TR_FMT_GB].name ); + tr_snprintf(buf, buflen, "%.1f %s", speed, + speed_units.units[TR_FMT_GB].name); } } diff --git a/src/util.h b/src/util.h index 990cafa..07ab0bf 100644 --- a/src/util.h +++ b/src/util.h @@ -37,16 +37,16 @@ #define TR_RATIO_INF -2 extern const int disk_K; -extern const char * disk_K_str; -extern const char * disk_M_str; -extern const char * disk_G_str; -extern const char * disk_T_str; +extern const char *disk_K_str; +extern const char *disk_M_str; +extern const char *disk_G_str; +extern const char *disk_T_str; extern const int speed_K; -extern const char * speed_K_str; -extern const char * speed_M_str; -extern const char * speed_G_str; -extern const char * speed_T_str; +extern const char *speed_K_str; +extern const char *speed_M_str; +extern const char *speed_G_str; +extern const char *speed_T_str; void add_file_id_to_array(JsonObject * args, gchar * key, gint index); void g_str_slist_free(GSList * list); @@ -56,18 +56,16 @@ gchar *make_error_message(JsonObject * response, int status); void trg_error_dialog(GtkWindow * parent, trg_response * response); void -tr_formatter_size_init( unsigned int kilo, - const char * kb, const char * mb, - const char * gb, const char * tb ); -char* -tr_formatter_size_B( char * buf, gint64 bytes, size_t buflen ); +tr_formatter_size_init(unsigned int kilo, + const char *kb, const char *mb, + const char *gb, const char *tb); +char *tr_formatter_size_B(char *buf, gint64 bytes, size_t buflen); void -tr_formatter_speed_init( unsigned int kilo, - const char * kb, const char * mb, - const char * gb, const char * tb ); -char* -tr_formatter_speed_KBps( char * buf, double KBps, size_t buflen ); +tr_formatter_speed_init(unsigned int kilo, + const char *kb, const char *mb, + const char *gb, const char *tb); +char *tr_formatter_speed_KBps(char *buf, double KBps, size_t buflen); char *tr_strltime_long(char *buf, long seconds, size_t buflen); char *tr_strltime_short(char *buf, long seconds, size_t buflen); -- cgit v1.2.3