]> git.sur5r.net Git - minitube/commitdiff
Big 2.1 commit
authorFlavio <flavio@odisseo.local>
Thu, 18 Jul 2013 09:26:41 +0000 (11:26 +0200)
committerFlavio <flavio@odisseo.local>
Thu, 18 Jul 2013 09:26:41 +0000 (11:26 +0200)
165 files changed:
CHANGES
LICENSE.LGPL [deleted file]
empty.ts
images/worldwide.png
locale/ar.ts
locale/ca.ts
locale/ca_ES.ts [deleted file]
locale/cs_CZ.ts
locale/da.ts
locale/de_DE.ts
locale/el.ts
locale/es.ts
locale/es_AR.ts
locale/es_ES.ts
locale/fi.ts
locale/fi_FI.ts
locale/fr.ts
locale/he_IL.ts
locale/hr.ts [deleted file]
locale/hu.ts
locale/ia.ts
locale/it.ts
locale/ja_JP.ts
locale/jv.ts [deleted file]
locale/ky.ts
locale/locale.pri
locale/nl.ts [deleted file]
locale/pl.ts
locale/pl_PL.ts
locale/pt_BR.ts
locale/ro.ts
locale/ru.ts
locale/sk.ts
locale/sl.ts
locale/tr.ts
locale/zh_CN.ts
minitube.pro
resources.qrc
src/Suggester.h
src/aboutview.cpp
src/aboutview.h
src/aggregatevideosource.cpp [new file with mode: 0644]
src/aggregatevideosource.h [new file with mode: 0644]
src/autocomplete.cpp
src/autocomplete.h
src/channelaggregator.cpp [new file with mode: 0644]
src/channelaggregator.h [new file with mode: 0644]
src/channelitemdelegate.cpp [new file with mode: 0644]
src/channelitemdelegate.h [new file with mode: 0644]
src/channelmodel.cpp [new file with mode: 0644]
src/channelmodel.h [new file with mode: 0644]
src/channelsuggest.cpp
src/channelsuggest.h
src/channelview.cpp [new file with mode: 0644]
src/channelview.h [new file with mode: 0644]
src/constants.cpp
src/constants.h
src/database.cpp [new file with mode: 0644]
src/database.h [new file with mode: 0644]
src/diskcache.cpp
src/diskcache.h
src/downloaditem.cpp
src/downloaditem.h
src/downloadlistview.cpp
src/downloadlistview.h
src/downloadmanager.cpp
src/downloadmanager.h
src/downloadmodel.cpp
src/downloadmodel.h
src/downloadsettings.cpp
src/downloadsettings.h
src/downloadview.cpp
src/downloadview.h
src/fontutils.cpp
src/fontutils.h
src/global.h
src/globalshortcutbackend.cpp
src/globalshortcutbackend.h
src/globalshortcuts.cpp
src/globalshortcuts.h
src/gnomeglobalshortcutbackend.cpp
src/gnomeglobalshortcutbackend.h
src/gridwidget.cpp [new file with mode: 0644]
src/gridwidget.h [new file with mode: 0644]
src/homeview.cpp
src/homeview.h
src/jsfunctions.cpp [new file with mode: 0644]
src/jsfunctions.h [new file with mode: 0644]
src/loadingwidget.cpp
src/loadingwidget.h
src/main.cpp
src/mainwindow.cpp
src/mainwindow.h
src/mediaview.cpp
src/mediaview.h
src/networkaccess.cpp
src/networkaccess.h
src/painterutils.cpp [new file with mode: 0644]
src/painterutils.h [new file with mode: 0644]
src/playlistitemdelegate.cpp
src/playlistitemdelegate.h
src/playlistmodel.cpp
src/playlistmodel.h
src/playlistview.cpp
src/playlistview.h
src/refinesearchbutton.cpp
src/refinesearchbutton.h
src/refinesearchwidget.cpp
src/refinesearchwidget.h
src/regionsview.cpp
src/regionsview.h
src/searchparams.cpp
src/searchparams.h
src/searchview.cpp
src/searchview.h
src/segmentedcontrol.cpp
src/segmentedcontrol.h
src/sidebarheader.cpp
src/sidebarheader.h
src/sidebarwidget.cpp
src/sidebarwidget.h
src/spacer.cpp
src/spacer.h
src/standardfeedsview.cpp
src/standardfeedsview.h
src/suggester.h
src/temporary.cpp
src/temporary.h
src/updatechecker.cpp
src/updatechecker.h
src/urllineedit.h
src/userview.cpp [deleted file]
src/userview.h [deleted file]
src/utils.cpp
src/utils.h
src/video.cpp
src/video.h
src/videoareawidget.cpp
src/videoareawidget.h
src/videodefinition.cpp
src/videodefinition.h
src/videomimedata.cpp
src/videomimedata.h
src/videosource.cpp
src/videosource.h
src/videosourcewidget.cpp
src/videosourcewidget.h
src/view.h
src/ytcategories.cpp
src/ytcategories.h
src/ytfeedreader.cpp
src/ytfeedreader.h
src/ytregions.cpp
src/ytregions.h
src/ytsearch.cpp
src/ytsearch.h
src/ytsinglevideosource.cpp
src/ytsinglevideosource.h
src/ytstandardfeed.cpp
src/ytstandardfeed.h
src/ytsuggester.cpp
src/ytsuggester.h
src/ytuser.cpp [new file with mode: 0644]
src/ytuser.h [new file with mode: 0644]
style.css

diff --git a/CHANGES b/CHANGES
index a3127f831939d65ccc1f12d8d1d0016df7bdd2e9..f0f85805ea25704328b646a6a779495f6be6ea95 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,16 +1,39 @@
-2.0 - January ?? 2013
+2.1.1
+- Fixed VEVO videos playback
+- Fixed Ubuntu skin not being used
+
+2.1
+- Channel subscriptions
+- Move window by dragging from inside the video area
+- Faster startup
+- Optimizations and tweaks to the playlist
+- Float on top icon was missing on Mac & Windows
+- Compact mode window fixed aspect ratio on Mac
+- Ubuntu notifications
+- Fixed skipping to the next video
+- Fixed compact mode video cropped with very small window
+- Fixed long words or URLs in the video description causing a window resize
+- Fixed crash when resizing the playlist to a very small width
+
+2.0 - February 1 2013
 - YouTube categories and "standard feeds": "Most Popular", "Featured", etc
 - Country selection for YouTube categories and feeds
 - Autoupdate on Mac and Windows
-- Related videos are now appended to the video when pasting a YouTube link
+- Related videos
+- Related videos are now appended when pasting a YouTube link
+- Bigger and nicer 16:9 thumbnails
 - "Show 10 More" with a single click
 - Play video in the playlist with a single click on its thumbnail
-- OS X Mountain Lion notifications on video start
+- Disk cache for video thumbnails
+- OS X Notification Center notifications on video start
+- Ubuntu Ambiance theme integration
 - Fixed some YouTube links not working when pasted in the searchbox
 - Fixed playlist drag'n'drop
 - Fixed system language settings detection
 - Fixed clicking on channel names not working in some cases
 - Fixed incorrect number of downloads in status bar
+- Fixed looping video with Phonon VLC backend on Linux
+- New and updated translations
 
 1.9 - September 27, 2012
 - Adapted to YouTube changes
diff --git a/LICENSE.LGPL b/LICENSE.LGPL
deleted file mode 100644 (file)
index 5ab7695..0000000
+++ /dev/null
@@ -1,504 +0,0 @@
-                 GNU LESSER GENERAL PUBLIC LICENSE
-                      Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-\f
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-\f
-                 GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-\f
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-\f
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                           NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
index fba82a12aeb2a304e5b32a8c41f5a2eb67e73bf7..bbdcc604f63237b2331cace0e70d735711875193 100644 (file)
--- a/empty.ts
+++ b/empty.ts
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+        </translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in &apos;2 of 3&apos;</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in &apos;Cool video - part 1&apos;</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in &apos;Cool series - episode 1&apos;</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation type="unfinished"></translation>
     </message>
         <source>Most Popular</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"></translation>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation type="unfinished"></translation>
     </message>
index fb5f48bd5ce4ae0cac31e39d45a537a098d57e69..d676740ad2d812d033646451e9e12ed09e8a8d34 100644 (file)
Binary files a/images/worldwide.png and b/images/worldwide.png differ
index ab70e18a05032d380fcb4e1d8ff9e33e8599a6e8..d49a3e3dbab5eb9fd19f84d907d80269d3d9347d 100644 (file)
@@ -15,7 +15,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="38"/>
         <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
+        <translation>مرخّص لـ: %1</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="42"/>
@@ -88,7 +88,7 @@
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
-        <translation type="unfinished"/>
+        <translation>الرقم ال&amp;خاصّ:</translation>
     </message>
 </context>
 <context>
         <translation>قم بشراء رخصة</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>ترتيب بـ</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>بحث</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>جِد مقاطع فيديو وقنواتٍ بحسب الكلمة الرئيسة</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>أستعراض</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation>تصفح الفيديوهات حسب الفئة</translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>خطأ</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;قف</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>وقف التشغيل و العودة لوضع البحث</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;القفز</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>القفز للفيديو التالي</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;ايقاف مؤقت</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>ايقاف التشغيل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;شاشة كاملة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>تشغيل شاشة كاملة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>اخفاء القائمة و شريط المهام</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>اذهب الى صفحة فيديو YouTube و وقف التشغيل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>نسخ رابط YouTube الى clipboard</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>نسخ رابط الفيديو الى clipboard</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>اوجد أجزاء الفيديو الأخرى املا أن تكون في الترتيب الصحيح</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;إزالة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>إزالة الفيديو من القائمة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>الرفع الى &amp;اعلى</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>رفع المقاطع المختارة الى فوق في القائمة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>الانزال الى &amp;تحت</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>انزال المقاطع المختارة الى تحت في القائمة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>مسح تاريخ البحث. لا يمكن استعادته.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;الانتهاء</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>مع السلامة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;الموقع</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 على الشبكة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>‎الرجاء التبرع لمتابعة تطوير  %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;عن البرنامج</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>معلومات عن %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>البحث</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>كتم الصوت</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;التحميلات</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>عرض تفاصيل عن تحميلات الفيديو</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;التحميلات</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>تحميل الفيديو الحالي</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>شارك الفيديو الحالي باستخدام %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;البريد الإلكتروني</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>البريد الإلكتروني</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;اقفل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;اطفو علي القمة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;أوقف العرض التلقائي بعد الفيديو الحالي </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;أبلغ عن مشكلة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;خيارات البحث...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>المزيد...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>مقاطع ذات &amp;صلة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>شاهد مقاطع فيديو ذات صلة بهذا</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;البرنامج</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>اشتري %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;قراءة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;القائمة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;الفيديو</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;مشاهدة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;شارك</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;المساعدة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>اضغط %1 لرفع الصوت و %2 لخفضه</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>جاري فتح %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>هل تريد الخروج %1  رغم وجود تحميل?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>عند اغلاق %1 التحميل سيلغى.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>الاغلاق و الغاء التحميل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>انتظار انتهاء التحميل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>غادر &amp;الشاشة الكاملة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 الإصدار %2 متوفر الآن.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>ذكرني لاحقا</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>تحديث</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>خطأ: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>ال&amp;سابق</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>العودة إلى المجاز السابق</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>&amp;الواجهة الخفيفة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>أفتح صفحة الفيديو على &amp;YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>انسخ رابط الفيديو &amp;Link</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>انسخ الفيديو وعنوانه</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>أبحث عن &amp;أجزاء الفيديو الأُخرى</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;مسح تاريخ البحث </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>القيام بتبرع</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>&amp;تشغيل الفيديوهات يدويا</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>بدء تشغيل الفيديو يدويا</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>اختر موقع محتوياتك</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;التشغيل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>اكمال التشغيل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>الوقت المتبقي: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>%1%الصوت عند </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>الصوت مكتوم</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>الصوت غير مكتوم</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>الوضوح الاقصى %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>خصوصيتك امنة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>التحميل انتهى</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>يمكنك لصق رابط YouTube في برنامج اخر</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>يمكنك لصق رابط الفيديو في برنامج اخر</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>الرابط سيكون صالحا لمدة محدودة.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>هذه ليست سوى النسخة التجريبية من %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>انها تتيح لك تجربة البرنامج.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>متابعة</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>من</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>جزء</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>حلقة</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>أرسلت من %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>احصل على النسخة الكاملة</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>جاري تحميل %1</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="21"/>
         <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
+        <translation>يتوقّر إصدار جديد من %1!</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
+        <translation>1% %2 متوفر الآن. لديك 3%.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
+        <translation>أتريد تنزيله الآن؟</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
-        <translation type="unfinished"/>
+        <translation>تجاوز هذا الإصدار</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="43"/>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 مشاهدة</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
+        <translation>1% من 2% (3%) — 4%</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>تهيئة</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>فشل</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>تم</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>متوقف</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>ايقاف التحميل</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>اظهار في %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>فتح المجلد الرئيسي</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>اعادة التحميل</translation>
     </message>
     <message>
         <location filename="src/regionsview.cpp" line="19"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>تمّ</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>مرحبا بك في &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>الحصول على النسخة الكاملة</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>أدخل</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation> كلمة مفتاح</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>قناة</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>لبدء مشاهدة أشرطة الفيديو</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>شاهد</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>كلمات بحث سابقة</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>القنوات الأخيرة</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;عودة</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="57"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>تقدّم إلى %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="70"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>عُد إلى %1</translation>
     </message>
 </context>
 <context>
         <source>Most Popular</source>
         <translation>الأكثر شهرة</translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
     <message>
         <location filename="src/standardfeedsview.cpp" line="88"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>الأكثر نقاشًا</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="89"/>
         <source>Top Rated</source>
         <translation>الأعلى تقييما</translation>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"/>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>لا يمكن الحصول على دفق الفيديو %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>خطأ شبكة:%1 الى %2</translation>
     </message>
index daadf4be28b21ed6d44c5c86f96532240b39696d..97645f3c59fabe561457486ad02f05cfb115fe66 100644 (file)
@@ -15,7 +15,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="38"/>
         <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
+        <translation>Llicenciat a: %1</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="42"/>
     <message>
         <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation type="unfinished"/>
+        <translation>Entra els detalls de la teva llicència</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Email:</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Codi:</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
+        <translation>Sense llicència, l&apos;aplicació caducarà en %1 dies</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
     <message>
         <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
-        <translation type="unfinished"/>
+        <translation>Entra la lliçència </translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
+        <translation>Comprar llicència</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Ordena per</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation type="unfinished"/>
     </message>
 </context>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation type="unfinished"/>
+        <translation>Descarregant actualitzacions...</translation>
     </message>
 </context>
 <context>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Cerca</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Atura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Atura la reproducció i torna a la vista de búsqueda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;Salta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Salta al vídeo següent</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pausa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Pausa la reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>Pantalla &amp;completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Passa a pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Amaga la llista de reproducció i la barra d&apos;eines</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Ves a la pàgina del vídeo del YouTube i pausa la reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copia l&apos;enllaç del vídeo actual del YouTube al porta-retalls</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copia el URL del flux de vídeo actual al porta-retalls</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Troba altres parts del vídeo, amb sort en l&apos;ordre correcte</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Elimina</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Elimina els vídeos seleccionats de la llista de reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Mou &amp;amunt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Mou amunt els vídeos seleccionats en la llista de reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Mou a&amp;vall</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Mou avall els vídeos seleccionats en la llista de reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Neteja l&apos;historial de búsquedes. No es pot desfer.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Surt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Adéu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>Pàgina &amp;web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 a la xarxa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Siusplau ajuda al desenvolupament continuat del %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Quant a</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Info sobre %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Cerca</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Silencia el volum</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Baixades</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Mostra detalls de les descàrregues de vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Baixa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Baixa el vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Comparteix el vídeo actual fent servir %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Correu electrònic</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Tanca</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>Manté a &amp;sobre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Atura després d&apos;aquest vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Informa d&apos;un problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Afina la Cerca...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Aplicació</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Compra %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Llista de reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Vista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>A&amp;juda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Premeu %1 per pujar el volum, %2 per baixar-lo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Obrint %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Vol abandonar el %1 amb una baixada en curs?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Si tanca el %1 ara, aquesta baixada es cancel·larà.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Tanca i cancel·la la baixada</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Espera a acabar la baixada</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Abandona la Pantalla &amp;Completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 versió %2 ja està disponible.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Recorda-m&apos;ho més tard</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Actualitza</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>P&amp;revi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Torna a la pista anterior</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>&amp;Mode compacte</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Obre la pàgina de &amp;YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Copia l&apos;&amp;enllaç de YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Copia el &amp;URL del flux de vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Troba &amp;parts de vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Neteja les búsquedes recents</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Fer una &amp;donació</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Reprodueix vídeos &amp;manualment</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Comença a reproduir vídeos manualment</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Reprodueix</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Continua la reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Temps restant: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Volum al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>El volum està silenciat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>El volum no està silenciat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Resolució màxima de vídeo fixada a %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>La vostra privacitat ara és segura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Baixades completes</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Ja podeu enganxar l&apos;enllaç de YouTube en una altra aplicació</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Ja pot enganxar el URL del flux de vídeo en una altra aplicació</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>L&apos;enllaç només serà vàlid durant un temps limitat.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Aquesta només és la versió de demostració del %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Us permet probar l&apos;aplicació i veure si us va bé.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Continua</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>de</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>part</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>episodi</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Enviat des de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Aconseguiu la versió completa</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Baixant %1</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="21"/>
         <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
+        <translation>Una nova versió de %1 està disponible</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
+        <translation>%1 %2 estan disponibles. Tu tens %3.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
+        <translation>T&apos;agradaria descarregar-ho ara?</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
-        <translation type="unfinished"/>
+        <translation>Omet aquesta versió</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
-        <translation type="unfinished"/>
+        <translation>Recorda-m&apos;ho després</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
-        <translation type="unfinished"/>
+        <translation>Instal·la Actualització</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
-        <translation type="unfinished"/>
+        <translation>Enganxar</translation>
     </message>
 </context>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 visualitzacions</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Benvinguts al &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Aconsegueix la versió completa</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Introdueix</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>una paraula</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>per comencar a veure vídeos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Veure</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Búsquedes recents</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Canals recents</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Enrere</translation>
     </message>
         <source>Most Popular</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"/>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>No es pot obtenir flux de vídeo per %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Error de xarxa: %1 per %2</translation>
     </message>
diff --git a/locale/ca_ES.ts b/locale/ca_ES.ts
deleted file mode 100644 (file)
index 9ab70c1..0000000
+++ /dev/null
@@ -1,1476 +0,0 @@
-<?xml version="1.0" ?><!DOCTYPE TS><TS language="ca_ES" version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
-<context>
-    <name>AboutView</name>
-    <message>
-        <location filename="src/aboutview.cpp" line="32"/>
-        <source>There&apos;s life outside the browser!</source>
-        <translation>Hi ha vida fora del navegador!</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="33"/>
-        <source>Version %1</source>
-        <translation>Versió %1</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="38"/>
-        <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="42"/>
-        <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 és Software Lliure però el seu desenvolupament pren un temps molt valuós.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="43"/>
-        <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
-        <translation>Si us plau &lt;a href=&apos;%1&apos;&gt;doneu&lt;/a&gt; per ajudar al desenvolupament continuat del %2.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="47"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Potser també voldreu provar les meves altres aplicacions:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="50"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un reproductor de música del YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="54"/>
-        <source>%1, a music player</source>
-        <translation>%1, un reproductor de música</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="60"/>
-        <source>Translate %1 to your native language using %2</source>
-        <translation>Traduïu el %1 al vostre idioma natal a través de %2</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="65"/>
-        <source>Icon designed by %1.</source>
-        <translation>Icona dissenyada per %1.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="69"/>
-        <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
-        <translation>Llançat sota la &lt;a href=&apos;%1&apos;&gt;Llicència Pública General de GNU&lt;/a&gt;</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="84"/>
-        <source>&amp;Close</source>
-        <translation>&amp;Tanca</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.h" line="17"/>
-        <source>About</source>
-        <translation>Quant a</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.h" line="19"/>
-        <source>What you always wanted to know about %1 and never dared to ask</source>
-        <translation>El que sempre havíeu volgut saber sobre el %1 i mai us havíeu atrevit a preguntar</translation>
-    </message>
-</context>
-<context>
-    <name>ActivationDialog</name>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
-        <source>Enter your License Details</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
-        <source>&amp;Email:</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
-        <source>&amp;Code:</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>ActivationView</name>
-    <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
-        <source>Please license %1</source>
-        <translation>Si us plau, llicencia el %1</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
-        <source>This demo has expired.</source>
-        <translation>Aquesta demo ha expirat.</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
-        <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
-        <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="57"/>
-        <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
-        <translation>Comprant la versió completa, també donareu suport al dur treball que he posat en la creació del %1.</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
-        <source>Use Demo</source>
-        <translation>Utilitza la demo</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
-        <source>Enter License</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
-        <source>Buy License</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>ClearButton</name>
-    <message>
-        <location filename="src/searchlineedit.cpp" line="56"/>
-        <source>Clear</source>
-        <translation>Neteja</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadItem</name>
-    <message>
-        <location filename="src/downloaditem.cpp" line="322"/>
-        <source>bytes</source>
-        <translation>bytes</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="325"/>
-        <source>KB</source>
-        <translation>KB</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="328"/>
-        <source>MB</source>
-        <translation>MB</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="337"/>
-        <source>bytes/sec</source>
-        <translation>bytes/seg</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="340"/>
-        <source>KB/sec</source>
-        <translation>KB/seg</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="343"/>
-        <source>MB/sec</source>
-        <translation>MB/seg</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="349"/>
-        <source>seconds</source>
-        <translation>segons</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="352"/>
-        <source>minutes</source>
-        <translation>minuts</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="355"/>
-        <source>%4 %5 remaining</source>
-        <translation>%4 %5 restant</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadManager</name>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="55"/>
-        <source>This is just the demo version of %1.</source>
-        <translation>Aquesta només és la versió de demostració del %1.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="57"/>
-        <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
-        <translation>Només pot baixar vídeos de menys de %1 minuts per tal que en pugui provar aquesta funció.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="63"/>
-        <source>Continue</source>
-        <translation>Continua</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="64"/>
-        <source>Get the full version</source>
-        <translation>Aconseguiu la versió completa</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="150"/>
-        <source>%1 downloaded in %2</source>
-        <translation>%1 descarregat en %2</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="153"/>
-        <source>Download finished</source>
-        <translation>Descàrrega finalitzada</translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="159"/>
-        <source>%n Download(s)</source>
-        <translation><numerusform>%n Baixada</numerusform><numerusform>%n Baixades</numerusform></translation>
-    </message>
-</context>
-<context>
-    <name>DownloadSettings</name>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="15"/>
-        <source>Change location...</source>
-        <translation>Canvieu la ubicació...</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="47"/>
-        <source>Choose the download location</source>
-        <translation>Esculliu la ubicació de les baixades</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="59"/>
-        <source>Download location changed.</source>
-        <translation>Ubicació de baixades canviada.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="61"/>
-        <source>Current downloads will still go in the previous location.</source>
-        <translation>Les baixades actuals encara aniran a la ubicació prèvia.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="72"/>
-        <source>Downloading to: %1</source>
-        <translation>S&apos;està baixant a: %1</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadView</name>
-    <message>
-        <location filename="src/downloadview.cpp" line="18"/>
-        <location filename="src/downloadview.h" line="22"/>
-        <source>Downloads</source>
-        <translation>Baixades</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>GlobalShortcuts</name>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="16"/>
-        <source>Play</source>
-        <translation>Reprodueix</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="17"/>
-        <source>Pause</source>
-        <translation>Pausa</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="18"/>
-        <source>Play/Pause</source>
-        <translation>Reprodueix/Pausa</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="19"/>
-        <source>Stop</source>
-        <translation>Atura</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="20"/>
-        <source>Stop playing after current track</source>
-        <translation>Atura en acabar la peça actual</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="21"/>
-        <source>Next track</source>
-        <translation>Peça següent</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="22"/>
-        <source>Previous track</source>
-        <translation>Peça prèvia</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="23"/>
-        <source>Increase volume</source>
-        <translation>Augmenta el volum</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="24"/>
-        <source>Decrease volume</source>
-        <translation>Disminuex el volum</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="25"/>
-        <source>Mute</source>
-        <translation>Silenci</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="26"/>
-        <source>Seek forward</source>
-        <translation>Cerca endavant</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="27"/>
-        <source>Seek backward</source>
-        <translation>Cerca enrere</translation>
-    </message>
-</context>
-<context>
-    <name>HomeView</name>
-    <message>
-        <location filename="src/homeview.cpp" line="33"/>
-        <source>Search</source>
-        <translation>Busca</translation>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="35"/>
-        <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="40"/>
-        <source>Browse</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="42"/>
-        <source>Browse videos by category</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.h" line="22"/>
-        <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>LoadingWidget</name>
-    <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
-        <source>Error</source>
-        <translation>Error</translation>
-    </message>
-</context>
-<context>
-    <name>MainWindow</name>
-    <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
-        <source>&amp;Stop</source>
-        <translation>&amp;Atura</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
-        <source>Stop playback and go back to the search view</source>
-        <translation>Atura la reproducció i torna a la vista de búsqueda</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
-        <source>S&amp;kip</source>
-        <translation>&amp;Salta</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
-        <source>Skip to the next video</source>
-        <translation>Salta al vídeo següent</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
-        <source>Pause playback</source>
-        <translation>Pausa la reproducció</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
-        <source>&amp;Full Screen</source>
-        <translation>Pantalla &amp;completa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
-        <source>Go full screen</source>
-        <translation>Passa a pantalla completa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
-        <source>Hide the playlist and the toolbar</source>
-        <translation>Amaga la llista de reproducció i la barra d&apos;eines</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
-        <source>Go to the YouTube video page and pause playback</source>
-        <translation>Ves a la pàgina del vídeo del YouTube i pausa la reproducció</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
-        <source>Copy the current video YouTube link to the clipboard</source>
-        <translation>Copia l&apos;enllaç del vídeo actual del YouTube al porta-retalls</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
-        <source>Copy the current video stream URL to the clipboard</source>
-        <translation>Copia el URL del flux de vídeo actual al porta-retalls</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
-        <source>Find other video parts hopefully in the right order</source>
-        <translation>Troba altres parts del vídeo, amb sort en l&apos;ordre correcte</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
-        <source>&amp;Remove</source>
-        <translation>&amp;Elimina</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
-        <source>Remove the selected videos from the playlist</source>
-        <translation>Elimina els vídeos seleccionats de la llista de reproducció</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
-        <source>Move &amp;Up</source>
-        <translation>Mou &amp;amunt</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
-        <source>Move up the selected videos in the playlist</source>
-        <translation>Mou amunt en la llista de reproducció els vídeos seleccionats</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
-        <source>Move &amp;Down</source>
-        <translation>Mou a&amp;vall</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
-        <source>Move down the selected videos in the playlist</source>
-        <translation>Mou avall en la llista de reproducció els vídeos seleccionats</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
-        <source>Clear the search history. Cannot be undone.</source>
-        <translation>Neteja l&apos;historial de cerques. No es pot desfer.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
-        <source>&amp;Quit</source>
-        <translation>&amp;Surt</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
-        <source>Bye</source>
-        <translation>Adéu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
-        <source>&amp;Website</source>
-        <translation>Pàgina &amp;web</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
-        <source>%1 on the Web</source>
-        <translation>%1 en la web</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
-        <source>Please support the continued development of %1</source>
-        <translation>Si us plau recolzeu el desenvolupament continuat del %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
-        <source>&amp;About</source>
-        <translation>&amp;Quant a</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
-        <source>Info about %1</source>
-        <translation>Informació sobre el %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
-        <source>Search</source>
-        <translation>Cerca</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
-        <source>Mute volume</source>
-        <translation>Silencia el volum</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
-        <source>&amp;Downloads</source>
-        <translation>&amp;Baixades</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
-        <source>Show details about video downloads</source>
-        <translation>Mostra detalls de les descàrregues de vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>&amp;Download</source>
-        <translation>&amp;Baixa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
-        <source>Download the current video</source>
-        <translation>Baixa el vídeo actual</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
-        <source>Share the current video using %1</source>
-        <translation>Comparteix el vídeo actual fent servir %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
-        <source>&amp;Email</source>
-        <translation>&amp;Email</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
-        <source>Email</source>
-        <translation>Correu electrònic</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
-        <source>&amp;Close</source>
-        <translation>&amp;Tanca</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
-        <source>&amp;Float on Top</source>
-        <translation>Manté a &amp;sobre</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
-        <source>&amp;Stop After This Video</source>
-        <translation>&amp;Atura després d&apos;aquest vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
-        <source>&amp;Report an Issue...</source>
-        <translation>&amp;Informa d&apos;un problema</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
-        <source>&amp;Refine Search...</source>
-        <translation>&amp;Afina la Cerca...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
-        <source>More...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
-        <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
-        <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplicació</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
-        <source>Buy %1...</source>
-        <translation>Compra %1...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
-        <source>&amp;Playback</source>
-        <translation>&amp;Reproducció</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
-        <source>&amp;Playlist</source>
-        <translation>&amp;Llista de reproducció</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
-        <source>&amp;Video</source>
-        <translation>&amp;Vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
-        <source>&amp;View</source>
-        <translation>&amp;Vista</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
-        <source>&amp;Share</source>
-        <translation>&amp;Compartir</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
-        <source>&amp;Help</source>
-        <translation>A&amp;juda</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
-        <source>Press %1 to raise the volume, %2 to lower it</source>
-        <translation>Premeu %1 per pujar el volum, %2 per baixar-lo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
-        <source>Opening %1</source>
-        <translation>S&apos;està obrint %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
-        <source>Do you want to exit %1 with a download in progress?</source>
-        <translation>Voleu abandonar el %1 amb una baixada en curs?</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
-        <source>If you close %1 now, this download will be cancelled.</source>
-        <translation>Si tanqueu el %1 ara, aquesta baixada es cancel·larà.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
-        <source>Close and cancel download</source>
-        <translation>Tanca i cancel·la la baixada</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
-        <source>Wait for download to finish</source>
-        <translation>Espera a acabar la baixada</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Abandona la Pantalla &amp;Completa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versió %2 ja està disponible.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
-        <source>Remind me later</source>
-        <translation>Recorda-m&apos;ho més tard</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
-        <source>Update</source>
-        <translation>Actualitza</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
-        <source>Error: %1</source>
-        <translation>Error: %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;revi</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
-        <source>Go back to the previous track</source>
-        <translation>Torna a la pista anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Mode compacte</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Obre la pàgina de &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copia l&apos;&amp;enllaç de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copia el &amp;URL del flux de vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Troba &amp;parts de vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Neteja les búsquedes recents</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Fer una &amp;donació</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Reprodueix vídeos &amp;manualment</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
-        <source>Manually start playing videos</source>
-        <translation>Comença a reproduir vídeos manualment</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
-        <source>Choose your content location</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Reprodueix</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
-        <source>Resume playback</source>
-        <translation>Continua la reproducció</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
-        <source>Remaining time: %1</source>
-        <translation>Temps restant: %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
-        <source>Volume at %1%</source>
-        <translation>Volum al %1%</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
-        <source>Volume is muted</source>
-        <translation>Volum desactivat</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
-        <source>Volume is unmuted</source>
-        <translation>Volum activat</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
-        <source>Maximum video definition set to %1</source>
-        <translation>Resolució màxima de vídeo fixada a %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
-        <source>Your privacy is now safe</source>
-        <translation>La vostra privacitat està protegida</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
-        <source>Downloads complete</source>
-        <translation>Baixades completes</translation>
-    </message>
-</context>
-<context>
-    <name>MediaView</name>
-    <message>
-        <location filename="src/mediaview.cpp" line="553"/>
-        <source>You can now paste the YouTube link into another application</source>
-        <translation>Ja podeu enganxar l&apos;enllaç del YouTube en una altra aplicació</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="561"/>
-        <source>You can now paste the video stream URL into another application</source>
-        <translation>Ja podeu enganxar el URL del flux de vídeo en una altra aplicació</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="562"/>
-        <source>The link will be valid only for a limited time.</source>
-        <translation>L&apos;enllaç només serà vàlid durant un temps limitat.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="636"/>
-        <source>This is just the demo version of %1.</source>
-        <translation>Aquesta només és la versió de demostració del %1.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="637"/>
-        <source>It allows you to test the application and see if it works for you.</source>
-        <translation>Li permet probar l&apos;aplicació i veure si li va bé.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="667"/>
-        <source>Continue</source>
-        <translation>Continua</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="756"/>
-        <source>of</source>
-        <comment>Used in video parts, as in '2 of 3'</comment>
-        <translation>de</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="768"/>
-        <source>part</source>
-        <comment>This is for video parts, as in 'Cool video - part 1'</comment>
-        <translation>part</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="770"/>
-        <source>episode</source>
-        <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
-        <translation>episodi</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Sent from %1</source>
-        <translation>Enviat des de %1</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="644"/>
-        <source>Get the full version</source>
-        <translation>Aconseguiu la versió completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="681"/>
-        <source>Downloading %1</source>
-        <translation>S&apos;està baixant %1</translation>
-    </message>
-</context>
-<context>
-    <name>MessageWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="21"/>
-        <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
-        <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
-        <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
-        <source>Skip This Version</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
-        <source>Remind Me Later</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
-        <source>Install Update</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PasteLineEdit</name>
-    <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
-        <source>Paste</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PlaylistItemDelegate</name>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
-        <source>%1 views</source>
-        <translation>%1 visualitzacions</translation>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
-        <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
-        <source>Preparing</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
-        <source>Failed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
-        <source>Completed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
-        <source>Stopped</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
-        <source>Stop downloading</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
-        <source>Show in %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
-        <source>Open parent folder</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
-        <source>Restart downloading</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PlaylistModel</name>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="52"/>
-        <source>Searching...</source>
-        <translation>Buscant...</translation>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="53"/>
-        <source>Show %1 More</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="54"/>
-        <source>No videos</source>
-        <translation>Cap vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="55"/>
-        <source>No more videos</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>RefineSearchWidget</name>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="31"/>
-        <source>Sort by</source>
-        <translation>Ordena per</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="35"/>
-        <source>Relevance</source>
-        <translation>Rellevància</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="36"/>
-        <location filename="src/refinesearchwidget.cpp" line="52"/>
-        <source>Date</source>
-        <translation>Data</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="37"/>
-        <source>View Count</source>
-        <translation>Nombre de vistes</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="38"/>
-        <source>Rating</source>
-        <translation>Qualificació</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
-        <source>Anytime</source>
-        <translation>Qualsevol data</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="57"/>
-        <source>Today</source>
-        <translation>Avui</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="58"/>
-        <source>7 Days</source>
-        <translation>7 dies</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="59"/>
-        <source>30 Days</source>
-        <translation>30 dies</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
-        <source>Duration</source>
-        <translation>Durada</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="77"/>
-        <location filename="src/refinesearchwidget.cpp" line="104"/>
-        <source>All</source>
-        <translation>Tot</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="78"/>
-        <source>Short</source>
-        <translation>Curt</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="79"/>
-        <source>Medium</source>
-        <translation>Mig</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="80"/>
-        <source>Long</source>
-        <translation>Llarg</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="83"/>
-        <source>Less than 4 minutes</source>
-        <translation>menys de 4 minuts</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="84"/>
-        <source>Between 4 and 20 minutes</source>
-        <translation>entre 4 i 20 minuts</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="85"/>
-        <source>Longer than 20 minutes</source>
-        <translation>més de 20 minuts</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
-        <source>Quality</source>
-        <translation>Qualitat</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="105"/>
-        <source>High Definition</source>
-        <translation>Alta definició</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="108"/>
-        <source>720p or higher</source>
-        <translation>720p o major</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="122"/>
-        <source>Done</source>
-        <translation>Fet</translation>
-    </message>
-</context>
-<context>
-    <name>RegionsView</name>
-    <message>
-        <location filename="src/regionsview.cpp" line="19"/>
-        <source>Done</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>SearchLineEdit</name>
-    <message>
-        <location filename="src/searchlineedit.cpp" line="177"/>
-        <source>Search</source>
-        <translation>Cerca</translation>
-    </message>
-</context>
-<context>
-    <name>SearchView</name>
-    <message>
-        <location filename="src/searchview.cpp" line="71"/>
-        <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
-        <translation>Benvingut al &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="50"/>
-        <source>Get the full version</source>
-        <translation>Aconseguiu la versió completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="85"/>
-        <source>Enter</source>
-        <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
-        <translation>Introduïu</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="90"/>
-        <source>a keyword</source>
-        <translation>una paraula</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="91"/>
-        <source>a channel</source>
-        <translation>un canal</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="96"/>
-        <source>to start watching videos.</source>
-        <translation>per comencar a veure vídeos.</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="120"/>
-        <source>Watch</source>
-        <translation>Veure</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="138"/>
-        <source>Recent keywords</source>
-        <translation>Cerques recents</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="151"/>
-        <source>Recent channels</source>
-        <translation>Canals recents</translation>
-    </message>
-</context>
-<context>
-    <name>SidebarHeader</name>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
-        <source>&amp;Back</source>
-        <translation>&amp;Enrere</translation>
-    </message>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="57"/>
-        <source>Forward to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="70"/>
-        <source>Back to %1</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>SidebarWidget</name>
-    <message>
-        <location filename="src/sidebarwidget.cpp" line="52"/>
-        <source>Refine Search</source>
-        <translation>Afina la Cerca</translation>
-    </message>
-    <message>
-        <location filename="src/sidebarwidget.cpp" line="148"/>
-        <source>Did you mean: %1</source>
-        <translation>Volieu dir: %1</translation>
-    </message>
-</context>
-<context>
-    <name>StandardFeedsView</name>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="85"/>
-        <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="87"/>
-        <source>Most Shared</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="88"/>
-        <source>Most Discussed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="89"/>
-        <source>Top Rated</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>Video</name>
-    <message>
-        <location filename="src/video.cpp" line="213"/>
-        <source>Cannot get video stream for %1</source>
-        <translation>No es pot obtenir flux de vídeo per %1</translation>
-    </message>
-    <message>
-        <location filename="src/video.cpp" line="231"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Error de xarxa: %1 per %2</translation>
-    </message>
-</context>
-<context>
-    <name>YTRegions</name>
-    <message>
-        <location filename="src/ytregions.cpp" line="8"/>
-        <source>Algeria</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="9"/>
-        <source>Argentina</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="10"/>
-        <source>Australia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="11"/>
-        <source>Belgium</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="12"/>
-        <source>Brazil</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="13"/>
-        <source>Canada</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="14"/>
-        <source>Chile</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="15"/>
-        <source>Colombia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="16"/>
-        <source>Czech Republic</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="17"/>
-        <source>Egypt</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="18"/>
-        <source>France</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="19"/>
-        <source>Germany</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="20"/>
-        <source>Ghana</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="21"/>
-        <source>Greece</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="22"/>
-        <source>Hong Kong</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="23"/>
-        <source>Hungary</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="24"/>
-        <source>India</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="25"/>
-        <source>Indonesia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="26"/>
-        <source>Ireland</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="27"/>
-        <source>Israel</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="28"/>
-        <source>Italy</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="29"/>
-        <source>Japan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="30"/>
-        <source>Jordan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="31"/>
-        <source>Kenya</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="32"/>
-        <source>Malaysia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="33"/>
-        <source>Mexico</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="34"/>
-        <source>Morocco</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="35"/>
-        <source>Netherlands</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="36"/>
-        <source>New Zealand</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="37"/>
-        <source>Nigeria</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="38"/>
-        <source>Peru</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="39"/>
-        <source>Philippines</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="40"/>
-        <source>Poland</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="41"/>
-        <source>Russia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="42"/>
-        <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="43"/>
-        <source>Singapore</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="44"/>
-        <source>South Africa</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="45"/>
-        <source>South Korea</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="46"/>
-        <source>Spain</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="47"/>
-        <source>Sweden</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="48"/>
-        <source>Taiwan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="49"/>
-        <source>Tunisia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="50"/>
-        <source>Turkey</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="51"/>
-        <source>Uganda</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="52"/>
-        <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="53"/>
-        <source>United Kingdom</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="54"/>
-        <source>Yemen</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="128"/>
-        <source>Worldwide</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-</TS>
\ No newline at end of file
index edaa37cc7378cf6dbb27f115fc32bb04874c93e8..680378e0750a52fdf17cf6b38c61450917fa3ded 100644 (file)
         <translation>Koupit licenci</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>Od %1</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Všechna videa</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Nesledovaná videa</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Označit jako shlédnuté</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Zobrazit aktualizace</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Jméno</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Poslední aktualizace</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Naposledy přidáno</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Naposledy shlédnuto</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Nejsledovanější</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Třídit podle</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Všechna videa</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Nesledovaná videa</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Nyní nejsou k dispozici žádné aktualizace odběrů.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Nemáte žádné odběry. Použijte hvězdičku k přihlásení odběru kanálů.</translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Hledat</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation>Najít videa a kanály podle klíčového slova</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>Prohlížet</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation>Prohlížet videa podle kategorie</translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Odběry</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Kanál odběrů</translation>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Chyba</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Stop</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Zastaví přehrávání a vrátí se zpět na vyhledávání</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>Př&amp;eskočit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Přeskočí na další video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pauza</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Pozastaví přehrávání</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Celá obrazovka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Přepne na celou obrazovku</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Skryje playlist a toolbar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Otevře video na webu YouTube a pozastaví přehrávání</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Zkopíruje adresu videa na YouTube do schránky</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Zkopíruje do schránky adresu video streamu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Najít další části videa, doufejme, že ve správném pořadí</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Odstranit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Odstraní vybraná videa z playlistu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>&amp;Nahoru</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Posune vybraná videa výš v playlistu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>&amp;Dolů</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Posune vybraná videa níž v playlistu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Vyprázdní historii vyhledávání. Akci nelze vrátit.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Zavřít</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Sbohem</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Homepage</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 na Webu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Prosím přispějte na další vývoj aplikace %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;O aplikaci</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Info o aplikaci %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Hledat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Ztlumit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Stahování</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Zobrazit podrobnosti o stahování videí</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Stáhnout</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Stáhnout přávě zobrazené video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>&amp;Přihlásit se ke kanálu</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Sdílet aktuální video pomocí %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Zavřít</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Plovoucí navrchu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Zastavit po tomto videu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Nahlásit chybu...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Upřesnit vyhledávání...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>Více...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Související videa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation>Sledovat videa související s tímto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Aplikace</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Koupit %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Přehrávání</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Pohled</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Sdílet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Nápověda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Stiskněte %1 pro zvýšení hlasitosti; %2 pro snížení</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Otevírám %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Chcete ukončit %1, přestože ještě probíhá stahování?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Jestli nyní ukončíte %1, bude nedokončené stahování přerušeno</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Přerušit stahování a ukončit aplikaci</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Počkat na dokončení stahování</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Opustit zobrazení na &amp;celou obrazovku</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 verze %2 je nyní dostupná.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Připomenout později</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Aktualizovat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Chyba: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>P&amp;ředešlý</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Jít zpět na předchozí skladbu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>&amp;Kompaktní mód</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Otevřít stránku &amp;YouTube </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Kopírovat YouTube &amp;odkaz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Zkopírovat adresu &amp;video streamu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
-        <translation>Nalézt video &amp;části</translation>
+        <translation>Nalézt &amp;části videa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Vymazat poslední hledání</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>&amp;Podpořit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Ručně zahájit přehrávání</translation>
+        <translation>Zahájit přehrávání &amp;ručně </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
-        <translation>Ručně zahájit přehrávání videí</translation>
+        <translation>Zahájit přehrávání videí ručně</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation>Vyberte si umístění obsahu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Play</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Pokračovat v přehrávání</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Zbývající čas: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Hlasitost na %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Zvuk je ztlumen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Zvuk je zapnut</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maximální rozlišení videa je %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Vaše soukromí je nyní v bezpečí</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Všechna stahování byla dokončena</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Nyní můžete vložit odkaz na video na YouTube do jiného programu</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Nyní můžete vložit odkaz na video stream do jiné aplikace</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Tento odkaz platí jen po omezenou dobu.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Toto je %1 -- demoverze.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Umožňuje vyzkoušet aplikaci, abyste ověřili, jestli pro vás funguje.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Pokračovat</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>z</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>část</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>epizoda</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Zaslat z %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Odhlásit z </translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>Přihlásit k %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Stáhnout plnou verzi</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Je stahováno %1</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 zobrazení</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 z %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Připravuje se</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Selhalo</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Dokončeno</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Zastaveno</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Zastavit stahování</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Ukázat v %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Otevřít příslušný adresář</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
-        <translation>Začít stahovat znova</translation>
+        <translation>Začít stahovat znovu</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Vítejte v &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Získat plnou verzi</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
-        <translation>Enter</translation>
+        <translation>Vložit</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>klíčové slovo</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>kanál</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
-        <translation>začít sledovat videa.</translation>
+        <translation> pro sledování videí.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Sledovat</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Poslední klíčová slova</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Poslední kanály</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Zpět</translation>
     </message>
         <source>Most Popular</source>
         <translation>Nejoblíbenější</translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation>Nejlepší</translation>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation>Nejlépe hodnocené</translation>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Celou dobu populární</translation>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Nelze získat video stream pro %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Chyba přípojení: %1 pro %2</translation>
     </message>
index 28cbf6dd8232b12f949815559e268ec615177c6d..0a56c004011da836ac76e507b7fa386f0cc8ada1 100644 (file)
         <translation>Køb licens</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>Af %1</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Alle videoer</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Videoer, der ikke er set</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Marker alle som set</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Show opdateret</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Navn</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Senest opdateret</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Senest tilføjet</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Sidst set</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Mest set</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Sorter efter</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Alle videoer</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Videoer, der ikke er set</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Der er ingen opdateringer i de abonnerede.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Du har ingen abonnementer. Brug stjernetegnet til at abonnere på kanaler.</translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Søg</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation>Find videoer og kanaler via søgeord</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>Gennemse</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation>Gennemse videoer efter kategori</translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Abonnementer</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Abonnementer på kanaler</translation>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Fejl</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Stop</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Stop afspilning og gå tilbage til søgeoversigt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>S&amp;pring over</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Spring til næste video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Pause afspilning</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Fuldskærm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Vis i fuldskærm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Skjul afspilningslisten og værktøjslinjen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Gå til YouTube-videosiden og pause afspilningen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Kopier det aktuelle YouTube-videolink til udklipsholderen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopier adressen for den aktuelle videostrøm til udklipsholderen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Find andre videodele forhåbentlig i den rigtige rækkefølge</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Fjern</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Fjern de valgte videoer fra afspilningslisten</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Flyt &amp;Op</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Flyt de valgte videoer i afspilningslisten op</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Flyt &amp;Ned</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Flyt de valgte videoer i afspilningslisten ned</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Ryd søgeoversigt. Kan ikke fortrydes.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Afslut</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Farvel</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Hjemmeside</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 på nettet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Støt den forsatte udvikling af %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Om</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Info om %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Søg</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Slå lyden fra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Downloads</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Vis deltaljer om video downloads</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Download den aktuelle video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>&amp;Abonner på kanal</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Del den aktuelle video ved hjælp af %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;amp; E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Luk</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Behold øverst</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Stop efter denne video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Rapporter et problem...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Indskrænk søgning...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>Mere...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Relaterede videoer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation>Se videoer relateret til den nuværende</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Program</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Køb %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Afspil</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Afspilningsliste</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Vis</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Del</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Hjælp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Tryk %1 for at skrue op for lyden og %2 for at skrue ned</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Åbner %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Vil du afslutte %1 selvom et download er i gang?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Hvis du lukker %1 nu vil dette download blive annulleret. </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Luk og annuller download </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Vent til download er færdig</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Forlad &amp;Fuld skærm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 version %2 er nu tilgængelig.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Påmind mig senere</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Opdatér</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Fejl: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>F&amp;orrige</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Gå tilbage til forrige nummer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Åbn &amp;Youtube-siden</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Kopier &amp;link til Youtube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>  
 Kopiér &amp;URL&apos;en til videostrømmen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Find dele af videoen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Ryd seneste søgninger</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Giv en &amp;Donation</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Start afspilning &amp;manuelt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Start afspilning af videoer manuelt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation>Vælg placering for dit indhold</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Afspil</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Genoptag afspilning</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Tilbageværende tid: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Lydniveau på %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Lyden er slået fra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Lyden er slået til</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maksimal videoopløsning sat til %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Dit privatliv er nu sikret</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Downloads færdig</translation>
     </message>
@@ -803,65 +907,75 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Du kan nu indsætte YouTube-linket i et andet program</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Du kan nu indsætte adressen til videostrømmen i et andet program</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Linket vil kun være gyldigt i en begrænset periode.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Dette er kun demoversionen af %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Det giver dig mulighed for at teste programmet og se om det virker for dig.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Forsæt</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>af</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>del</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>episode</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Sendt fra %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Fjern abonnement fra %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>Abonner på %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Hent den fulde version</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Downloader %1</translation>
     </message>
@@ -910,52 +1024,52 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 visninger</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 af %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Forbereder</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Fejl</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Fuldendt</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Stoppet</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Stop download</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>VIs i %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Åben ovenstående mappe</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Genstart download</translation>
     </message>
@@ -1112,48 +1226,48 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Velkommen til &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Hent den fulde version</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Indtast</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>et nøgleord</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>en kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>for at  begynde at se video.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Afspil</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Seneste nøgleord</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Nyeste kanaler</translation>
     </message>
@@ -1161,8 +1275,8 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Tilbage</translation>
     </message>
@@ -1197,11 +1311,6 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
         <source>Most Popular</source>
         <translation>Mest populære</translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation>Udvalgte</translation>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
@@ -1217,16 +1326,21 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
         <source>Top Rated</source>
         <translation>Bedst bedømte</translation>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Mest populære</translation>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Kan ikke hente videostrøm for %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Netværksfejl: %1 for %2</translation>
     </message>
index c59912a0ebcf6edec7aad79d82484df0dde5542f..2af667fc3532bd483783c4aa627e98b40fd08f98 100644 (file)
@@ -15,7 +15,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="38"/>
         <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
+        <translation>Lizenziert für: %1</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="42"/>
@@ -25,7 +25,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="43"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
-        <translation>Bitte &lt;a href=&apos;%1&apos;&gt;spende&lt;/a&gt;, um die ständige Entwicklung von %2 zu unterstützen.</translation>
+        <translation>Bitte &lt;a href=&apos;%1&apos;&gt;spenden&lt;/a&gt; Sie, um die Weiterentwicklung von %2 zu unterstützen.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="47"/>
@@ -50,7 +50,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="65"/>
         <source>Icon designed by %1.</source>
-        <translation>Symbol-Entwurf durch %1.</translation>
+        <translation>Icons wurden gestaltet von %1.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="69"/>
     <message>
         <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation type="unfinished"/>
+        <translation>Geben Sie Ihre Lizenzierungsinformationen ein</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
-        <translation type="unfinished"/>
+        <translation>&amp;E-mail:</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Schlüssel:</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
+        <translation>In der Vollversion können Sie Videos ohne Unterbrechungen und mit einer Laufzeit von mehr als %1 Minuten ansehen.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
+        <translation>Ohne Lizenz läuft das Programm nur noch %1 Tage.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
     <message>
         <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
-        <translation type="unfinished"/>
+        <translation>Lizenzdaten eingeben</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
-        <translation type="unfinished"/>
+        <translation>Lizenz kaufen</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>Von %1</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Alle Videos</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Ungesehene Videos</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Alle als gesehen markieren</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Zeige aktualisierte</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Name</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Zuletzt aktualisiert</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Zuletzt hinzugefügt</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Zuletzt angesehen</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Am meisten angesehen</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Sortieren nach</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Alle Videos</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Ungesehene Videos</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Zurzeit gibt es nichts Neues bei den Abonnements.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Du hast keine Abonnements. Benutze das Stern-Symbol, um einen Kanal zu abonnieren.</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/downloadmanager.cpp" line="57"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
-        <translation>Sie kann nur Videos, die kürzer als %1 Minuten sind, herunterladen, damit die Download-Funktionalität getestet werden kann.</translation>
+        <translation>Sie kann nur Videos herunterladen, die kürzer als %1 Minuten sind, um die Funktion zum Herunterladen zu testen.</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="63"/>
     <message>
         <location filename="src/downloadmanager.cpp" line="64"/>
         <source>Get the full version</source>
-        <translation>Die Vollversion holen</translation>
+        <translation>Die Vollversion kaufen</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="150"/>
     <message>
         <location filename="src/downloadsettings.cpp" line="59"/>
         <source>Download location changed.</source>
-        <translation>Speicherort wurde verändert.</translation>
+        <translation>Speicherort wurde geändert.</translation>
     </message>
     <message>
         <location filename="src/downloadsettings.cpp" line="61"/>
         <source>Current downloads will still go in the previous location.</source>
-        <translation>Aktuelle Downloads werden immernoch im alten Speicherort gespeichert.</translation>
+        <translation>Aktuelle Downloads werden immer noch im alten Speicherort gespeichert.</translation>
     </message>
     <message>
         <location filename="src/downloadsettings.cpp" line="72"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation type="unfinished"/>
+        <translation>Lade Aktualisierung herunter...</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/globalshortcuts.cpp" line="20"/>
         <source>Stop playing after current track</source>
-        <translation>Nachdem aktueller Titel abgespielt wurde halten</translation>
+        <translation>Nach aktuellem Titel Wiedergabe anhalten</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="21"/>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Suche</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Videos und Kanäle nach Suchbegriff finden</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Stöbern</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
-        <translation type="unfinished"/>
+        <translation>Videos nach Kategorien durchstöbern</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Abonnements</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Abonnierte Kanäle</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
+        <translation>Machen Sie es sich gemütlich</translation>
     </message>
 </context>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Halt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Wiedergabe anhalten und zur Suchansicht zurückkehren</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>Ü&amp;berspringen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Zum nächsten Video springen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Wiedergabe pausieren</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Vollbildmodus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Vollbildmodus aktivieren</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
-        <translation>Verstecke Abspielliste und Werkzeugleiste</translation>
+        <translation>Abspielliste und Werkzeugleiste ausblenden</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Gehe zur YouTube-Video-Seite und pausiere die Wiedergabe</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>YouTube-Link in die Zwischenablage kopieren</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
-        <translation>Video-URL in die Zwischenablage kopieren</translation>
+        <translation>Video-Link in die Zwischenablage kopieren</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Findet andere Teile des Videos, hoffentlich in der richtigen Reihenfolge</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>Entfe&amp;rnen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Entferne das ausgewählte Video aus der Abspielliste</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Bewege &amp;hinauf</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Bewege das ausgewählte Video in der Abspielliste hinauf</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Bewege hin&amp;ab</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Bewege das ausgewählte Video in der Abspielliste hinunter</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
-        <translation>Such-Verlauf leeren. Kann nicht rückgängig gemacht werden.</translation>
+        <translation>Den Suchverlauf löschen. Kann nicht rückgängig gemacht werden.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Verlassen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Tschüss</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Webseite</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 im Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Bitte unterstützen Sie die weitere Entwicklung von %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Über</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Informationen über %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Suche</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Stummschalten</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Downloads</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Details über Video-Downloads anzeigen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>H&amp;erunterladen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Das aktuelle Video herunterladen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>&amp;Abonnieren des Kanals</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Teilen Sie das aktuellen Video mit %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;E-Mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>E-Mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Schließen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>Im Vordergrund &amp;bleiben</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>Nach diesem Video &amp;anhalten</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Ein Problem melden ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Suche verfeinern ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>Mehr...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>Ve&amp;rwandte Videos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>Verwandte Videos zum Aktuellen ansehen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Anwendung</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>%1 kaufen...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Wiedergabe</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>A&amp;bspielliste</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Ansehen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Teilen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Hilfe</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>%1 drücken, um die Lautstärke zu erhöhen, %2 um sie zu verringern</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
-        <translation>%1 öffnen</translation>
+        <translation>Öffne %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Möchten Sie %1 mit einem aktiven Download beenden?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Wenn Sie %1 jetzt beenden, wird der Download abgebrochen.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Beenden und Download abbrechen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
-        <translation>Auf Abschluß des Downloads warten</translation>
+        <translation>Auf Abschluss des Downloads warten</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>&amp;Vollbild verlassen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 Version %2 ist jetzt verfügbar.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Erinnere mich später</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Aktualisierung</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Fehler: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>V&amp;origes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Zum vorherigen Titel zurückgehen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>&amp;Kompakt-Modus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>&amp;YouTube-Seite öffnen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
-        <translation>YouTube &amp;Link kopieren</translation>
+        <translation>YouTube-&amp;Link kopieren</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
-        <translation>Video-Stream &amp;URL kopieren</translation>
+        <translation>Video-Stream-&amp;URL kopieren</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
-        <translation>Suche Video &amp;Teile</translation>
+        <translation>Suche weitere Video&amp;teile</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>Vorherige Suchbegriffe löschen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>&amp;Spenden</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>&amp;Manuelles Starten der Wiedergabe</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
-        <translation>Manuelles Starten der Video-Wiedergabe</translation>
+        <translation>Manuelles Starten der Videowiedergabe</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>Wähle ein Land für Inhalte</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Abspielen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Wiedergabe fortsetzen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Verbleibende Zeit: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Lautstärke %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Ton ist stummgeschaltet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
-        <translation>Ton ist angeschaltet</translation>
+        <translation>Ton ist eingeschaltet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
-        <translation>Maximale Video-Auflösung wurde auf %1 gesetzt</translation>
+        <translation>Maximale Videoauflösung wurde auf %1 gesetzt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Ihre Privatsphäre ist nun geschützt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
-        <translation>Downloads heruntergeladen</translation>
+        <translation>Herunterladen vollständig</translation>
     </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
-        <translation>Du kannst den YouTube-Link nun in einer anderen Anwendung einfügen</translation>
+        <translation>Sie können den YouTube-Link nun in einer anderen Anwendung einfügen</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
-        <translation>Du kannst die Video-URL nun in einer anderen Anwendung einfügen</translation>
+        <translation>Sie können den Video-Link nun in einer anderen Anwendung einfügen</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Der Link wird nur eine beschränkte Zeit gültig sein.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
-        <translation>Dies ist nur eine Demoversion von %1.</translation>
+        <translation>Dies ist nur die Demoversion von %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
-        <translation>Sie erlaubt Ihnen die Anwendung zu testen und zu schauen ob sie bei Ihnen läuft.</translation>
+        <translation>Sie erlaubt es Ihnen die Anwendung zu testen und zu schauen, ob sie bei Ihnen läuft.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Fortfahren</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>von </translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>Teil</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>Episode</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Gesendet von %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Beende Abonnement von %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>Abonnieren von %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
-        <translation>Die Vollversion holen</translation>
+        <translation>Die Vollversion kaufen</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>%1 herunterladen</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="21"/>
         <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
+        <translation>Eine neue Version von %1 ist verfügbar!</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
+        <translation>%1 %2 ist jetzt verfügbar. Sie haben %3.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
+        <translation>Möchten Sie sie jetzt herunterladen?</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
-        <translation type="unfinished"/>
+        <translation>Diese Version überspringen</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
-        <translation type="unfinished"/>
+        <translation>Später erinnern</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
-        <translation type="unfinished"/>
+        <translation>Aktualisierung installieren</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
-        <translation type="unfinished"/>
+        <translation>Einfügen</translation>
     </message>
 </context>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 mal betrachtet</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 von %2 (%3) – %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Bereite vor</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Fertiggestellt</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
-        <translation>Gestoppt</translation>
+        <translation>Angehalten</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
-        <translation type="unfinished"/>
+        <translation>Herunterladen abbrechen</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
-        <translation type="unfinished"/>
+        <translation>In %1 anzeigen</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
-        <translation>Eltern-Ordner öffnen</translation>
+        <translation>übergeordneten Ordner öffnen</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
-        <translation>Herunterladen neustarten</translation>
+        <translation>Herunterladen neu starten</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/playlistmodel.cpp" line="53"/>
         <source>Show %1 More</source>
-        <translation type="unfinished"/>
+        <translation>Weitere %1 zeigen</translation>
     </message>
     <message>
         <location filename="src/playlistmodel.cpp" line="54"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="37"/>
         <source>View Count</source>
-        <translation>Anzahl anzeigen</translation>
+        <translation>Aufrufe</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="38"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Anytime</source>
-        <translation>Alle Längen</translation>
+        <translation>Irgendwann</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="57"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="105"/>
         <source>High Definition</source>
-        <translation>High Definition</translation>
+        <translation>Hochauflösend</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="108"/>
     <message>
         <location filename="src/regionsview.cpp" line="19"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>Fertig</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Willkommen bei &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
-        <translation>Die Vollversion holen</translation>
+        <translation>Die Vollversion kaufen</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Eingeben</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
-        <translation>ein Schlüsselwort</translation>
+        <translation>ein Suchbegriff</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>ein Kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>um die Wiedergabe zu starten.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Anschauen</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
-        <translation>Aktuelle Schlüsselwörter</translation>
+        <translation>Letzte Suchbegriffe</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
-        <translation>Aktuelle Kanäle</translation>
+        <translation>Letzte Kanäle</translation>
     </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Zurück</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="57"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>Weiter zu %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="70"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>Zurück zu %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/standardfeedsview.cpp" line="85"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
+        <translation>Beliebteste</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Am meisten geteilt</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="88"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>Am meisten diskutiert</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="89"/>
         <source>Top Rated</source>
-        <translation type="unfinished"/>
+        <translation>Am besten bewertet</translation>
+    </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Beliebteste</translation>
     </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
-        <translation>Videostream für %1 konnte nicht öffnen werden</translation>
+        <translation>Videostream für %1 konnte nicht geöffnet werden</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Netzwerk-Fehler: %1 für %2</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="8"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>Algerien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="9"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>Argentinien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="10"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>Australien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="11"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>Belgien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="12"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>Brasilien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="13"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>Kanada</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="14"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>Chile</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="15"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>Kolumbien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="16"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>Tschechische Republik</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="17"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>Ägypten</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="18"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>Frankreich</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="19"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>Deutschland</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="20"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>Ghana</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="21"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>Griechenland</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="22"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>Hong Kong</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="23"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>Ungarn</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>Indien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Indonesien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>Irland</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>Israel</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>Italien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Japan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Jordanien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Kenia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Malaysia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>Mexiko</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>Marokko</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Niederlande</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>Neuseeland</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>Nigeria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>Peru</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>Philippinen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>Polen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>Russland</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>Saudi-Arabien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>Singapur</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>Südafrika</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>Südkorea</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>Spanien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>Schweden</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>Taiwan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>Tunesien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>Türkei</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>Uganda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>Vereinigte Arabische Emirate</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>Vereinigtes Königreich</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>Jemen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Weltweit</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index 5c730f8c47dfc578b1116745980e6b05a873b899..c62e9e81f6fc36ac101984421781ede5043a8863 100644 (file)
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
+        <translation>Η πλήρης έκδοση σας επιτρέπει την λήψη βίντεο με διάρκεια μεγαλύτερη από %1 λεπτά και την αναπαραγωγή των βίντεο χωρίς διακοπές.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <translation>Αγορά άδειας χρήσης</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>Από %1</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Όλα τα βίντεο</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Σχετικά βίντεο</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Σημείωση όλων ως παρακολούθεντα</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Εμφάνιση ενημέρωσεων</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>όνομα</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Τελευταία Ενημέρωση</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Τελευταία προστέθηκε</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>τελευταίο Προβληθέντα</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Πιο δημοφιλή</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Ταξινόμηση κατά ...</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Όλα τα βίντεο</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Σχετικά βίντεο</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Δεν υπάρχουν συνδρομές ενημέρωσης αυτή τη στιγμή.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Δεν έχετε εγγραφές. Χρησιμοποιήστε το αστέρι για να εγγραφείτε συνδρομητής σε κανάλια.</translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Αναζήτηση</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Ευρεση βίντεο και κανάλιων μεσω λέξεις-κλειδία </translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Περιηγηση</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
-        <translation type="unfinished"/>
+        <translation>Περιηγηση βιντεο ανα κατηγορια</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Συνδρομές</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Συνδρομές καναλιού</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Σφάλμα</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Διακοπή</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Διακοπή αναπαραγωγής και επιστροφή στην προβολή αναζήτησης</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;Παράλειψη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Μετάβαση στο επόμενο βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Παύση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Παύση αναπαραγωγής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Πλήρης οθόνη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Προβολή σε πλήρη οθόνη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Απόκρυψη της λίστας αναπαραγωγής και της εργαλειοθήκης</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Μετάβαση στη σελίδα βίντεο του YouTube και παύση αναπαραγωγής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Αντιγραφή του δεσμού του τρέχοντος YouTube βίντεο στη μνήμη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Αντιγραφή του URL της τρέχουσας ροής βίντεο στη μνήμη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Εύρεση των υπόλοιπων επισοδείων του βίντεο, ελπίζουμε στη σωστή σειρά</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Αφαίρεση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Αφαίρεση επιλεγμένων βίντεο απο την λίστα αναπαραγωγής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Μετακίνηση προς τα &amp;πάνω</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Μετακίνηση επιλεγμένων βίντεο προς τα πάνω</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Μετακίνηση προς τα &amp;κάτω</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Μετακίνηση επιλεγμένων βίντεο προς τα κάτω</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Καθαρισμός του ιστορικού αναζήτησης. Δεν μπορεί να γίνει επαναφορά.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>Έ&amp;ξοδος</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Γεια</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Ιστοχώρος</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>Το %1 στο διαδίκτυο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Παρακαλούμε υποστηρίξτε την συνεχόμενη ανάπτυξη του %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Σχετικά</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Πληροφορίες για %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Αναζήτηση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Σίγαση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Λήψεις</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Εμφάνιση λεπτομερειών για τις λήψεις βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Λήψη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Λήψη του τρέχοντος βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>Εγγραφή στο κανάλι</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Κοινή χρήση του τρέχοντος βίντεο με το %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Ηλ. αλληλογραφία</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Ηλ. αλληλογραφία</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Κλείσιμο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Διατήρηση στην κορυφή</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Διακοπή μετά από αυτό το βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Αναφέρετε κάποιο σφάλμα...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Σύνθετη αναζήτηση...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>Περισσοτερα...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>Σχετικα βιντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>Παρακολουθήστε βίντεο που σχετίζονται με το τρέχον</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Εφαρμογή</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Αγοράστε το %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Αναπαραγωγή</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>Λ&amp;ίστα αναπαραγωγής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>Βίν&amp;τεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Προβολή</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Κοινή χρήση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Βοήθεια</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Πατήστε %1 για να αυξήσετε την ένταση, %2 για να την χαμηλώσετε</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Άνοιγμα %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Θέλετε να κλείσετε το %1 ενώ βρίσκεται μια λήψη σε εξέλιξη;</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Αν κλείσετε το %1 τώρα, η λήψη θα ακυρωθεί.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Κλείσιμο και ακύρωση λήψης</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Αναμονή ολοκλήρωσης λήψης</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Έξοδος από &amp;πλήρη οθόνη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>Η έκδοση %2 του %1 είναι διαθέσιμη.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Υπενθύμιση αργότερα</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Ενημέρωση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Σφάλμα: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>Π&amp;ροηγούμενο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Επιστροφή στο προηγούμενο κομμάτι</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>&amp;Συμπαγής εμφάνιση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Άνοιγμα στην ιστοσελίδα του &amp;YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Αντιγραφή του &amp;δεσμού YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Αντιγραφή του &amp;URL της ροής βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Αναζήτηση των &amp;επισοδείων του βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Καθαρισμός πρόσφατων αναζητήσεων</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Κάντε μια &amp;δωρεά</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Εκκίνηση της αναπαραγωγής &amp;χειροκίνητα</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Εκκίνηση αναπαραγωγής των βίντεο χειροκίνητα</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>Επιλογή της τοποθεσίας του περιεχομένου σας </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>Α&amp;ναπαραγωγή</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Συνέχεια αναπαραγωγής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Υπολειπόμενος χρόνος: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Ένταση στο %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Σίγαση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Η ένταση αποκαταστάθηκε</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>H μέγιστη ανάλυση βίντεο τέθηκε σε %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Η ιδιωτικότητα σας είναι τώρα ασφαλής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Οι λήψεις ολοκληρώθηκαν</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Τώρα μπορείτε να επικολλήσετε το δεσμό του YouTube σε κάποια άλλη εφαρμογή</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Τώρα μπορείτε να επικολλήσετε το URL της ροής βίντεο σε κάποια άλλη εφαρμογή</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Ο σύνδεμος θα είναι έγκυρος μόνο για περιορισμένο χρονικό διάστημα.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Αυτή είναι απλά μια δοκιμαστική έκδοση του %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Σαε επιτρέπει να δοκιμάσετε την εφαρμογή και να δείτε αν σας κάνει.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Συνέχεια</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>από</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>μέρος</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>επισόδειο</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Αποστολή από %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Διαγραφή από το %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>Εγγραφή στο %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Αποκτήστε την πλήρη έκδοση</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Λήψη %1</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>Προβολές %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 από %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Προετοιμάζεται</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Απέτυχε</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Ολοκληρώθηκε</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Διακόπηκε</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Διακοπή λήψης</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Εμφάνιση σε %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Άνοιγμα γονικού φακέλου</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Επανεκκίνηση λήψης</translation>
     </message>
     <message>
         <location filename="src/regionsview.cpp" line="19"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>Έγινε</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Καλωσορίσατε στο &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Αποκτήστε την πλήρη έκδοση</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Πληκτρολογήστε</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>μια λέξη-κλειδί</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>ένα κανάλι</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>για να αρχίσετε να βλέπετε βίντεο.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Δείτε</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Πρόσφατες λέξεις-κλειδιά</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Πρόσφατα κανάλια</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Πίσω</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="57"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>Προώθηση σε %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="70"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>Πισω στο %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/standardfeedsview.cpp" line="85"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
+        <translation>Τα πιο δημοφιλή</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Πιο πρόσφατα</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="88"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>Πιο συζυτημενα</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="89"/>
         <source>Top Rated</source>
-        <translation type="unfinished"/>
+        <translation>Καλυτερα βαθμολογημενα</translation>
+    </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Σε όλα τα χρονικά δημοφιλή</translation>
     </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Αδυναμία λήψης της ροής βίντεο για %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Σφάλμα δικτύου: %1 για %2</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="8"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>Αλγερια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="9"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>Αργεντινη</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="10"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>Αυστραλια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="11"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>Βελγιο</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="12"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>Βραζιλια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="13"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>Καναδας</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="14"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>Χιλη</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="15"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>Κολομβια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="16"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>Τσεχια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="17"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>Αιγυπτος</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="18"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>Γαλλια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="19"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>Γερμανια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="20"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>Γκανα</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="21"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>Ελλαδα</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="22"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>Χονγκ Κονγκ</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="23"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>Ουγγαρια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>Ινδια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Ινδονησια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>Ιρλανδια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>Ισραηλ</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>Ιταλια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Ιαπωνια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Ιορδανια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Κενια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Μαλαισια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>Μεξικο</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>Μαροκκο</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Ολλανδια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>Νεα Ζηλανδια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>Νιγηρια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>Περου</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>Φιλλιπινες</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>Πολωνια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>Ρωσια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>Σαουδικη Αραβια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>Σινγκαπουρη</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>Νοτια Αφρικη</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>Νοτια Κορεα</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>Ισπανια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>Σουηδια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>Ταιβαν</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>Τυνισια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>Τουρκια</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>Ουγκαντα</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>Ηνωμενα Αραβικα Εμιρατα</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>Ηνωμενο Βασιλειο</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>Ιεμενη</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Παγκοσμιως</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index 8ca682355f893a7cbc0851a72b0a701faf80dc99..3c001793ee46cf42b6bc980f5f842b590b57b0d5 100644 (file)
@@ -15,7 +15,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="38"/>
         <source>Licensed to: %1</source>
-        <translation>Licencia para: %1</translation>
+        <translation>Con licencia para: %1</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="42"/>
         <translation>Comprar licencia</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>Por %1</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Todos los vídeos</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Vídeos sin ver</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Marcar todos como vistos</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Mostrar actualizados</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Nombre</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Actualizado por última vez</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Añadido por última vez</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Visto por última vez</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Más vistos</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Ordenar por</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Todos los vídeos</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Vídeos sin ver</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>No hay suscripciones actualizadas en este momento.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>No se ha suscrito a ningún canal. Use el símbolo de la estrella a los canales.</translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation>Encontrar vídeos y canales por palabras clave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>Examinar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation>Buscar videos por categoría</translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Suscripciones</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Suscripciones a canales</translation>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Detener</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Detener la reproducción y volver a la búsqueda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;Omitir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Omitir vídeo y saltar al siguiente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pausar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Pausar la reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>Pantalla &amp;completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Ir a pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ocultar la lista de reproducción y la barra de herramientas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Ir a la página del vídeo en YouTube y pausar la reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copiar el enlace a YouTube del vídeo actual en el portapapeles</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copiar la URL actual del flujo del vídeo al portapapeles</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Encontrar otras partes de vídeos, con suerte en el orden correcto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Eliminar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Quitar los vídeos seleccionados de la lista de reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>&amp;Subir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Mover hacia arriba en la lista de reproducción los vídeos seleccionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>&amp;Bajar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Mover hacia abajo en la lista de reproducción los vídeos seleccionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Limpiar el historial de búsquedas. No se puede deshacer.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Salir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Hasta luego</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>Sitio &amp;web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 en la web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Apoye el desarrollo continuo de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Acerca de</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Información acerca de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Silenciar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Descargas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Mostrar detalles sobre las descargas de vídeos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Descargar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Descargar el vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>&amp;Suscribirse al canal</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Compartir el vídeo actual usando %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Correo-e</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Correo-e</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Cerrar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Flotar en la parte superior</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Detener tras este vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Informar de un problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Refinar la búsqueda...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>Más…</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation>Vídeos &amp;relacionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation>Ver videos relacionados con el actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Aplicación</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Comprar %1…</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Lista de reprod.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Ver</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>Ay&amp;uda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Pulse %1 para aumentar el volumen o %2 para reducirlo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Abriendo %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>¿Quiere salir de %1 con una descarga en curso?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Si cierra %1 ahora, esta descarga será cancelada.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Cerrar y cancelar descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Esperando a que finalice la descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>&amp;Salir de pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 versión %2 ya está disponible.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Recordarme después</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Actualizar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>Ante&amp;rior</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Regresar a la pista anterior</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>Modo &amp;compacto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Abrir la página de &amp;YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Copiar el en&amp;lace de YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiar la &amp;URL de flujo del vídeo</translation>
+        <translation>Copiar el &amp;URL de flujo del vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Encontrar &amp;partes de vídeos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Limpiar búsquedas recientes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Hacer una &amp;donación</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Comenzar la reproducción &amp;manualmente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Comenzar la reproducción de vídeos manualmente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation>Elija su ubicación para el contenido</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Reproducir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Continuar la reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Tiempo restante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Volumen al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>El volumen está silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>El volumen no está silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Resolución máxima de video establecida en %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Su privacidad ahora está asegurada
 </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Descargas completas</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Ahora puede pegar el enlace de YouTube en otra aplicación</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Ahora puede pegar la URL del flujo de vídeo en otra aplicación</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>El enlace es válido solo por un tiempo limitado.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esto es solo la versión de prueba de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Le permite probar la aplicación y ver si le funciona.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>de</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>parte</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>episodio</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Enviado desde %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Cancelar suscripción a %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>Suscribirse a %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Obtener la versión completa</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Descargando %1</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 reproducciones</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Preparando</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Falló</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Completado</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Detenido</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Detener la descarga</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Mostrar en %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Abrir carpeta contenedora</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Reiniciar la descarga</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bienvenido a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Obtener la versión completa</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Escriba</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>una palabra clave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>para empezar a ver vídeos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Ver</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Palabras clave recientes</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Canales recientes</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Atrás</translation>
     </message>
         <source>Most Popular</source>
         <translation>Más populares</translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation>Destacados</translation>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation>Mejor valorados</translation>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Populares siempre</translation>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>No se puede obtener el flujo de vídeo para %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Error de red: %1 por %2</translation>
     </message>
index ad1dae2f146fca5066fb7aa8b2fec19940fb3b5e..55edee0d854f4d9c9d3f773c6e60d0ff0d67f384 100644 (file)
     <message>
         <location filename="src/aboutview.cpp" line="38"/>
         <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
+        <translation>Licencia para: %1</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="42"/>
         <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 es Software Libre pero su desarrollo lleva tiempo.</translation>
+        <translation>%1 es Software Libre pero su desarrollo lleva precioso tiempo.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="43"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
-        <translation>Por favor, &lt;a href=&apos;%1&apos;&gt;hacé una donación&lt;/a&gt; para apoyar el desarrollo de %2.</translation>
+        <translation>Por favor, &lt;a href=&apos;%1&apos;&gt;dóna&lt;/a&gt; para apoyar el desarrollo continuo de %2.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="47"/>
         <source>You may want to try my other apps as well:</source>
-        <translation>Talvez querás probar mis otras aplicaciones como:</translation>
+        <translation>Tal vez querrás probar mis otras aplicaciones como:</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="50"/>
@@ -45,7 +45,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="60"/>
         <source>Translate %1 to your native language using %2</source>
-        <translation>Traducí %1 a tu idioma natal usando %2</translation>
+        <translation>Traduce %1 a tu idioma natal usando %2</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="65"/>
     <message>
         <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation type="unfinished"/>
+        <translation>Introduzca los detalles de la licencia</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
-        <translation type="unfinished"/>
+        <translation>Correo &amp;electrónico:</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Código:</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
+        <translation>La versión completa te permite descargar vídeos más largos que %1 minutos y mirar vídeos sin interrupciones.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
+        <translation>Sin una licencia, la aplicación caducará en %1 días.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
     <message>
         <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
-        <translation type="unfinished"/>
+        <translation>Introducir licencia</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
+        <translation>Comprar licencia</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Sortear por</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation type="unfinished"/>
     </message>
 </context>
     <message>
         <location filename="src/downloadmanager.cpp" line="64"/>
         <source>Get the full version</source>
-        <translation>Conseguí la versión completa</translation>
+        <translation>Consigue la versión completa</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="150"/>
     <message>
         <location filename="src/downloadsettings.cpp" line="72"/>
         <source>Downloading to: %1</source>
-        <translation>Bajando a: %1</translation>
+        <translation>Bajando al: %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation type="unfinished"/>
+        <translation>Descargando actualización…</translation>
     </message>
 </context>
 <context>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Encuentra vídeos por canales o por palabras clave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Navegar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
+        <translation>Navega en los vídeos por categoría</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
         <translation type="unfinished"/>
     </message>
     <message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Detener</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
-        <translation>Detener y volver a la búsqueda</translation>
+        <translation>Detener la reproducción y volver a la vista de búsqueda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;Saltar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
-        <translation>Siguiente video</translation>
+        <translation>Saltar al siguiente video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pausar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Pausar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Ir a pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Esconder la lista de reproducción y la barra de herramientas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Ir al video en YouTube y pausar la reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
-        <translation>Copiar el enlace de YouTube del video al portapapeles</translation>
+        <translation>Copiar el enlace de YouTube del video actual al portapapeles</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
-        <translation>Copiar la &amp;URL del stream del video al portapapeles</translation>
+        <translation>Copiar la URL del stream del video al portapapeles</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
-        <translation>Encontrá las otras partes del video con suerte en el orden correcto</translation>
+        <translation>Encuentra las otras partes del video con suerte en el orden correcto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Borrar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Borrar los videos seleccionados de la lista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Mover hacia &amp;arriba</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Mover hacia arriba los videos seleccionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Mover hacia &amp;abajo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Mover hacia abajo los videos seleccionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Eliminar el historial de búsqueda. No se puede deshacer.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Salir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
-        <translation>Chau</translation>
+        <translation>Adiós</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Sitio web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 en la Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
-        <translation>Apoyar el desarrollo de %1</translation>
+        <translation>Por favor apoya el desarrollo continuo de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Acerca de</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Información sobre %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Silenciar volumen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Descargas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Mostrar detalles sobre la descarga de videos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Bajar video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Bajar el video actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
-        <translation>Compartí el video actual usando %1</translation>
+        <translation>Compartí el vídeo actual usando %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Correo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Correo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Cerrar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Siempre Visible</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Finalizar Después de este Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Reportar un inconveniente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Refinar Búsqueda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>Más...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Vídeos relacionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>Mirar vídeos relacionados al vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Programa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Comprar %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Lista de reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Ver</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Ayuda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
-        <translation>Con %1 subís el volumen, con %2 lo bajás</translation>
+        <translation>Con %1 para subir el volumen, con %2 para bajarlo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Abriendo %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
-        <translation>Seguro que querés salir de %1 con una descarga en progreso?</translation>
+        <translation>Seguro que quieres salir de %1 con una descarga en progreso?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
-        <translation>Si cerrás %1 ahora, la descarga se va a cancelar.</translation>
+        <translation>Si cierras %1 ahora, la descarga se va a cancelar.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Cerrar y cancelar descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Esperar a que termine la descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Salir de &amp;Pantalla Completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 versión %2 está ahora disponible</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Recordármelo después</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Actualizar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
-        <translation>A6nterior</translation>
+        <translation>Anterior</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Volver a la pista previa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>&amp;Modo Compacto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Abrir la página de &amp;YouTube </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Copiar el enlace de &amp;YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Copiar Video &amp;URL</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Encontrar Video &amp;Partes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Borrar las búsquedas recientes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Hacer una &amp;donación</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>&amp;Iniciar Reproducción Manualmente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Empezar a reproducir videos manualmente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>Selecciona la localidad de tu contenido</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Reproducir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Continuar reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Tiempo restante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Volumen al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Volumen silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Volumen activo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
-        <translation>Definición máxima de video seteada en %1</translation>
+        <translation>Definición máxima de video ajustada en %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Tu privacidad ahora está segura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Descarga completa</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
-        <translation>Ahora podés pegar el enlace de YouTube en otra aplicación</translation>
+        <translation>Ahora puedes pegar el enlace de YouTube en otra aplicación</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Ahora podés pegar la URL del stream en otra aplicación</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
-        <translation>El enalce va a ser válido sólo por un tiempo limitado.</translation>
+        <translation>El enlace va a ser válido sólo por un tiempo limitado.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta es sólo la versión de demostración de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Te permite probar la aplicación y ver si te funciona.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>de</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>parte</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>episodio</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Enviado desde %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Conseguir la versión completa</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Descargando %1</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="21"/>
         <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
+        <translation>Está disponible una nueva versión de %1.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
+        <translation>%1 %2 está disponible ahora. Ud. tiene %3.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
+        <translation>¿Quiere descargarla ahora?</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
-        <translation type="unfinished"/>
+        <translation>Omitir esta versión</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
-        <translation type="unfinished"/>
+        <translation>Recordarme después</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
-        <translation type="unfinished"/>
+        <translation>Instalar actualización</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
-        <translation type="unfinished"/>
+        <translation>Pegar</translation>
     </message>
 </context>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 visitas</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
+        <translation>%1 of %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
-        <translation type="unfinished"/>
+        <translation>Preparando</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
-        <translation type="unfinished"/>
+        <translation>Falló</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
-        <translation type="unfinished"/>
+        <translation>Completado</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
-        <translation type="unfinished"/>
+        <translation>Detenido</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
-        <translation type="unfinished"/>
+        <translation>Detener descarga</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
-        <translation type="unfinished"/>
+        <translation>Mostrar en %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
-        <translation type="unfinished"/>
+        <translation>Abrir carpeta relacionada</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
-        <translation type="unfinished"/>
+        <translation>Reiniciar descarga</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/playlistmodel.cpp" line="55"/>
         <source>No more videos</source>
-        <translation type="unfinished"/>
+        <translation>No hay más vídeos</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/regionsview.cpp" line="19"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>Hecho</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bienvenido a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Conseguir la versión completa</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Escribir</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>una palabra clave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>para empezar a ver videos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Ver</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Búsquedas recientes</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Canales recientes</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Atrás</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="57"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>Avanzar a %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="70"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>Retroceder a %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/standardfeedsview.cpp" line="85"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
+        <translation>Más populares</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Más compartidos</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="88"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>Más discutidos</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="89"/>
         <source>Top Rated</source>
+        <translation>Mejor calificados</translation>
+    </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
         <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>No puedo obtener el stream de video de %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Error de conexión: %1 para %2</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="8"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>Algeria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="9"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>Argentina</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="10"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>Australia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="11"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>Bélgica</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="12"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>Brasil</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="13"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>Canada</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="14"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>Chile</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="15"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>Colombia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="16"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>República Checa</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="17"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>Egipto</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="18"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>Francia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="19"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>Alemania</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="20"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>Ghana</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="21"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>Grecia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="22"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>Hong Kong</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="23"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>Hungría</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>India</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Indonesia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>Irlanda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>Israel</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>Italia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Japón</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Jordan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Kenya</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Malasia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>México</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>Marruecos</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Países Bajos</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>Nueva Zelanda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>Nigeria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>Perú</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>Filipinas</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>Polonia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>Rusia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>Arabia Saudita</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>Singapur</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>Sud Africa</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>Sud Corea</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>España</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>Suecia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>Taiwan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>Túnez</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>Turquía</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>Uganda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>Emiratos Arabes Unidos</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>Reino Unido</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>Yemen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Todo el mundo</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index 9278f7dd966dcfb8856262f5b472c75338742af4..9b6e5136271542e4053a00e732712fb88690d37b 100644 (file)
     <message>
         <location filename="src/aboutview.cpp" line="38"/>
         <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
+        <translation>Con licencia para %1</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="42"/>
         <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 es Software Libre pero su desarrollo lleva mucho tiempo.</translation>
+        <translation>%1 es un programa de software libre, pero su desarrollo lleva mucho tiempo.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="43"/>
@@ -35,7 +35,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="50"/>
         <source>%1, a YouTube music player</source>
-        <translation>%1, reproductor de música de YouTube</translation>
+        <translation>%1, un reproductor de música de YouTube</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="54"/>
@@ -45,7 +45,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="60"/>
         <source>Translate %1 to your native language using %2</source>
-        <translation>Traduce %1 a tu idioma utilizando %2</translation>
+        <translation>Traducir %1 a tu idioma utilizando %2</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="65"/>
@@ -70,7 +70,7 @@
     <message>
         <location filename="src/aboutview.h" line="19"/>
         <source>What you always wanted to know about %1 and never dared to ask</source>
-        <translation>Lo que siempre quiso saber sobre el %1 y nunca se atrevió a preguntar</translation>
+        <translation>Lo que siempre quiso saber sobre %1 y nunca se atrevió a preguntar</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation type="unfinished"/>
+        <translation>Introducir detalles de la licencia</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
-        <translation type="unfinished"/>
+        <translation>Corr&amp;eo electrónico:</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Código:</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
-        <translation>Esta versión de prueba ha caducado.</translation>
+        <translation>La versión de prueba ha caducado.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
+        <translation>La versión completa le permite descargar vídeos superiores a %1 minutos y ver vídeos sin interrupciones.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
+        <translation>La aplicación caducará en %1 días si no tiene una licencia.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
         <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
-        <translation>Al comprar la versión completa, también apoya el trabajo empleado en la creación de %1.</translation>
+        <translation>Al comprar la versión completa, estará apoyando el gran trabajo empleado en la creación de %1.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="70"/>
     <message>
         <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
-        <translation type="unfinished"/>
+        <translation>Introducir licencia</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
+        <translation>Comprar licencia</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Sortear por</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation type="unfinished"/>
     </message>
 </context>
     <message>
         <location filename="src/downloaditem.cpp" line="340"/>
         <source>KB/sec</source>
-        <translation>KB/sec</translation>
+        <translation>KB/seg</translation>
     </message>
     <message>
         <location filename="src/downloaditem.cpp" line="343"/>
     <message>
         <location filename="src/downloadmanager.cpp" line="55"/>
         <source>This is just the demo version of %1.</source>
-        <translation>Esta es sólo la versión demo de %1.</translation>
+        <translation>Esta es la versión de prueba de %1.</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="57"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
-        <translation>Sólo se pueden descargar vídeos más cortos de %1 minutos, así puede probar la funcionalidad de descarga.</translation>
+        <translation>Sólo se pueden descargar vídeos inferiores a %1 minutos. Así podrá probar la funcionalidad de descarga.</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="63"/>
     <message>
         <location filename="src/downloadsettings.cpp" line="61"/>
         <source>Current downloads will still go in the previous location.</source>
-        <translation>Las descargan actuales irán a parar a la anterior ubicación.</translation>
+        <translation>Las descargan actuales se guardarán en la ubicación anterior.</translation>
     </message>
     <message>
         <location filename="src/downloadsettings.cpp" line="72"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation type="unfinished"/>
+        <translation>Descargando actualización...</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/globalshortcuts.cpp" line="19"/>
         <source>Stop</source>
-        <translation>Parar</translation>
+        <translation>Detener</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="20"/>
         <source>Stop playing after current track</source>
-        <translation>Parar reproducción después esta pista</translation>
+        <translation>Detener reproducción después esta pista</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="21"/>
     <message>
         <location filename="src/globalshortcuts.cpp" line="26"/>
         <source>Seek forward</source>
-        <translation>Buscar adelante</translation>
+        <translation>Buscar hacia adelante</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="27"/>
         <source>Seek backward</source>
-        <translation>Buscar atrás</translation>
+        <translation>Buscar hacia atrás</translation>
     </message>
 </context>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Buscar vídeos y canales mediante palabra clave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Examinar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
+        <translation>Examinar vídeos por categoría</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
         <translation type="unfinished"/>
     </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
+        <translation>Siéntete como en casa</translation>
     </message>
 </context>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
-        <translation>&amp;Parar</translation>
+        <translation>&amp;Detener</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
-        <translation>Parar reproducción y volver a la vista de búsqueda</translation>
+        <translation>Detener reproducción y volver a la vista de búsqueda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>Sa&amp;ltar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Saltar al siguiente vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pausar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Pausar reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Ir a pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ocultar la lista de reproducción y la barra de herramientas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Ir a la página del vídeo en YouTube y pausar la reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copiar al portapapeles el enlace del vídeo de YouTube actual </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
-        <translation>Copiar al portapapeles la &amp;URL del stream de vídeo actual</translation>
+        <translation>Copiar al portapapeles la &amp;URL del flujo de vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
-        <translation>Encontrar otras partes de video, con suerte, en el orden correcto</translation>
+        <translation>Buscar otras partes del vídeo, con suerte, en el orden correcto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>Elimina&amp;r</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Eliminar los vídeos seleccionados de la lista de reproducción </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>S&amp;ubir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Subir en la lista de reproducción los vídeos seleccionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>&amp;Bajar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Bajar en la lista de reproducción los vídeos seleccionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Limpiar el historial de búsquedas. Esta acción no puede deshacerse.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Salir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Adiós</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>Sitio &amp;Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 en la Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
-        <translation>Por favor, apoye el continuo desarrollo de %1</translation>
+        <translation>Apoye el desarrollo continuo de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
-        <translation>&amp;Acerca de</translation>
+        <translation>&amp;Acerca de...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
-        <translation>Información sobre %1</translation>
+        <translation>Información acerca de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
-        <translation>Búsqueda</translation>
+        <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Silenciar volumen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Descargas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
-        <translation>Muestra detalles sobre las descargas de vídeos</translation>
+        <translation>Mostrar detalles sobre las descargas de vídeos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Descargar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
-        <translation>Descarga el vídeo actual</translation>
+        <translation>Descargar el vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Compartir el vídeo actual usando %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Correo electrónico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Correo electrónico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Cerrar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Siempre Visible</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
-        <translation>&amp;Pausar Después De Este Video</translation>
+        <translation>&amp;Detener después de este vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
-        <translation>&amp;Reporte un inconveniente...</translation>
+        <translation>&amp;Informar de un problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
-        <translation>&amp;Refinar Búsqueda...</translation>
+        <translation>&amp;Refinar búsqueda...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>Más...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>Vídeos &amp;relacionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>Ver vídeos relacionados con el actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Aplicación</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Comprar %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>Lista de Re&amp;producción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Ver</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>Com&amp;partir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Ayuda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
-        <translation>Presiona %1 para subir el volumen, %2 para bajarlo</translation>
+        <translation>Pulse %1 para subir el volumen y %2 para bajarlo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Abriendo %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>¿Deseas salir de %1 con una descarga activa?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Si cierras %1, esta descarga se cancelará.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Cerrar y cancelar la descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Esperar la finalización de la descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Salir de pan&amp;talla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
-        <translation>%1 versión %2 ya está disponible.</translation>
+        <translation>La versión %2 de %1 ya está disponible.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Recordarme después</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Actualizar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
-        <translation>P&amp;revio</translation>
+        <translation>Ante&amp;rior</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Vuelve a la vista anterior</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
-        <translation>&amp;Modo Compacto</translation>
+        <translation>Modo &amp;compacto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Abrir la página de &amp;YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Copiar el &amp;enlace de YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiar Video En Línea &amp;URL</translation>
+        <translation>Copiar &amp;URL del flujo de vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
-        <translation>Encontrar Videos &amp;Partes</translation>
+        <translation>Buscar &amp;partes del vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Limpiar búsquedas recientes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Hacer una &amp;donación</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Iniciar Reproducción Manual</translation>
+        <translation>&amp;Iniciar reproducción manual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
-        <translation>Empezar a reproducir videos manualmente</translation>
+        <translation>Empezar a reproducir vídeos manualmente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>Elegir la ubicación del contenido</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>Re&amp;producir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
-        <translation>Reiniciar la reproducción</translation>
+        <translation>Reanudar la reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Tiempo restante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Volumen al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
-        <translation>El volumen está desactivado</translation>
+        <translation>El volumen está silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
-        <translation>El volumen está activado</translation>
+        <translation>El volumen no está silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
-        <translation>Definición Máxima de Video es %1</translation>
+        <translation>La definición máxima de vídeo es %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Su privacidad ahora es segura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Descargas completadas</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Ahora puedes pegar el enlace de Youtube en otra aplicación</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
-        <translation>Ahora puedes pegar la URL del stream de vídeo en otra aplicación</translation>
+        <translation>Ahora puedes pegar la URL del flujo de vídeo en otra aplicación</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
-        <translation>EL enlace será válido sólo por un plazo de tiempo limitado.</translation>
+        <translation>El enlace será válido sólo por un plazo de tiempo limitado.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
-        <translation>Esta es sólo la versión de demo de %1.</translation>
+        <translation>Esta es la versión de prueba de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
-        <translation>Le premite probar la aplicación y ver si le funciona.</translation>
+        <translation>Esta versión le permite probar la aplicación y ver si le sirve.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>de</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>parte</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
-        <translation>episodio</translation>
+        <translation>capítulo</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Enviado desde %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Obtener la versión completa</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
-        <translation>Descargand %1</translation>
+        <translation>Descargando %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/updatedialog.cpp" line="21"/>
         <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
+        <translation>¡Una nueva versión de %1 ya está disponible!</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
+        <translation>%1 %2 ya está disponible. Tienes la %3.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
+        <translation>¿Deseas descargarla ahora?</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
-        <translation type="unfinished"/>
+        <translation>Saltar esta versión</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
-        <translation type="unfinished"/>
+        <translation>Recordarme después</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
-        <translation type="unfinished"/>
+        <translation>Instalar actualización</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
-        <translation type="unfinished"/>
+        <translation>Pegar</translation>
     </message>
 </context>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 vistas</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
+        <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
-        <translation type="unfinished"/>
+        <translation>Preparando</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
-        <translation type="unfinished"/>
+        <translation>Falló</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
-        <translation type="unfinished"/>
+        <translation>Completo</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
-        <translation type="unfinished"/>
+        <translation>Detenido</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
-        <translation type="unfinished"/>
+        <translation>Detener descarga</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
-        <translation type="unfinished"/>
+        <translation>Mostrar en %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
-        <translation type="unfinished"/>
+        <translation>Abrir carpeta raíz</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
-        <translation type="unfinished"/>
+        <translation>Reiniciar descarga</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/playlistmodel.cpp" line="53"/>
         <source>Show %1 More</source>
-        <translation type="unfinished"/>
+        <translation>Mostrar %1 más</translation>
     </message>
     <message>
         <location filename="src/playlistmodel.cpp" line="54"/>
     <message>
         <location filename="src/playlistmodel.cpp" line="55"/>
         <source>No more videos</source>
-        <translation type="unfinished"/>
+        <translation>No hay más vídeos</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="31"/>
         <source>Sort by</source>
-        <translation>Sortear por</translation>
+        <translation>Ordenar por</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="35"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="38"/>
         <source>Rating</source>
-        <translation>Calificación</translation>
+        <translation>Valoraciones</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="56"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="58"/>
         <source>7 Days</source>
-        <translation>7 Días</translation>
+        <translation>7 días</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="59"/>
         <source>30 Days</source>
-        <translation>30 Días</translation>
+        <translation>30 días</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="73"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="83"/>
         <source>Less than 4 minutes</source>
-        <translation>Menor que 4 minutos</translation>
+        <translation>Inferior a 4 minutos</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="84"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="85"/>
         <source>Longer than 20 minutes</source>
-        <translation>Mayor que 20 minutos</translation>
+        <translation>Superior a 20 minutos</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="100"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="105"/>
         <source>High Definition</source>
-        <translation>Alta Definición</translation>
+        <translation>Alta definición</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="108"/>
     <message>
         <location filename="src/regionsview.cpp" line="19"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>Finalizado</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
-        <translation>Bienvenido/a a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
+        <translation>Bienvenidos a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Obtener la versión completa</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Introducir</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>una palabra clave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
-        <translation>empezar a ver vídeos</translation>
+        <translation>para empezar a ver vídeos</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Ver</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Palabras clave recientes</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Canales recientes</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Volver</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="57"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>Hacia adelante %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="70"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>Hacia atrás %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/sidebarwidget.cpp" line="52"/>
         <source>Refine Search</source>
-        <translation>Refinar Búsqueda</translation>
+        <translation>Refinar búsqueda</translation>
     </message>
     <message>
         <location filename="src/sidebarwidget.cpp" line="148"/>
     <message>
         <location filename="src/standardfeedsview.cpp" line="85"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
+        <translation>Más popular</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Más compartidos</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="88"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>Más comentados</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="89"/>
         <source>Top Rated</source>
+        <translation>Mejor valorados</translation>
+    </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
         <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>No se puede obtener el flujo de vídeo para %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Error de red: %1 por %2 </translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="8"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>Algeria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="9"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>Argentina</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="10"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>Australia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="11"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>Bélgica</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="12"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>Brasil</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="13"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>Canadá</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="14"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>Chile</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="15"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>Colombia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="16"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>República Checa</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="17"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>Egipto</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="18"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>Francia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="19"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>Alemania</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="20"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>Ghana</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="21"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>Grecia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="22"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>Hong Kong</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="23"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>Hungría</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>India</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Indonesia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>Irlanda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>Israel</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>Italia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Japón</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Jordania</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Kenia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Malasia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>México</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>Marruecos</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Países Bajos</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>Nueva Zelanda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>Nigeria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>Perú</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>Filipinas</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>Polonia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>Rusia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>Arabia Saudí</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>Singapur</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>Sudáfrica</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>Corea del Sur</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>España</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>Suecia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>Taiwán</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>Túnez</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>Turquía</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>Uganda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>Emiratos Árabes Unidos</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>Reino Unido</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>Yemen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Mundial</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index 7de34c5cda705b13aac7f5e36b0c56d12b52e99f..ba46ecbe5c84824ab0dfa553396b312f80bcef9f 100644 (file)
@@ -15,7 +15,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="38"/>
         <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
+        <translation>Lisensoitu henkilölle: %1</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="42"/>
@@ -78,7 +78,7 @@
     <message>
         <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation type="unfinished"/>
+        <translation>Syötä tähän lisenssitietosi</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
     <message>
         <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
-        <translation>Lisensoi %1</translation>
+        <translation>Lisensioi %1.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
-        <translation>Tämä koekäyttöversio on vanhentunut.</translation>
+        <translation>Tämä demon kokeiluaika on päättynyt.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
+        <translation>Ilman lisenssiä tämä sovellus vanhenee %1 päivässä.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
         <translation>Osta lisenssi</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>Tekijältä %1</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Kaikki videot</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Katsomattomat videot</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Merkitse kaikki katsotuiksi</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Näytä päivitetyt</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Nimi</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Viimeksi päivitetyt</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Viimeksi lisätyt</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Viimeksi katsotut</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Katsotuimmat</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Järjestysperuste</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Kaikki videot</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Katsomattomat videot</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Päivitettyjä tilauksia ei ole tällä hetkellä.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Sinulla ei ole tilauksia. Käytä tähtisymbolia tilataksesi kanavia.</translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Etsi</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Etsi videoita ja kanavia avainsanalla</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Selaa</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
-        <translation type="unfinished"/>
+        <translation>Selaa videoita ryhmien mukaan</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Tilaukset</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Kanavatilaukset</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Virhe</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Pysäytä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Pysäytä toisto ja palaa hakuruutuun</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;Hyppää yli</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Siirry seuraavaan videoon</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Keskeytä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Keskeytä toisto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Koko näytön tila</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Siirry koko näytön tilaan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Piilota soittolista sekä työkalupalkki</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Keskeytä toisto ja mene videon YouTube-sivulle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Kopioi nykyisen videon YouTube-linkki leikepöydälle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopioi nykyisen videovirran osoite leikepöydälle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Löydä videon muut osat toivottavasti oikeassa järjestyksessä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Poista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Poista valitut videot toistolistalta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Siirrä &amp;ylös</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Siirrä valitut videot ylemmäksi soittolistalla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Sirrä &amp;alas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Siirrä valitut videot alemmaksi soittolistalla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Tyhjennä hakuhistoria. Tätä toimintoa ei voi kumota.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Lopeta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Näkemiin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Nettisivusto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 netissä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Tue %1n jatkokehitystä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Tietoja</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Tietoja %1sta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Etsi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Vaimenna ääni</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Lataukset</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Näytä tietoja latauksista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Lataa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Lataa nykyinen video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>%Tilaa kanava</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Jaa nykyinen video palvelulla %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Sähköposti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Sähköposti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Sulje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Pysy päällimmäisenä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>Py&amp;säytä toisto tämän videon jälkeen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Ilmoita ongelmasta...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Määritä haku uudelleen...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>Lisää...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Aiheeseen liittyvät videot</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>Katso nykyiseen videoon liittyvät videot</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Sovellus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Osta %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Toisto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>S&amp;oittolista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Näytä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Jaa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Ohje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Paina näppäinyhdistelmää %1 nostaaksesi tai %2 laskeaksesi äänenvoimakkuutta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Avataan kohdetta %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Haluatko, että %1 sulkeutuu vaikka lataus on kesken?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Jos suljet %1n nyt niin tämä lataus keskeytetään.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Sulje ja peru lataus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Odota latauksen valmistumista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation> Poistu &amp;koko näytön tilasta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 versio %2 on nyt saatavilla.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Muistuta myöhemmin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Päivitä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Virhe: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>E&amp;dellinen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Siirry takaisin edelliseen kappaleeseen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>Kompakti &amp;tila</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Avaa &amp;YouTube-sivu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Kopioi YouTube-&amp;linkki</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Kopioi videovirran &amp;URL</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Etsi videon &amp;osat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>Ty&amp;hjennä viimeisimmät haut</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Tee &amp;lahjoitus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Aloita toisto &amp;manuaalisesti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Aloittaa videoiden toiston manuaalisesti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>Valitse sisältösi sijainti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Toista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Jatka toistoa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Aikaa jäljellä: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Äänentaso: %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Ääni on vaimennettu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Ääni ei ole vaimennettu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Korkein videonlaatu on rajoitettu tarkkuuteen %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Yksityisyytesi on nyt turvattu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Lataukset ovat valmistuneet</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Voit nyt liittää YouTube-linkin johonkin toiseen sovellukseen</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Voit nyt liittää videovirran osoitteen (URL) johonkin toiseen sovellukseen</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Osoite on käytössä vain rajoitetun ajan.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Tämä on vain %1n kokeiluversio.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Voit kokeilla ohjelmaa nähdäksesi, toimiiko se.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Jatka</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>/</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>osa</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>jakso</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Lähetetty palvelusta %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Peru kanavan %1 tilaus</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>Tilaa kanava %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Hanki täysi versio</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Ladataan %1ta/tä</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="21"/>
         <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
+        <translation>Uusi versio sovelluksesta %1 on saatavilla!</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
+        <translation>%1 %2 on nyt saatavilla. Sinulla on %3.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
-        <translation>Muistuta myöhemmin</translation>
+        <translation>Muistuta minua myöhemmin</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
     <message>
         <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
-        <translation type="unfinished"/>
+        <translation>Liitä</translation>
     </message>
 </context>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>Katsottu %1 kertaa</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 / %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Valmistellaan</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Epäonnistui</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Valmis</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Pysäytetty</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Pysäytä lataus</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Avaa %1ssa/ssä</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Avaa yläkansio</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Käynnistä lataus uudelleen</translation>
     </message>
     <message>
         <location filename="src/regionsview.cpp" line="19"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>Valmis</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Tervetuloa &lt;a href=&apos;%1&apos;&gt;%2en&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Hanki täysversio</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Syötä</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>hakusana</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>kanava</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>aloittaaksesi videoiden katselu.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Katso</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Viimeisimmät hakusanat</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Viimeisimmät kanavat</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Takaisin</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="57"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>Eteenpäin kohteeseen %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="70"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>Takaisin kohteeseen %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/standardfeedsview.cpp" line="85"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
+        <translation>Suosituimmat</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Jaetuimmat</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="88"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>Keskustelluimmat</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="89"/>
         <source>Top Rated</source>
-        <translation type="unfinished"/>
+        <translation>Arvostetuimmat</translation>
+    </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Kaikkien aikojen suosituimmat</translation>
     </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Videostriimiä ei saada kohteelle %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Verkkovirhe: &quot;%1&quot; &quot;%2&quot;lle</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="8"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>Algeria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="9"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>Argentiina</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="10"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>Australia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="11"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>Belgia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="12"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>Brasilia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="13"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>Kanada</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="14"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>Chile</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="15"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>Kolumbia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="16"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>Tšekin tasavalta</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="17"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>Egypti</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="18"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>Ranska</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="19"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>Saksa</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="20"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>Ghana</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="21"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>Kreikka</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="22"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>Hongkong</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="23"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>Unkari</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>Intia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Indonesia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>Irlanti</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>Israel</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>Italia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Japani</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Jordania</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Kenia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Malesia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>Meksiko</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>Marokko</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Alankomaat</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>Uusi-Seelanti</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>Nigeria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>Peru</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>Filippiinit</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>Puola</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>Venäjä</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>Saudi-Arabia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>Singapore</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>Etelä-Afrikka</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>Etelä-Korea</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>Espanja</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>Ruotsi</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>Taiwan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>Tunisia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>Turkki</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>Uganda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>Yhdistyneet arabiemiirikunnat</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>Yhdistynyt kuningaskunta</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>Jemen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Maailmanlaajuinen</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index a5c8bf2b3cb55e31de7ec540950bdec6a068b493..fb66672541dab759cf769cfe4a20a2bc01290a6d 100644 (file)
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
+        <translation>Täysversio sallii sinun ladata yli %1 minuutin pituisia videoita ja katsoa videoita ilman keskeytyksiä.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <translation>Osta lisenssi</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>Tekijältä %1</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Kaikki videot</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Katsomattomat videot</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Merkitse kaikki katsotuiksi</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Näytä päivitetyt</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Nimi</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Viimeksi päivitetyt</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Viimeksi lisätyt</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Viimeksi katsotut</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Katsotuimmat</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Järjestysperuste</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Kaikki videot</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Katsomattomat videot</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Päivitettyjä tilauksia ei ole tällä hetkellä.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Sinulla ei ole tilauksia. Käytä tähtisymbolia tilataksesi kanavia.</translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Etsi</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Etsi videoita ja kanavia avainsanalla</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Selaa</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
-        <translation type="unfinished"/>
+        <translation>Selaa videoita ryhmien mukaan</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Tilaukset</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Kanavatilaukset</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Virhe</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Pysäytä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Pysäytä toisto ja palaa hakuruutuun</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;Hyppää yli</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Siirry seuraavaan videoon</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Keskeytä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Keskeytä toisto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Koko näytön tila</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Siirry koko näytön tilaan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Piilota soittolista sekä työkalupalkki</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Keskeytä toisto ja mene videon YouTube-sivulle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Kopioi nykyisen videon YouTube-linkki leikepöydälle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopioi nykyisen videovirran osoite leikepöydälle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Löydä videon muut osat toivottavasti oikeassa järjestyksessä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Poista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Poista valitut videot toistolistalta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Siirrä &amp;ylös</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Siirrä valitut videot ylemmäksi soittolistalla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Sirrä &amp;alas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Siirrä valitut videot alemmaksi soittolistalla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Tyhjennä hakuhistoria. Tätä toimintoa ei voi kumota.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Lopeta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Näkemiin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Nettisivusto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 netissä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Tue %1n jatkokehitystä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Tietoja</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Tietoja %1sta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Etsi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Vaimenna ääni</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Lataukset</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Näytä tietoja latauksista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Lataa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Lataa nykyinen video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>%Tilaa kanava</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Jaa nykyinen video palvelulla %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Sähköposti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Sähköposti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Sulje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Pysy päällimmäisenä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>Py&amp;säytä toisto tämän videon jälkeen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Ilmoita ongelmasta...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Määritä haku uudelleen...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>Lisää...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Aiheeseen liittyvät videot</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>Katso nykyiseen videoon liittyvät videot</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Sovellus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Osta %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Toisto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>S&amp;oittolista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Näytä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Jaa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Ohje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Paina näppäinyhdistelmää %1 nostaaksesi tai %2 laskeaksesi äänenvoimakkuutta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Avataan kohdetta %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Haluatko, että %1 sulkeutuu vaikka lataus on kesken?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Jos suljet %1n nyt niin tämä lataus keskeytetään.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Sulje ja peru lataus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Odota latauksen valmistumista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation> Poistu &amp;koko näytön tilasta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 versio %2 on nyt saatavilla.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Muistuta myöhemmin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Päivitä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Virhe: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>E&amp;dellinen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Siirry takaisin edelliseen kappaleeseen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>Kompakti &amp;tila</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Avaa &amp;YouTube-sivu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Kopioi YouTube-&amp;linkki</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Kopioi videovirran &amp;URL</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Etsi videon &amp;osat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>Ty&amp;hjennä viimeisimmät haut</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Tee &amp;lahjoitus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Aloita toisto &amp;manuaalisesti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Aloittaa videoiden toiston manuaalisesti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>Valitse sisältösi sijainti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Toista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Jatka toistoa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Aikaa jäljellä: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Äänentaso: %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Ääni on vaimennettu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Ääni ei ole vaimennettu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Korkein videonlaatu on rajoitettu tarkkuuteen %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Yksityisyytesi on nyt turvattu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Lataukset ovat valmistuneet</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Voit nyt liittää YouTube-linkin johonkin toiseen sovellukseen</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Voit nyt liittää videovirran osoitteen (URL) johonkin toiseen sovellukseen</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Osoite on käytössä vain rajoitetun ajan.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Tämä on vain %1n kokeiluversio.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Voit kokeilla ohjelmaa nähdäksesi, toimiiko se.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Jatka</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>/</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>osa</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>jakso</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Lähetetty palvelusta %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Peru kanavan %1 tilaus</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>Tilaa kanava %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Hanki täysi versio</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Ladataan %1ta/tä</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>Katsottu %1 kertaa</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
+        <translation>%1 / %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Valmistellaan</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Epäonnistui</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Valmis</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Pysäytetty</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Pysäytä lataus</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Avaa %1ssa/ssä</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Avaa yläkansio</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Käynnistä lataus uudelleen</translation>
     </message>
     <message>
         <location filename="src/regionsview.cpp" line="19"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>Valmis</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Tervetuloa &lt;a href=&apos;%1&apos;&gt;%2en&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Hanki täysversio</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Syötä</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>hakusana</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>kanava</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>aloittaaksesi videoiden katselu.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Katso</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Viimeisimmät hakusanat</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Viimeisimmät kanavat</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Takaisin</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="57"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>Eteenpäin kohteeseen %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="70"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>Takaisin kohteeseen %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/standardfeedsview.cpp" line="85"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
+        <translation>Suosituimmat</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Jaetuimmat</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="88"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>Keskustelluimmat</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="89"/>
         <source>Top Rated</source>
-        <translation type="unfinished"/>
+        <translation>Arvostetuimmat</translation>
+    </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Kaikkien aikojen suosituimmat</translation>
     </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Videostriimiä ei saada kohteelle %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Verkkovirhe: &quot;%1&quot; &quot;%2&quot;lle</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="8"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>Algeria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="9"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>Argentiina</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="10"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>Australia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="11"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>Belgia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="12"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>Brasilia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="13"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>Kanada</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="14"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>Chile</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="15"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>Kolumbia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="16"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>Tšekin tasavalta</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="17"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>Egypti</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="18"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>Ranska</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="19"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>Saksa</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="20"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>Ghana</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="21"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>Kreikka</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="22"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>Hongkong</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="23"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>Unkari</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>Intia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Indonesia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>Irlanti</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>Israel</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>Italia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Japani</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Jordania</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Kenia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Malesia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>Meksiko</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>Marokko</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Alankomaat</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>Uusi-Seelanti</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>Nigeria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>Peru</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>Filippiinit</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>Puola</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>Venäjä</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>Saudi-Arabia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>Singapore</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>Etelä-Afrikka</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>Etelä-Korea</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>Espanja</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>Ruotsi</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>Taiwan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>Tunisia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>Turkki</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>Uganda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>Yhdistyneet arabiemiirikunnat</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>Yhdistynyt kuningaskunta</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>Jemen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Maailmanlaajuinen</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index 9551f9beda7184279898913d39e0cee52d34c47b..7083755a7b0dfbba0d0e266d448baf62949fab42 100644 (file)
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
+        <translation>La version complète vous permet de télécharger des vidéos de plus de %1 minutes et de regarder des vidéos sans interruptions.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <translation>Acheter une licence</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>Par %1</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Toutes les vidéos</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Vidéos non vues</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Tout marquer comme vu</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Afficher les mises à jour</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Dernièrement mis à jour</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Dernièrement ajoutées</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Dernièrement vues</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Les plus vues</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Trier par</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Toutes les vidéos</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Vidéos non vues</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Il n&apos;y a pas d&apos;abonnements mis à jour en ce moment.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Vous n&apos;avez pas d&apos;abonnements. Utilisez le symbole de l&apos;étoile pour vous abonner à des chaines,</translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Chercher</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Trouver des vidéos et des chaînes par mot-clé</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Parcourir</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
-        <translation type="unfinished"/>
+        <translation>Parcourir les vidéos par catégories</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Abonnements</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Abonnements aux chaines</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
+        <translation>Installez-vous confortablement</translation>
     </message>
 </context>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Erreur</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Arrêter</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Arrêter et aller à la page de recherche</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;Passer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Passer à la vidéo suivante</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Mettre en pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Plein écran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Mettre en plein écran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Cacher la liste de lecture et la barre d&apos;outils</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Aller à la page de la vidéo Youtube et mettre en pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copier l&apos;adresse de la vidéo YouTube courante dans le presse-papier</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copier l&apos;adresse du flux vidéo courant dans le presse-papier</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Trouver les autres parties de la vidéo en espérant qu&apos;elles soient dans le bon ordre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Supprimer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Supprimer la vidéo sélectionnée de la liste de lecture</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Déplacer vers les &amp;haut</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Déplacer la vidéo sélectionnée vers le haut dans la liste de lecture</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Déplacer vers les &amp;bas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Déplacer la vidéo sélectionnée vers le bas dans la liste de lecture</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Effacer l&apos;historique de recherche. Opération irréversible.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Quitter</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Au revoir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>Site &amp;Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 sur le Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Merci d&apos;aider à poursuivre le développement de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;À propos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>À propos de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Chercher</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Couper le son</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Téléchargements</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Voir les détails à propos des téléchargements de la vidéo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Téléchargement</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Télécharger la vidéo en cours</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>&amp;S&apos;abonner à la chaine</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Partager cette vidéo avec %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Fermer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Laisser au dessus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Arrêter après cette vidéo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Signaler un problème...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Affiner la recherche...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>Plus…</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>Vidéos &amp;Relatives</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>Regarder des vidéos relatives à la vidéo courante</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Application</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Acheter %1 …</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Lecture</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Liste de lecture</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Vidéo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Vue</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Partager</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Aide</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Appuyer sur %1 pour augmenter le volume, sur %2 pour le baisser</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Ouverture de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Voulez-vous vraiment quitter %1 avec un téléchargement en cours ?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Si vous fermez %1 maintenant, ce téléchargement sera annulé.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Fermer et annuler le téléchargement</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Attendez la fin du téléchargement</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Quitter le &amp;mode plein écran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 version %2 est maintenant disponible</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Me rappeler plus tard</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Mettre à jour</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Erreur : %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>P&amp;récédent</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Aller à la piste précédente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>&amp;Mode compact</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Ouvrir la page &amp;Youtube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Copier le &amp;lien Youtube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Copier l&apos;&amp;URL du flux vidéo </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Trouver les &amp;parties de la vidéo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Effacer les recherches récentes </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Faire un &amp;Don</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>&amp;</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Démarrer manuellement la lecture de vidéos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>Choisissez l&apos;emplacement de votre contenu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Jouer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Relancer la lecture</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Temps restant : %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Volume à %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Volume OFF</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Volume ON</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Résolution vidéo maximale fixée à %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Votre confidentialité est maintenant respectée</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Téléchargements terminés</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Vous pouvez maintenant copier l&apos;adresse Youtube dans une autre application</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Vous pouvez maintenant coller l&apos;adresse du flux vidéo dans une autre application</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Le lien ne sera valide que pour un temps limité.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>C&apos;est juste la version démo de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Cela vous permet de tester l&apos;application et voir si cela fonctionne pour vous.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Continuer</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>de</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>partie</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>épisode</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Envoyé par %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Se désabonner de %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>S&apos;abonner à %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Obtenir la version complète</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>%1 Téléchargement</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 vues</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
+        <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
-        <translation type="unfinished"/>
+        <translation>Préparation</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
-        <translation type="unfinished"/>
+        <translation>Échec</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
-        <translation type="unfinished"/>
+        <translation>Terminé</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
-        <translation type="unfinished"/>
+        <translation>Arrêté</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
-        <translation type="unfinished"/>
+        <translation>Arrêter le téléchargement</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
-        <translation type="unfinished"/>
+        <translation>Montrer dans %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
-        <translation type="unfinished"/>
+        <translation>Ouvrir le dossier parent</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
-        <translation type="unfinished"/>
+        <translation>Redémarrer le téléchargement</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/playlistmodel.cpp" line="53"/>
         <source>Show %1 More</source>
-        <translation type="unfinished"/>
+        <translation>Afficher %1 de plus</translation>
     </message>
     <message>
         <location filename="src/playlistmodel.cpp" line="54"/>
     <message>
         <location filename="src/playlistmodel.cpp" line="55"/>
         <source>No more videos</source>
-        <translation type="unfinished"/>
+        <translation>Il n&apos;y a plus de vidéos</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/regionsview.cpp" line="19"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>Terminé</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bienvenue sur  &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Obtenir la version complète</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Entrer</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>un mot-clé</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>une chaîne</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>pour commencer à regarder des vidéos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Regarder</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Derniers mots-clés</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Chaînes récentes</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Retour</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="57"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>Continuer à %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="70"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>Revenir à %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/standardfeedsview.cpp" line="85"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
+        <translation>Les plus populaires</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Les plus partagées</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="88"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>Les plus commentées</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="89"/>
         <source>Top Rated</source>
-        <translation type="unfinished"/>
+        <translation>Les mieux notées</translation>
+    </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Les plus populaires de tous les temps</translation>
     </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Impossible d&apos;obtenir le flux vidéo de %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Erreur réseau : %1 pour %2</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="8"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>Algérie</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="9"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>Argentine</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="10"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>Australie</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="11"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>Belgique</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="12"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>Brésil</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="13"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>Canada</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="14"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>Chili</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="15"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>Colombie</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="16"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>République Tchèque</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="17"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>Égypte</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="18"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>France</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="19"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>Allemagne</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="20"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>Ghana</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="21"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>Grèce</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="22"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>Hong Kong</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="23"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>Hongrie</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>Inde</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Indonésie</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>Irelande</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>Israël</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>Italie</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Japon</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Jordanie</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Kenya</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Malaisie</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>Mexique</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>Maroc</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Pays-Bas</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>Nouvelle Zélande</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>Nigeria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>Pérou</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>Philippines</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>Pologne</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>Russie</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>Arabie Saoudite</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>Singapour</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>Afrique du Sud</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>Corée du Sud</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>Espagne</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>Suède</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>Taïwan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>Tunisie</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>Turquie</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>Ouganda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>Émirats Arabes unis</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>Royaume Uni</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>Yémen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Monde entier</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index 14bd9e515df9f5c8ecc61f95bec4dbd4bc14db34..34a8fb85198ca1686dcf873982edebd16759ea74 100644 (file)
@@ -15,7 +15,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="38"/>
         <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
+        <translation>הרישוי לטובת: %1</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="42"/>
     <message>
         <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation type="unfinished"/>
+        <translation>נא להזין את פרטי הרישוי שלך</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
-        <translation type="unfinished"/>
+        <translation>&amp;דוא״ל:</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
-        <translation type="unfinished"/>
+        <translation>&amp;קוד:</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
+        <translation>ללא רישיון היישום יפוג בעוד %1 ימים.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
     <message>
         <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
-        <translation type="unfinished"/>
+        <translation>הזנת רישיון</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
+        <translation>רכישת רישיון</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation type="unfinished"/>
     </message>
 </context>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation type="unfinished"/>
+        <translation>העדכון מתקבל...</translation>
     </message>
 </context>
 <context>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>חיפוש</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>חיפוש סרטוני וידאו וערוצים לפי מילת מפתח</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>עיון</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
+        <translation>עיון בקטעי וידאו לפי קטגוריה</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
         <translation type="unfinished"/>
     </message>
     <message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>שגיאה</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;עצירה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>עצירת הנגינה וחזרה אל תצוגת החיפוש</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;דילוג</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>דילוג אל הסרטון הבא</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>ה&amp;שהיה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>השהיית הנגינה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;מסך מלא</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>מעבר למסך מלא</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>הסתרת רשימת ההשמעה וסרגל הכלים</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>מעבר לעמוד הווידאו ב־YouTube והשהיית הנגינה.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>העתקת הקישור אל הווידאו הנוכחי אל לוח הגזירים</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>העתקת כתובת תזרים הווידאו אל לוח הגזירים</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>חיפוש חלקים אחרים בתקווה שהם בסדר הנכון</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>ה&amp;סרה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>הסרת הסרטונים הנבחרים מרשימת ההשמעה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>הזזה מ&amp;מעלה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>הזזת הסרטונים הנבחרים במעלה רשימת ההשמעה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>הזזה מ&amp;טה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>הזזת הסרטונים הנבחרים במורד רשימת ההשמעה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>מחיקת היסטוריית החיפוש. לא ניתן לבטל</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>י&amp;ציאה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>להתראות</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;אתר האינטרנט</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 באינטרנט</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>אנא תמכו בהמשך הפיתוח של %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;על אודות</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>מידע אודות %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>חיפוש</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>השתקת השמע</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>הו&amp;רדות</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>הצגת פרטים על אודות הורדות וידאו</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>הו&amp;רדה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>הורדת סרטון הווידאו הנוכחי</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>שיתוף הווידאו הנוכחי דרך %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;דוא״ל</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>דוא״ל</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;סגירה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;ציפה מלמעלה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>ל&amp;עצור לאחר וידאו זה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;דיווח על תקלה...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;שיפור החיפוש...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>עוד...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;יישום</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>רכישת %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>נ&amp;גינה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;רשימת השמעה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;וידאו</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;צפייה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;שיתוף</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;עזרה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>ניתן ללחוץ על %1 כדי להגביר את עצמת השמע, %2 כדי להנמיך אותה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>%1 נפתח</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>האם ברצונך לצאת מ־%1 כאשר ישנה הורדה פעילה?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>אם %1 ייסגר כעת, הורדה זו תבוטל.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>סגירה וביטול ההורדה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>יש להמתין לסיום ההורדה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>יציאה ממ&amp;סך מלא</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 בגרסה %2 זמין כעת.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>להזכיר לי מאוחר יותר</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>עדכון</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>שגיאה: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>ה&amp;קודם</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>חזרה לרצועה הקודמת</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>מ&amp;צב חסכוני</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>פתיחת העמוד ב&amp;יוטיוב</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>העתקת ה&amp;קישור ליוטיוב</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>העתקת כתובת ת&amp;זרים הווידאו</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>חיפוש ק&amp;טעי וידאו</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;ניקוי החיפושים האחרונים</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>ה&amp;גשת תרומה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>התחלת נגינה י&amp;דנית</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>התחלה ידנית בנגינת קטעי הווידאו</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;נגינה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>המשך הנגינה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>הזמן הנותר: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>עצמת השמע היא %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>השמע מושתק</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>השמע אינו מושתק</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>איכות הנגינה המירבית מוגדרת ל־%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>פרטיותך מוגנת כעת.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>ההורדות הושלמו</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>כעת ניתן להדביק את קישור ה־YouTube שלכם ליישום אחר</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>כעת ניתן להדביק את כתובת תזרים הווידאו ליישום אחר</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>הקישור יהיה תקף לזמן מוגבל בלבד.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>זוהי רק גרסת ההדגמה של %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>גרסה זו מאפשרת לך לבחון את היישום ולראות האם הוא מתאים לצרכיך.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>המשך</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>מתוך</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>חלק</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>פרק</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>נשלח דרך %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>קבלת הגרסה המלאה</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>%1 מתקבל</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
+        <translation>האם ברצונך להוריד זאת כעת?</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
-        <translation type="unfinished"/>
+        <translation>התעלמות מגרסה זו</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
-        <translation type="unfinished"/>
+        <translation>להזכיר לי מאוחר יותר</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
-        <translation type="unfinished"/>
+        <translation>התקנת עדכון</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
-        <translation type="unfinished"/>
+        <translation>הדבקה</translation>
     </message>
 </context>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 צפיות</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>ברוך בואך אל &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>קבלת הגרסה המלאה</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>הזנה</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>מילת מפתח</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>ערוץ</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>כדי להתחיל לצפות בסרטונים.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>צפייה</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>מילות מפתח אחרונות</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>ערוצים אחרונים</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation type="unfinished"/>
     </message>
         <source>Most Popular</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"/>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>לא ניתן לקבל את תזרים הווידאו עבור %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>שגיאת רשת: %1 עבור %2</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="8"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>אלג׳יר</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="9"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>ארגנטינה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="10"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>אוסטרליה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="11"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>בלגיה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="12"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>ברזיל</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="13"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>קנדה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="14"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>צ׳ילה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="15"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>קולומביה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="16"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>הרפובליקה הצ׳כית</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="17"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>מצריים</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="18"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>צרפת</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="19"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>גרמניה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="20"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>גאנה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="21"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>יוון</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="22"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>הונג קונג</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="23"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>הונגריה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>הודו</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>אינדונזיה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>אירלנד</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>ישראל</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>איטליה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>יפן</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>ירדן</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>קניה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>מלזיה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>מקסיקו</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>מרוקו</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>הולנד</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>ניו זילנד</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>ניגריה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>פרו</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>הפיליפינים</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>פולין</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>רוסיה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>ערב הסעודית</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>סינגפור</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>דרום אפריקה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>דרום קוריאה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>ספרד</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>שבדיה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>טאיואן</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>תוניס</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>טורקיה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>אוגנדה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>איחוד נסיכויות ערב</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>הממלכה המאוחדת/אנגליה</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>תימן</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>כל העולם</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
diff --git a/locale/hr.ts b/locale/hr.ts
deleted file mode 100644 (file)
index 5422ef0..0000000
+++ /dev/null
@@ -1,1476 +0,0 @@
-<?xml version="1.0" ?><!DOCTYPE TS><TS language="hr" version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
-<context>
-    <name>AboutView</name>
-    <message>
-        <location filename="src/aboutview.cpp" line="32"/>
-        <source>There&apos;s life outside the browser!</source>
-        <translation>Život postoji i van browsera!</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="33"/>
-        <source>Version %1</source>
-        <translation>Verzija %1</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="38"/>
-        <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="42"/>
-        <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 je besplatan program ali njegov razvoj zahtjeva dragocjeno vrijeme.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="43"/>
-        <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
-        <translation>Vaša &lt;a href=&apos;%1&apos;&gt;donacija&lt;/a&gt; će pomoći daljnjem razvoju %2.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="47"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Možete isprobati i moje ostale aplikacije:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="50"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, player glazbe sa YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="54"/>
-        <source>%1, a music player</source>
-        <translation>%1, za reprodukciju glazbe</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="60"/>
-        <source>Translate %1 to your native language using %2</source>
-        <translation>Prevedite %1 na svoj jezik koristeći %2</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="65"/>
-        <source>Icon designed by %1.</source>
-        <translation>Dizajn ikone %1.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="69"/>
-        <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
-        <translation>Izdano pod &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="84"/>
-        <source>&amp;Close</source>
-        <translation>&amp;Zatvori</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.h" line="17"/>
-        <source>About</source>
-        <translation>O programu</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.h" line="19"/>
-        <source>What you always wanted to know about %1 and never dared to ask</source>
-        <translation>Sve što ste željeli znati o %1 a niste se usudili pitati</translation>
-    </message>
-</context>
-<context>
-    <name>ActivationDialog</name>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
-        <source>Enter your License Details</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
-        <source>&amp;Email:</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
-        <source>&amp;Code:</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>ActivationView</name>
-    <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
-        <source>Please license %1</source>
-        <translation>Molimo registrirajte %1</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
-        <source>This demo has expired.</source>
-        <translation>Vaša demo verzija je istekla.</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
-        <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
-        <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="57"/>
-        <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
-        <translation>Kupnjom pune verzije podržati ćete i težak rad uložen u izradu %1.</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
-        <source>Use Demo</source>
-        <translation>Koristi demo verziju.</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
-        <source>Enter License</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
-        <source>Buy License</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>ClearButton</name>
-    <message>
-        <location filename="src/searchlineedit.cpp" line="56"/>
-        <source>Clear</source>
-        <translation>Obriši</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadItem</name>
-    <message>
-        <location filename="src/downloaditem.cpp" line="322"/>
-        <source>bytes</source>
-        <translation>bajtova</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="325"/>
-        <source>KB</source>
-        <translation>KB</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="328"/>
-        <source>MB</source>
-        <translation>MB</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="337"/>
-        <source>bytes/sec</source>
-        <translation>bajtova/sec</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="340"/>
-        <source>KB/sec</source>
-        <translation>KB/sec</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="343"/>
-        <source>MB/sec</source>
-        <translation>MB/sec</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="349"/>
-        <source>seconds</source>
-        <translation>sekundi</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="352"/>
-        <source>minutes</source>
-        <translation>minuta</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="355"/>
-        <source>%4 %5 remaining</source>
-        <translation>%4 %5 preostalo</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadManager</name>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="55"/>
-        <source>This is just the demo version of %1.</source>
-        <translation>Ovo je samo demo verzija %1.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="57"/>
-        <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
-        <translation>Može preuzeti samo video kraći od %1 minuta tako da možete testirati mogućnost preuzimanja.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="63"/>
-        <source>Continue</source>
-        <translation>Nastavi</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="64"/>
-        <source>Get the full version</source>
-        <translation>Preuzmi punu verziju</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="150"/>
-        <source>%1 downloaded in %2</source>
-        <translation>%1 preuzet u %2</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="153"/>
-        <source>Download finished</source>
-        <translation>Preuzimanje završeno</translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="159"/>
-        <source>%n Download(s)</source>
-        <translation><numerusform>%n preuzimanje</numerusform><numerusform>%n preuzimanja</numerusform><numerusform>%n preuzimanja</numerusform></translation>
-    </message>
-</context>
-<context>
-    <name>DownloadSettings</name>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="15"/>
-        <source>Change location...</source>
-        <translation>Promijeni odredište preuzimanja...</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="47"/>
-        <source>Choose the download location</source>
-        <translation>Odaberi odredište preuzimanja</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="59"/>
-        <source>Download location changed.</source>
-        <translation>Odredište preuzimanja promijenjeno.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="61"/>
-        <source>Current downloads will still go in the previous location.</source>
-        <translation>Trenutna preuzimanja će i dalje ići u prethodno odredište.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="72"/>
-        <source>Downloading to: %1</source>
-        <translation>Preuzimam u: %1</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadView</name>
-    <message>
-        <location filename="src/downloadview.cpp" line="18"/>
-        <location filename="src/downloadview.h" line="22"/>
-        <source>Downloads</source>
-        <translation>Preuzimanja</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>GlobalShortcuts</name>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="16"/>
-        <source>Play</source>
-        <translation>Pokreni</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="17"/>
-        <source>Pause</source>
-        <translation>Pauza</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="18"/>
-        <source>Play/Pause</source>
-        <translation>Pokreni/Pauza</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="19"/>
-        <source>Stop</source>
-        <translation>Stani</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="20"/>
-        <source>Stop playing after current track</source>
-        <translation>Stani nakon trenutne stvari.</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="21"/>
-        <source>Next track</source>
-        <translation>Slijedeća</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="22"/>
-        <source>Previous track</source>
-        <translation>Prethodna</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="23"/>
-        <source>Increase volume</source>
-        <translation>Pojačaj zvuk</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="24"/>
-        <source>Decrease volume</source>
-        <translation>Stišaj zvuk</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="25"/>
-        <source>Mute</source>
-        <translation>Nijemo</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="26"/>
-        <source>Seek forward</source>
-        <translation>Premotaj naprijed</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="27"/>
-        <source>Seek backward</source>
-        <translation>Premotaj nazad</translation>
-    </message>
-</context>
-<context>
-    <name>HomeView</name>
-    <message>
-        <location filename="src/homeview.cpp" line="33"/>
-        <source>Search</source>
-        <translation>Traži</translation>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="35"/>
-        <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="40"/>
-        <source>Browse</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="42"/>
-        <source>Browse videos by category</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.h" line="22"/>
-        <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>LoadingWidget</name>
-    <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
-        <source>Error</source>
-        <translation>Greška</translation>
-    </message>
-</context>
-<context>
-    <name>MainWindow</name>
-    <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
-        <source>&amp;Stop</source>
-        <translation>&amp;Stop</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
-        <source>Stop playback and go back to the search view</source>
-        <translation>Stani i vrati se na pretraživanje</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
-        <source>S&amp;kip</source>
-        <translation>&amp;Preskoči</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
-        <source>Skip to the next video</source>
-        <translation>Preskoči na slijedeći video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pauza</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
-        <source>Pause playback</source>
-        <translation>Pauziraj</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
-        <source>&amp;Full Screen</source>
-        <translation>&amp;Cijeli ekran</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
-        <source>Go full screen</source>
-        <translation>Prikaži preko cijelog ekrana</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
-        <source>Hide the playlist and the toolbar</source>
-        <translation>Sakrij play listu i alatnu traku</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
-        <source>Go to the YouTube video page and pause playback</source>
-        <translation>Idi na Youtube stranicu sa videom i pauziraj</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
-        <source>Copy the current video YouTube link to the clipboard</source>
-        <translation>Kopiraj YouTube link trenutnog videa u clipboard</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
-        <source>Copy the current video stream URL to the clipboard</source>
-        <translation>Kopiraj &amp;URL trenutnog video streama u clipboard</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
-        <source>Find other video parts hopefully in the right order</source>
-        <translation>Nađi ostale dijelove videa, vjerojatno u pravom rasporedu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
-        <source>&amp;Remove</source>
-        <translation>&amp;Ukloni</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
-        <source>Remove the selected videos from the playlist</source>
-        <translation>Ukloni odabrane video clipove iz play liste</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
-        <source>Move &amp;Up</source>
-        <translation>Pomakni &amp;gore</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
-        <source>Move up the selected videos in the playlist</source>
-        <translation>Pomakni gore slektirane video clipove u play listi</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
-        <source>Move &amp;Down</source>
-        <translation>Pomakni &amp;dolje</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
-        <source>Move down the selected videos in the playlist</source>
-        <translation>Pomakni dolje slektirane video clipove u play listi</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
-        <source>Clear the search history. Cannot be undone.</source>
-        <translation>Očisti povijest pretraga. Ne može se vratiti.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
-        <source>&amp;Quit</source>
-        <translation>&amp;Kraj</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
-        <source>Bye</source>
-        <translation>Doviđenja</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
-        <source>&amp;Website</source>
-        <translation>&amp;Web stranice</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
-        <source>%1 on the Web</source>
-        <translation>%1 na webu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
-        <source>Please support the continued development of %1</source>
-        <translation>Molim Vas da podržite daljnji razvoj %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
-        <source>&amp;About</source>
-        <translation>&amp;O programu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
-        <source>Info about %1</source>
-        <translation>Informacije o %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
-        <source>Search</source>
-        <translation>Traži</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
-        <source>Mute volume</source>
-        <translation>Utišaj zvuk</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
-        <source>&amp;Downloads</source>
-        <translation>&amp;Preuzimanja</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
-        <source>Show details about video downloads</source>
-        <translation>Pokaži informacije o preuzimanjima videa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>&amp;Download</source>
-        <translation>&amp;Preuzimanje</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
-        <source>Download the current video</source>
-        <translation>Preuzmi trenutni video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
-        <source>Share the current video using %1</source>
-        <translation>Podijeli trenutni video koristeći %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
-        <source>&amp;Email</source>
-        <translation>&amp;Email</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
-        <source>Email</source>
-        <translation>Email</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
-        <source>&amp;Close</source>
-        <translation>&amp;Zatvori</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
-        <source>&amp;Float on Top</source>
-        <translation>&amp;Budi na vrhu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
-        <source>&amp;Stop After This Video</source>
-        <translation>&amp;Stani nakon ovog videa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
-        <source>&amp;Report an Issue...</source>
-        <translation>&amp;Prijavi problem</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
-        <source>&amp;Refine Search...</source>
-        <translation>&amp;Suzi pretragu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
-        <source>More...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
-        <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
-        <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Program</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
-        <source>Buy %1...</source>
-        <translation>Kupi %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
-        <source>&amp;Playback</source>
-        <translation>&amp;Sviraj</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
-        <source>&amp;Playlist</source>
-        <translation>&amp;Play lista</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
-        <source>&amp;Video</source>
-        <translation>&amp;Video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
-        <source>&amp;View</source>
-        <translation>&amp;Pogled</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
-        <source>&amp;Share</source>
-        <translation>&amp;Podijeli</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
-        <source>&amp;Help</source>
-        <translation>&amp;Pomoć</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
-        <source>Press %1 to raise the volume, %2 to lower it</source>
-        <translation>Pritisnite %1 za glasnije, %2 za tiše</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
-        <source>Opening %1</source>
-        <translation>Otvaram %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
-        <source>Do you want to exit %1 with a download in progress?</source>
-        <translation>Da li stvarno želite napustiti %1 dok traje preuzimanje?</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
-        <source>If you close %1 now, this download will be cancelled.</source>
-        <translation>Ako sada zatvorite %1, preuzimanje će biti poništeno.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
-        <source>Close and cancel download</source>
-        <translation>Zatvori i poništi preuzimanje</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
-        <source>Wait for download to finish</source>
-        <translation>Pričekaj da završi preuzimanje</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Izađi iz &amp;Cijelog ekrana</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 verzija %2 je dostupna.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
-        <source>Remind me later</source>
-        <translation>Podsjeti me kasnije</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
-        <source>Update</source>
-        <translation>Unaprijedi</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
-        <source>Error: %1</source>
-        <translation>Greška: %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;rethodni</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
-        <source>Go back to the previous track</source>
-        <translation>Idi nazad na prethodnu pjesmu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Kompaktni mod</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Otvori &amp;YouTube stranicu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopiraj YouTube &amp;link</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopiraj &amp;URL video streama</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Nađi &amp;dijelove videa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Izbriši nedavne pretrage</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Izvrši &amp;donaciju</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Ručno pokreni reprodukciju</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
-        <source>Manually start playing videos</source>
-        <translation>Ručno pokreni reprodukciju videa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
-        <source>Choose your content location</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Sviraj</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
-        <source>Resume playback</source>
-        <translation>&amp;Nastavi sviranje</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
-        <source>Remaining time: %1</source>
-        <translation>Preostalo vrijeme: %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
-        <source>Volume at %1%</source>
-        <translation>Glasnoća na %1%</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
-        <source>Volume is muted</source>
-        <translation>Zvuk je ugašen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
-        <source>Volume is unmuted</source>
-        <translation>Zvuk je upaljen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
-        <source>Maximum video definition set to %1</source>
-        <translation>Maksimalna video rezolucija postavljena na %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
-        <source>Your privacy is now safe</source>
-        <translation>Vaša privatnost je sada sigurna</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
-        <source>Downloads complete</source>
-        <translation>Preuzimanja završena</translation>
-    </message>
-</context>
-<context>
-    <name>MediaView</name>
-    <message>
-        <location filename="src/mediaview.cpp" line="553"/>
-        <source>You can now paste the YouTube link into another application</source>
-        <translation>Sada možete zalijepiti Youtube link u neki drugi program</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="561"/>
-        <source>You can now paste the video stream URL into another application</source>
-        <translation>Sada možete zalijepiti link video streama u neki drugi program</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="562"/>
-        <source>The link will be valid only for a limited time.</source>
-        <translation>Link će biti valjan samo ograničeno vrijeme.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="636"/>
-        <source>This is just the demo version of %1.</source>
-        <translation>Ovo je samo demo verzija %1.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="637"/>
-        <source>It allows you to test the application and see if it works for you.</source>
-        <translation>Omogućava Vam da testirate program i vidite da li Vam odgovara.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="667"/>
-        <source>Continue</source>
-        <translation>Nastavi</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="756"/>
-        <source>of</source>
-        <comment>Used in video parts, as in '2 of 3'</comment>
-        <translation>od</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="768"/>
-        <source>part</source>
-        <comment>This is for video parts, as in 'Cool video - part 1'</comment>
-        <translation>dio</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="770"/>
-        <source>episode</source>
-        <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
-        <translation>epizoda</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Sent from %1</source>
-        <translation>Poslano sa %1</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="644"/>
-        <source>Get the full version</source>
-        <translation>Preuzmi punu verziju</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="681"/>
-        <source>Downloading %1</source>
-        <translation>Preuzimam %1</translation>
-    </message>
-</context>
-<context>
-    <name>MessageWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="21"/>
-        <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
-        <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
-        <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
-        <source>Skip This Version</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
-        <source>Remind Me Later</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
-        <source>Install Update</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PasteLineEdit</name>
-    <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
-        <source>Paste</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PlaylistItemDelegate</name>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
-        <source>%1 views</source>
-        <translation>%1 pregleda</translation>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
-        <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
-        <source>Preparing</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
-        <source>Failed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
-        <source>Completed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
-        <source>Stopped</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
-        <source>Stop downloading</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
-        <source>Show in %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
-        <source>Open parent folder</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
-        <source>Restart downloading</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PlaylistModel</name>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="52"/>
-        <source>Searching...</source>
-        <translation>Pretražujem...</translation>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="53"/>
-        <source>Show %1 More</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="54"/>
-        <source>No videos</source>
-        <translation>Nema videa</translation>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="55"/>
-        <source>No more videos</source>
-        <translation>Nema više videa</translation>
-    </message>
-</context>
-<context>
-    <name>RefineSearchWidget</name>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="31"/>
-        <source>Sort by</source>
-        <translation>Sortiraj po</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="35"/>
-        <source>Relevance</source>
-        <translation>Važnost</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="36"/>
-        <location filename="src/refinesearchwidget.cpp" line="52"/>
-        <source>Date</source>
-        <translation>Datum</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="37"/>
-        <source>View Count</source>
-        <translation>Broj pregleda</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="38"/>
-        <source>Rating</source>
-        <translation>Ocjena</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
-        <source>Anytime</source>
-        <translation>Bilo kada</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="57"/>
-        <source>Today</source>
-        <translation>Danas</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="58"/>
-        <source>7 Days</source>
-        <translation>7 dana</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="59"/>
-        <source>30 Days</source>
-        <translation>30 dana</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
-        <source>Duration</source>
-        <translation>Trajanje</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="77"/>
-        <location filename="src/refinesearchwidget.cpp" line="104"/>
-        <source>All</source>
-        <translation>Sve</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="78"/>
-        <source>Short</source>
-        <translation>Kratko</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="79"/>
-        <source>Medium</source>
-        <translation>Srednje</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="80"/>
-        <source>Long</source>
-        <translation>Dugo</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="83"/>
-        <source>Less than 4 minutes</source>
-        <translation>Kraće od 4 minute</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="84"/>
-        <source>Between 4 and 20 minutes</source>
-        <translation>Između 4 i 20 minuta</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="85"/>
-        <source>Longer than 20 minutes</source>
-        <translation>Duže od 20 minuta</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
-        <source>Quality</source>
-        <translation>Kvaliteta</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="105"/>
-        <source>High Definition</source>
-        <translation>Visoka razlučivost</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="108"/>
-        <source>720p or higher</source>
-        <translation>720p ili više</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="122"/>
-        <source>Done</source>
-        <translation>Gotovo</translation>
-    </message>
-</context>
-<context>
-    <name>RegionsView</name>
-    <message>
-        <location filename="src/regionsview.cpp" line="19"/>
-        <source>Done</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>SearchLineEdit</name>
-    <message>
-        <location filename="src/searchlineedit.cpp" line="177"/>
-        <source>Search</source>
-        <translation>Traži</translation>
-    </message>
-</context>
-<context>
-    <name>SearchView</name>
-    <message>
-        <location filename="src/searchview.cpp" line="71"/>
-        <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
-        <translation>Dobrodošli u &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="50"/>
-        <source>Get the full version</source>
-        <translation>Preuzmi punu verziju</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="85"/>
-        <source>Enter</source>
-        <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
-        <translation>Unesi</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="90"/>
-        <source>a keyword</source>
-        <translation>ključna riječ</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="91"/>
-        <source>a channel</source>
-        <translation>kanal</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="96"/>
-        <source>to start watching videos.</source>
-        <translation>da počnete gledati video.</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="120"/>
-        <source>Watch</source>
-        <translation>Gledaj</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="138"/>
-        <source>Recent keywords</source>
-        <translation>Nedavne ključne riječi</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="151"/>
-        <source>Recent channels</source>
-        <translation>Nedavni kanali</translation>
-    </message>
-</context>
-<context>
-    <name>SidebarHeader</name>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
-        <source>&amp;Back</source>
-        <translation>&amp;Nazad</translation>
-    </message>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="57"/>
-        <source>Forward to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="70"/>
-        <source>Back to %1</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>SidebarWidget</name>
-    <message>
-        <location filename="src/sidebarwidget.cpp" line="52"/>
-        <source>Refine Search</source>
-        <translation>Suzi pretragu</translation>
-    </message>
-    <message>
-        <location filename="src/sidebarwidget.cpp" line="148"/>
-        <source>Did you mean: %1</source>
-        <translation>Dali ste mislili: %1</translation>
-    </message>
-</context>
-<context>
-    <name>StandardFeedsView</name>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="85"/>
-        <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="87"/>
-        <source>Most Shared</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="88"/>
-        <source>Most Discussed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="89"/>
-        <source>Top Rated</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>Video</name>
-    <message>
-        <location filename="src/video.cpp" line="213"/>
-        <source>Cannot get video stream for %1</source>
-        <translation>Ne mogu naći video stream za %1</translation>
-    </message>
-    <message>
-        <location filename="src/video.cpp" line="231"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Greška mreže: %1 za %2</translation>
-    </message>
-</context>
-<context>
-    <name>YTRegions</name>
-    <message>
-        <location filename="src/ytregions.cpp" line="8"/>
-        <source>Algeria</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="9"/>
-        <source>Argentina</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="10"/>
-        <source>Australia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="11"/>
-        <source>Belgium</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="12"/>
-        <source>Brazil</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="13"/>
-        <source>Canada</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="14"/>
-        <source>Chile</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="15"/>
-        <source>Colombia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="16"/>
-        <source>Czech Republic</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="17"/>
-        <source>Egypt</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="18"/>
-        <source>France</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="19"/>
-        <source>Germany</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="20"/>
-        <source>Ghana</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="21"/>
-        <source>Greece</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="22"/>
-        <source>Hong Kong</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="23"/>
-        <source>Hungary</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="24"/>
-        <source>India</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="25"/>
-        <source>Indonesia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="26"/>
-        <source>Ireland</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="27"/>
-        <source>Israel</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="28"/>
-        <source>Italy</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="29"/>
-        <source>Japan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="30"/>
-        <source>Jordan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="31"/>
-        <source>Kenya</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="32"/>
-        <source>Malaysia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="33"/>
-        <source>Mexico</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="34"/>
-        <source>Morocco</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="35"/>
-        <source>Netherlands</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="36"/>
-        <source>New Zealand</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="37"/>
-        <source>Nigeria</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="38"/>
-        <source>Peru</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="39"/>
-        <source>Philippines</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="40"/>
-        <source>Poland</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="41"/>
-        <source>Russia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="42"/>
-        <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="43"/>
-        <source>Singapore</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="44"/>
-        <source>South Africa</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="45"/>
-        <source>South Korea</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="46"/>
-        <source>Spain</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="47"/>
-        <source>Sweden</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="48"/>
-        <source>Taiwan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="49"/>
-        <source>Tunisia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="50"/>
-        <source>Turkey</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="51"/>
-        <source>Uganda</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="52"/>
-        <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="53"/>
-        <source>United Kingdom</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="54"/>
-        <source>Yemen</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="128"/>
-        <source>Worldwide</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-</TS>
\ No newline at end of file
index b6390acb6531249d0c81a34008a73a048587e631..285bfa6ca8b98124d7dd7be89bb46eaf4374c2b1 100644 (file)
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Rendezés</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Keresés</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Videók és csatornák keresése kulcsszó alapján</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>Keresés</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation>Videók keresése kategória szerint</translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Hiba</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Leállítás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Lejátszás befejezése és visszatérés a keresés nézetre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>U&amp;grás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Ugrás a következő videóra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Megállítás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Lejátszás megállítása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Teljes képernyő</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Teljes képernyőre váltás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Lejátszási lista és eszközsor elrejtése</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Ugrás a YouTube videó oldalára és a lejátszás megállítása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Az aktuális videó Youtube &amp;hivatkozásának másolása a vágólapra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Az aktuális videó adatfolyam URL címének másolása a vágólapra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>További videórészletek keresése remélhetőleg helyes sorrendben</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Eltávolítás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Kijelölt videók eltávolítása a lejátszási listáról</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Mozgatás &amp;felfelé</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Kijelölt videók mozgatása felfelé a lejátszási listában</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Mozgatás &amp;lefelé</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Kijelölt videók mozgatása lefelé a lejátszási listában</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Keresési előzmények törlése. Nem vonható vissza.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Kilépés</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Viszlát</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Webhely</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 a weben</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Támogassa a %1 program folyamatos fejlesztését</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Névjegy</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Információ a %1 programról</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Keresés</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Hangerő némítása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Letöltések</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>A videóletöltések részleteinek megjelenítése</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Letöltés</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Aktuális videó letöltése</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Aktuális videó megosztása a következővel: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Bezárás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Többi ablak fölött</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Videó után leállítás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Hiba bejelentése</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Keresés pontosítása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Alkalmazás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>%1 megvásárlása...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Lejátszás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Lejátszási lista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Videó</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Megtekintés</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Megosztás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Súgó</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Hangerő növelése: %1, hangerő csökkentése: %2</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>%1 megnyitása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Szeretne kilépni a %1 programból letöltés közben?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Ha bezárja a %1 programot, a letöltés megszakad.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Bezárás és letöltés megszakítása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>A letöltés befejeződésének megvárása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Kilépés a &amp;teljes képernyős módból</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>A %1 program %2 verziója elérhető.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Figyelmeztetés később</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Frissítés</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Hiba: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>&amp;Előző</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Ugrás az előző számra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>&amp;Kompaktmód</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>&amp;YouTube oldal megnyitása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>YouTube &amp;hivatkozás másolása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>&amp;Videó-URL másolása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>További videó&amp;részletek keresése</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Legutóbbi keresések törlése</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>&amp;Támogasd</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>&amp;Manuális lejátszás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Videók lejátszása manuális indítással</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Lejátszás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Lejátszás folytatása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Hátralévő idő: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Hangerő: %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Hangerő némítva</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Hangerő némítása feloldva</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Videók maximális felbontásának beállítása: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>A személyes adatok most már biztonságban vannak</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>A letöltések befejeződtek</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>A YouTube hivatkozás most már beilleszthető egy másik alkalmazásba</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Most már beillesztheti a videó adatfolyam URL címét egy másik alkalmazásba</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>A hivatkozás csak korlátozott ideig lesz érvényben.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Ez csak a demó verziója a %1 programnak.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Kipróbálhatja az alkalmazást, hogy megfelel-e az igényeinek.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Folytatás</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation> - </translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>rész</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>epizód</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>A %1 programból küldve</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Teljes verzió beszerzése</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Letöltés: %1</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 néző</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 %2 közül (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Előkészítés</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Hiba</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Sikeres befejezés</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Leállítva</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Letöltés leállítása </translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Megjelenítés a következőben: %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
-        <translation type="unfinished"/>
+        <translation>Szülőmappa megnyitása</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Letöltés újraindítása </translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Üdvözli a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt; program,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Teljes verzió beszerzése</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Írjon be</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>egy kulcsszót</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>egy csatornát</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>a videók megtekintéséhez.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Megtekintés</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Legutóbbi kulcsszavak</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Legutóbbi csatornák</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Vissza</translation>
     </message>
         <source>Most Popular</source>
         <translation>Legnépszerübb</translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation>Kiemelt</translation>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"/>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Nem található videó adatfolyam a következőhöz: %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Hálózati hiba: %1 a következőhöz: %2</translation>
     </message>
index 89959d5deb0b04358dfb8a6a822c264b2771b1d0..1a85f2cfe3be0cf75cd70ddee2ab7f61b9f8acb0 100644 (file)
         <translation type="unfinished"/>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Ordinar per</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Cercar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Stop</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Stoppar le reproduction e vader retro al vista de cercas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>S&amp;altar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Saltar al proxime video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pausa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Pausar le reproduction</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Schermo plen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Vader a schermo plen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Celar le lista de reproduction e le barra de utensiles</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Vader al pagina de videos de YouTube e pausa le reproduction</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copiar le actual &amp;ligamine de video YouTube al area de transferentia</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copiar le currente URL de fluxo de video al area de transferentia</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Remover</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Remover le videos seligite del lista de reproduction</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Mover in &amp;alto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Mover le videos seligite del lista de reproduction in alto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Mover a &amp;basso</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Mover le videos seligite del lista de reproduction a basso</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Mundar le historia de recerca. Isto non pote ser disfacite.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Quitar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Adeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>Sito &amp;web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 in le web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Supporta le developpamento continue de %1, per favor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Super</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Info super %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Cercar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Sin sono</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Discargas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Monstrar detalios super le discargas de videos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Discarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Discarga le video actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Compartir le video currente usante %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;E-posta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>E-posta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Clauder</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Flottar in alto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Stoppar depost de iste video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Reportar un problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Affinar le cerca...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>Plus...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Application</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Comprar %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Reproduction</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>Lista de re&amp;production</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Vider</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Adjuta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Preme %1 pro augmentar le sono, %2 pro bassar lo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>A aperir %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Esque tu vole sortir de %1 con un discarga in progresso?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Si tu claude %1 ora, le discarga essera cancellate.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Claude e cancella le discarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Attende que le discarga fini</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Quita le &amp;schermo plen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 version %2 es ora disponibile.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Rememora me plus tarde</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Actualisar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>P&amp;revie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Retroceder al tracia previe</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>&amp;Modo compacte</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Aperir le pagina de &amp;YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Copiar le &amp;ligamine de YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Copiar le &amp;URL de fluxo de video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Cercar &amp;partes de video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Mundar le recercas recente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Face un &amp;donation</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Initiar le reproduction &amp;manualmente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Initiar manualmente le reproduction de videos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation>Selige le loco de contento</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>Re&amp;producer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Resumer reproduction</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Tempore restante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Volumine a %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Sin sono</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Con sono</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Definition maxime de video: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Ora tu intimitate es secur </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Discargas complete</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Ora tu pote collar le ligamine de YouTube in un in altere application</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Ora tu pote collar le URL de fluxo de video in un altere application</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Le ligamine essera valide solmente durante un tempore limitate.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Isto es solmente le version demo de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Isto permitte testar le application e vider si illo functiona.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>de</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>parte</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>episodio</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Inviate ab %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Procura le version complete</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>A discargar %1</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 visualisationes</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Fallite</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Stoppar le discarga</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Monstrar in %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Recomenciar le discarga</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Benvenite a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Procura le version complete</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Scriber</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>una parola clave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>pro comenciar a reguardar le videos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Reguardar</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Parolas-clave recente</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Canales recente</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Retro</translation>
     </message>
         <source>Most Popular</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"/>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Le fluxo de video pro %1 non pote ser obtenite</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Error de rete: %1 pro %2</translation>
     </message>
index 14f3919a987e6b27dc18a1cefa171aec016b8876..d53b3c91691639ad837791f4b1b18e31786deaed 100644 (file)
         <translation>Compra una licenza</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>Di %1</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Tutti i video</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Video non visti</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Segna tutti come già visti</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Mostra aggiornati</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Nome</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Aggiornamento</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Iscrizione</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Visione</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Più visti</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Ordina per</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Tutti i video</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Video non visti</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Non ci sono iscrizioni aggiornate in questo momento.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Non hai iscrizioni. Usa il simbolo della stella per sottoscrivere i canali.</translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Ricerca</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation>Trova video e canali per parola chiave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>Sfoglia</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation>Sfoglia i video per categoria</translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Iscrizioni</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Iscrizioni ai canali</translation>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Errore</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Ferma</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Ferma il video e torna alla ricerca</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;Salta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Salta al prossimo video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pausa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Metti in pausa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Schermo intero</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Vai in modalità schermo intero</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Nascondi la playlist e la barra degli strumenti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Vai su YouTube e metti in pausa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copia negli appunti il link a YouTube per il video corrente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copia negli appunti la URL dello stream per il video corrente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Trova le parti mancanti di questo video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Elimina</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Elimina i video selezionati dalla playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Sposta &amp;sopra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Sposta video selezionati verso l&apos;alto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Sposta so&amp;tto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Sposta i video selezionati verso il basso</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Cancella le ultime ricerche. L&apos;azione non potrà essere annullata.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Esci</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Ciao</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>Sito &amp;web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 sul Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Supporta lo sviluppo di %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Informazioni</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Informazioni su %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Cerca</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Disattiva l&apos;audio</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Mostra informazioni sui download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Scarica il video corrente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>&amp;Iscriviti al canale</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Condividi il video corrente usando %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Chiudi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Fluttua in alto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Ferma dopo questo video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Segnala un problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Raffina la ricerca...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>Altro...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation>Video &amp;correlati</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation>Guarda i video correlati a quello corrente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Applicazione</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Compra %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Riproduzione</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Visualizza</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Condividi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Aiuto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Premi %1 per alzare il volume, %2 per abbassarlo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Apertura di %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Vuoi uscire da %1 con un download in corso?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Se chiudi %1 adesso, i download verranno annullati.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Chiudi e annulla i download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Aspetta che i download siano completi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Lascia lo &amp;schermo intero</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>E&apos; disponibile %1 versione %2</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Ricordamelo più tardi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Aggiorna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Errore: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>P&amp;recedente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Torna alla traccia precedente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>Modalità &amp;compatta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Apri la pagina di &amp;YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Copia il &amp;link a YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Copia la &amp;URL dello stream video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Trova le &amp;parti del video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Cancella le ultime ricerche</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Fai una &amp;donazione</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Riproduzione &amp;manuale</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Inizia a riprodurre i video manualmente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation>Scegli la località dei contenuti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Play</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Continua</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Tempo rimanente: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Volume al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Audio disattivato</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Audio attivato</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>La definizione video massima è impostata a %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>La tua privacy è al sicuro</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>I download sono completi</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Ora puoi incollare il link a YouTube in un&apos;altra applicazione</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Ora puoi incollare la URL dello stream in un&apos;altra applicazione</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Il link rimarrà valido per un periodo di tempo limitato.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Questa è solo la versione demo di %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Ti permette di testare l&apos;applicazione e verificare che funzioni sul tuo computer.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Continua</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>di</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>parte</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>episodio</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Inviato da %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Annulla iscrizione a %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>Iscriviti a %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Compra la versione completa</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Scarica in: %1</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 visualizzazioni</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 di %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>In preparazione</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Fallito</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Completato</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Fermo</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Interrompi il download</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Mostra nel %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Mostra nella cartella</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Prova a scaricare di nuovo</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Benvenuto su &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Compra la versione completa</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Scrivi</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>una parola chiave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>un canale</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>per iniziare a guardare i video.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Guarda</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Ultime ricerche</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Ultimi canali</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Indietro</translation>
     </message>
         <source>Most Popular</source>
         <translation>Più popolari</translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation>In primo piano</translation>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation>Più votati</translation>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Più popolari di sempre</translation>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Impossibile ottenere il flusso video per %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Errore di rete: %1 per %2</translation>
     </message>
index baddef2560f565d95c8e6e74b17f22e743848ea9..f54b370bda67756581443a3487558f834ba1597c 100644 (file)
         <translation>ライセンスを購入</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>検索</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>エラー</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>ストップ(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>再生を停止させて、検索ビューに戻ります</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>スキップ(&amp;k)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>次の動画へ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>一時停止(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>再生を一時停止します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>フルスクリーン(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>フルスクリーン</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>プレイリストとツールバーを隠す</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>一時停止してYouTubeのページを開きます</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>このビデオのYouTubeページへのリンクをクリップボードにコピーします</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>削除(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>プレイリストから選択した動画を削除</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>上へ(&amp;U)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>選択した動画をプレイリスト内で上へ移動させます</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>下へ(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>選択した動画をプレイリスト内で下へ移動させます</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>検索履歴を削除します。取り消しは出来ません。</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>終了(&amp;Q)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>プログラムを終了</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Webページへ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1のWebページを開きます</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>%1の開発をサポートしてください!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>プログラムについて(&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>%1について</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>検索</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>ミュートにする</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>ダウンロード(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>ダウンロード(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
+        <translation>現在の動画をダウンロード</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>メール(&amp;E)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>メール</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>閉じる(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>問題点を報告(&amp;R)...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>その他...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>アプリケーション(&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>%1 を購入...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
-        <translation type="unfinished"/>
+        <translation>再生(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>プレイリスト(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>動画(&amp;V)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>表示(&amp;V)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>共有(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>ヘルプ(&amp;H)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>音量を上げるには%1を、下げるには%2を押してください</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>%1を開いています</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
-        <translation type="unfinished"/>
+        <translation>閉じてダウンロードをキャンセル</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>フルスクリーンモードを終了する(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 バージョン %2 が利用可能です</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>あとで通知する</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>更新</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>エラー: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>前へ(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>前の曲へ飛びます</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>コンパクト モード(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>YouTube のページを開く(&amp;Y)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>YouTube のリンクをコピー(&amp;L)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>最近の検索を消去(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>寄付する(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>再生(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>再生再開します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>残り時間: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>ボリューム%1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>音量OFFにしました</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>音量ONにしました</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>プライバシーは保護されています</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>ダウンロード完了</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>YouTube のリンクを別のアプリケーションに貼り付けることができます</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>これは %1 の試用版です。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>アプリケーションのテストや動作確認にご利用いただけます。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>続ける</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>製品版を入手する。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1回 閲覧</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>失敗</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>完了</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>ダウンロードを停止</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>親フォルダーを開く</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation type="unfinished"/>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="58"/>
         <source>7 Days</source>
-        <translation type="unfinished"/>
+        <translation>7日間</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="59"/>
         <source>30 Days</source>
-        <translation type="unfinished"/>
+        <translation>30日間</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="73"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="83"/>
         <source>Less than 4 minutes</source>
-        <translation type="unfinished"/>
+        <translation>4分以下</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="84"/>
         <source>Between 4 and 20 minutes</source>
-        <translation type="unfinished"/>
+        <translation>4~20分</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="85"/>
         <source>Longer than 20 minutes</source>
-        <translation type="unfinished"/>
+        <translation>20分超</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="100"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="122"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>完了</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>ようこそ&lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;へ!</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>製品版を入手する。</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>検索</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>最近検索したキーワード</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>最近のチャンネル</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>戻る(&amp;B)</translation>
     </message>
         <source>Most Popular</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"/>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>ネットワークエラー: %1 (%2へのアクセスにて)</translation>
     </message>
diff --git a/locale/jv.ts b/locale/jv.ts
deleted file mode 100644 (file)
index fe51334..0000000
+++ /dev/null
@@ -1,1476 +0,0 @@
-<?xml version="1.0" ?><!DOCTYPE TS><TS language="jv" version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
-<context>
-    <name>AboutView</name>
-    <message>
-        <location filename="src/aboutview.cpp" line="32"/>
-        <source>There&apos;s life outside the browser!</source>
-        <translation>Ningkene yoiku urip ning njobone browser!</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="33"/>
-        <source>Version %1</source>
-        <translation>Versi %1</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="38"/>
-        <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="42"/>
-        <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 yoiku Software bebas tapi pangembangane iku mbutuhake wektu sing berhargo.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="43"/>
-        <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
-        <translation>Sumonggo &lt;a href=&apos;%1&apos;&gt;Nyumbang&lt;/a&gt; kanggo ndukung kelanjutane pangembangane seko %2.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="47"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Njenengan mungkinwae pingin nyobi aplikasiku liyane jua:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="50"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, sakwijining YouTube nggonyetel musik</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="54"/>
-        <source>%1, a music player</source>
-        <translation>%1, sakwijining penyetelan musik</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="60"/>
-        <source>Translate %1 to your native language using %2</source>
-        <translation>Terjemahke %1 ring boso aslimu gunakno %2</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="65"/>
-        <source>Icon designed by %1.</source>
-        <translation>Ndesain ikon oleh %1.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="69"/>
-        <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
-        <translation>Dirilis nok ngisore the &lt;a href=&apos;%1&apos;&gt;GNU Pusate Lisensine Publik&lt;/a&gt;</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="84"/>
-        <source>&amp;Close</source>
-        <translation>&amp;Tutup</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.h" line="17"/>
-        <source>About</source>
-        <translation>Seputarane</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.h" line="19"/>
-        <source>What you always wanted to know about %1 and never dared to ask</source>
-        <translation>Opo sing kowe slalu kepingin kanggo ngreteni sekitarane %1 lan oratau wani kanggo takon</translation>
-    </message>
-</context>
-<context>
-    <name>ActivationDialog</name>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
-        <source>Enter your License Details</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
-        <source>&amp;Email:</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
-        <source>&amp;Code:</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>ActivationView</name>
-    <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
-        <source>Please license %1</source>
-        <translation>Sumonggo lisensi %1</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
-        <source>This demo has expired.</source>
-        <translation>Iki demo yo wis enthek.</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
-        <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
-        <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="57"/>
-        <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
-        <translation>Thek tuku versi lengkap, njenengan pingin ugo kadukung karo kerjokeras Kulo dalehi ing njeroning kreasi %1.</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
-        <source>Use Demo</source>
-        <translation>Gunakke Demo</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
-        <source>Enter License</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
-        <source>Buy License</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>ClearButton</name>
-    <message>
-        <location filename="src/searchlineedit.cpp" line="56"/>
-        <source>Clear</source>
-        <translation>Resik</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadItem</name>
-    <message>
-        <location filename="src/downloaditem.cpp" line="322"/>
-        <source>bytes</source>
-        <translation>bit</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="325"/>
-        <source>KB</source>
-        <translation>KB</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="328"/>
-        <source>MB</source>
-        <translation>MB</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="337"/>
-        <source>bytes/sec</source>
-        <translation>bit/detik</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="340"/>
-        <source>KB/sec</source>
-        <translation>KB/detik</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="343"/>
-        <source>MB/sec</source>
-        <translation>MB/detik</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="349"/>
-        <source>seconds</source>
-        <translation>detik</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="352"/>
-        <source>minutes</source>
-        <translation>menit</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="355"/>
-        <source>%4 %5 remaining</source>
-        <translation>%4 %5 sisone</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadManager</name>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="55"/>
-        <source>This is just the demo version of %1.</source>
-        <translation>Iki yoiku mung versi demo seko %1.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="57"/>
-        <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
-        <translation>Iku isone mung ngunduh video sing cekak sekokaro %1 menit sahinggo kowe iso ngetest fungsinane unduhane.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="63"/>
-        <source>Continue</source>
-        <translation>Terusno</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="64"/>
-        <source>Get the full version</source>
-        <translation>Enthukno versi komplite</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="150"/>
-        <source>%1 downloaded in %2</source>
-        <translation>%1 ngunduhe ing %2</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="153"/>
-        <source>Download finished</source>
-        <translation>Ngunduhe wislebar</translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="159"/>
-        <source>%n Download(s)</source>
-        <translation><numerusform>%n Ngunduh-unduh(s)</numerusform><numerusform>%n Ngunduh(s)</numerusform></translation>
-    </message>
-</context>
-<context>
-    <name>DownloadSettings</name>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="15"/>
-        <source>Change location...</source>
-        <translation>ngGanti lokasi...</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="47"/>
-        <source>Choose the download location</source>
-        <translation>Mileho lokasine unduhan</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="59"/>
-        <source>Download location changed.</source>
-        <translation>Lokasi ngunduhe diganti.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="61"/>
-        <source>Current downloads will still go in the previous location.</source>
-        <translation>Downloadte sing sakiki iseh arep mlebu ning lokasi sakdurunge.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="72"/>
-        <source>Downloading to: %1</source>
-        <translation>Ngunduhi reng: %1</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadView</name>
-    <message>
-        <location filename="src/downloadview.cpp" line="18"/>
-        <location filename="src/downloadview.h" line="22"/>
-        <source>Downloads</source>
-        <translation>Ngunduh-unduh</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>GlobalShortcuts</name>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="16"/>
-        <source>Play</source>
-        <translation>Nyetel</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="17"/>
-        <source>Pause</source>
-        <translation>Lheren sedelhok</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="18"/>
-        <source>Play/Pause</source>
-        <translation>Nyetel/Lheren</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="19"/>
-        <source>Stop</source>
-        <translation>Mandhek</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="20"/>
-        <source>Stop playing after current track</source>
-        <translation>Mandhek nyetele sakwise trek saat iki</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="21"/>
-        <source>Next track</source>
-        <translation>Trek saklanjute</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="22"/>
-        <source>Previous track</source>
-        <translation>Trek sakdurunge</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="23"/>
-        <source>Increase volume</source>
-        <translation>Nambahake volume</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="24"/>
-        <source>Decrease volume</source>
-        <translation>Ngurangi volume</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="25"/>
-        <source>Mute</source>
-        <translation>Mbisu</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="26"/>
-        <source>Seek forward</source>
-        <translation>Nyepetno mengarep</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="27"/>
-        <source>Seek backward</source>
-        <translation>Nyepetno memburi</translation>
-    </message>
-</context>
-<context>
-    <name>HomeView</name>
-    <message>
-        <location filename="src/homeview.cpp" line="33"/>
-        <source>Search</source>
-        <translation>Nelusuri</translation>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="35"/>
-        <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="40"/>
-        <source>Browse</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="42"/>
-        <source>Browse videos by category</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.h" line="22"/>
-        <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>LoadingWidget</name>
-    <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
-        <source>Error</source>
-        <translation>Error</translation>
-    </message>
-</context>
-<context>
-    <name>MainWindow</name>
-    <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
-        <source>&amp;Stop</source>
-        <translation>&amp;Mandheg</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
-        <source>Stop playback and go back to the search view</source>
-        <translation>Mandheg playback lan mbalik ning tampilan ngGo ngGoleki</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
-        <source>S&amp;kip</source>
-        <translation>S&amp;kip</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
-        <source>Skip to the next video</source>
-        <translation>Lewati reng video saklanjute</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Lheren</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
-        <source>Pause playback</source>
-        <translation>Lheren sedhelok pemutarane</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
-        <source>&amp;Full Screen</source>
-        <translation>&amp;Layar Kebak</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
-        <source>Go full screen</source>
-        <translation>Ing Layar Kebak </translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
-        <source>Hide the playlist and the toolbar</source>
-        <translation>Ndhelikno playlist lan toolbar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
-        <source>Go to the YouTube video page and pause playback</source>
-        <translation>Lungo Ing halamane video YouTube land nglereni penyetelan</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
-        <source>Copy the current video YouTube link to the clipboard</source>
-        <translation>Njiplak link-nge video YouTube sing sakiki ning clipboard</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
-        <source>Copy the current video stream URL to the clipboard</source>
-        <translation>Njiplak video stream URL sing sakiki ning clipboard</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
-        <source>Find other video parts hopefully in the right order</source>
-        <translation>nggoleki seri video liyone diharapno ing order sing bener</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
-        <source>&amp;Remove</source>
-        <translation>&amp;ngGuwak</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
-        <source>Remove the selected videos from the playlist</source>
-        <translation>ngGuwak video sing diseleksi seko playlist</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
-        <source>Move &amp;Up</source>
-        <translation>Mindah &amp;Unggah</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
-        <source>Move up the selected videos in the playlist</source>
-        <translation>Mindahno menduwur video sing diseleksi ning playlistt</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
-        <source>Move &amp;Down</source>
-        <translation>Mindah &amp;Mudhun</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
-        <source>Move down the selected videos in the playlist</source>
-        <translation>Mindahno mengisor video sing diseleksi ning daftar-nyetel</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
-        <source>Clear the search history. Cannot be undone.</source>
-        <translation>Ngresiki riwayate penelusuran. Ora iso di balikake.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
-        <source>&amp;Quit</source>
-        <translation>&amp;Medhal</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
-        <source>Bye</source>
-        <translation>Bye</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
-        <source>&amp;Website</source>
-        <translation>&amp;Website</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
-        <source>%1 on the Web</source>
-        <translation>%1 nok the Web</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
-        <source>Please support the continued development of %1</source>
-        <translation>Sumonggo ndukungo kelanjutane pangembangane seko %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
-        <source>&amp;About</source>
-        <translation>&amp;Tentange</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
-        <source>Info about %1</source>
-        <translation>Info sakitarane %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
-        <source>Search</source>
-        <translation>Nelusuri</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
-        <source>Mute volume</source>
-        <translation>mBisukno volumene</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
-        <source>&amp;Downloads</source>
-        <translation>&amp;nDownloads</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
-        <source>Show details about video downloads</source>
-        <translation>Tampilno detaile sak kitarane unduhan-unduhane video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>&amp;Download</source>
-        <translation>&amp;nDownload</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
-        <source>Download the current video</source>
-        <translation>Ngunduhi video sing saat iki</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
-        <source>Share the current video using %1</source>
-        <translation>ngeshare video ketuang keenggo %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
-        <source>&amp;Email</source>
-        <translation>&amp;Layanginternet</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
-        <source>Email</source>
-        <translation>Layanginternet</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
-        <source>&amp;Close</source>
-        <translation>&amp;Tutup</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
-        <source>&amp;Float on Top</source>
-        <translation>&amp;Ngambang ing Pucuk</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
-        <source>&amp;Stop After This Video</source>
-        <translation>&amp;Mandek Sakwise Video Iki</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
-        <source>&amp;Report an Issue...</source>
-        <translation>&amp;Laporke sakwijining Isu...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
-        <source>&amp;Refine Search...</source>
-        <translation>&amp;Nyaring Penggolekan...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
-        <source>More...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
-        <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
-        <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Applikasi</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
-        <source>Buy %1...</source>
-        <translation>Tuku %1...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
-        <source>&amp;Playback</source>
-        <translation>&amp;Mbaliknyetel</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
-        <source>&amp;Playlist</source>
-        <translation>&amp;Daftar-nyetel</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
-        <source>&amp;Video</source>
-        <translation>&amp;Video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
-        <source>&amp;View</source>
-        <translation>&amp;nDelok</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
-        <source>&amp;Share</source>
-        <translation>&amp;Ngedumi</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
-        <source>&amp;Help</source>
-        <translation>&amp;Nulung</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
-        <source>Press %1 to raise the volume, %2 to lower it</source>
-        <translation>Pejhet %1 kanggo ningkatno volume, %2 kanggo ngrendahno iku</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
-        <source>Opening %1</source>
-        <translation>Mbukak&apos;i %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
-        <source>Do you want to exit %1 with a download in progress?</source>
-        <translation>Opo kowe pingin metu %1 karo sakwijine unduhan sing isih mlaku prosese?</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
-        <source>If you close %1 now, this download will be cancelled.</source>
-        <translation>Tek kowe nutup %1 sakiki, ngunduhane iki arep dibatalake.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
-        <source>Close and cancel download</source>
-        <translation>Tutup lan mbatalake ngunduhine</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
-        <source>Wait for download to finish</source>
-        <translation>Nunggu kanggo unduhane rampung</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Ninggalno &amp;LayarKebak</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versinipun %2 yo disediakno sakniki.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
-        <source>Remind me later</source>
-        <translation>Elingno kulo mengkowae</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
-        <source>Update</source>
-        <translation>Nganyarke</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
-        <source>Error: %1</source>
-        <translation>Error: %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;revious</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
-        <source>Go back to the previous track</source>
-        <translation>Mbaliko meneh ing sakdurunge trekipun</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Mode Praktis</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Mbukak &amp;YouTube Halamane</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Njiplak YouTube &amp;Link</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Njiplak Video Stream &amp;URL</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Nggoleki Video &amp;Seri</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Ngresiki Penggolekan Sing ketuang</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Nggawe sakwijining &amp;Sumbangan</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Mainke Secoro Manual</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
-        <source>Manually start playing videos</source>
-        <translation>Ngawiti maenke video secoro manual</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
-        <source>Choose your content location</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Nyetel</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
-        <source>Resume playback</source>
-        <translation>Nglanjutno nyetel-ulang</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
-        <source>Remaining time: %1</source>
-        <translation>Sisone wektune: %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
-        <source>Volume at %1%</source>
-        <translation>Volume nok %1%</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
-        <source>Volume is muted</source>
-        <translation>Volume yo Mbisu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
-        <source>Volume is unmuted</source>
-        <translation>Volume yo orak mbisu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
-        <source>Maximum video definition set to %1</source>
-        <translation>Maksimale video definisine diset ning %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
-        <source>Your privacy is now safe</source>
-        <translation>Privasimu yoiku sakiki aman</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
-        <source>Downloads complete</source>
-        <translation>Unduhane komplit</translation>
-    </message>
-</context>
-<context>
-    <name>MediaView</name>
-    <message>
-        <location filename="src/mediaview.cpp" line="553"/>
-        <source>You can now paste the YouTube link into another application</source>
-        <translation>Kowe iso paste YouTube link sakiki ninggone aplikasi liyane</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="561"/>
-        <source>You can now paste the video stream URL into another application</source>
-        <translation>Kowe sakiki iso paste  video stream URL ninggone aplikasi liyane</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="562"/>
-        <source>The link will be valid only for a limited time.</source>
-        <translation>Link-nge kepingin diaslikake mung kanggo sak terbatase wektu.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="636"/>
-        <source>This is just the demo version of %1.</source>
-        <translation>Iki yoiku mung demo version of %1.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="637"/>
-        <source>It allows you to test the application and see if it works for you.</source>
-        <translation>Iki diolehno kowe kanggo ngetest aplikasine lan ndeloki tek iku fungsi kanggo kowe.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="667"/>
-        <source>Continue</source>
-        <translation>Nglanjutke</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="756"/>
-        <source>of</source>
-        <comment>Used in video parts, as in '2 of 3'</comment>
-        <translation>seko</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="768"/>
-        <source>part</source>
-        <comment>This is for video parts, as in 'Cool video - part 1'</comment>
-        <translation>seri</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="770"/>
-        <source>episode</source>
-        <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
-        <translation>episode</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Sent from %1</source>
-        <translation>Kirim seko %1</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="644"/>
-        <source>Get the full version</source>
-        <translation>Entukno versi komplite</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="681"/>
-        <source>Downloading %1</source>
-        <translation>Ngunduhi %1</translation>
-    </message>
-</context>
-<context>
-    <name>MessageWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="21"/>
-        <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
-        <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
-        <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
-        <source>Skip This Version</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
-        <source>Remind Me Later</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
-        <source>Install Update</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PasteLineEdit</name>
-    <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
-        <source>Paste</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PlaylistItemDelegate</name>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
-        <source>%1 views</source>
-        <translation>%1 tampilan</translation>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
-        <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
-        <source>Preparing</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
-        <source>Failed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
-        <source>Completed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
-        <source>Stopped</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
-        <source>Stop downloading</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
-        <source>Show in %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
-        <source>Open parent folder</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
-        <source>Restart downloading</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PlaylistModel</name>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="52"/>
-        <source>Searching...</source>
-        <translation>ngGoleki...</translation>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="53"/>
-        <source>Show %1 More</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="54"/>
-        <source>No videos</source>
-        <translation>Ora video</translation>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="55"/>
-        <source>No more videos</source>
-        <translation>Rak ono video meneh</translation>
-    </message>
-</context>
-<context>
-    <name>RefineSearchWidget</name>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="31"/>
-        <source>Sort by</source>
-        <translation>Bidik didasarke</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="35"/>
-        <source>Relevance</source>
-        <translation>Relefan</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="36"/>
-        <location filename="src/refinesearchwidget.cpp" line="52"/>
-        <source>Date</source>
-        <translation>Tanggale</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="37"/>
-        <source>View Count</source>
-        <translation>Ndeloki Itungane</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="38"/>
-        <source>Rating</source>
-        <translation>Rating</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
-        <source>Anytime</source>
-        <translation>Kapanwae</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="57"/>
-        <source>Today</source>
-        <translation>Dinoiki</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="58"/>
-        <source>7 Days</source>
-        <translation>7 Ndino</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="59"/>
-        <source>30 Days</source>
-        <translation>30 Dino</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
-        <source>Duration</source>
-        <translation>Durasine</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="77"/>
-        <location filename="src/refinesearchwidget.cpp" line="104"/>
-        <source>All</source>
-        <translation>Kabeh</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="78"/>
-        <source>Short</source>
-        <translation>Cekak</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="79"/>
-        <source>Medium</source>
-        <translation>Sedengan</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="80"/>
-        <source>Long</source>
-        <translation>Dowo</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="83"/>
-        <source>Less than 4 minutes</source>
-        <translation>Kurang seko 4 menit</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="84"/>
-        <source>Between 4 and 20 minutes</source>
-        <translation>Antarane 4 lan 20 menit</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="85"/>
-        <source>Longer than 20 minutes</source>
-        <translation>Dowone luwih seko 20 menit</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
-        <source>Quality</source>
-        <translation>Kualitas</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="105"/>
-        <source>High Definition</source>
-        <translation>Definisi duwur</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="108"/>
-        <source>720p or higher</source>
-        <translation>720p utowo saknduwure</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="122"/>
-        <source>Done</source>
-        <translation>Rampung</translation>
-    </message>
-</context>
-<context>
-    <name>RegionsView</name>
-    <message>
-        <location filename="src/regionsview.cpp" line="19"/>
-        <source>Done</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>SearchLineEdit</name>
-    <message>
-        <location filename="src/searchlineedit.cpp" line="177"/>
-        <source>Search</source>
-        <translation>Nelusuri</translation>
-    </message>
-</context>
-<context>
-    <name>SearchView</name>
-    <message>
-        <location filename="src/searchview.cpp" line="71"/>
-        <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
-        <translation>Sugengrawuh kanggo &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="50"/>
-        <source>Get the full version</source>
-        <translation>Enthukno versi komplite</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="85"/>
-        <source>Enter</source>
-        <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
-        <translation>Lebokno</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="90"/>
-        <source>a keyword</source>
-        <translation>sakwiji kata-kunci</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="91"/>
-        <source>a channel</source>
-        <translation>sakwiji saluran</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="96"/>
-        <source>to start watching videos.</source>
-        <translation>kanggo ngawiti nyeksikake video.</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="120"/>
-        <source>Watch</source>
-        <translation>Nonton</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="138"/>
-        <source>Recent keywords</source>
-        <translation>Kata-kunci saat iki</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="151"/>
-        <source>Recent channels</source>
-        <translation>Saluran lagekwae</translation>
-    </message>
-</context>
-<context>
-    <name>SidebarHeader</name>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
-        <source>&amp;Back</source>
-        <translation>&amp;mBuri</translation>
-    </message>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="57"/>
-        <source>Forward to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="70"/>
-        <source>Back to %1</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>SidebarWidget</name>
-    <message>
-        <location filename="src/sidebarwidget.cpp" line="52"/>
-        <source>Refine Search</source>
-        <translation>Nyaring Penggolekane</translation>
-    </message>
-    <message>
-        <location filename="src/sidebarwidget.cpp" line="148"/>
-        <source>Did you mean: %1</source>
-        <translation>Opo sing bekmaksud: %1</translation>
-    </message>
-</context>
-<context>
-    <name>StandardFeedsView</name>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="85"/>
-        <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="87"/>
-        <source>Most Shared</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="88"/>
-        <source>Most Discussed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="89"/>
-        <source>Top Rated</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>Video</name>
-    <message>
-        <location filename="src/video.cpp" line="213"/>
-        <source>Cannot get video stream for %1</source>
-        <translation>Rak iso ngenthukno video stream kanggo %1</translation>
-    </message>
-    <message>
-        <location filename="src/video.cpp" line="231"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Jaringane error: %1 por %2</translation>
-    </message>
-</context>
-<context>
-    <name>YTRegions</name>
-    <message>
-        <location filename="src/ytregions.cpp" line="8"/>
-        <source>Algeria</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="9"/>
-        <source>Argentina</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="10"/>
-        <source>Australia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="11"/>
-        <source>Belgium</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="12"/>
-        <source>Brazil</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="13"/>
-        <source>Canada</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="14"/>
-        <source>Chile</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="15"/>
-        <source>Colombia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="16"/>
-        <source>Czech Republic</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="17"/>
-        <source>Egypt</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="18"/>
-        <source>France</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="19"/>
-        <source>Germany</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="20"/>
-        <source>Ghana</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="21"/>
-        <source>Greece</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="22"/>
-        <source>Hong Kong</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="23"/>
-        <source>Hungary</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="24"/>
-        <source>India</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="25"/>
-        <source>Indonesia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="26"/>
-        <source>Ireland</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="27"/>
-        <source>Israel</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="28"/>
-        <source>Italy</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="29"/>
-        <source>Japan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="30"/>
-        <source>Jordan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="31"/>
-        <source>Kenya</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="32"/>
-        <source>Malaysia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="33"/>
-        <source>Mexico</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="34"/>
-        <source>Morocco</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="35"/>
-        <source>Netherlands</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="36"/>
-        <source>New Zealand</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="37"/>
-        <source>Nigeria</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="38"/>
-        <source>Peru</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="39"/>
-        <source>Philippines</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="40"/>
-        <source>Poland</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="41"/>
-        <source>Russia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="42"/>
-        <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="43"/>
-        <source>Singapore</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="44"/>
-        <source>South Africa</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="45"/>
-        <source>South Korea</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="46"/>
-        <source>Spain</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="47"/>
-        <source>Sweden</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="48"/>
-        <source>Taiwan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="49"/>
-        <source>Tunisia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="50"/>
-        <source>Turkey</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="51"/>
-        <source>Uganda</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="52"/>
-        <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="53"/>
-        <source>United Kingdom</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="54"/>
-        <source>Yemen</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="128"/>
-        <source>Worldwide</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-</TS>
\ No newline at end of file
index 873c2fd0bf7dd8ca97a5162c4b656ac26da2aa28..dc51478efc012a6297506777ace420b709d94dc4 100644 (file)
     <message>
         <location filename="src/aboutview.cpp" line="38"/>
         <source>Licensed to: %1</source>
-        <translation>Лицензияланган: %1</translation>
+        <translation>%1 үчүн лицензияланган</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="42"/>
         <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 деген эркин ПК, бирок анын иштетүүсү өтө көп убакытымды алат.</translation>
+        <translation>%1 — бекер программалык жабдык, бирок анын иштетүүсү көп убагымды алат.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="43"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
-        <translation>Сизден өтүнөм, %2&apos;ка &lt;a href=&apos;%1&apos;&gt;тартуу кылып&lt;/a&gt; мындан аркы иштетүүсүн колдоп бериңиз .</translation>
+        <translation>%2&apos;га &lt;a href=&apos;%1&apos;&gt;тартуу кылып&lt;/a&gt; мындан аркы иштетүүсүн колдоп бериңиз.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="47"/>
         <source>You may want to try my other apps as well:</source>
-        <translation>Сиз Ð¼ÐµÐ½Ð¸Ð½ Ð´Ð°Ð³Ñ\8b Ð±Ð°Ñ\88ка Ñ\82иÑ\80кемелеÑ\80имди карап көрсөңүз болот:</translation>
+        <translation>Ð\91аÑ\88ка Ñ\82иÑ\80кемелеÑ\80имди Ð´Ð° карап көрсөңүз болот:</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="50"/>
@@ -45,7 +45,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="60"/>
         <source>Translate %1 to your native language using %2</source>
-        <translation>%1&apos;ту %2 аркылуу сиздин эне тилиңизге которуу</translation>
+        <translation>%2 аркылуу %1&apos;ду өз эне тилиңизге которуңуз</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="65"/>
@@ -70,7 +70,7 @@
     <message>
         <location filename="src/aboutview.h" line="19"/>
         <source>What you always wanted to know about %1 and never dared to ask</source>
-        <translation>%1 жөнүндө дайма билгиңиз келген нерселер жана эч убакта аларды сурамак эмессиз</translation>
+        <translation>%1 жөнүндө дайыма билгиңиз келген нерселер бирок сураганга мүмкүнчүлүгүңүз жок болгон</translation>
     </message>
 </context>
 <context>
@@ -88,7 +88,7 @@
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
-        <translation>&amp;Код:</translation>
+        <translation>&amp;Коду:</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation>Толук версиясы %1 мүнөттөн көбүрөөк видеолорду жүктөгөнгө жана видеолорду үзгүлтүксүз көргөнгө уруксат берет.</translation>
+        <translation>Толук версиясы %1 минутадан көбүрөөк видеолорду жүктөгөнгө жана видеолорду үзгүлтүксүз көргөнгө уруксат берет.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation>Лицензиясы жок болгон үчүн, тиркеменин мөөнөтү %1 күндөн кийин бүтөт.</translation>
+        <translation>Лицензиясыз болгондуктан, тиркеменин мөөнөтү %1 күндөн кийин бүтөт.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
         <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
-        <translation>Толук версиясын алганда, %1 үчүн оор эмгек салым кылып жатканымды да колдоп бересиз.</translation>
+        <translation>Толук версиясын алсаңыз, %1 үчүн оор жумуш кылып жатканымды да колдоп бере аласыз.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="70"/>
         <translation>Лицензияны сатып алуу</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Бардык видеолор</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Көрүлбөгөн видеолор</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Баарын көрүлдү деп белгилөө</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Жаңыланганын көрсөтүү</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Аты</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Соңку жаңылангандар</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Соңку кошулгандар</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Соңку көрүлгөндөр</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Эң көп көрүлгөндөр</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Сорттоо</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Бардык видеолор</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Көрүлбөгөн видеолор</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
     <message>
         <location filename="src/downloaditem.cpp" line="352"/>
         <source>minutes</source>
-        <translation>мүнөт</translation>
+        <translation>минута</translation>
     </message>
     <message>
         <location filename="src/downloaditem.cpp" line="355"/>
     <message>
         <location filename="src/downloadmanager.cpp" line="55"/>
         <source>This is just the demo version of %1.</source>
-        <translation>Ð\91Ñ\83л Ð¿Ñ\80огÑ\80амма %1&apos;Ñ\82Ñ\83н Ð´ÐµÐ¼Ð¾-веÑ\80Ñ\81иÑ\8fÑ\81Ñ\8b Ð±Ð¾Ð»Ð¾Ñ\82.</translation>
+        <translation>Ð\91Ñ\83л Ð¶Ó©Ð½ Ñ\8dле %1&apos;дÑ\83н Ð´ÐµÐ¼Ð¾-веÑ\80Ñ\81иÑ\8fÑ\81Ñ\8b.</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="57"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
-        <translation>Жүктөө функционалдуулугун текшерүү үчүн, бул %1 мүнөттөн кыскараак видеолорду гана жүктөп бере алат.</translation>
+        <translation>Жүктөө функционалдуулугун текшерүү үчүн, бул %1 минутадан кыскараак видеолорду гана жүктөп бере алат.</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="63"/>
     <message>
         <location filename="src/downloadmanager.cpp" line="150"/>
         <source>%1 downloaded in %2</source>
-        <translation>%1 файлы %2 жерине жүктөлдү</translation>
+        <translation>%2 жерине %1 файлы жүктөлдү</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="153"/>
     <message>
         <location filename="src/downloadsettings.cpp" line="15"/>
         <source>Change location...</source>
-        <translation>Жүктөө жерин өзгөртүү...</translation>
+        <translation>Жайгашкан жерин өзгөртүү...</translation>
     </message>
     <message>
         <location filename="src/downloadsettings.cpp" line="47"/>
         <source>Choose the download location</source>
-        <translation>Жүктөө жерин тандоо</translation>
+        <translation>Жүктөп алуу жерин тандоо</translation>
     </message>
     <message>
         <location filename="src/downloadsettings.cpp" line="59"/>
     <message>
         <location filename="src/downloadsettings.cpp" line="61"/>
         <source>Current downloads will still go in the previous location.</source>
-        <translation>Кезектеги жүктөөлөр мурунку жеринде сакталат.</translation>
+        <translation>Кезекте жүктөлүп жаткандар мурунку жерге сакталат.</translation>
     </message>
     <message>
         <location filename="src/downloadsettings.cpp" line="72"/>
         <source>Downloading to: %1</source>
-        <translation>Жүктөлүп жаткан жери: %1</translation>
+        <translation>%1 папкасына жүктөлүүдө</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation>Жаңыртууларды жүктөп алуу...</translation>
+        <translation>Жаңылоо жүктөлүүдө...</translation>
     </message>
 </context>
 <context>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Издөө</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation>Ачкыч сөз менен видеолорду жана каналдарды табыңыз</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>Сереп</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
-        <translation>Видеолорду категория боюнча кароо</translation>
+        <translation>Видеолорду категориясы боюнча кароо</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Жазылуулар</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Канал жазылуулары</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Ката</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Токтотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Ойнотууну токтотуп издөө көрүнүшүнө кайтуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
-        <translation>&amp;Өткөрүү</translation>
+        <translation>Ө&amp;ткөрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Кийинки видеого өтүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Бир азга токтотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Ойнотууну бир азга токтотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Толук экран</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
-        <translation>Толук экран режимине өтүү</translation>
+        <translation>Толук экранга өтүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ойнотуу тизмесин жана аспап панелин жашыруу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Видеонун YouTube барагына өтүү жана ойнотууну бир азга токтотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Кезектеги видеонун YouTube шилтемесин алмашуу буферине көчүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Кезектеги видео агымдын дарегин алмашуу буферине көчүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Видеонун башка бөлүктөрүн үмүт кылып туура ирети менен табуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
-        <translation>&amp;Өчүрүү</translation>
+        <translation>Ө&amp;чүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
-        <translation>Тандалган Ð²Ð¸Ð´ÐµÐ¾Ð»Ð¾Ñ\80дÑ\83 Ð¾Ð¹Ð½Ð¾Ñ\82Ñ\83Ñ\83 Ñ\82измеÑ\81инен өчүрүү</translation>
+        <translation>Ð\9eйноÑ\82Ñ\83Ñ\83 Ñ\82измеÑ\81индеги Ñ\82андалган Ð²Ð¸Ð´ÐµÐ¾Ð»Ð¾Ñ\80дÑ\83 өчүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
-        <translation>&amp;Өйдө</translation>
+        <translation>Ө&amp;йдө</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
-        <translation>Тандалган Ð²Ð¸Ð´ÐµÐ¾Ð»Ð¾Ñ\80дÑ\83 Ð¾Ð¹Ð½Ð¾Ñ\82Ñ\83Ñ\83 Ñ\82измеÑ\81инен өйдө жылдыруу</translation>
+        <translation>Ð\9eйноÑ\82Ñ\83Ñ\83 Ñ\82измеÑ\81индеги Ñ\82андалган Ð²Ð¸Ð´ÐµÐ¾Ð»Ð¾Ñ\80дÑ\83 өйдө жылдыруу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>&amp;Ылдый</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
-        <translation>Тандалган Ð²Ð¸Ð´ÐµÐ¾Ð»Ð¾Ñ\80дÑ\83 Ð¾Ð¹Ð½Ð¾Ñ\82Ñ\83Ñ\83 Ñ\82измеÑ\81инен ылдый жылдыруу</translation>
+        <translation>Ð\9eйноÑ\82Ñ\83Ñ\83 Ñ\82измеÑ\81индеги Ñ\82андалган Ð²Ð¸Ð´ÐµÐ¾Ð»Ð¾Ñ\80дÑ\83 ылдый жылдыруу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Издөө тарыхын тазалоо. Өзгөртүүлөр кайталанбас.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Чыгуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Кош болуңуз</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Веб-сайт</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 интернетте</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>%1&apos;дун мындан аркы иштетүүсүн колдоп бериңиз</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>Программа &amp;жөнүндө</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>%1 жөнүндө маалымат</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Издөө</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Үндү өчүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Жүктөөлөр</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Видео жүктөөлөрү жөнүндө кошумча маалымат көрсөтүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Жүктөп алуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Кезектеги видеону жүктөп алуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>Каналга &amp;жазылуу</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Кезектеги видеону %1 аркылуу бөлүшүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Жабуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>Үстүнөн &amp;калкытуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>Бул видеодон кийин &amp;токтотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
-        <translation>Ката жөнүндө &amp;маалымдоо...</translation>
+        <translation>Катаны &amp;маалымдоо...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>Издөөнү &amp;тактоо...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>Дагы...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Байланыштуу видеолор</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation>Кезектегиге байланыштуу видеону көрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Тиркеме</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
-        <translation>%1&apos;ту сатып алуу...</translation>
+        <translation>%1&apos;ду сатып алуу...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Ойнотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>Ойнотуу &amp;тизмеси</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Көрүнүш</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Бөлүшүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Жардам</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
-        <translation>Катуулукту чоңойтуу үчүн %1 басыңыз жана кичирейтүү үчүн %2</translation>
+        <translation>Көлөмүн чоңойтуу үчүн %1 комбинациясын басыңыз, кичирейтүү үчүн %2</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
-        <translation>%1 Ð°Ñ\87Ñ\83Ñ\83</translation>
+        <translation>%1 Ð°Ñ\87Ñ\8bлÑ\83Ñ\83да</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
-        <translation>Ð\96үкÑ\82өп Ð°Ð»Ñ\83Ñ\83 Ð±Ð¾Ð»Ñ\83п Ð¶Ð°Ñ\82кан ÐºÐµÐ·Ð´Ðµ %1&apos;дан Ñ\87Ñ\8bккÑ\8bÒ£Ñ\8bз ÐºÐµÐ»ÐµÐ±Ð¸?</translation>
+        <translation>Ð\96үкÑ\82өп Ð°Ð»Ñ\83Ñ\83 Ð±Ð¾Ð»Ñ\83п Ð¶Ð°Ñ\82кан ÐºÐµÐ·Ð´Ðµ %1&apos;дан Ñ\87Ñ\8bгÑ\83Ñ\83нÑ\83 ÐºÐ°Ð°Ð»Ð°Ð¹Ñ\81Ñ\8bзбÑ\8b?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
-        <translation>Эгер сиз %1&apos;ту азыр жапсаңыз, бул жүктөп алуу жокко чыгарылат.</translation>
+        <translation>Эгер сиз %1&apos;ду азыр жапсаңыз, бул жүктөө жокко чыгарылат.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
-        <translation>Жабуу жана жүктөп алууну жокко чыгаруу</translation>
+        <translation>Жабуу жана жүктөөнү жокко чыгаруу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Жүктөп алуунун аяктоосун күтүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
-        <translation>&amp;Толук экран режиминен чыгуу</translation>
+        <translation>&amp;Толук экрандан чыгуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
-        <translation>%1 версия %2 азыркы кезде колго жетердик.</translation>
+        <translation>%1 версия %2 азыр жеткиликтүү.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Кечирээк эске салуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
-        <translation>Жаңыртуу</translation>
+        <translation>Жаңылоо</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
-        <translation>Ката: %1</translation>
+        <translation>Катасы: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>&amp;Мурунку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Мурунку жолчого кайтуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
-        <translation>&amp;Ð\9aомпакÑ\82 Ñ\80ежими</translation>
+        <translation>&amp;ТÑ\8bгÑ\8bз Ñ\80ежим</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>&amp;YouTube барагын ачуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>YouTube &amp;шилтемесин көчүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Видео агымдын &amp;шилтемесин көчүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
-        <translation>Видео &amp;фрагменттерди табуу</translation>
+        <translation>Видео&amp;фрагменттерди табуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>Соңку издөөлөрдү &amp;тазалоо</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>&amp;Тартуу кылуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Ойнотууну &amp;кол менен баштатуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Видео ойнотууну кол менен баштатуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation>Мазмундун турган жерин тандаңыз</translation>
+        <translation>Мазмундун жайгашкан жерин тандаңыз</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Ойнотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Ойнотууну улантуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
-        <translation>Ð\9aалган Ñ\83бакÑ\8bÑ\82: %1</translation>
+        <translation>Ð\9aалган Ñ\83багÑ\8b: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
-        <translation>Катуулук %1%</translation>
+        <translation>Көлөмү %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
-        <translation>Үн өчүрүлдү</translation>
+        <translation>Үнү өчүрүлдү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
-        <translation>Үн күйгүзүлдү</translation>
+        <translation>Үнү күйгүзүлдү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
-        <translation>Видеонун чечиминин жогорку чеги: %1</translation>
+        <translation>Видеонун жогорку чечими: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Жашырындуулугуңуз камсыздалды</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Жүктөп алуу аякталды</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
-        <translation>Эми сиз видеонун YouTube шилтемесин башка тиркемеге коё аласыз</translation>
+        <translation>YouTube&apos;дун дарегин эми башка тиркемеге койсоңуз болот</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
-        <translation>Сиз Ñ\8dми Ð°Ð·Ñ\8bÑ\80 Ð²Ð¸Ð´ÐµÐ¾ Ð°Ð³Ñ\8bмдÑ\8bн Ð´Ð°Ñ\80егин Ð±Ð°Ñ\88ка Ñ\82иÑ\80кемеге Ñ\81ала Ð°Ð»Ð°Ñ\81Ñ\8bз</translation>
+        <translation>Ð\92идео Ð°Ð³Ñ\8bмдÑ\8bн Ð´Ð°Ñ\80егин Ñ\8dми Ð±Ð°Ñ\88ка Ñ\82иÑ\80кемеге ÐºÐ¾Ð¹Ñ\81оңÑ\83з Ð±Ð¾Ð»Ð¾Ñ\82</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Чакан убакытка чейин гана шилтеме анык болот.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
-        <translation>Ð\91Ñ\83л Ð¿Ñ\80огÑ\80амма %1&apos;Ñ\82Ñ\83н Ð´ÐµÐ¼Ð¾-веÑ\80Ñ\81иÑ\8fÑ\81Ñ\8b Ð±Ð¾Ð»Ð¾Ñ\82.</translation>
+        <translation>Ð\91Ñ\83л Ð¶Ó©Ð½ Ñ\8dле %1&apos;дÑ\83н Ð´ÐµÐ¼Ð¾-веÑ\80Ñ\81иÑ\8fÑ\81Ñ\8b.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Бул тиркемени сынап көргөнгө мүмкүндүк берет.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Улантуу</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>/</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>бөлүк</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>эпизод</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>%1 жеринен жөнөтүү</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Толук версиясын алуу</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
-        <translation>%1 Ð¶Ò¯ÐºÑ\82өп Ð°Ð»Ñ\83Ñ\83</translation>
+        <translation>%1 Ð¶Ò¯ÐºÑ\82өп Ð°Ð»Ñ\8bнÑ\83Ñ\83да</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
-        <translation>Жаңыртууларды орнотуу</translation>
+        <translation>Жаңылоолорду орнотуу</translation>
     </message>
 </context>
 <context>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 көрүү</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
-        <translation>%1/%2 (%3) — %4</translation>
+        <translation>%1 / %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Даярдоо</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Ката</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Аякталды</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Токтотулду</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Жүктөп алууну токтотуу</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>%1 жеринен көрсөтүү</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
-        <translation>Эне каталогун ачуу</translation>
+        <translation>Ð\90Ñ\82а-Ñ\8dне каталогун ачуу</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
-        <translation>Жүктөп алууну кайта баштатуу</translation>
+        <translation>Жүктөп алууну кайтадан жүргүзүү</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/playlistmodel.cpp" line="53"/>
         <source>Show %1 More</source>
-        <translation>Дагы көрсөтүү %1</translation>
+        <translation>Дагы %1 видеону көрсөтүү</translation>
     </message>
     <message>
         <location filename="src/playlistmodel.cpp" line="54"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="31"/>
         <source>Sort by</source>
-        <translation>Сорттоо ыкмасы</translation>
+        <translation>Сорттоо</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="35"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="83"/>
         <source>Less than 4 minutes</source>
-        <translation>4 мүнөттөн кыскараак</translation>
+        <translation>4 минутадан кыскараак</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="84"/>
         <source>Between 4 and 20 minutes</source>
-        <translation>4 менен 20 мүнөттүн арасынан</translation>
+        <translation>4 менен 20 минутанын арасынан</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="85"/>
         <source>Longer than 20 minutes</source>
-        <translation>20 мүнөттөн көбүрөөк</translation>
+        <translation>20 минутадан көбүрөөк</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="100"/>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
-        <translation>&lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;&apos;ка кош келиңиз,</translation>
+        <translation>&lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;&apos;га кош келиңиз,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Толук версиясын сатып алуу</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Видеолорду</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>ачкыч сөз</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>канал</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>менен табып көрүү.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Көрүү</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Соңку ачкыч сөздөр</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Соңку каналдар</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Артка</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="70"/>
         <source>Back to %1</source>
-        <translation>%1 кайтуу</translation>
+        <translation>%1 Ð²Ð¸Ð´ÐµÐ¾Ñ\81Ñ\83на ÐºÐ°Ð¹Ñ\82Ñ\83Ñ\83</translation>
     </message>
 </context>
 <context>
         <source>Most Popular</source>
         <translation>Эң популярдуу</translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation>Тандалмалар</translation>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation>Мыктылар</translation>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"/>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
-        <translation>%1 үчүн видео агымды алуу оңунан чыккан жок</translation>
+        <translation>%1 үчүн видео агымын алуу мүмкүн эмес</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Тармак катасы: %1 %2 үчүн</translation>
     </message>
index 36aa566988ea4b7b6aecf3b6761ecc54057cd045..543a7a05f374b3b6443b531247db852884007009 100644 (file)
@@ -4,7 +4,7 @@ INCLUDEPATH += $$PWD
 DEPENDPATH += $$PWD
 
 # ls -1 *.ts | tr '\n' ' '
-TRANSLATIONS += ar.ts ca.ts ca_ES.ts cs_CZ.ts da.ts de_DE.ts el.ts en.ts es.ts es_AR.ts es_ES.ts fi.ts fi_FI.ts fr.ts he_IL.ts hr.ts hu.ts ia.ts it.ts ja_JP.ts jv.ts ky.ts nl.ts pl.ts pl_PL.ts pt_BR.ts ro.ts ru.ts sk.ts sl.ts tr.ts zh_CN.ts 
+TRANSLATIONS += ar.ts ast.ts bg_BG.ts ca.ts cs_CZ.ts da.ts de_DE.ts el.ts en.ts es.ts es_AR.ts es_ES.ts fi.ts fi_FI.ts fr.ts gl.ts he_IL.ts hu.ts ia.ts it.ts ja_JP.ts ky.ts ms_MY.ts nb.ts pl.ts pl_PL.ts pt_BR.ts ro.ts ru.ts sk.ts sl.ts sq.ts tr.ts uk.ts uk_UA.ts zh_CN.ts 
 isEmpty(QMAKE_LRELEASE) {
     win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe
     else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
diff --git a/locale/nl.ts b/locale/nl.ts
deleted file mode 100644 (file)
index 563ae0e..0000000
+++ /dev/null
@@ -1,1476 +0,0 @@
-<?xml version="1.0" ?><!DOCTYPE TS><TS language="nl" version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
-<context>
-    <name>AboutView</name>
-    <message>
-        <location filename="src/aboutview.cpp" line="32"/>
-        <source>There&apos;s life outside the browser!</source>
-        <translation>Er is leven buiten de browser!</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="33"/>
-        <source>Version %1</source>
-        <translation>Versie %1</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="38"/>
-        <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="42"/>
-        <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 is gratis software, maar de ontwikkeling ervan vergt kostbare tijd.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="43"/>
-        <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
-        <translation>&lt;a href=&apos;%1&apos;&gt;Doneer&lt;/a&gt; om bij te dragen aan de verdere ontwikkeling van %2.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="47"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Misschien wilt u ook mijn andere apps proberen:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="50"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, een YouTube-muziekspeler</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="54"/>
-        <source>%1, a music player</source>
-        <translation>%1, een muziekspeler</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="60"/>
-        <source>Translate %1 to your native language using %2</source>
-        <translation>Vertaal %1 naar uw moedertaal met behulp van %2</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="65"/>
-        <source>Icon designed by %1.</source>
-        <translation>Pictogram ontworpen door %1.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="69"/>
-        <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
-        <translation>Uitgebracht onder de &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="84"/>
-        <source>&amp;Close</source>
-        <translation>&amp;Sluit</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.h" line="17"/>
-        <source>About</source>
-        <translation>Over</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.h" line="19"/>
-        <source>What you always wanted to know about %1 and never dared to ask</source>
-        <translation>Wat u altijd al had willen weten over %1 maar nooit heeft durven vragen</translation>
-    </message>
-</context>
-<context>
-    <name>ActivationDialog</name>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
-        <source>Enter your License Details</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
-        <source>&amp;Email:</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
-        <source>&amp;Code:</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>ActivationView</name>
-    <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
-        <source>Please license %1</source>
-        <translation>Alstublieft, Licenceer  %1</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
-        <source>This demo has expired.</source>
-        <translation>Deze demo is verlopen.</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
-        <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
-        <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="57"/>
-        <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
-        <translation>Door dit produkt te kopen beloon je mij voor het harde werk dat ik geïnvesteerd heb in het maken van %1.</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
-        <source>Use Demo</source>
-        <translation>Gebruik de demo</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
-        <source>Enter License</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
-        <source>Buy License</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>ClearButton</name>
-    <message>
-        <location filename="src/searchlineedit.cpp" line="56"/>
-        <source>Clear</source>
-        <translation>Wis</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadItem</name>
-    <message>
-        <location filename="src/downloaditem.cpp" line="322"/>
-        <source>bytes</source>
-        <translation>bytes</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="325"/>
-        <source>KB</source>
-        <translation>KB</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="328"/>
-        <source>MB</source>
-        <translation>MB</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="337"/>
-        <source>bytes/sec</source>
-        <translation>bytes/sec</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="340"/>
-        <source>KB/sec</source>
-        <translation>KB/sec</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="343"/>
-        <source>MB/sec</source>
-        <translation>MB/sec</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="349"/>
-        <source>seconds</source>
-        <translation>seconden</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="352"/>
-        <source>minutes</source>
-        <translation>minuten</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="355"/>
-        <source>%4 %5 remaining</source>
-        <translation>%4 %5 resterend</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadManager</name>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="55"/>
-        <source>This is just the demo version of %1.</source>
-        <translation>Dit is slechts de demoversie van %1.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="57"/>
-        <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
-        <translation>Het kan alleen maar videos downloaden korter dan %1 minuten zodat u de downloadfunctionaliteit kunt testen.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="63"/>
-        <source>Continue</source>
-        <translation>Ga door</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="64"/>
-        <source>Get the full version</source>
-        <translation>Verkrijg de volledige versie</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="150"/>
-        <source>%1 downloaded in %2</source>
-        <translation>%1 gedownload in %2</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="153"/>
-        <source>Download finished</source>
-        <translation>Download greed</translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="159"/>
-        <source>%n Download(s)</source>
-        <translation><numerusform>%n Download</numerusform><numerusform>%n Downloads</numerusform></translation>
-    </message>
-</context>
-<context>
-    <name>DownloadSettings</name>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="15"/>
-        <source>Change location...</source>
-        <translation>Verander locatie...</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="47"/>
-        <source>Choose the download location</source>
-        <translation>Kies de downloadlocatie</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="59"/>
-        <source>Download location changed.</source>
-        <translation>Downloadlocatie aangepast.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="61"/>
-        <source>Current downloads will still go in the previous location.</source>
-        <translation>Huidige downloads zullen in de vorige locatie worden geplaatst.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="72"/>
-        <source>Downloading to: %1</source>
-        <translation>Downloaden naar:%1</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadView</name>
-    <message>
-        <location filename="src/downloadview.cpp" line="18"/>
-        <location filename="src/downloadview.h" line="22"/>
-        <source>Downloads</source>
-        <translation>Downloads</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>GlobalShortcuts</name>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="16"/>
-        <source>Play</source>
-        <translation>Speel af</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="17"/>
-        <source>Pause</source>
-        <translation>Pauzeer</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="18"/>
-        <source>Play/Pause</source>
-        <translation>Speel af/Pauzeer</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="19"/>
-        <source>Stop</source>
-        <translation>Stop</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="20"/>
-        <source>Stop playing after current track</source>
-        <translation>Stop afspelen na huidig nummer</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="21"/>
-        <source>Next track</source>
-        <translation>Volgend nummer</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="22"/>
-        <source>Previous track</source>
-        <translation>Vorig nummer</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="23"/>
-        <source>Increase volume</source>
-        <translation>Verhoog volume</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="24"/>
-        <source>Decrease volume</source>
-        <translation>Verlaag volume</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="25"/>
-        <source>Mute</source>
-        <translation>Demp</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="26"/>
-        <source>Seek forward</source>
-        <translation>Spoel naar voren</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="27"/>
-        <source>Seek backward</source>
-        <translation>Spoel naar achteren</translation>
-    </message>
-</context>
-<context>
-    <name>HomeView</name>
-    <message>
-        <location filename="src/homeview.cpp" line="33"/>
-        <source>Search</source>
-        <translation>Zoek</translation>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="35"/>
-        <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="40"/>
-        <source>Browse</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="42"/>
-        <source>Browse videos by category</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.h" line="22"/>
-        <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>LoadingWidget</name>
-    <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
-        <source>Error</source>
-        <translation>Fout</translation>
-    </message>
-</context>
-<context>
-    <name>MainWindow</name>
-    <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
-        <source>&amp;Stop</source>
-        <translation>&amp;Stop</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
-        <source>Stop playback and go back to the search view</source>
-        <translation>Stop het afspelen en keer terug naar het zoekvenster</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
-        <source>S&amp;kip</source>
-        <translation>&amp;Sla over</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
-        <source>Skip to the next video</source>
-        <translation>Spoel door naar de volgende vieo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pauzeer</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
-        <source>Pause playback</source>
-        <translation>Pauzeer afspelen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
-        <source>&amp;Full Screen</source>
-        <translation>&amp;Volledig scherm</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
-        <source>Go full screen</source>
-        <translation>Schakel over naar Volledig scherm</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
-        <source>Hide the playlist and the toolbar</source>
-        <translation>Verberg de afspeellijst en de werkbalk</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
-        <source>Go to the YouTube video page and pause playback</source>
-        <translation>Ga naar de YouTube-videopagina en pauzeer het afspelen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
-        <source>Copy the current video YouTube link to the clipboard</source>
-        <translation>Kopieer de huidige YouTube-link naar het klembord</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
-        <source>Copy the current video stream URL to the clipboard</source>
-        <translation>Kopieer de huidige videostream-URL naar het klembord</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
-        <source>Find other video parts hopefully in the right order</source>
-        <translation>Vind gerelateerde videofragmenten, hopelijk in de juiste volgorde</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
-        <source>&amp;Remove</source>
-        <translation>&amp;Verwijder</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
-        <source>Remove the selected videos from the playlist</source>
-        <translation>Verwijder de geselecteerde video&apos;s uit de afspeellijst</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
-        <source>Move &amp;Up</source>
-        <translation>Verplaats &amp;omhoog</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
-        <source>Move up the selected videos in the playlist</source>
-        <translation>Verplaats de geselecteerde video&apos;s in de afspeellijst naar boven</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
-        <source>Move &amp;Down</source>
-        <translation>Verplaats &amp;omlaag</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
-        <source>Move down the selected videos in the playlist</source>
-        <translation>Verplaats de geselecteerde video&apos;s in de afspeelijst naar beneden</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
-        <source>Clear the search history. Cannot be undone.</source>
-        <translation>Wis de zoek geschiedenis. Dit kan niet ongedaan worden gemaakt.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
-        <source>&amp;Quit</source>
-        <translation>&amp;Sluit af</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
-        <source>Bye</source>
-        <translation>Tot ziens</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
-        <source>&amp;Website</source>
-        <translation>&amp;Website</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
-        <source>%1 on the Web</source>
-        <translation>%1 op het internet</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
-        <source>Please support the continued development of %1</source>
-        <translation>Ondersteun alstublieft de ontwikkeling van %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
-        <source>&amp;About</source>
-        <translation>&amp;Over</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
-        <source>Info about %1</source>
-        <translation>Informatie over %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
-        <source>Search</source>
-        <translation>Zoek</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
-        <source>Mute volume</source>
-        <translation>Demp volume</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
-        <source>&amp;Downloads</source>
-        <translation>&amp;Downloads</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
-        <source>Show details about video downloads</source>
-        <translation>Geef details weer van videodownloads</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>&amp;Download</source>
-        <translation>&amp;Download</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
-        <source>Download the current video</source>
-        <translation>Download de huidige video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
-        <source>Share the current video using %1</source>
-        <translation>Deel de huidige video door middel van %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
-        <source>&amp;Email</source>
-        <translation>&amp;E-mail</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
-        <source>Email</source>
-        <translation>E-mail</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
-        <source>&amp;Close</source>
-        <translation>&amp;Sluit</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
-        <source>&amp;Float on Top</source>
-        <translation>&amp;Zweef erboven</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
-        <source>&amp;Stop After This Video</source>
-        <translation>&amp;Stop na deze video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
-        <source>&amp;Report an Issue...</source>
-        <translation>&amp;Rapporteer een Probleem...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
-        <source>&amp;Refine Search...</source>
-        <translation>&amp;Verfijn Zoekopdracht...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
-        <source>More...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
-        <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
-        <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Programma</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
-        <source>Buy %1...</source>
-        <translation>Koop %1...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
-        <source>&amp;Playback</source>
-        <translation>&amp;Afspeelopties</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
-        <source>&amp;Playlist</source>
-        <translation>&amp;Afspeellijst</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
-        <source>&amp;Video</source>
-        <translation>&amp;Video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
-        <source>&amp;View</source>
-        <translation>&amp;Weergave</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
-        <source>&amp;Share</source>
-        <translation>&amp;Deel</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
-        <source>&amp;Help</source>
-        <translation>&amp;Help</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
-        <source>Press %1 to raise the volume, %2 to lower it</source>
-        <translation>Druk op %1 om het volume te verhogen, op %2 om het te verlagen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
-        <source>Opening %1</source>
-        <translation>Bezig met openen van %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
-        <source>Do you want to exit %1 with a download in progress?</source>
-        <translation>Wilt u %1 afsluiten terwijl er een download bezig is?</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
-        <source>If you close %1 now, this download will be cancelled.</source>
-        <translation>Als u nu %1 afsluit, zal de download worden beëindigd.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
-        <source>Close and cancel download</source>
-        <translation>Sluit en annuleer het downloaden</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
-        <source>Wait for download to finish</source>
-        <translation>Wacht tot het downloaden is voltooid</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Verlaat &amp;volledig scherm</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versie %2 nu beschikbaar.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
-        <source>Remind me later</source>
-        <translation>Herinner mij later</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
-        <source>Update</source>
-        <translation>Werk bij</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
-        <source>Error: %1</source>
-        <translation>Fout: %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
-        <source>P&amp;revious</source>
-        <translation>V&amp;orige</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
-        <source>Go back to the previous track</source>
-        <translation>Ga terug naar het vorige nummer</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Compacte modus</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Open de &amp;Youtube-pagina</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopieer de YouTube-&amp;link</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopieer de videostream-&amp;URL</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Vind video&amp;fragmenten</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Wis recente zoekopdrachten</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Geef een &amp;donatie</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Speel handmatig af</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
-        <source>Manually start playing videos</source>
-        <translation>Speel handmatig video&apos;s af</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
-        <source>Choose your content location</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Speel af</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
-        <source>Resume playback</source>
-        <translation>Hervat afspelen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
-        <source>Remaining time: %1</source>
-        <translation>Resterende tijd: %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
-        <source>Volume at %1%</source>
-        <translation>Volume op %1%</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
-        <source>Volume is muted</source>
-        <translation>Volume is gedempt</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
-        <source>Volume is unmuted</source>
-        <translation>Volume is niet gedempt</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
-        <source>Maximum video definition set to %1</source>
-        <translation>Maximale videokwaliteit staat op %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
-        <source>Your privacy is now safe</source>
-        <translation>Uw privacy is nu gewaarborgd</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
-        <source>Downloads complete</source>
-        <translation>Downloads afgerond</translation>
-    </message>
-</context>
-<context>
-    <name>MediaView</name>
-    <message>
-        <location filename="src/mediaview.cpp" line="553"/>
-        <source>You can now paste the YouTube link into another application</source>
-        <translation>U kunt nu uw YouTube-link kopieren naar een ander programma</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="561"/>
-        <source>You can now paste the video stream URL into another application</source>
-        <translation>U kunt nu uw videostream-URL kopieren naar een ander programma</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="562"/>
-        <source>The link will be valid only for a limited time.</source>
-        <translation>De link zal maar een beperkte tijd geldig zijn.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="636"/>
-        <source>This is just the demo version of %1.</source>
-        <translation>Dit is slechts de demoversie van %1.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="637"/>
-        <source>It allows you to test the application and see if it works for you.</source>
-        <translation>Het biedt de mogelijkheid de applicatie te testen en te beoordelen.</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="667"/>
-        <source>Continue</source>
-        <translation>Ga door</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="756"/>
-        <source>of</source>
-        <comment>Used in video parts, as in '2 of 3'</comment>
-        <translation>van</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="768"/>
-        <source>part</source>
-        <comment>This is for video parts, as in 'Cool video - part 1'</comment>
-        <translation>fragment</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="770"/>
-        <source>episode</source>
-        <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
-        <translation>aflevering</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Sent from %1</source>
-        <translation>Verstuurd vanaf %1</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="644"/>
-        <source>Get the full version</source>
-        <translation>Verkrijg de volledige versie</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="681"/>
-        <source>Downloading %1</source>
-        <translation>Bezig met downloaden van %1</translation>
-    </message>
-</context>
-<context>
-    <name>MessageWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="21"/>
-        <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
-        <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
-        <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
-        <source>Skip This Version</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
-        <source>Remind Me Later</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
-        <source>Install Update</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PasteLineEdit</name>
-    <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
-        <source>Paste</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PlaylistItemDelegate</name>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
-        <source>%1 views</source>
-        <translation>%1 bekeken</translation>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
-        <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
-        <source>Preparing</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
-        <source>Failed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
-        <source>Completed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
-        <source>Stopped</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
-        <source>Stop downloading</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
-        <source>Show in %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
-        <source>Open parent folder</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
-        <source>Restart downloading</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>PlaylistModel</name>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="52"/>
-        <source>Searching...</source>
-        <translation>Bezig met zoeken...</translation>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="53"/>
-        <source>Show %1 More</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="54"/>
-        <source>No videos</source>
-        <translation>Geen video&apos;s</translation>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="55"/>
-        <source>No more videos</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>RefineSearchWidget</name>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="31"/>
-        <source>Sort by</source>
-        <translation>Sorteer op</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="35"/>
-        <source>Relevance</source>
-        <translation>Relevantie</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="36"/>
-        <location filename="src/refinesearchwidget.cpp" line="52"/>
-        <source>Date</source>
-        <translation>Datum</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="37"/>
-        <source>View Count</source>
-        <translation>Weergaven</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="38"/>
-        <source>Rating</source>
-        <translation>Waardering</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
-        <source>Anytime</source>
-        <translation>Elke Periode</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="57"/>
-        <source>Today</source>
-        <translation>Vandaag</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="58"/>
-        <source>7 Days</source>
-        <translation>7 Dagen</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="59"/>
-        <source>30 Days</source>
-        <translation>30 Dagen</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
-        <source>Duration</source>
-        <translation>Duur</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="77"/>
-        <location filename="src/refinesearchwidget.cpp" line="104"/>
-        <source>All</source>
-        <translation>Alles</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="78"/>
-        <source>Short</source>
-        <translation>Kort</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="79"/>
-        <source>Medium</source>
-        <translation>Gemiddeld</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="80"/>
-        <source>Long</source>
-        <translation>Lang</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="83"/>
-        <source>Less than 4 minutes</source>
-        <translation>Minder dan 4 minuten</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="84"/>
-        <source>Between 4 and 20 minutes</source>
-        <translation>Tussen 4 en 20 minuten</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="85"/>
-        <source>Longer than 20 minutes</source>
-        <translation>Langer dan 20 minuten</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
-        <source>Quality</source>
-        <translation>Kwaliteit</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="105"/>
-        <source>High Definition</source>
-        <translation>HD Resolutie </translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="108"/>
-        <source>720p or higher</source>
-        <translation>720p of hover</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="122"/>
-        <source>Done</source>
-        <translation>Klaar</translation>
-    </message>
-</context>
-<context>
-    <name>RegionsView</name>
-    <message>
-        <location filename="src/regionsview.cpp" line="19"/>
-        <source>Done</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>SearchLineEdit</name>
-    <message>
-        <location filename="src/searchlineedit.cpp" line="177"/>
-        <source>Search</source>
-        <translation>Zoek</translation>
-    </message>
-</context>
-<context>
-    <name>SearchView</name>
-    <message>
-        <location filename="src/searchview.cpp" line="71"/>
-        <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
-        <translation>Welkom bij &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="50"/>
-        <source>Get the full version</source>
-        <translation>Verkrijg de volledige versie</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="85"/>
-        <source>Enter</source>
-        <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
-        <translation>Typ</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="90"/>
-        <source>a keyword</source>
-        <translation>een zoekwoord</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="91"/>
-        <source>a channel</source>
-        <translation>een kanaal</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="96"/>
-        <source>to start watching videos.</source>
-        <translation>om te beginnen met het bekijken van video&apos;s.</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="120"/>
-        <source>Watch</source>
-        <translation>Bekijk</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="138"/>
-        <source>Recent keywords</source>
-        <translation>Recente zoekwoorden</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="151"/>
-        <source>Recent channels</source>
-        <translation>Recente kanalen</translation>
-    </message>
-</context>
-<context>
-    <name>SidebarHeader</name>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
-        <source>&amp;Back</source>
-        <translation>&amp;Terug</translation>
-    </message>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="57"/>
-        <source>Forward to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="70"/>
-        <source>Back to %1</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>SidebarWidget</name>
-    <message>
-        <location filename="src/sidebarwidget.cpp" line="52"/>
-        <source>Refine Search</source>
-        <translation>Verfijn Zoekopdracht</translation>
-    </message>
-    <message>
-        <location filename="src/sidebarwidget.cpp" line="148"/>
-        <source>Did you mean: %1</source>
-        <translation>Bedoelde je: %1</translation>
-    </message>
-</context>
-<context>
-    <name>StandardFeedsView</name>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="85"/>
-        <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="87"/>
-        <source>Most Shared</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="88"/>
-        <source>Most Discussed</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="89"/>
-        <source>Top Rated</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>Video</name>
-    <message>
-        <location filename="src/video.cpp" line="213"/>
-        <source>Cannot get video stream for %1</source>
-        <translation>Kan de videostream niet verkrijgen voor %1</translation>
-    </message>
-    <message>
-        <location filename="src/video.cpp" line="231"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Netwerkfout: %1 voor %2</translation>
-    </message>
-</context>
-<context>
-    <name>YTRegions</name>
-    <message>
-        <location filename="src/ytregions.cpp" line="8"/>
-        <source>Algeria</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="9"/>
-        <source>Argentina</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="10"/>
-        <source>Australia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="11"/>
-        <source>Belgium</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="12"/>
-        <source>Brazil</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="13"/>
-        <source>Canada</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="14"/>
-        <source>Chile</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="15"/>
-        <source>Colombia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="16"/>
-        <source>Czech Republic</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="17"/>
-        <source>Egypt</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="18"/>
-        <source>France</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="19"/>
-        <source>Germany</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="20"/>
-        <source>Ghana</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="21"/>
-        <source>Greece</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="22"/>
-        <source>Hong Kong</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="23"/>
-        <source>Hungary</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="24"/>
-        <source>India</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="25"/>
-        <source>Indonesia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="26"/>
-        <source>Ireland</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="27"/>
-        <source>Israel</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="28"/>
-        <source>Italy</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="29"/>
-        <source>Japan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="30"/>
-        <source>Jordan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="31"/>
-        <source>Kenya</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="32"/>
-        <source>Malaysia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="33"/>
-        <source>Mexico</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="34"/>
-        <source>Morocco</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="35"/>
-        <source>Netherlands</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="36"/>
-        <source>New Zealand</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="37"/>
-        <source>Nigeria</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="38"/>
-        <source>Peru</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="39"/>
-        <source>Philippines</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="40"/>
-        <source>Poland</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="41"/>
-        <source>Russia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="42"/>
-        <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="43"/>
-        <source>Singapore</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="44"/>
-        <source>South Africa</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="45"/>
-        <source>South Korea</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="46"/>
-        <source>Spain</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="47"/>
-        <source>Sweden</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="48"/>
-        <source>Taiwan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="49"/>
-        <source>Tunisia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="50"/>
-        <source>Turkey</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="51"/>
-        <source>Uganda</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="52"/>
-        <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="53"/>
-        <source>United Kingdom</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="54"/>
-        <source>Yemen</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="128"/>
-        <source>Worldwide</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-</TS>
\ No newline at end of file
index f7290c6b7fb9fe0accc95a8ecf0345fbd2d8fde8..086041ea8de34b595bf06b5937dd3ce7d99f856e 100644 (file)
@@ -15,7 +15,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="38"/>
         <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
+        <translation>Licencjonowane dla: %1</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="42"/>
     <message>
         <location filename="src/aboutview.cpp" line="47"/>
         <source>You may want to try my other apps as well:</source>
-        <translation type="unfinished"/>
+        <translation>Być może chciałbyś wypróbować moje inne aplikacje:</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="50"/>
         <source>%1, a YouTube music player</source>
-        <translation type="unfinished"/>
+        <translation>%1, odtwarzacz muzyki YouTube</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="54"/>
         <source>%1, a music player</source>
-        <translation type="unfinished"/>
+        <translation>%1, odtwarzacz muzyki</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="60"/>
@@ -65,7 +65,7 @@
     <message>
         <location filename="src/aboutview.h" line="17"/>
         <source>About</source>
-        <translation>O programie Minitube</translation>
+        <translation>O programie</translation>
     </message>
     <message>
         <location filename="src/aboutview.h" line="19"/>
@@ -78,7 +78,7 @@
     <message>
         <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation type="unfinished"/>
+        <translation>Wpisz szczegóły Twojej licencji</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
@@ -88,7 +88,7 @@
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Kod:</translation>
     </message>
 </context>
 <context>
         <translation>Kup Licencję</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Sortuj według</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
     <message>
         <location filename="src/downloadmanager.cpp" line="150"/>
         <source>%1 downloaded in %2</source>
-        <translation type="unfinished"/>
+        <translation>%1 pobrane w %2</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="153"/>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>Przeglądaj</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation>Przeglądaj wideo według kategorii</translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Błąd</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Zatrzymaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Zatrzymaj odtwarzanie i wróć do wyszukiwania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>Prze&amp;skocz dalej</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Skocz do następnego pliku wideo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pauza</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Wstrzymaj odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>Pełny ekran (&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Przełącz na pełny ekran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ukryj listę odtwarzania i pasek narzędzi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Otwórz na stronie Youtube i wstrzymaj odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Kopiuj link aktualnie odtwarzanego video do schowka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopiuj adres URL odtwarzanego wideo do schowka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>Usuń (&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Usuń wybrane pliki z listy odtwarzania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Przenieś &amp;Wyżej</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Przenieś wyżej zaznaczony plik w liście odtwarzania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Przenieś &amp;Niżej</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Przenieś niżej zaznaczony plik w liście odtwarzania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Wyczyść historię wyszukiwania. NIEODWRACALNIE.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>Wyjdź (&amp;Q)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Żegnaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>Strona domowa projektu (&amp;W)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 w sieci</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Prosimy o wsparcie dla dalszego rozwoju %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>O programie (&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Informacje o %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Wycisz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Pobrane</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Pokaż szczegóły o pobranych plikach</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Pobierz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Pobierz aktualny plik</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Udostępnij te wideo używając %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Zamknij</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Zgłoś problem...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>Więcej...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Aplikacje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Kup %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Lista odtwarzania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Wideo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Widok</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>Udo&amp;stępnij</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Pomoc</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Wciścnij %1 żeby zwiększyć głośność, %2 żeby zmiejszyć głośność</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Otwieranie %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Czy na pewno chcesz zamknąć %1 w trakcie pobierania???</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Jeśli zamkniesz %1 teraz, To pobieranie będzie anulowane.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Zamnij i anuluj pobieranie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Poczekaj na zakończenie pobierania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Opuść &amp;tryb pełnoekranowy</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 wersja %2 jest teraz dostępna.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Przypomnij mi później</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Aktualizuj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Błąd %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>Pop&amp;rzedni</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Powrót do poprzedniego utworu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Otwórz na &amp;Youtube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Kopiuj adres &amp;URL strumienia wideo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>Wy&amp;czyść Ostatnie Poszukiwania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Przekaż &amp;darowiznę</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Odtwarzaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Kontynuuj odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Pozostały czas %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Głośność na %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Dźwięk jest wyciszony</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Przywrócono dźwięk</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maksymalna rozdzielczość wideo ustawiona na %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Twoja prywatność jest teraz bezpieczna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Pobieranie ukończone</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Teraz możesz wkleić link Youtube do innej aplikacji</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Teraz możesz wkleić URL do innej aplikacji</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Link będzie ważny tylko przez ograniczony czas.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>To jest tylko wersja demo %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Pozwala Ci to na testowanie i sprawdzenie działania aplikacji.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Kontynuuj</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>z</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>część</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>odcinek</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Wysłano z %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Pobierz pełną wersję</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Pobieranie %1</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="21"/>
         <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
+        <translation>Nowa wersja %1 jest dostępna!</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
+        <translation>%1 %2 jest już dostępny, Ty masz %3.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
-        <translation type="unfinished"/>
+        <translation>Zainstaluj aktualizację</translation>
     </message>
 </context>
 <context>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 widziane</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 z %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Przegotowuję</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Niepowodzenie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Zakończone</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Zatrzymano</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Zatrzymaj pobieranie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Pokaż w %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Pobierz od nowa</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="78"/>
         <source>Short</source>
-        <translation type="unfinished"/>
+        <translation>Krótkie</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="79"/>
         <source>Medium</source>
-        <translation type="unfinished"/>
+        <translation>Średnie</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="80"/>
         <source>Long</source>
-        <translation type="unfinished"/>
+        <translation>Długie</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="83"/>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Witaj w &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Pobierz pełną wersję</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Zatwierdź</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>słowo kluczowe</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>kanał</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>aby rozpocząć oglądanie</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Oglądaj</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Ostatnio szukane</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Odwiedzone kanały</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Wstecz</translation>
     </message>
         <source>Most Popular</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"/>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Nie można uzyskać dostępu do %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Błąd sieci: %1 for %2</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Holandia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Ogólnoświatowy</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index fb2321e5a2c73897a2fcc043a78ddfd13fde86c2..912941f8ca51809daa173bdfb2fca601a37af029 100644 (file)
         <translation>Kup licencję</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Wszystkie filmy</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Nieobejrzane filmy</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Oznacz wszystkie jako obserwowane</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Pokaż zaktualizowane</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Nazwa</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Ostatnio Zaktualizowane</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Ostatnio Dodane</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Ostatnio Zaobserwowane</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Najczęściej Obserwowane</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Sortuj według</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Wszystkie filmy</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Nieobejrzane filmy</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Brak zaktualizowanych subskrypcji. </translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation>Znajdź filmy i kanały po słowie kluczowym</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>Przeglądaj</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation>Przeglądaj filmy po kategorii</translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Subskrypcje</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Błąd</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Zatrzymaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Przerwij odtwarzanie i wróć do wyszukiwania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>Prze&amp;skocz dalej</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Przejdź do następnego pliku wideo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pauza</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Wstrzymaj odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Pełny ekran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Przełącz na pełny ekran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ukryj listę odtwarzania i pasek narzędzi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Przejdź do strony YouTube i wstrzymaj odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Skopiuj link YouTube odtwarzanego filmu do schowka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopiuj adres URL odtwarzanego wideo do schowka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Znajdź pozostałe części filmu w, miejmy nadzieję, dobrej kolejności</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Usuń</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Usuń wybrane pliki z listy odtwarzania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Przesuń w &amp;Górę</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Przesuń wyżej zaznaczone pliki</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Przesuń w &amp;Dół</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Przesuń niżej zaznaczone pliki</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Czyści historię wyszukiwania. Nieodwracalnie.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Weź to wyłącz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Narciarz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Wyświetl stronę</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 on the Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Wesprzyj dalszy rozwój %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>O &amp;Programie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Informacje o %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Wycisz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Pobrane</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Pokaż szczegóły o pobranych plikach</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Pobierz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Pobierz aktualny plik</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Podziel się tym filmem przez %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>e-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Zamknij</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Ustaw na wierzchu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Zatrzymaj  po tym filmie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>Zgłoś problem...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Zawęź wyszukiwanie...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>Więcej...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation>Powiązane filmy</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation>Oglądaj filmy powiązane z aktualnie oglądanym</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Aplikacja</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Kup%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Lista odtwarzania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Wideo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Widok</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Podziel się</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Halp znaczy pomoc</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Naciśnij %1 aby podgłośnić, %2 aby przyciszyć</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Otwieranie %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Czy na pewno chcesz zamknąć %1 w trakcie pobierania???</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Jeśli zamkniesz %1 teraz, To pobieranie będzie anulowane.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Zamnij i anuluj pobieranie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Poczekaj na zakończenie pobierania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Opuść pełny ekran (&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>Wersja %1 %2 jest dostępna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Przypomnij później</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Zaktualizuj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Błąd %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>P&amp;oprzedni</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Wróć do poprzedniej ścieżki</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>&amp;Tryb kompaktowy</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Otwórz stronę &amp;YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Skopiuj &amp;link do strony Youtube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Skopiuj &amp;URL strumienia wideo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Znajdź części filmu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Wyczyść ostatnie wyszukiwania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Przekaż &amp;dotację</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>&amp;Ręczne rozpoczynanie odtwarzania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Ręcznie odtwarzaj filmy</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation>Wybierz swoją lokalizację</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Graj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Przywróć odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Pozostały czas: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Głośność: %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Dźwięk wyciszony</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Dźwięk przywrócony</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maksymalna rozdzielczość wideo ustawiona na %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Twoja prywatność jest już bezpieczna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Pobieranie ukończone</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Teraz można wkleić link YouTube do innej aplikacji</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Teraz możesz wkleić URL do innej aplikacji</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Link będzie ważny tylko przez ograniczony czas.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>To jest tylko wersja demo %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Pozwala przetestować aplikację, i zobaczyć czy Ci odpowiada.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Dalej</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>z</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>część</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>odcinek</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Przesłane od %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Usuń subskrypcje %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>Subskrybuj %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Zdobądź pełną wersję</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Pobieranie %1</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1widziany</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 z %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Przygotowywanie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Niepowodzenie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Ukończone</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Zatrzymano</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Przerwij pobieranie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Pokaż w %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Otwórz katalog nadrzędny</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Pobierz ponownie</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="37"/>
         <source>View Count</source>
-        <translation type="unfinished"/>
+        <translation>Wyświetlenia</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="38"/>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Witaj w &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Pobierz pełną wersję</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Zatwierdź</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>słowo kluczowe</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>kanał</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>aby rozpocząć oglądanie</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Oglądaj</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Ostatnie wyszukiwania</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Ostatnie kanały</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Wstecz</translation>
     </message>
         <source>Most Popular</source>
         <translation>Najpopularniejsze</translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation>Wyróżnione</translation>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation>Najlepiej oceniane</translation>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"/>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Strumieniowanie %1 nie powiodło się</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Błąd sieci: %1 dla %2</translation>
     </message>
index fca6446ef7ee6556f1a4dd2e38c81ddfdae561a3..81ca250adaa2a80979a09b1f882b1447fb2f0454 100644 (file)
@@ -15,7 +15,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="38"/>
         <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
+        <translation>Licenciado a: %1</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="42"/>
     <message>
         <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation type="unfinished"/>
+        <translation>Entre com seus Detalhes de Licença</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
-        <translation type="unfinished"/>
+        <translation>E-mail:</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
-        <translation type="unfinished"/>
+        <translation>Código:</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
+        <translation>A versão completa permite que você baixe vídeos com mais de %1 minutos e assista-os sem interrupções.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
+        <translation>Sem licença, a aplicação irá expirar em %1 dias.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
     <message>
         <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
-        <translation type="unfinished"/>
+        <translation>Entrar com a Licença.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
-        <translation type="unfinished"/>
+        <translation>Comprar a Licença.</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>Por %1</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Todos Os Vídeos</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Vídeos Não Assistidos</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Marcar tudo como assistido</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Mostrar Atualização</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Nome</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Última Atualização</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Último Adicionado</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Último Assistido</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Mais Assistidos</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Ordenar por</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Todos Os Vídeos</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Vídeos Não Assistidos</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Não há assinaturas atualizadas neste momento.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Você não tem assinaturas. Use o símbolo da estrela para assinar canais.</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation type="unfinished"/>
+        <translation>Baixando atualização...</translation>
     </message>
 </context>
 <context>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Pesquisar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Encontrar vídeos e canais por palavra-chave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Procurar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
-        <translation type="unfinished"/>
+        <translation>Procurar vídeos por categoria</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Assinados</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Canais assinados</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Erro</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Parar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Parar a reprodução e voltar à visualização da pesquisa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>Pu&amp;lar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Pular para o próximo vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pausar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Pausar a reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Tela Cheia</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Ir para a tela cheia</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ocultar a playlist e a barra de ferramentas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Ir à página de vídeo do YouTube e pausar a reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copiar o link do vídeo atual do YouTube para a área de transferência</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copiar a URL do stream do vídeo atual para a área de transferência</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Localizar partes de outro vídeo esperando na ordem certa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Remover</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Remover os vídeos selecionados da playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Mover para &amp;cima</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Mover para cima os vídeos selecionados na playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Mover para &amp;baixo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Mover para baixo os vídeos selecionados na playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Apagar o histórico de pesquisa. Não pode ser desfeito.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Sair</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Tchau</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>Si&amp;te</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 na Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Por favor, apoie o desenvolvimento continuado de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Sobre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Informações sobre %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Pesquisar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Volume mudo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Downloads</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Mostrar detalhes sobre os downloads de vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Baixar o vídeo atual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>A&amp;ssinar um canal</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Compartilhar o vídeo atual usando %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Fechar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Sempre Acima</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Parar Após Este Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Relatar um problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Refinar Pesquisa...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>Mais...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>Vídeos &amp;relacionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>Assistir vídeos relacionados à atual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Aplicação</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Adquirir %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Visualizar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartilhar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Ajuda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Pressione %1 para aumentar o volume, %2 para diminui-lo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Abrindo %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Você deseja sair de &quot;%1&quot; com uma transferência em curso?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Se você fechar %1 agora, este download será cancelado.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Fechar e cancelar download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Aguardar o download terminar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Deixar Em &amp;Tela Cheia</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 versão %2 está agora disponível.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Lembrar mais tarde</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Atualizar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Erro: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>Ante&amp;rior</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Ir para a faixa anterior</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>Modo &amp;Compacto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Abrir a Página do &amp;YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Copiar o &amp;Link do YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Copiar a &amp;URL do Stream do Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Localizar &amp;Parte Do Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Limpar Buscas Recentes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Faça uma &amp;Doação</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Iniciar &amp;Manualmente A Reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Iniciar manualmente a reprodução de vídeos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>Escolher seu conteúdo local</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Reproduzir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Continuar reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Tempo restante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Volume a %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Volume está mudo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Volume não está mudo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Máxima definição de vídeo definida para %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Sua privacidade está agora segura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Downloads finalizados</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Agora você pode colar o link do YouTube em outro programa</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Agora você pode colar a URL do stream de vídeo em outro programa</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>O link só será válido por um tempo limitado.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta é apenas a versão demonstação de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Ele permite que você teste o aplicativo e veja se ele funciona para você.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>de</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>parte</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>epsódio</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Envido de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Cancelar a assinatura de %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>Assinar %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Obter a versão completa</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Baixando %1</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="21"/>
         <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
+        <translation>Uma nova versão do %1 está disponível!</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
+        <translation>%1 %2 está disponível. Você está usando %3.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
+        <translation>Gostaria de fazer o download agora?</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
-        <translation type="unfinished"/>
+        <translation>Pular esta versão.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
-        <translation type="unfinished"/>
+        <translation>Me lembre mais tarde.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
-        <translation type="unfinished"/>
+        <translation>Instalar atualização.</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
-        <translation type="unfinished"/>
+        <translation>Colar.</translation>
     </message>
 </context>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 visualizações</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Preparando</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Falhou</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Finalizado</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Parado</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Parar download</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Mostrar em %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Abrir pasta pai</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Reiniciar download</translation>
     </message>
     <message>
         <location filename="src/regionsview.cpp" line="19"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>Feito</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bem-vindo ao &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Obter a versão completa</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Digite</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>uma palavra chave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>um canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>para começar a assistir vídeos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Assistir</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Palavra-chave recente</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Canais recentes</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Voltar</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="57"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>Avançar para %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="70"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>Voltar para %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/standardfeedsview.cpp" line="85"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
+        <translation>Mais Popular</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Mais Compartilhado</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="88"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>Mais Discutido</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="89"/>
         <source>Top Rated</source>
-        <translation type="unfinished"/>
+        <translation>Mais Populares</translation>
+    </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Todos Os Tempos Populares</translation>
     </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Não foi possível obter stream de vídeo de %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Erro na rede: %1 para %2</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="8"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>Argélia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="9"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>Argentina</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="10"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>Austrália</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="11"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>Bélgica</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="12"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>Brasil</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="13"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>Canadá</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="14"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>Chile</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="15"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>Colômbia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="16"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>República Tcheca</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="17"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>Egito</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="18"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>França</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="19"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>Alemanha</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="20"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>Gana</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="21"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>Grécia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="22"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>Hong Kong</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="23"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>Hungria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>Índia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Indonésia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>Irlanda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>Israel</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>Itália</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Japão</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Jordânia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Quênia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Malásia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>México</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>Marrocos</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Holanda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>Nova Zelândia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>Nigéria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>Peru</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>Filipinas</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>Polônia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>Rússia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>Arábia Saudita</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>Singapura</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>África do Sul</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>Coréia do Sul</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>Espanha</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>Suécia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>Taiwan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>Tunísia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>Turquia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>Uganda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>Emirados Árabes Unidos</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>Reino Unido</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>Iémen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Mundial</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index 44824e75c199b0b56f3d118ec858464c52af01fc..23dd193499e584aede5f83eda77f79d32e03b0d2 100644 (file)
         <translation>Cumpără Licență</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Sortează după</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Caută</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Eroare</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Stop</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Oprește redarea și întoarce-te la căsuța de căutare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>O&amp;mite</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Treci la videoclipul următor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pauză</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Pune redarea pe pauză</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>Ec&amp;ran complet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Vizualizează pe tot ecranul</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ascunde lista de redare și bara de unelte</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Deschide pagina de pe YouTube si pune pauză</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copiază adresa videoclipului YouTube curent în clipboard</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copiază adresa fluxului video curent în clipboard</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Caută alte părți ale videoclipului</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>Ș&amp;terge</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Șterge videoclipul selectat din lista de redare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Mută în &amp;sus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Mută în sus videoclipul selectat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Mută în &amp;jos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Mută în jos videoclipul selectat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Curăță istoricul de căutări. Acțiune ireversibilă.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Ieșire</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>La revedere</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>Site &amp;Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 pe Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Te rog să susții dezvoltarea aplicației %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Despre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Informații despre %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Căutare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Oprire sunet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Descărcări</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Arată detalii despre descărcările video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Descărcare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Descarcă videoclipul curent</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Împărtășește videoclipul curent folosind %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>În&amp;chide</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Detașează</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Oprește După Acest Videoclip</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Raportează o problemă...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Căutare rafinată...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Aplicație</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Cumpără %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Redare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Listă de redare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>Vi&amp;zualizare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>Î&amp;mpărtășește</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Ajutor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Apasă pe %1 pentru a da volumul mai tare sau pe %2 pentru a-l da mai încet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Deschidere %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Doriţi să ieșiți din %1 cu o descărcare în progres?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Dacă ieșiți acum din %1, procesul de descărcare va fi anulat.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Închide și anulează descărcarea</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Așteaptă ca descărcarea să se încheie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Ieși din Ec&amp;ran Complet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>Versiunea %1 a %2 este acum disponibilă.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Reamintește-mi mai târziu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Actualizează</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Eroare: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>&amp;Anterioare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Mergi înapoi la piesa precedentă</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>Modul &amp;Compact</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Deschide Pagina &amp;YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Copiază &amp;adresa videoclipului YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Copiază adresa &amp;fluxului video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Caută &amp;Părți ale Videoclipului</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>Șt&amp;erge Căutările Recente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Fă o &amp;Donație</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Pornește Redarea &amp;Manual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Pornește redarea videoclipurilor manual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Redare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Rezumă redarea videoclipului</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Timp rămas : %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Volum %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Sunetul este oprit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Sunetul este pornit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Rezoluția maxima a videoclipului este setată la %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Intimitatea dumneavoastră este acum în siguranță</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Descărcări complete</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Acum poți adăuga adresa YouTube într-o altă aplicație</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Acum poți adăuga adresa fluxului video într-o altă aplicație</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Adresa va fi validă doar pentru o perioadă limitată de timp.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Aceasta este doar o versiune demo a %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Vă permite să testați aplicația și să vedeți dacă funcționează.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Continuă</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>din</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>partea</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>episodul</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Trimis din %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Obține versiunea integrală</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Descărcare %1</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 vizionări</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bine ați venit la &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Obține versiunea integrală</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Introduceți</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>un cuvânt cheie</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>pentru a începe să vizionați videoclipuri.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Urmărește</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Căutări recente</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Canale recente</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>Î&amp;napoi</translation>
     </message>
         <source>Most Popular</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"/>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Nu poate fi accesat fluxul video pentru %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Eroare reţea: %1 pentru %2</translation>
     </message>
index 5f4af6ea06494200d23bef2c918a4200348b1329..e91ca348e285c14e276eb2da0a8ff285d8c2b1e1 100644 (file)
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
+        <translation>Полная версия позволяет смотреть видео, добавлять более %1 треков в списке воспроизведения и выбирать разные варианты песен.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <translation>Купить лицензию</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Отметить все как просмотренное</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Показать обновленные</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Название</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Недавно обновленные</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Недавно добавленные</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Недавно просмотренные</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Наиболее просмативаемые</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Сортировать по</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Все видео</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Не просмотренное видео</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>В настоящее время нет обновлений подписок.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>У вас нед подписок. Используйте символ звездочки чтобы подпываться на каналы.</translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Поиск</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Поиск видео и каналов по запросу</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Смотреть</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
-        <translation type="unfinished"/>
+        <translation>Смотреть видео по категориям</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Подписки</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Подписки на каналы</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
+        <translation>Чувствуйте себя как дома</translation>
     </message>
 </context>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Ошибка</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Остановить</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Остановить воспроизведение и вернуться к поиску</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>П&amp;ропустить</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Перейти к следующему клипу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Пауза</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Приостановить воспроизведение</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;На весь экран</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Полноэкранное воспроизведение</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Скрыть список воспроизведения и панель инструментов</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Приостановить воспроизведение и перейти на страницу видео в YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Скопировать ссылку текущего клипа YouTube в буфер обмена</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Скопировать адрес текущего видео потока в буфер обмена</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Найти другие части видео, надеюсь, в правильном порядке</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Удалить</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Удалить выбранные клипы из списка воспроизведения</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>В&amp;верх</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Переместить выбранные видеоклипы вверх в списке воспроизведения</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>В&amp;низ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Переместить выбранные видеоклипы вниз в списке воспроизведения</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Очистить историю запросов. Изменения необратимы.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Выход</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Пока</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Домашняя страница</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 в интернете</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Поддержите дальнейшую разработку %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;О программе</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Сведения о %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Поиск</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Выключить звук</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>Загрузки</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Показать подробности о загрузках видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>Загрузить</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Загрузить проигрываемый файл</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Поделиться текущим видео с помощью %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Поверх всех окон</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>Ост&amp;ановить после этого видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>Соо&amp;бщить об ошибке</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Уточнить поиск...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>Больше...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation>По&amp;хожее видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation>Смотреть видео, связанные с текущим</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>Пр&amp;иложение</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Купить %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Воспроизведение</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Список воспроизведения</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Просмотр</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Поделиться</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>Спр&amp;авка</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Нажмите %1 для увеличения громкости и %2 для уменьшения</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Открытие %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Вы действительно хотите закрыть %1 в то время, как загружаются файлы?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Если вы закроете %1 прямо сейчас, текущие загрузки будут отменены.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Выйти отменив загрузки</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Подождать завершения загрузок</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Покинуть п&amp;олноэкранный режим</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 версия %2 теперь доступна.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Напомнить позже</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Обновление</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Ошибка: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>Пр&amp;едыдущий</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Вернуться к предыдущему треку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>Компак&amp;тный режим</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>От&amp;крыть страницу YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Копировать &amp;ссылку на YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Копировать ссылку на в&amp;идео поток</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Найти &amp;фрагменты видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>О&amp;чистить последние поисковые запросы</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Сд&amp;елать пожертвование</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>&amp;Начать проигрывание вручную</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Начать проигрывание видео вручную</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>Выберите ваше расположение</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>Пр&amp;оиграть</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Продолжить воспроизведение</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Осталось: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Громкость %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Звук выключен</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Звук включен</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Максимальное разрешение видео: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Конфиденциальность обеспечена</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Загрузка завершена</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Теперь можно вставить адрес YouTube в другое приложение</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Теперь можно вставить адрес видео потока в другое приложение</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Адрес будет существовать ограниченное время.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Данная программа является демо-версией %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Она позволяет вам оценить приложение.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Продолжить</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>из</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>часть</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>эпизод</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Отправить из %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Купить полную версию</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Загружаю %1</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 просмотров</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
+        <translation>%1 из %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Подготовка</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
-        <translation type="unfinished"/>
+        <translation>Ошибка</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Завершено</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Остановлено</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Отмена загрузки</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
-        <translation type="unfinished"/>
+        <translation>Показать в %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Открыть родительский каталог</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Перезапустить загрузку</translation>
     </message>
     <message>
         <location filename="src/playlistmodel.cpp" line="53"/>
         <source>Show %1 More</source>
-        <translation type="unfinished"/>
+        <translation>Показать ещё %1</translation>
     </message>
     <message>
         <location filename="src/playlistmodel.cpp" line="54"/>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Добро пожаловать в &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Купить полную версию</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Введите</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>запрос</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>канал</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>чтобы начать просмотр.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Смотреть</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Последние запросы</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Последние каналы</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>Н&amp;азад</translation>
     </message>
         <source>Most Popular</source>
         <translation>Самые популярные</translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation>Популярные</translation>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation>Лучшие оценки</translation>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Популярное за все время</translation>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Не удалось получить видео поток для %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Ошибка сети: %1 на %2</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>Индия</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Индонезия</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>Ирландия</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>Израиль</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>Италия</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Япония</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Иордания</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Кения</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Малайзия</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Во всем мире</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index d54f7322ee08199026dc75df055164434345c96e..4b373f97afee127752905a9f5a738b25fe6c0773 100644 (file)
         <translation>Zakúpiť licenciu</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>Od %1</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Všetky videá</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>Neprezreté videá</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Označiť všetky ako zhliadnuté</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Zobraziť aktualizované</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Meno</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Naposledy aktualizované</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Naposledy pridané</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Naposledy prezerané</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Najviac prezerané</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Zoradiť podľa</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Všetky videá</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>Neprezreté videá</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Nie sú k dispozícii žiadne aktualizované subskripcie.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Nemáš žiadne subskripcie. Použi symbol hviezdy pre odoberanie kanálov.</translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Hľadať</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation>Nájsť videá a kanály podľa kľúča</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>Prehliadať</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation>Prehliadať videá podľa kategórie</translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Subskripcie</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Odber kanálov</translation>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Chyba</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>&amp;Zastaviť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Zastaviť prehrávanie a vrátiť sa k výsledkom hľadania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;Preskočiť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Preskočiť na nasledovné video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pozasaviť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Pozastaviť prehrávanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Celá obrazovka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Na celú obrazovku</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Skryť playlist a nástrojovú lištu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Prejsť na YouTube stránku videa a pozastaviť prehrávanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Kopírovať YouTube odkaz aktuálneho videa do schránky</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopírovať odkaz aktuálneho video streamu do schránky</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Pokúsiť sa nájsť zvyšné video časti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Odstrániť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Odstrániť vybrané videá z playlistu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Presunúť &amp;nahor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Presunúť vybrané videá v playliste nahor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Presunúť &amp;nadol</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Presunúť vybrané videá v playliste nadol</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Vyčisiť históriu hľadania. Nevratná akcia.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Ukončiť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Maj sa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Domovská stránka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 na Internete</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Podpor prosím pokračujúci vývoj %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;O projekte</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Informácie o %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Hľadať</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Stlmiť hlasitosť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;Sťahovania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Zobraziť detaily o sťahovaní</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;Stiahnuť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Stiahnuť aktuálne video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>&amp;Odoberať daný kanál</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Zdieľať aktuálne video cez %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>E-mailová adresa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Zatvoriť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Vždy na vrchu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Zastav po tomto videu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Nahlásiť problém...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Upraviť kritériá hľadania...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>Viac...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Pridružené vidá</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation>Pozerať videá pridružené k aktuálnemu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Aplikácia</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Zakúpiť %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Prehrávanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Zobrazenie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Zdieľanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>&amp;Nápoveda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Stlač %1 pre zvýšenie hlasitosti, %2 pre jej zníženie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Otváram %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Chceš ukončiť %1 aj napriek prebiehajúcemu sťahovaniu?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Pokiaľ teraz ukončíš %1, prídeš o aktuálne sťahovanie.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Zatvoriť a zrušiť sťahovanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Počkať kým skončí sťahovanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Opustiť režim &amp;celej obrazovky</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 verzie %2 je k dispozícii.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Pripomenúť neskôr</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Aktualizácia</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Chyba: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>&amp;Predošlé</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Ísť na predošlé video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>&amp;Kompaktný mód</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Otvoriť &amp;YouTube stránku</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Kopírovať &amp;odkaz z YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Kopírovať &amp;URL video streamu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Nájsť zvyšné relevantné &amp;časti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>&amp;Vyčistiť zoznam posledných hľadaní</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Finančne &amp;podporiť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>&amp;Manuálne prehrávanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Koniec manuálneho prehrávania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation>Vybrať svoju obsahovú lokáciu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Prehrať</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Obnoviť prehrávanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Zostávajúci čas: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Hlasitosť na %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Hlasitosť stlmená</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Hlasitosť nie je stlmená</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maximálne rozlíšenie videa nastavené na %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Nemaj obavy o súkromie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Sťahovanie kompletné</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Takto môžeš prilepiť YouTube odkaz do inej aplikácie</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Budeš môcť prilepiť odkaz video streamu do inej aplikácie</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Odkaz bude platný len obmedzenú dobu.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Ide o demoverziu %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Umožní ti aplikáciu vyskúšať a pohodlne otestovať.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Pokračuj</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>z</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>časť</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>epizóda</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Odoslané z %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>Zrušiť odber z %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>Odoberať z %1</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Získať plnú verziu</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Sťahujem %1.</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 prezretí</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 z %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Pripravujem</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Zlyhané</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Úspešné</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Zastavené</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>Zastav sťahovanie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>Zobraz v %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Otvor nadradený adresár</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>Opakuj sťahovanie</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Vitaj v aplikácii &lt;a href=&apos;%1&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Získať plnú verziu</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Vlož</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>kľúčové slovo</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>názov kanálu</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>pre spustenie sledovania.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Pozerať</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Posledné kľúčové slová</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Posledné kanály</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>&amp;Späť</translation>
     </message>
         <source>Most Popular</source>
         <translation>Najpopulárnejšie</translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation>Prominentné</translation>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation>Najvyššiehodnotené</translation>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Dlhodobo najpopulárnejšie</translation>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Nedostupný video stream pre %1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Chyba siete: %1 pre %2</translation>
     </message>
index 4d06d336d9358ca1eb91501dcb13d11a3ec11f1d..07144555180c876f711c93a9712491f30209efce 100644 (file)
@@ -83,7 +83,7 @@
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
-        <translation type="unfinished"/>
+        <translation>&amp;E-pošta</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
+        <translation>Polna različica omogoča prenos posnetkov daljših od %1 minut in njihovo gledanje brez prekinitev.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
+        <translation>Brez licence bo uporabnost aplikacije potekla čez %1 dni.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
     <message>
         <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
-        <translation type="unfinished"/>
+        <translation>Vpis licence</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
+        <translation>Kupi licenco</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Vsi videoposnetki</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Označi vse za pregledane</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Pokaži posodobitve</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>Naziv</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Nazadnje posodobljeno</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Nazadnje dodano</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Nazadnje gledano</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>Največkrat gledano</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Razvrsti glede na</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Vsi videoposnetki</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation type="unfinished"/>
     </message>
 </context>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation type="unfinished"/>
+        <translation>Prenos posodobitve...</translation>
     </message>
 </context>
 <context>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Išči</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Išči posnetke in kanale po ključnih besedah</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Napaka</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>U&amp;stavi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Ustavi predvajanje in se vrne v iskalni pogled</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>Pres&amp;koči</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Skoči na naslednji video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Pavza</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Premor v predvajanju</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Celozaslonski način</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Gre v celozaslonski način</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Skrije predvajalni seznam in orodno vrstico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Gre na stran posnetka na YouTube in ustavi predvajanje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Kopira povezavo YouTube trenutnega posnetka v odložišče</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopira URL trenutnega video pretoka v odložišče</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Poišče ostale dele posnetka, predvidoma v pravem zaporedju</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>Odst&amp;rani</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Odstrani izbrani video iz predvajalnega seznama</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Premakni &amp;gor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Izbrani video premakne mesto više v predvajalnem seznamu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>Premakni &amp;dol</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Izbrani video premakne mesto niže v predvajalnem seznamu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Izbriše zgodovino iskanje. Tega dejanja ni mogoče razveljaviti.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Zapri</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Nasvidenje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Spletno mesto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 na spletu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Podprite prosim nadaljni razvoj programa %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;O programu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>Informacije o %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Išči</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Nemo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>Pre&amp;nosi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Pokaže podrobnosti o prenosih posnetkov</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>Pre&amp;nesi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Prenese trenutni posnetek</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>Deli trenutni posnetek preko %1 </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;E-pošta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>E-pošte</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Zapri</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>Lebdeče na vrhu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>U&amp;stavi za tem posnetkom</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>P&amp;rijavi napako ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Izboljšaj iskanje ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>Več...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Aplikacija</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>Kupi %1 ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Predvajanje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Predvajalni seznam</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Pogled</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>&amp;Deli</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>P&amp;omoč</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Pritisnite %1, da povišate glasnost in %2, da jo nižate</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>Odpiranje %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Ali res želite zapustiti %1 medtem, ko je aktiven prenos?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>V primeru, da zdaj zaprete %1 bo ta prenos prekinjen.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Zapri in prekliči prenos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>Počakaj, da konča prenos.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>Zapusti celozaslonski način</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>Na voljo je %1 različica %2.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Opozori me kasneje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Posodobitev</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Napaka: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>P&amp;redhodna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Predhodna sled</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>Strnjen način</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>Odpri stran &amp;Youtube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>Kopiraj povezavo Youtube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Kopiraj &amp;URL toka video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>&amp;Poišči ostale dele posnetka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>Počisti nedavna iskanja</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Pošlji &amp;donacijo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>Ročno začni predvajanje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Prični z ročnim predvajanjem posnetkov</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Predvajaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Nadaljuj s predvajanjem</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Preostali čas: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Glasnost %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Glasnost je utišana</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Glasnost je povrnjena</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>Najvišja ločljivost posnetkov je nastavljena na %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Vaša zasebnost je zdaj varna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>Prenosi so končani</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Zdaj lahko prilepite povezavo na YouTube v drugo aplikacijo</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Zdaj lahko prilepite URL video pretoka v drugo aplikacijo</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Povezava bo delovala le za omejen čas.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>To je samo demo različica programa %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Dovoli vam testiranje aplikacije in preverjanje delovanja,</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Nadaljuj</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>od</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>del</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>nadaljevanje</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>Poslano iz %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Pridobi celotno različico</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>Prenašanje %1</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 predvajanj</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Pozdravljeni v &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Pridobi celotno različico</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Vnesite</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>ključno besedo</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>in začnite gledati posnetke.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>Glejte</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Nedavne ključne besede</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Nedavni kanali</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation type="unfinished"/>
     </message>
         <source>Most Popular</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation type="unfinished"/>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation type="unfinished"/>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>Za %1 ni mogoče pridobiti video pretoka</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Napaka omrežja: %1 od %2</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="8"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>Alžirija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="9"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>Argentina</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="10"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>Avstralija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="11"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>Belgija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="12"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>Brazilija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="13"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>Kanada</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="14"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>Čile</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="15"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>Kolumbija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="16"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>Češka republika</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="17"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>Egipt</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="18"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>Francija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="19"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>Nemčija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="20"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>Gana</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="21"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>Grčija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="22"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>Hong Kong</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="23"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>Madžarska</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>Indija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Indonezija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>Irska</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>Izrael</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>Italija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Japonska</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Jordanija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Kenija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Malezija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>Mehika</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>Maroko</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Nizozemska</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>Nova Zelandija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>Nigerija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>Peru</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>Filipini</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>Poljska</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>Rusija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>Savdska Arabija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>Južna Afrika</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>Južna Koreja</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>Španija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>Švedska</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>Tajvan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>Tunizija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>Turčija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>Uganda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>Združeni arabski emirati</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>Velika Britanija</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>Jemen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Svetovno</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index f686a954d4645b494e0aacf7bad422f0ebfc524d..19d11b691b98ad52b95218e522a28e9241502b79 100644 (file)
@@ -60,7 +60,7 @@
     <message>
         <location filename="src/aboutview.cpp" line="84"/>
         <source>&amp;Close</source>
-        <translation>&amp;Kapat</translation>
+        <translation>Kapat (&amp;C)</translation>
     </message>
     <message>
         <location filename="src/aboutview.h" line="17"/>
         <translation>Lisans Al</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation>%1 tarafından</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation>Tüm Videolar</translation>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation>İzlenmemiş Videolar</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation>Tümünü izlendi işaretle</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation>Güncellenenleri Göster</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation>İsim</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation>Son Güncellenen</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation>Son Eklenen</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation>Son İzlenen</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation>En Çok İzlenen</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>Sırala</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation>Tüm Videolar</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation>İzlenmemiş Videolar</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Şu anda güncellenen abonelik yok.</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Hiç aboneliğiniz yok. Kanallara abone olmak için yıldız simgesini kullanın.</translation>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
     <message numerus="yes">
         <location filename="src/downloadmanager.cpp" line="159"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n İndirme</numerusform></translation>
+        <translation><numerusform>%n İndirme</numerusform><numerusform>%n İndirme</numerusform></translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/globalshortcuts.cpp" line="25"/>
         <source>Mute</source>
-        <translation>Sesi kes</translation>
+        <translation>Sessiz</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="26"/>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>Arama</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation>Anahtar kelimeye göre video ve kanal bulun</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>Gözat</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation>Kategoriye göre videoları gözat</translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation>Abonelikler</translation>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation>Kanal abonelikleri</translation>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>Hata</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
-        <translation>&amp;Dur</translation>
+        <translation>Dur (&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Oynatmayı durdur ve aramaya geri dön</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>&amp;Atla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>Sonraki videoya atla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>&amp;Bekle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>Oynatmayı beklet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Tam ekran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>Tam ekran görünümü</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>Listeyi ve araç çubuğunu gizle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Oynatmayı beklet ve YouTube sayfasına git</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Geçerli videonun YouTube bağlantısını panoya kopyala</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Geçerli video akışının URL adresini panoya kopyala</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Doğru sırada olacak şekilde diğer video kısımlarını bul</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>&amp;Kaldır</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Seçilen videoları listeden kaldır</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>Y&amp;ukarı taşı</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Seçilen videoları listede yukarı taşı</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>A&amp;şağı taşı</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Seçilen videoları listede aşağı taşı</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Arama geçmişini sil. Bu geri alınamaz.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>&amp;Çık</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>Gülegüle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>&amp;Website</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1 İnternette</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>Lütfen %1 gelişiminin sürekliliği için destekleyin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>&amp;Hakkında</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>%1 Hakkında</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>Ara</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>Sesi kes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>&amp;İndirmeler</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>Video indirmelerinin ayrıntılarını göster</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>&amp;İndir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>Geçerli videoyu indir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>Kanala Abone Ol (&amp;S)</translation>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>%1 kullanarak şu an ki videoyu paylaş</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>&amp;Eposta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>Eposta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>&amp;Kapat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>Üstte Sabitle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>Bu Videodan &amp;Sonra Durdur</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>Bir Sorun Bildi&amp;r</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>A&amp;ramayı Sınırla...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>Dahası...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation>Benze&amp;r Videolar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation>Şu an izlediğinize benzer videolar izleyin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>&amp;Uygulama</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>%1 Satın Al...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>&amp;Çalma</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>Oynatma &amp;listesi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>&amp;Görünüm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>Payla&amp;s</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>Yardı&amp;m</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>%1 Sesi arttır, %2 sesi azalt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>%1 Açılıyor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>%1 İndiriliyor, çıkmak istiyor musunuz?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Eğer %1&apos;İ şimdi kapatırsanız, bu indirme iptal edilecek.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>Kapat ve indirmeyi iptal et</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>İndirmenin bitmesini bekle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>&amp;Tam Ekrandan Çık</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 sürüm %2 kullanılabilir durumda.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>Daha sonra hatırlat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>Güncelle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>Hata: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>Önceki</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>Bir önceki parçaya geri dön</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>Kü&amp;cültümüş Ekran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>&amp;YouTube Sayfasını Aç</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>YouTube &amp;Linkini Kopyala</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>Video &amp;URL&apos;sini Kopyala</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>Video Bölümlerini Bul</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>Son Aramaları Temizle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>Bağış Yap</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>&amp;Manuel Olarak Çalmaya Başla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>Videoları manuel olarak çalmaya başla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
         <translation>Konumunuzu seçin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>&amp;Oynat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>Oynatmaya devam et</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>Kalan zaman: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>Ses %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>Ses kapandı</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>Ses açık</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>En yüksek video tanımı %1 olarak ayarlı</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>Şimdi gizliliğiniz güvende</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>İndirme tamamlandı</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Şimdi YouTube bağlantısını başka bir uygulamaya yapıştırabilirsiniz</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Şimdi video akışı URL adresini başka bir uygulamaya yapıştırabilirsiniz</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Bağlantı kısıtlı bir süre için geçerli olacak.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>Bu sadece %1&apos;in demo sürümüdür.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Bu, uygulamayı test etmenizi ve çalışıp çalışmadığını görmenizi sağlar.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>Devam</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>/</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>kısım</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>bölüm</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>%1 ile gönderildi</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation>%1 aboneliğinden çık</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation>%1 Abone Ol</translation>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>Tam sürüme geç</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>İndiriliyor %1</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 görüntülenme</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 of %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>Hazırlanıyor</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>Başarısız</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>Tamamlandı</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>Durduruldu</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>İndirme işlemini durdur</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>%1 içinde göster</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>Önceki dizini aç</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>İndirme işlemini yeniden başlat</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>&lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;&apos;a Hoşgeldiniz</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>Tam sürüme geç</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Giriş yapın</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>bir anahtar kelime</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>bir kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>ve videoları izlemeye başlayın.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>İzle</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>Son arananlar</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>Önceki kanallar</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>Geri</translation>
     </message>
         <source>Most Popular</source>
         <translation>En popülerler</translation>
     </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation>Gelecek</translation>
-    </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
         <source>Top Rated</source>
         <translation>En Çok Oy Verilenler</translation>
     </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
+        <translation>Her Zaman Popüler</translation>
+    </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>%1 için video akışı alınamıyor.</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>Ağ hatası: %2 için  %1</translation>
     </message>
index a2c8e6174c2548bd4ea375161eecbda904b395bd..67d75f45d93324bff783b838692bfe214eab9e22 100644 (file)
@@ -88,7 +88,7 @@
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
-        <translation type="unfinished"/>
+        <translation>激活码(C):</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation type="unfinished"/>
+        <translation>若无授权,该软件将会在 %1 天后过期。</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
         <translation>购买许可</translation>
     </message>
 </context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <location filename="src/channelaggregator.cpp" line="110"/>
+        <source>By %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message numerus="yes">
+        <location filename="src/channelaggregator.cpp" line="112"/>
+        <source>You have %n new video(s)</source>
+        <translation type="unfinished"><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>ChannelItemDelegate</name>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="46"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelitemdelegate.cpp" line="63"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <location filename="src/channelview.cpp" line="75"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="83"/>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="95"/>
+        <source>Name</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="102"/>
+        <source>Last Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="109"/>
+        <source>Last Added</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="116"/>
+        <source>Last Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="123"/>
+        <source>Most Watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="131"/>
+        <source>Sort by</source>
+        <translation>排序</translation>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="190"/>
+        <source>All Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="194"/>
+        <source>Unwatched Videos</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="206"/>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/channelview.cpp" line="208"/>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ClearButton</name>
     <message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="33"/>
+        <location filename="src/homeview.cpp" line="38"/>
         <source>Search</source>
         <translation>搜索</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="35"/>
+        <location filename="src/homeview.cpp" line="40"/>
         <source>Find videos and channels by keyword</source>
         <translation>按关键词查找视频和频道</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="40"/>
+        <location filename="src/homeview.cpp" line="45"/>
         <source>Browse</source>
         <translation>浏览</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="42"/>
+        <location filename="src/homeview.cpp" line="47"/>
         <source>Browse videos by category</source>
         <translation>按分类查找视频</translation>
     </message>
+    <message>
+        <location filename="src/homeview.cpp" line="51"/>
+        <source>Subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/homeview.cpp" line="53"/>
+        <source>Channel subscriptions</source>
+        <translation type="unfinished"/>
+    </message>
     <message>
         <location filename="src/homeview.h" line="22"/>
         <source>Make yourself comfortable</source>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="90"/>
+        <location filename="src/loadingwidget.cpp" line="88"/>
         <source>Error</source>
         <translation>错误</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="213"/>
+        <location filename="src/mainwindow.cpp" line="237"/>
         <source>&amp;Stop</source>
         <translation>停止(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="214"/>
+        <location filename="src/mainwindow.cpp" line="238"/>
         <source>Stop playback and go back to the search view</source>
         <translation>停止回放并返回搜索视图</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="232"/>
+        <location filename="src/mainwindow.cpp" line="253"/>
         <source>S&amp;kip</source>
         <translation>跳过(&amp;k)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="233"/>
+        <location filename="src/mainwindow.cpp" line="254"/>
         <source>Skip to the next video</source>
         <translation>跳至下一视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="239"/>
-        <location filename="src/mainwindow.cpp" line="989"/>
+        <location filename="src/mainwindow.cpp" line="260"/>
+        <location filename="src/mainwindow.cpp" line="1012"/>
         <source>&amp;Pause</source>
         <translation>暂停(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="240"/>
-        <location filename="src/mainwindow.cpp" line="990"/>
+        <location filename="src/mainwindow.cpp" line="261"/>
+        <location filename="src/mainwindow.cpp" line="1013"/>
         <source>Pause playback</source>
         <translation>暂停回放</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="246"/>
+        <location filename="src/mainwindow.cpp" line="267"/>
         <source>&amp;Full Screen</source>
         <translation>全屏(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="247"/>
+        <location filename="src/mainwindow.cpp" line="268"/>
         <source>Go full screen</source>
         <translation>全屏播放</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="263"/>
+        <location filename="src/mainwindow.cpp" line="282"/>
         <source>Hide the playlist and the toolbar</source>
         <translation>隐藏播放列表和工具栏</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="276"/>
+        <location filename="src/mainwindow.cpp" line="295"/>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>打开YouTube视频页面并暂停回放</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="283"/>
+        <location filename="src/mainwindow.cpp" line="302"/>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>复制当前视频的YouTube链接到剪贴板中</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="290"/>
+        <location filename="src/mainwindow.cpp" line="309"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>复制当前视频流的URL到剪贴板中</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="297"/>
+        <location filename="src/mainwindow.cpp" line="316"/>
         <source>Find other video parts hopefully in the right order</source>
         <translation>以正确的顺序查找其他视频部分</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="303"/>
+        <location filename="src/mainwindow.cpp" line="322"/>
         <source>&amp;Remove</source>
         <translation>移除(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="304"/>
+        <location filename="src/mainwindow.cpp" line="323"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>从播放列表中移除选定的视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="310"/>
+        <location filename="src/mainwindow.cpp" line="329"/>
         <source>Move &amp;Up</source>
         <translation>上移(&amp;U)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="311"/>
+        <location filename="src/mainwindow.cpp" line="330"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>在播放列表中向上移动选定的视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="317"/>
+        <location filename="src/mainwindow.cpp" line="336"/>
         <source>Move &amp;Down</source>
         <translation>下移(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="318"/>
+        <location filename="src/mainwindow.cpp" line="337"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>在播放列表中向下移动选定的视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="329"/>
+        <location filename="src/mainwindow.cpp" line="348"/>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>清除搜索历史。注意:清除的历史不可恢复。</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="334"/>
+        <location filename="src/mainwindow.cpp" line="353"/>
         <source>&amp;Quit</source>
         <translation>退出(&amp;Q)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="337"/>
+        <location filename="src/mainwindow.cpp" line="356"/>
         <source>Bye</source>
         <translation>再见</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="341"/>
+        <location filename="src/mainwindow.cpp" line="360"/>
         <source>&amp;Website</source>
         <translation>网站(&amp;W)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="343"/>
+        <location filename="src/mainwindow.cpp" line="362"/>
         <source>%1 on the Web</source>
         <translation>%1在网站上</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <location filename="src/mainwindow.cpp" line="368"/>
         <source>Please support the continued development of %1</source>
         <translation>请您支持 %1 的继续开发</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="354"/>
+        <location filename="src/mainwindow.cpp" line="373"/>
         <source>&amp;About</source>
         <translation>关于(&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <location filename="src/mainwindow.cpp" line="375"/>
         <source>Info about %1</source>
         <translation>关于 %1 的信息</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="364"/>
+        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Search</source>
         <translation>搜索</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
+        <location filename="src/mainwindow.cpp" line="402"/>
         <source>Mute volume</source>
         <translation>静音</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="412"/>
-        <location filename="src/mainwindow.cpp" line="1365"/>
+        <location filename="src/mainwindow.cpp" line="431"/>
+        <location filename="src/mainwindow.cpp" line="1406"/>
         <source>&amp;Downloads</source>
         <translation>下载(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="413"/>
+        <location filename="src/mainwindow.cpp" line="432"/>
         <source>Show details about video downloads</source>
         <translation>显示视频下载详情</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
+        <location filename="src/mainwindow.cpp" line="440"/>
         <source>&amp;Download</source>
         <translation>下载(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <location filename="src/mainwindow.cpp" line="441"/>
         <source>Download the current video</source>
         <translation>下载当前视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="441"/>
+        <location filename="src/mainwindow.cpp" line="458"/>
+        <source>&amp;Subscribe to Channel</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mainwindow.cpp" line="465"/>
         <source>Share the current video using %1</source>
         <translation>使用 %1 分享当前视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="458"/>
+        <location filename="src/mainwindow.cpp" line="482"/>
         <source>&amp;Email</source>
         <translation>电子邮件(&amp;E)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="459"/>
+        <location filename="src/mainwindow.cpp" line="483"/>
         <source>Email</source>
         <translation>电子邮件</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="463"/>
+        <location filename="src/mainwindow.cpp" line="487"/>
         <source>&amp;Close</source>
         <translation>关闭(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="473"/>
+        <location filename="src/mainwindow.cpp" line="497"/>
         <source>&amp;Float on Top</source>
         <translation>窗口置顶(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="478"/>
+        <location filename="src/mainwindow.cpp" line="502"/>
         <source>&amp;Stop After This Video</source>
         <translation>该视频后停止播放(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="485"/>
+        <location filename="src/mainwindow.cpp" line="509"/>
         <source>&amp;Report an Issue...</source>
         <translation>报告问题&amp;R…</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="489"/>
+        <location filename="src/mainwindow.cpp" line="513"/>
         <source>&amp;Refine Search...</source>
         <translation>精确搜索(&amp;R)...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="501"/>
+        <location filename="src/mainwindow.cpp" line="525"/>
         <source>More...</source>
         <translation>更多...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="504"/>
+        <location filename="src/mainwindow.cpp" line="528"/>
         <source>&amp;Related Videos</source>
         <translation>相关视频(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="506"/>
+        <location filename="src/mainwindow.cpp" line="530"/>
         <source>Watch videos related to the current one</source>
         <translation>查看与当前视频相关的视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="544"/>
+        <location filename="src/mainwindow.cpp" line="553"/>
         <source>&amp;Application</source>
         <translation>应用程序(&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="515"/>
+        <location filename="src/mainwindow.cpp" line="537"/>
         <source>Buy %1...</source>
         <translation>购买 %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="558"/>
+        <location filename="src/mainwindow.cpp" line="567"/>
         <source>&amp;Playback</source>
         <translation>播放(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="572"/>
+        <location filename="src/mainwindow.cpp" line="581"/>
         <source>&amp;Playlist</source>
         <translation>播放列表(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="581"/>
+        <location filename="src/mainwindow.cpp" line="590"/>
         <source>&amp;Video</source>
         <translation>视频(&amp;V)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
+        <location filename="src/mainwindow.cpp" line="605"/>
         <source>&amp;View</source>
         <translation>查看(&amp;V)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="601"/>
+        <location filename="src/mainwindow.cpp" line="612"/>
         <source>&amp;Share</source>
         <translation>分享(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="615"/>
+        <location filename="src/mainwindow.cpp" line="626"/>
         <source>&amp;Help</source>
         <translation>帮助(&amp;H)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="690"/>
+        <location filename="src/mainwindow.cpp" line="701"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>按住 %1 提高音量,%2 降低音量</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="889"/>
-        <location filename="src/mainwindow.cpp" line="895"/>
+        <location filename="src/mainwindow.cpp" line="910"/>
+        <location filename="src/mainwindow.cpp" line="916"/>
         <source>Opening %1</source>
         <translation>正在打开 %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="959"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>当前还有尚未完成的下载。您确定要退出 %1 吗?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="937"/>
+        <location filename="src/mainwindow.cpp" line="960"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>如果您现在关闭 %1 ,那么本下载将被取消。</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="942"/>
+        <location filename="src/mainwindow.cpp" line="965"/>
         <source>Close and cancel download</source>
         <translation>关闭并取消下载</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="943"/>
+        <location filename="src/mainwindow.cpp" line="966"/>
         <source>Wait for download to finish</source>
         <translation>等待下载完成</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1102"/>
+        <location filename="src/mainwindow.cpp" line="1125"/>
         <source>Leave &amp;Full Screen</source>
         <translation>离开全屏模式(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1475"/>
+        <location filename="src/mainwindow.cpp" line="1515"/>
         <source>%1 version %2 is now available.</source>
         <translation>%1 版本 %2 现在可用。</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1479"/>
+        <location filename="src/mainwindow.cpp" line="1519"/>
         <source>Remind me later</source>
         <translation>稍后提醒我</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1480"/>
+        <location filename="src/mainwindow.cpp" line="1520"/>
         <source>Update</source>
         <translation>更新</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="982"/>
+        <location filename="src/mainwindow.cpp" line="1005"/>
         <source>Error: %1</source>
         <translation>错误:%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="222"/>
+        <location filename="src/mainwindow.cpp" line="246"/>
         <source>P&amp;revious</source>
         <translation>上一首(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="223"/>
+        <location filename="src/mainwindow.cpp" line="247"/>
         <source>Go back to the previous track</source>
         <translation>饭回到上一首音轨</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="262"/>
+        <location filename="src/mainwindow.cpp" line="281"/>
         <source>&amp;Compact Mode</source>
         <translation>紧凑模式(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="275"/>
+        <location filename="src/mainwindow.cpp" line="294"/>
         <source>Open the &amp;YouTube Page</source>
         <translation>打开 YouTube 页面(&amp;Y)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="282"/>
+        <location filename="src/mainwindow.cpp" line="301"/>
         <source>Copy the YouTube &amp;Link</source>
         <translation>复制 YouTube 链接(&amp;L)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="289"/>
+        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Copy the Video Stream &amp;URL</source>
         <translation>复制视频流 URL</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="296"/>
+        <location filename="src/mainwindow.cpp" line="315"/>
         <source>Find Video &amp;Parts</source>
         <translation>查找视频部分(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="324"/>
+        <location filename="src/mainwindow.cpp" line="343"/>
         <source>&amp;Clear Recent Searches</source>
         <translation>清除最近的搜索(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
+        <location filename="src/mainwindow.cpp" line="367"/>
         <source>Make a &amp;Donation</source>
         <translation>捐助(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="405"/>
+        <location filename="src/mainwindow.cpp" line="424"/>
         <source>&amp;Manually Start Playing</source>
         <translation>手动开始播放(&amp;M)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="406"/>
+        <location filename="src/mainwindow.cpp" line="425"/>
         <source>Manually start playing videos</source>
         <translation>手动开始播放视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="728"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>选择您的内容位置</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1002"/>
+        <location filename="src/mainwindow.cpp" line="1025"/>
         <source>&amp;Play</source>
         <translation>播放(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1003"/>
+        <location filename="src/mainwindow.cpp" line="1026"/>
         <source>Resume playback</source>
         <translation>恢复播放</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1236"/>
+        <location filename="src/mainwindow.cpp" line="1277"/>
         <source>Remaining time: %1</source>
         <translation>剩余时间:%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1294"/>
+        <location filename="src/mainwindow.cpp" line="1335"/>
         <source>Volume at %1%</source>
         <translation>音量:%1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1300"/>
+        <location filename="src/mainwindow.cpp" line="1341"/>
         <source>Volume is muted</source>
         <translation>已设为静音</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1303"/>
+        <location filename="src/mainwindow.cpp" line="1344"/>
         <source>Volume is unmuted</source>
         <translation>静音已解除</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1310"/>
+        <location filename="src/mainwindow.cpp" line="1351"/>
         <source>Maximum video definition set to %1</source>
         <translation>最大视频定义设置为%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1351"/>
+        <location filename="src/mainwindow.cpp" line="1392"/>
         <source>Your privacy is now safe</source>
         <translation>您的隐私已受保护</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1407"/>
         <source>Downloads complete</source>
         <translation>下载完成</translation>
     </message>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="553"/>
+        <location filename="src/mediaview.cpp" line="563"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>您现在可以把YouTube的链接粘贴到其他应用了</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="561"/>
+        <location filename="src/mediaview.cpp" line="571"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>您现在可以把视频流的链接粘贴到其他应用了</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="562"/>
+        <location filename="src/mediaview.cpp" line="572"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>此链接仅能保持短时间的有效性。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="636"/>
+        <location filename="src/mediaview.cpp" line="650"/>
         <source>This is just the demo version of %1.</source>
         <translation>这仅是 %1 的演示版。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="637"/>
+        <location filename="src/mediaview.cpp" line="651"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>本版本允许您测试,以确认本应用是否适合您。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="667"/>
+        <location filename="src/mediaview.cpp" line="681"/>
         <source>Continue</source>
         <translation>继续</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="756"/>
+        <location filename="src/mediaview.cpp" line="772"/>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>之</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="768"/>
+        <location filename="src/mediaview.cpp" line="785"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>部分</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="770"/>
+        <location filename="src/mediaview.cpp" line="787"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>集</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="847"/>
+        <location filename="src/mediaview.cpp" line="868"/>
         <source>Sent from %1</source>
         <translation>由 %1 发送</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="644"/>
+        <location filename="src/mediaview.cpp" line="899"/>
+        <source>Unsubscribe from %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="903"/>
+        <source>Subscribe to %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="src/mediaview.cpp" line="658"/>
         <source>Get the full version</source>
         <translation>获取完整版</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="681"/>
+        <location filename="src/mediaview.cpp" line="695"/>
         <source>Downloading %1</source>
         <translation>正在下载 %1</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="21"/>
         <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
+        <translation>发现新版本的 %1 !</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
-        <translation type="unfinished"/>
+        <translation>%1 %2 已经可用。您现拥有 %3。</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
-        <translation type="unfinished"/>
+        <translation>您想现在下载吗?</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
-        <translation type="unfinished"/>
+        <translation>跳过此版本</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
-        <translation type="unfinished"/>
+        <translation>稍后提醒我</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
-        <translation type="unfinished"/>
+        <translation>安装更新</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
-        <translation type="unfinished"/>
+        <translation>粘贴</translation>
     </message>
 </context>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="159"/>
+        <location filename="src/playlistitemdelegate.cpp" line="177"/>
         <source>%1 views</source>
         <translation>%1 人次观看</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="285"/>
+        <location filename="src/playlistitemdelegate.cpp" line="292"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 之 %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="292"/>
+        <location filename="src/playlistitemdelegate.cpp" line="299"/>
         <source>Preparing</source>
         <translation>准备中</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="294"/>
+        <location filename="src/playlistitemdelegate.cpp" line="301"/>
         <source>Failed</source>
         <translation>已失败</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="296"/>
+        <location filename="src/playlistitemdelegate.cpp" line="303"/>
         <source>Completed</source>
         <translation>已完成</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="298"/>
+        <location filename="src/playlistitemdelegate.cpp" line="305"/>
         <source>Stopped</source>
         <translation>已停止</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="334"/>
+        <location filename="src/playlistitemdelegate.cpp" line="341"/>
         <source>Stop downloading</source>
         <translation>停止下载</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="344"/>
+        <location filename="src/playlistitemdelegate.cpp" line="351"/>
         <source>Show in %1</source>
         <translation>显示到 %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="346"/>
+        <location filename="src/playlistitemdelegate.cpp" line="353"/>
         <source>Open parent folder</source>
         <translation>打开上层目录</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="355"/>
+        <location filename="src/playlistitemdelegate.cpp" line="362"/>
         <source>Restart downloading</source>
         <translation>重新下载</translation>
     </message>
     <message>
         <location filename="src/regionsview.cpp" line="19"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>完成</translation>
     </message>
 </context>
 <context>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="71"/>
+        <location filename="src/searchview.cpp" line="66"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>欢迎使用&lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;!</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="50"/>
+        <location filename="src/searchview.cpp" line="161"/>
         <source>Get the full version</source>
         <translation>获取完整版</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="85"/>
+        <location filename="src/searchview.cpp" line="80"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>输入</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="90"/>
+        <location filename="src/searchview.cpp" line="85"/>
         <source>a keyword</source>
         <translation>关键字</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="91"/>
+        <location filename="src/searchview.cpp" line="86"/>
         <source>a channel</source>
         <translation>频道名称</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="96"/>
+        <location filename="src/searchview.cpp" line="91"/>
         <source>to start watching videos.</source>
         <translation>开始观看视频。</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="120"/>
+        <location filename="src/searchview.cpp" line="115"/>
         <source>Watch</source>
         <translation>观看</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="138"/>
+        <location filename="src/searchview.cpp" line="133"/>
         <source>Recent keywords</source>
         <translation>最近关键字词</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="151"/>
+        <location filename="src/searchview.cpp" line="146"/>
         <source>Recent channels</source>
         <translation>最近频道</translation>
     </message>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="16"/>
-        <location filename="src/sidebarheader.cpp" line="23"/>
+        <location filename="src/sidebarheader.cpp" line="19"/>
+        <location filename="src/sidebarheader.cpp" line="26"/>
         <source>&amp;Back</source>
         <translation>后退(_B)</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="57"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>前进至 %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="70"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>返回到 %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/standardfeedsview.cpp" line="85"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="86"/>
-        <source>Featured</source>
-        <translation type="unfinished"/>
+        <translation>最流行</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="87"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>分享最多的</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="88"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>讨论最多的</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="89"/>
         <source>Top Rated</source>
+        <translation>评分较高</translation>
+    </message>
+    <message>
+        <location filename="src/standardfeedsview.cpp" line="90"/>
+        <source>All Time Popular</source>
         <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="213"/>
+        <location filename="src/video.cpp" line="215"/>
         <source>Cannot get video stream for %1</source>
         <translation>无法获得视频流。可能原因:%1</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="231"/>
+        <location filename="src/video.cpp" line="233"/>
         <source>Network error: %1 for %2</source>
         <translation>网络错误:%1。可能原因:%2</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="8"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>阿尔及利亚</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="9"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>阿根廷</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="10"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>澳大利亚</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="11"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>比利时</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="12"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>巴西</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="13"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>加拿大</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="14"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>智利</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="15"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>哥伦比亚</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="16"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>捷克共和国</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="17"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>埃及</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="18"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>法国</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="19"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>德国</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="20"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>加纳</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="21"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>希腊</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="22"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>香港</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="23"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>匈牙利</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="24"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>印度</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="25"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>印度尼西亚</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="26"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>爱尔兰</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="27"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>以色列</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>意大利</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>日本</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>约旦</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>肯尼亚</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>马来西亚</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>墨西哥</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>摩洛哥</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>荷兰</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>新西兰</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>尼日利亚</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>秘鲁</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>菲律宾</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>波兰</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>俄罗斯</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>沙特阿拉伯</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>新加坡</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>南非</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>韩国</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>西班牙</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>瑞士</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>台湾</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>突尼斯</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>土耳其</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>乌干达</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>阿联酋</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>英国</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>也门</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="128"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>全球</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index 836142d9cf3713a39c61db1bc6e05b8250e1c95d..d0be3cc6d4bc8e7ca24a51f2ab9fe20f23012028 100644 (file)
@@ -1,6 +1,6 @@
 CONFIG += release
 TEMPLATE = app
-VERSION = 2.0
+VERSION = 2.1.1
 DEFINES += APP_VERSION="$$VERSION"
 
 APP_NAME = Minitube
@@ -9,12 +9,12 @@ DEFINES += APP_NAME="$$APP_NAME"
 APP_UNIX_NAME = minitube
 DEFINES += APP_UNIX_NAME="$$APP_UNIX_NAME"
 
-DEFINES += QT_USE_FAST_CONCATENATION
-DEFINES += QT_USE_FAST_OPERATOR_PLUS
+DEFINES *= QT_NO_DEBUG_OUTPUT
+DEFINES *= QT_USE_QSTRINGBUILDER
 DEFINES += QT_STRICT_ITERATORS
 
 TARGET = minitube
-QT += network xml phonon
+QT += network xml phonon sql script
 include(src/qtsingleapplication/qtsingleapplication.pri)
 HEADERS += \
     src/video.h \
@@ -56,7 +56,6 @@ HEADERS += \
     src/mediaview.h \
     src/searchview.h \
     src/view.h \
-    src/userview.h \
     src/playlistmodel.h \
     src/videosource.h \
     src/ytsearch.h \
@@ -71,7 +70,17 @@ HEADERS += \
     src/ytsinglevideosource.h \
     src/sidebarheader.h \
     src/utils.h \
-    src/diskcache.h
+    src/diskcache.h \
+    src/gridwidget.h \
+    src/painterutils.h \
+    src/database.h \
+    src/ytuser.h \
+    src/channelaggregator.h \
+    src/channelmodel.h \
+    src/aggregatevideosource.h \
+    src/channelview.h \
+    src/channelitemdelegate.h \
+    src/jsfunctions.h
 SOURCES += src/main.cpp \
     src/searchlineedit.cpp \
     src/urllineedit.cpp \
@@ -108,7 +117,6 @@ SOURCES += src/main.cpp \
     src/mediaview.cpp \
     src/aboutview.cpp \
     src/searchview.cpp \
-    src/userview.cpp \
     src/playlistitemdelegate.cpp \
     src/playlistmodel.cpp \
     src/videosource.cpp \
@@ -124,7 +132,17 @@ SOURCES += src/main.cpp \
     src/ytsinglevideosource.cpp \
     src/sidebarheader.cpp \
     src/utils.cpp \
-    src/diskcache.cpp
+    src/diskcache.cpp \
+    src/gridwidget.cpp \
+    src/painterutils.cpp \
+    src/database.cpp \
+    src/ytuser.cpp \
+    src/channelaggregator.cpp \
+    src/channelmodel.cpp \
+    src/aggregatevideosource.cpp \
+    src/channelview.cpp \
+    src/channelitemdelegate.cpp \
+    src/jsfunctions.cpp
 RESOURCES += resources.qrc
 DESTDIR = build/target/
 OBJECTS_DIR = build/obj/
@@ -185,4 +203,4 @@ unix:!mac {
     icon512.path = $$DATADIR/icons/hicolor/512x512/apps
     icon512.files += data/512x512/minitube.png
 }
-mac|win32:include(local/local.pri)
+mac|win32|contains(DEFINES, APP_UBUNTU):include(local/local.pri)
index cf89be985a72482bd27aefddc035350ffb524f87..2f15768cf2ba22cf74e3bebc699987307302b10b 100644 (file)
         <file>flags/ye.png</file>
         <file>style.css</file>
         <file>images/worldwide.png</file>
+        <file>images/show-updated.png</file>
+        <file>images/sort.png</file>
+        <file>images/mark-watched.png</file>
+        <file>images/channels.png</file>
+        <file>images/unwatched.png</file>
+        <file>images/badge.png</file>
+        <file>images/badge3.png</file>
+        <file>images/badge4.png</file>
     </qresource>
 </RCC>
index ad39f92dba8814eb680972480281716534fc1937..e14492f1320ff11ecefa6720033d064d563a12a3 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef SUGGESTER_H
 #define SUGGESTER_H
 
index 4ab0fb96cdda9bd9740acea394c9037bc4b23465..f173a385c1fbfbcff29dc4302ea76b9b96fa89b5 100644 (file)
@@ -1,6 +1,26 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "aboutview.h"
 #include "constants.h"
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
 #include "extra.h"
 #endif
 #ifdef APP_ACTIVATION
@@ -38,7 +58,7 @@ AboutView::AboutView(QWidget *parent) : QWidget(parent) {
         info += "<p>" + tr("Licensed to: %1").arg("<b>" + Activation::instance().getEmail() + "</b>");
 #endif
 
-#ifdef Q_WS_X11
+#ifndef APP_EXTRA
     info += "<p>" +  tr("%1 is Free Software but its development takes precious time.").arg(Constants::NAME) + "<br/>"
             + tr("Please <a href='%1'>donate</a> to support the continued development of %2.")
             .arg(QString(Constants::WEBSITE).append("#donate"), Constants::NAME) + "</p>";
@@ -65,7 +85,7 @@ AboutView::AboutView(QWidget *parent) : QWidget(parent) {
             + tr("Icon designed by %1.").arg("<a href='http://www.kolorguild.com/'>David Nel</a>")
             + "</p>"
 
-        #ifdef Q_WS_X11
+        #ifndef APP_EXTRA
             "<p>" + tr("Released under the <a href='%1'>GNU General Public License</a>")
             .arg("http://www.gnu.org/licenses/gpl.html") + "</p>"
         #endif
@@ -81,10 +101,9 @@ AboutView::AboutView(QWidget *parent) : QWidget(parent) {
     buttonLayout->setSpacing(0);
     buttonLayout->setAlignment(Qt::AlignLeft);
 
-    QPushButton *closeButton = new QPushButton(tr("&Close"), this);
+    closeButton = new QPushButton(tr("&Close"));
     closeButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
     closeButton->setDefault(true);
-    closeButton->setFocus(Qt::OtherFocusReason);
     connect(closeButton, SIGNAL(clicked()), parent, SLOT(goBack()));
     buttonLayout->addWidget(closeButton);
 
@@ -111,4 +130,5 @@ void AboutView::appear() {
     mac::CheckForUpdates();
 #endif
 #endif
+    closeButton->setFocus();
 }
index 912c63c4e9c79f43030cec4d4afd8805dd7822c2..14c0bd12c3051f2896e3682d33743171e51da0b8 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef ABOUTVIEW_H
 #define ABOUTVIEW_H
 
@@ -24,5 +44,8 @@ public:
 protected:
     void paintEvent(QPaintEvent *);
 
+private:
+    QPushButton *closeButton;
+
 };
 #endif
diff --git a/src/aggregatevideosource.cpp b/src/aggregatevideosource.cpp
new file mode 100644 (file)
index 0000000..55e72dc
--- /dev/null
@@ -0,0 +1,79 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "aggregatevideosource.h"
+#include "video.h"
+#include "database.h"
+#include <QtSql>
+
+AggregateVideoSource::AggregateVideoSource(QObject *parent) :
+    VideoSource(parent),
+    unwatched(false) { }
+
+void AggregateVideoSource::loadVideos(int max, int skip) {
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    QString sql = "select v.video_id,"
+            "v.published,"
+            "v.title,"
+            "v.author,"
+            "v.user_id,"
+            "v.description,"
+            "v.url,"
+            "v.thumb_url,"
+            "v.views,"
+            "v.duration";
+    if (unwatched)
+        sql += " from subscriptions_videos v, subscriptions s where v.channel_id=s.id "
+                "and v.added>s.watched and v.published>s.watched and v.watched=0 "
+                "order by v.published desc ";
+    else
+        sql += " from subscriptions_videos v order by published desc ";
+    sql += "limit ?,?";
+    query.prepare(sql);
+    query.bindValue(0, skip - 1);
+    query.bindValue(1, max);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+    QList<Video*> videos;
+    while (query.next()) {
+        Video *video = new Video();
+        video->setId(query.value(0).toString());
+        video->setPublished(QDateTime::fromTime_t(query.value(1).toUInt()));
+        video->setTitle(query.value(2).toString());
+        video->setAuthor(query.value(3).toString());
+        video->setUserId(query.value(4).toString());
+        video->setDescription(query.value(5).toString());
+        video->setWebpage(query.value(6).toString());
+        video->setThumbnailUrl(query.value(7).toString());
+        video->setViewCount(query.value(8).toInt());
+        video->setDuration(query.value(9).toInt());
+        videos << video;
+    }
+    emit gotVideos(videos);
+    emit finished(videos.size());
+}
+
+const QStringList & AggregateVideoSource::getSuggestions() {
+    QStringList *l = new QStringList();
+    return *l;
+}
+
+void AggregateVideoSource::abort() { }
diff --git a/src/aggregatevideosource.h b/src/aggregatevideosource.h
new file mode 100644 (file)
index 0000000..49de4a0
--- /dev/null
@@ -0,0 +1,46 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef AGGREGATEVIDEOSOURCE_H
+#define AGGREGATEVIDEOSOURCE_H
+
+#include <QtCore>
+#include "videosource.h"
+
+class AggregateVideoSource : public VideoSource {
+
+    Q_OBJECT
+
+public:
+    AggregateVideoSource(QObject *parent = 0);
+    void loadVideos(int max, int skip);
+    virtual void abort();
+    virtual const QStringList & getSuggestions();
+    QString getName() { return name; }
+    void setName(QString name) { this->name = name; }
+    void setUnwatched(bool enable) { unwatched = enable; }
+
+private:
+    QString name;
+    bool unwatched;
+
+};
+
+#endif // AGGREGATEVIDEOSOURCE_H
index ac09e9c5510b90bd08a4b4e2491b61982bb5b4ea..f91540892d972d5266c323821b4c555f080fbb3b 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "autocomplete.h"
 #include "suggester.h"
 #ifdef APP_MAC
index 0f0e267c3f0b3276e49e27ffe1037b91d4af01f4..17a59530bf82c76d7678b6ed24705176b72360b0 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef SUGGESTCOMPLETION_H
 #define SUGGESTCOMPLETION_H
 
diff --git a/src/channelaggregator.cpp b/src/channelaggregator.cpp
new file mode 100644 (file)
index 0000000..f27f23e
--- /dev/null
@@ -0,0 +1,279 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "channelaggregator.h"
+#include "ytuser.h"
+#include "ytsearch.h"
+#include "searchparams.h"
+#include "database.h"
+#include "video.h"
+#ifdef APP_MAC
+#include "macutils.h"
+#endif
+
+ChannelAggregator::ChannelAggregator(QObject *parent) : QObject(parent),
+    unwatchedCount(-1),
+    running(false),
+    stopped(false) {
+    QSettings settings;
+    checkInterval = settings.value("subscriptionsCheckInterval", 1800).toUInt();
+
+    timer = new QTimer(this);
+    timer->setInterval(60000 * 5);
+    connect(timer, SIGNAL(timeout()), SLOT(run()));
+}
+
+ChannelAggregator* ChannelAggregator::instance() {
+    static ChannelAggregator* i = new ChannelAggregator();
+    return i;
+}
+
+void ChannelAggregator::start() {
+    updateUnwatchedCount();
+    QTimer::singleShot(0, this, SLOT(run()));
+    timer->start();
+}
+
+void ChannelAggregator::stop() {
+    timer->stop();
+    stopped = true;
+}
+
+YTUser* ChannelAggregator::getChannelToCheck() {
+    if (stopped) return 0;
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("select user_id from subscriptions where checked<? "
+                  "order by checked limit 1");
+    query.bindValue(0, QDateTime::currentDateTime().toTime_t() - checkInterval);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+    if (query.next())
+        return YTUser::forId(query.value(0).toString());
+    return 0;
+}
+
+void ChannelAggregator::run() {
+    if (running) return;
+    if (stopped) return;
+    if (!Database::exists()) return;
+    running = true;
+    newVideoCount = 0;
+    updatedChannels.clear();
+    if (!Database::instance().getConnection().transaction())
+        qWarning() << "Transaction failed" << __PRETTY_FUNCTION__;
+    processNextChannel();
+}
+
+void ChannelAggregator::processNextChannel() {
+    if (stopped) return;
+    qApp->processEvents();
+    YTUser* user = getChannelToCheck();
+    if (user) {
+        SearchParams *params = new SearchParams();
+        params->setAuthor(user->getUserId());
+        params->setSortBy(SearchParams::SortByNewest);
+        params->setTransient(true);
+        YTSearch *videoSource = new YTSearch(params, this);
+        connect(videoSource, SIGNAL(gotVideos(QList<Video*>)),
+                SLOT(videosLoaded(QList<Video*>)));
+        videoSource->loadVideos(10, 1);
+        user->updateChecked();
+    } else finish();
+}
+
+void ChannelAggregator::finish() {
+    foreach (YTUser *user, updatedChannels)
+        if (user->updateNotifyCount())
+            emit channelChanged(user);
+
+    updateUnwatchedCount();
+
+    QSqlDatabase db = Database::instance().getConnection();
+    if (!db.commit())
+        qWarning() << "Commit failed" << __PRETTY_FUNCTION__;
+    /*
+    QByteArray b = db.databaseName().right(20).toLocal8Bit();
+    const char* s = b.constData();
+    const int l = strlen(s);
+    int t = 1;
+    for (int i = 0; i < l; i++)
+        t += t % 2 ? s[i] / l : s[i] / t;
+    if (t != s[0]) return;
+    */
+
+#ifdef Q_WS_MAC
+    if (newVideoCount > 0 && unwatchedCount > 0 && mac::canNotify()) {
+        QString channelNames;
+        const int total = updatedChannels.size();
+        for (int i = 0; i < total; ++i) {
+            YTUser *user = updatedChannels.at(i);
+            channelNames += user->getDisplayName();
+            if (i < total-1) channelNames.append(", ");
+        }
+        channelNames = tr("By %1").arg(channelNames);
+        int actualNewVideoCount = qMin(newVideoCount, unwatchedCount);
+        mac::notify(tr("You have %n new video(s)", "", actualNewVideoCount),
+                    channelNames, QString());
+    }
+#endif
+
+    running = false;
+}
+
+void ChannelAggregator::videosLoaded(QList<Video *> videos) {
+    sender()->deleteLater();
+    foreach (Video* video, videos) {
+        qApp->processEvents();
+        addVideo(video);
+        video->deleteLater();
+    }
+    processNextChannel();
+}
+
+void ChannelAggregator::updateUnwatchedCount() {
+    if (!Database::exists()) return;
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("select sum(notify_count) from subscriptions");
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+    if (!query.next()) return;
+    int newUnwatchedCount = query.value(0).toInt();
+    if (newUnwatchedCount != unwatchedCount) {
+        unwatchedCount = newUnwatchedCount;
+        emit unwatchedCountChanged(unwatchedCount);
+    }
+}
+
+void ChannelAggregator::addVideo(Video *video) {
+    QSqlDatabase db = Database::instance().getConnection();
+
+    QSqlQuery query(db);
+    query.prepare("select count(*) from subscriptions_videos where video_id=?");
+    query.bindValue(0, video->id());
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+    if (!query.next()) return;
+    int count = query.value(0).toInt();
+    if (count > 0) return;
+
+    // qDebug() << "Inserting" << video->author() << video->title();
+
+    QString userId = video->userId();
+    YTUser *user = YTUser::forId(userId);
+    if (!updatedChannels.contains(user))
+        updatedChannels << user;
+    int channelId = user->getId();
+
+    uint now = QDateTime::currentDateTime().toTime_t();
+    uint published = video->published().toTime_t();
+    if (published > now) {
+        qDebug() << "fixing publish time";
+        published = now;
+    }
+
+    query = QSqlQuery(db);
+    query.prepare("insert into subscriptions_videos "
+                  "(video_id,channel_id,published,added,watched,"
+                  "title,author,user_id,description,url,thumb_url,views,duration) "
+                  "values (?,?,?,?,?,?,?,?,?,?,?,?,?)");
+    query.bindValue(0, video->id());
+    query.bindValue(1, channelId);
+    query.bindValue(2, published);
+    query.bindValue(3, now);
+    query.bindValue(4, 0);
+    query.bindValue(5, video->title());
+    query.bindValue(6, video->author());
+    query.bindValue(7, video->userId());
+    query.bindValue(8, video->description());
+    query.bindValue(9, video->webpage());
+    query.bindValue(10, video->thumbnailUrl());
+    query.bindValue(11, video->viewCount());
+    query.bindValue(12, video->duration());
+    success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+    newVideoCount++;
+
+    query = QSqlQuery(db);
+    query.prepare("update subscriptions set updated=? where user_id=?");
+    query.bindValue(0, published);
+    query.bindValue(1, userId);
+    success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+}
+
+void ChannelAggregator::markAllAsWatched() {
+    uint now = QDateTime::currentDateTime().toTime_t();
+
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("update subscriptions set watched=?, notify_count=0");
+    query.bindValue(0, now);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+    unwatchedCount = 0;
+
+    foreach (YTUser *user, YTUser::getCachedUsers()) {
+        user->setWatched(now);
+        user->setNotifyCount(0);
+    }
+
+    emit unwatchedCountChanged(0);
+}
+
+void ChannelAggregator::videoWatched(Video *video) {
+    if (!Database::exists()) return;
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("update subscriptions_videos set watched=? where video_id=?");
+    query.bindValue(0, QDateTime::currentDateTime().toTime_t());
+    query.bindValue(1, video->id());
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+    if (query.numRowsAffected() > 0) {
+        YTUser *user = YTUser::forId(video->userId());
+        user->updateNotifyCount();
+    }
+}
+
+void ChannelAggregator::cleanup() {
+    static const int maxVideos = 1000;
+    static const int maxDeletions = 1000;
+    if (!Database::exists()) return;
+    QSqlDatabase db = Database::instance().getConnection();
+
+    QSqlQuery query(db);
+    bool success = query.exec("select count(*) from subscriptions_videos");
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+    if (!query.next()) return;
+    int count = query.value(0).toInt();
+    if (count <= maxVideos) return;
+
+    query = QSqlQuery(db);
+    query.prepare("delete from subscriptions_videos where id in "
+                  "(select id from subscriptions_videos "
+                  "order by published desc limit ?,?)");
+    query.bindValue(0, maxVideos);
+    query.bindValue(1, maxDeletions);
+    success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+}
diff --git a/src/channelaggregator.h b/src/channelaggregator.h
new file mode 100644 (file)
index 0000000..966fa70
--- /dev/null
@@ -0,0 +1,71 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef CHANNELAGGREGATOR_H
+#define CHANNELAGGREGATOR_H
+
+#include <QtCore>
+
+class YTUser;
+class Video;
+
+class ChannelAggregator : public QObject {
+
+    Q_OBJECT
+
+public:
+    static ChannelAggregator* instance();
+    int getUnwatchedCount() { return unwatchedCount; }
+    void markAllAsWatched();
+    void videoWatched(Video *video);
+    void cleanup();
+
+public slots:
+    void start();
+    void stop();
+    void run();
+
+signals:
+    void channelChanged(YTUser*);
+    void unwatchedCountChanged(int count);
+
+private slots:
+    void videosLoaded(QList<Video*> videos);
+
+private:
+    ChannelAggregator(QObject *parent = 0);
+    YTUser* getChannelToCheck();
+    void processNextChannel();
+    void addVideo(Video* video);
+    void updateUnwatchedCount();
+    void finish();
+
+    uint checkInterval;
+    int unwatchedCount;
+    bool running;
+
+    int newVideoCount;
+    QList<YTUser*> updatedChannels;
+
+    QTimer *timer;
+    bool stopped;
+};
+
+#endif // CHANNELAGGREGATOR_H
diff --git a/src/channelitemdelegate.cpp b/src/channelitemdelegate.cpp
new file mode 100644 (file)
index 0000000..b06e861
--- /dev/null
@@ -0,0 +1,167 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "channelitemdelegate.h"
+#include "channelmodel.h"
+#include "ytuser.h"
+#include "fontutils.h"
+#include "channelaggregator.h"
+#include "painterutils.h"
+
+static const int ITEM_WIDTH = 128;
+static const int ITEM_HEIGHT = 128;
+static const int THUMB_WIDTH = 88;
+static const int THUMB_HEIGHT = 88;
+
+ChannelItemDelegate::ChannelItemDelegate(QObject *parent) : QStyledItemDelegate(parent) {
+
+}
+
+QSize ChannelItemDelegate::sizeHint(const QStyleOptionViewItem& /*option*/,
+                                     const QModelIndex& /*index*/ ) const {
+    return QSize(ITEM_WIDTH, ITEM_HEIGHT);
+}
+
+void ChannelItemDelegate::paint( QPainter* painter,
+                                  const QStyleOptionViewItem& option,
+                                  const QModelIndex& index ) const {
+    const int itemType = index.data(ChannelModel::ItemTypeRole).toInt();
+    if (itemType == ChannelModel::ItemChannel)
+        paintChannel(painter, option, index);
+    else if (itemType == ChannelModel::ItemAggregate)
+        paintAggregate(painter, option, index);
+    else if (itemType == ChannelModel::ItemUnwatched)
+        paintUnwatched(painter, option, index);
+    else
+        QStyledItemDelegate::paint(painter, option, index);
+}
+
+void ChannelItemDelegate::paintAggregate(QPainter* painter,
+                                          const QStyleOptionViewItem& option,
+                                          const QModelIndex& index) const {
+    painter->save();
+
+    painter->translate(option.rect.topLeft());
+    const QRect line(0, 0, option.rect.width(), option.rect.height());
+
+    static const QPixmap thumbnail = QPixmap(":/images/channels.png");
+
+    QString name = tr("All Videos");
+
+    drawItem(painter, line, thumbnail, name);
+
+    painter->restore();
+}
+
+void ChannelItemDelegate::paintUnwatched(QPainter* painter,
+                                          const QStyleOptionViewItem& option,
+                                          const QModelIndex& index) const {
+    painter->save();
+
+    painter->translate(option.rect.topLeft());
+    const QRect line(0, 0, option.rect.width(), option.rect.height());
+
+    static const QPixmap thumbnail = QPixmap(":/images/unwatched.png");
+
+    QString name = tr("Unwatched Videos");
+
+    drawItem(painter, line, thumbnail, name);
+
+    int notifyCount = ChannelAggregator::instance()->getUnwatchedCount();
+    QString notifyText = QString::number(notifyCount);
+    if (notifyCount > 0) paintBadge(painter, line, notifyText);
+
+    painter->restore();
+}
+
+void ChannelItemDelegate::paintChannel(QPainter* painter,
+                                        const QStyleOptionViewItem& option,
+                                        const QModelIndex& index) const {
+    const QVariant dataObject = index.data(ChannelModel::DataObjectRole);
+    const YTUserPointer channelPointer = dataObject.value<YTUserPointer>();
+    YTUser *user = channelPointer.data();
+    if (!user) return;
+
+    painter->save();
+
+    painter->translate(option.rect.topLeft());
+    const QRect line(0, 0, option.rect.width(), option.rect.height());
+
+    // const bool isActive = index.data( ActiveItemRole ).toBool();
+    // const bool isHovered = index.data(ChannelsModel::HoveredItemRole ).toBool();
+    // const bool isSelected = option.state & QStyle::State_Selected;
+
+    QPixmap thumbnail = user->getThumbnail();
+    if (thumbnail.isNull()) {
+        user->loadThumbnail();
+        painter->restore();
+        return;
+    }
+
+    QString name = user->getDisplayName();
+    drawItem(painter, line, thumbnail, name);
+
+    int notifyCount = user->getNotifyCount();
+    if (notifyCount > 0)
+        paintBadge(painter, line, QString::number(notifyCount));
+
+    painter->restore();
+}
+
+void ChannelItemDelegate::drawItem(QPainter *painter,
+                                    const QRect &line,
+                                    const QPixmap &thumbnail,
+                                    const QString &name) const {
+    painter->drawPixmap((line.width() - THUMB_WIDTH) / 2, 8, thumbnail);
+
+    QRect nameBox = line;
+    nameBox.adjust(0, 0, 0, -THUMB_HEIGHT - 16);
+    nameBox.translate(0, line.height() - nameBox.height());
+    bool tooBig = false;
+
+    QRect textBox = painter->boundingRect(nameBox,
+                                          Qt::AlignTop | Qt::AlignHCenter | Qt::TextWordWrap,
+                                          name);
+    if (textBox.height() > nameBox.height() || textBox.width() > nameBox.width()) {
+        painter->setFont(FontUtils::small());
+        textBox = painter->boundingRect(nameBox,
+                                        Qt::AlignTop | Qt::AlignHCenter | Qt::TextWordWrap,
+                                        name);
+        if (textBox.height() > nameBox.height()) {
+            painter->setClipRect(nameBox);
+            tooBig = true;
+        }
+    }
+    if (tooBig)
+        painter->drawText(nameBox, Qt::AlignHCenter | Qt::AlignTop | Qt::TextWordWrap, name);
+    else
+        painter->drawText(textBox, Qt::AlignCenter | Qt::TextWordWrap, name);
+}
+
+void ChannelItemDelegate::paintBadge(QPainter *painter,
+                                              const QRect &line,
+                                              const QString &text) const {
+    const int topLeft = (line.width() + THUMB_WIDTH) / 2;
+    painter->save();
+    painter->translate(topLeft, 0);
+    painter->setClipping(false);
+    PainterUtils::paintBadge(painter, text, true);
+    painter->restore();
+}
diff --git a/src/channelitemdelegate.h b/src/channelitemdelegate.h
new file mode 100644 (file)
index 0000000..6e5543a
--- /dev/null
@@ -0,0 +1,45 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef CHANNELITEMDELEGATE_H
+#define CHANNELITEMDELEGATE_H
+
+#include <QtGui>
+
+class ChannelItemDelegate : public QStyledItemDelegate {
+
+    Q_OBJECT
+
+public:
+    ChannelItemDelegate(QObject* parent = 0);
+    QSize sizeHint(const QStyleOptionViewItem&, const QModelIndex&) const;
+    void paint(QPainter*, const QStyleOptionViewItem&, const QModelIndex&) const;
+
+private:
+    void paintChannel(QPainter*, const QStyleOptionViewItem&, const QModelIndex&) const;
+    void paintAggregate(QPainter*, const QStyleOptionViewItem&, const QModelIndex&) const;
+    void paintUnwatched(QPainter*, const QStyleOptionViewItem&, const QModelIndex&) const;
+    void paintBadge(QPainter *painter, const QRect &line, const QString &text) const;
+    void drawItem(QPainter *painter, const QRect &line,
+                  const QPixmap &thumbnail, const QString &name) const;
+
+};
+
+#endif // CHANNELITEMDELEGATE_H
diff --git a/src/channelmodel.cpp b/src/channelmodel.cpp
new file mode 100644 (file)
index 0000000..2aa6c43
--- /dev/null
@@ -0,0 +1,129 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "channelmodel.h"
+#include "ytuser.h"
+
+static const int channelOffset = 2;
+
+ChannelModel::ChannelModel(QObject *parent) :
+    QAbstractListModel(parent),
+    hoveredRow(-1) { }
+
+
+int ChannelModel::rowCount(const QModelIndex &) const {
+    return channels.isEmpty() ? 0 : channelOffset + channels.size();
+}
+
+QVariant ChannelModel::data(const QModelIndex &index, int role) const {
+    switch (role) {
+
+    case ChannelModel::ItemTypeRole:
+        return typeForIndex(index);
+
+    case ChannelModel::DataObjectRole:
+        if (typeForIndex(index) == ChannelModel::ItemChannel)
+            return QVariant::fromValue(QPointer<YTUser>(userForIndex(index)));
+        break;
+
+    case ChannelModel::HoveredItemRole:
+        return hoveredRow == index.row();
+
+    case Qt::StatusTipRole:
+        if (typeForIndex(index) == ChannelModel::ItemChannel)
+            return userForIndex(index)->getDescription();
+
+    }
+
+    return QVariant();
+}
+
+YTUser* ChannelModel::userForIndex(const QModelIndex &index) const {
+    return channels.at(index.row() - channelOffset);
+}
+
+ChannelModel::ItemTypes ChannelModel::typeForIndex(const QModelIndex &index) const {
+    switch (index.row()) {
+    case 0:
+        return ChannelModel::ItemAggregate;
+    case 1:
+        return ChannelModel::ItemUnwatched;
+    default:
+        return ChannelModel::ItemChannel;
+    }
+}
+
+void ChannelModel::setQuery(const QString &query, const QSqlDatabase &db) {
+    channels.clear();
+    sqlError = QSqlError();
+
+    QSqlQuery q(db);
+    q.prepare(query);
+    bool success = q.exec();
+    if (!success) {
+        qWarning() << q.lastQuery() << q.lastError().text();
+        sqlError = q.lastError();
+    }
+    while (q.next()) {
+        YTUser *user = YTUser::forId(q.value(0).toString());
+        connect(user, SIGNAL(thumbnailLoaded()), SLOT(updateSender()), Qt::UniqueConnection);
+        channels << user;
+    }
+
+    reset();
+}
+
+QSqlError ChannelModel::lastError() const {
+    return sqlError;
+}
+
+void ChannelModel::updateSender() {
+    YTUser *user = static_cast<YTUser*>(sender());
+    if (!user) {
+        qWarning() << "Cannot get sender" << __PRETTY_FUNCTION__;
+        return;
+    }
+    updateChannel(user);
+}
+
+void ChannelModel::updateChannel(YTUser *user) {
+    int row = channels.indexOf(user);
+    if (row == -1) return;
+    row += channelOffset;
+    QModelIndex i = createIndex(row, 0);
+    emit dataChanged(i, i);
+}
+
+void ChannelModel::updateUnwatched() {
+    QModelIndex i = createIndex(1, 0);
+    emit dataChanged(i, i);
+}
+
+void ChannelModel::setHoveredRow(int row) {
+    int oldRow = hoveredRow;
+    hoveredRow = row;
+    emit dataChanged( createIndex( oldRow, 0 ), createIndex( oldRow, 0 ) );
+    emit dataChanged( createIndex( hoveredRow, 0 ), createIndex( hoveredRow, 0 ) );
+}
+
+void ChannelModel::clearHover() {
+    emit dataChanged( createIndex( hoveredRow, 0 ), createIndex( hoveredRow, 0 ) );
+    hoveredRow = -1;
+}
diff --git a/src/channelmodel.h b/src/channelmodel.h
new file mode 100644 (file)
index 0000000..3d89d4d
--- /dev/null
@@ -0,0 +1,70 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef CHANNELMODEL_H
+#define CHANNELMODEL_H
+
+#include <QtCore>
+#include <QtSql>
+
+class YTUser;
+
+class ChannelModel : public QAbstractListModel {
+
+    Q_OBJECT
+
+public:
+    ChannelModel(QObject *parent = 0);
+
+    enum DataRoles {
+        ItemTypeRole = Qt::UserRole,
+        DataObjectRole,
+        HoveredItemRole
+    };
+
+    enum ItemTypes {
+        ItemChannel = 1,
+        ItemAggregate,
+        ItemUnwatched
+    };
+
+    void setQuery(const QString &query, const QSqlDatabase &db);
+    QSqlError lastError() const;
+    ItemTypes typeForIndex(const QModelIndex &index) const;
+    YTUser* userForIndex(const QModelIndex &index) const;
+    void setHoveredRow(int row);
+
+    int rowCount(const QModelIndex &parent = QModelIndex()) const;
+    QVariant data(const QModelIndex &index, int role) const;
+
+public slots:
+    void clearHover();
+    void updateSender();
+    void updateChannel(YTUser *user);
+    void updateUnwatched();
+
+private:
+    QList<YTUser*> channels;
+    int hoveredRow;
+    QSqlError sqlError;
+
+};
+
+#endif // CHANNELMODEL_H
index 757c5348e5ddc23f4589f589a2e737c9340a5140..6d0d1ff265ba3afa311f33e66f1f8b0c1b20985b 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "channelsuggest.h"
 #include "networkaccess.h"
 
index 85cbef993b255ccbe7018cbfe7daf94ccc515bcc..c4bdec9a53e1f9a97e4a5e84022af1e1ba61fa01 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef CHANNELSUGGEST_H
 #define CHANNELSUGGEST_H
 
diff --git a/src/channelview.cpp b/src/channelview.cpp
new file mode 100644 (file)
index 0000000..eba0591
--- /dev/null
@@ -0,0 +1,301 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "channelview.h"
+#include "ytuser.h"
+#include "ytsearch.h"
+#include "searchparams.h"
+#include "channelmodel.h"
+#include "channelitemdelegate.h"
+#include "database.h"
+#include "ytsearch.h"
+#include "channelaggregator.h"
+#include "aggregatevideosource.h"
+#include "painterutils.h"
+#include "mainwindow.h"
+#include "utils.h"
+#ifdef APP_EXTRA
+#include "extra.h"
+#endif
+
+static const char *sortByKey = "subscriptionsSortBy";
+static const char *showUpdatedKey = "subscriptionsShowUpdated";
+
+ChannelView::ChannelView(QWidget *parent) : QListView(parent),
+    showUpdated(false),
+    sortBy(SortByName) {
+
+    setItemDelegate(new ChannelItemDelegate(this));
+    setSelectionMode(QAbstractItemView::NoSelection);
+
+    // layout
+    setSpacing(15);
+    setFlow(QListView::LeftToRight);
+    setWrapping(true);
+    setResizeMode(QListView::Adjust);
+    setMovement(QListView::Static);
+    setUniformItemSizes(true);
+
+    // cosmetics
+    setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
+    setFrameShape(QFrame::NoFrame);
+    setAttribute(Qt::WA_MacShowFocusRect, false);
+
+    QPalette p = palette();
+    /*
+    p.setColor(QPalette::Base, p.window().color());
+    p.setColor(QPalette::Text, p.windowText().color());
+    */
+    p.setColor(QPalette::Disabled, QPalette::Base, p.base().color());
+    p.setColor(QPalette::Disabled, QPalette::Text, p.text().color());
+    setPalette(p);
+
+    verticalScrollBar()->setPageStep(3);
+    verticalScrollBar()->setSingleStep(1);
+
+    setMouseTracking(true);
+
+    connect(this, SIGNAL(clicked(const QModelIndex &)),
+            SLOT(itemActivated(const QModelIndex &)));
+    connect(this, SIGNAL(entered(const QModelIndex &)),
+            SLOT(itemEntered(const QModelIndex &)));
+
+    channelsModel = new ChannelModel(this);
+    setModel(channelsModel);
+    connect(this, SIGNAL(viewportEntered()),
+            channelsModel, SLOT(clearHover()));
+
+    setupActions();
+
+    connect(ChannelAggregator::instance(), SIGNAL(channelChanged(YTUser*)),
+            channelsModel, SLOT(updateChannel(YTUser*)));
+    connect(ChannelAggregator::instance(), SIGNAL(unwatchedCountChanged(int)),
+            SLOT(unwatchedCountChanged(int)));
+
+    unwatchedCountChanged(ChannelAggregator::instance()->getUnwatchedCount());
+}
+
+void ChannelView::setupActions() {
+    QSettings settings;
+
+    markAsWatchedAction = new QAction(
+                Utils::icon("mark-watched"), tr("Mark all as watched"), this);
+    markAsWatchedAction->setEnabled(false);
+    markAsWatchedAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_W));
+    connect(markAsWatchedAction, SIGNAL(triggered()), SLOT(markAllAsWatched()));
+    statusActions << markAsWatchedAction;
+
+    showUpdated = settings.value(showUpdatedKey, false).toBool();
+    QAction *showUpdatedAction = new QAction(
+                Utils::icon("show-updated"), tr("Show Updated"), this);
+    showUpdatedAction->setCheckable(true);
+    showUpdatedAction->setChecked(showUpdated);
+    showUpdatedAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_U));
+    connect(showUpdatedAction, SIGNAL(toggled(bool)), SLOT(toggleShowUpdated(bool)));
+    statusActions << showUpdatedAction;
+
+    SortBy sortBy = static_cast<SortBy>(settings.value(sortByKey, SortByName).toInt());
+
+    QMenu *sortMenu = new QMenu(this);
+    QActionGroup *sortGroup = new QActionGroup(this);
+
+    QAction *sortByNameAction = new QAction(tr("Name"), this);
+    sortByNameAction->setActionGroup(sortGroup);
+    sortByNameAction->setCheckable(true);
+    if (sortBy == SortByName) sortByNameAction->setChecked(true);
+    connect(sortByNameAction, SIGNAL(triggered()), SLOT(setSortByName()));
+    sortMenu->addAction(sortByNameAction);
+
+    QAction *sortByUpdatedAction = new QAction(tr("Last Updated"), this);
+    sortByUpdatedAction->setActionGroup(sortGroup);
+    sortByUpdatedAction->setCheckable(true);
+    if (sortBy == SortByUpdated) sortByUpdatedAction->setChecked(true);
+    connect(sortByUpdatedAction, SIGNAL(triggered()), SLOT(setSortByUpdated()));
+    sortMenu->addAction(sortByUpdatedAction);
+
+    QAction *sortByAddedAction = new QAction(tr("Last Added"), this);
+    sortByAddedAction->setActionGroup(sortGroup);
+    sortByAddedAction->setCheckable(true);
+    if (sortBy == SortByAdded) sortByAddedAction->setChecked(true);
+    connect(sortByAddedAction, SIGNAL(triggered()), SLOT(setSortByAdded()));
+    sortMenu->addAction(sortByAddedAction);
+
+    QAction *sortByLastWatched = new QAction(tr("Last Watched"), this);
+    sortByLastWatched->setActionGroup(sortGroup);
+    sortByLastWatched->setCheckable(true);
+    if (sortBy == SortByLastWatched) sortByLastWatched->setChecked(true);
+    connect(sortByLastWatched, SIGNAL(triggered()), SLOT(setSortByLastWatched()));
+    sortMenu->addAction(sortByLastWatched);
+
+    QAction *sortByMostWatched = new QAction(tr("Most Watched"), this);
+    sortByMostWatched->setActionGroup(sortGroup);
+    sortByMostWatched->setCheckable(true);
+    if (sortBy == SortByMostWatched) sortByMostWatched->setChecked(true);
+    connect(sortByMostWatched, SIGNAL(triggered()), SLOT(setSortByMostWatched()));
+    sortMenu->addAction(sortByMostWatched);
+
+    QToolButton *sortButton = new QToolButton(this);
+    sortButton->setText(tr("Sort by"));
+    sortButton->setIcon(Utils::icon("sort"));
+    sortButton->setIconSize(QSize(16, 16));
+    sortButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+    sortButton->setPopupMode(QToolButton::InstantPopup);
+    sortButton->setMenu(sortMenu);
+    QWidgetAction *widgetAction = new QWidgetAction(this);
+    widgetAction->setDefaultWidget(sortButton);
+    widgetAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_O));
+    statusActions << widgetAction;
+
+    foreach (QAction *action, statusActions) {
+        window()->addAction(action);
+        Utils::setupAction(action);
+    }
+}
+
+void ChannelView::appear() {
+    updateQuery();
+    foreach (QAction* action, statusActions)
+        MainWindow::instance()->showActionInStatusBar(action, true);
+    setFocus();
+    ChannelAggregator::instance()->run();
+}
+
+void ChannelView::disappear() {
+    foreach (QAction* action, statusActions)
+        MainWindow::instance()->showActionInStatusBar(action, false);
+}
+
+void ChannelView::mouseMoveEvent(QMouseEvent *event) {
+    QListView::mouseMoveEvent(event);
+    const QModelIndex index = indexAt(event->pos());
+    if (index.isValid()) setCursor(Qt::PointingHandCursor);
+    else unsetCursor();
+}
+
+void ChannelView::leaveEvent(QEvent *event) {
+    QListView::leaveEvent(event);
+    // channelsModel->clearHover();
+}
+
+void ChannelView::itemEntered(const QModelIndex &index) {
+    // channelsModel->setHoveredRow(index.row());
+}
+
+void ChannelView::itemActivated(const QModelIndex &index) {
+    ChannelModel::ItemTypes itemType = channelsModel->typeForIndex(index);
+    if (itemType == ChannelModel::ItemChannel) {
+        YTUser *user = channelsModel->userForIndex(index);
+        SearchParams *params = new SearchParams();
+        params->setAuthor(user->getUserId());
+        params->setSortBy(SearchParams::SortByNewest);
+        params->setTransient(true);
+        YTSearch *videoSource = new YTSearch(params, this);
+        emit activated(videoSource);
+        user->updateWatched();
+    } else if (itemType == ChannelModel::ItemAggregate) {
+        AggregateVideoSource *videoSource = new AggregateVideoSource(this);
+        videoSource->setName(tr("All Videos"));
+        emit activated(videoSource);
+    } else if (itemType == ChannelModel::ItemUnwatched) {
+        AggregateVideoSource *videoSource = new AggregateVideoSource(this);
+        videoSource->setName(tr("Unwatched Videos"));
+        videoSource->setUnwatched(true);
+        emit activated(videoSource);
+    }
+}
+
+void ChannelView::paintEvent(QPaintEvent *event) {
+    if (model()->rowCount() < 3) {
+        QString msg;
+        if (!errorMessage.isEmpty())
+            msg = errorMessage;
+        else if (showUpdated)
+            msg = tr("There are no updated subscriptions at this time.");
+        else
+            msg = tr("You have no subscriptions. "
+                     "Use the star symbol to subscribe to channels.");
+        PainterUtils::centeredMessage(msg, viewport());
+    } else QListView::paintEvent(event);
+    PainterUtils::topShadow(viewport());
+}
+
+void ChannelView::toggleShowUpdated(bool enable) {
+    showUpdated = enable;
+    updateQuery(true);
+    QSettings settings;
+    settings.setValue(showUpdatedKey, showUpdated);
+}
+
+void ChannelView::updateQuery(bool transition) {
+    errorMessage.clear();
+    if (!Database::exists()) return;
+
+    QString sql = "select user_id from subscriptions";
+    if (showUpdated)
+        sql += " where notify_count>0";
+
+    switch (sortBy) {
+    case SortByUpdated:
+        sql += " order by updated desc";
+        break;
+    case SortByAdded:
+        sql += " order by added desc";
+        break;
+    case SortByLastWatched:
+        sql += " order by watched desc";
+        break;
+    case SortByMostWatched:
+        sql += " order by views desc";
+        break;
+    default:
+        sql += " order by name collate nocase";
+        break;
+    }
+
+#ifdef APP_EXTRA
+    if (transition)
+        Extra::fadeInWidget(this, this);
+#endif
+
+    channelsModel->setQuery(sql, Database::instance().getConnection());
+    if (channelsModel->lastError().isValid()) {
+        qWarning() << channelsModel->lastError().text();
+        errorMessage = channelsModel->lastError().text();
+    }
+}
+
+void ChannelView::setSortBy(SortBy sortBy) {
+    this->sortBy = sortBy;
+    updateQuery(true);
+    QSettings settings;
+    settings.setValue(sortByKey, (int)sortBy);
+}
+
+void ChannelView::markAllAsWatched() {
+    ChannelAggregator::instance()->markAllAsWatched();
+    updateQuery();
+    markAsWatchedAction->setEnabled(false);
+}
+
+void ChannelView::unwatchedCountChanged(int count) {
+    markAsWatchedAction->setEnabled(count > 0);
+    channelsModel->updateUnwatched();
+    updateQuery();
+}
diff --git a/src/channelview.h b/src/channelview.h
new file mode 100644 (file)
index 0000000..a5013c9
--- /dev/null
@@ -0,0 +1,84 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef CHANNELSVIEW_H
+#define CHANNELSVIEW_H
+
+#include <QtGui>
+#include "view.h"
+
+class VideoSource;
+class ChannelModel;
+
+class ChannelView : public QListView, public View {
+
+    Q_OBJECT
+
+public:
+    ChannelView(QWidget *parent = 0);
+    
+signals:
+    void activated(VideoSource *videoSource);
+
+public slots:
+    void appear();
+    void disappear();
+
+protected:
+    void mouseMoveEvent(QMouseEvent *event);
+    void leaveEvent(QEvent *event);
+    void paintEvent(QPaintEvent *event);
+
+private:
+    enum SortBy {
+        SortByName = 0,
+        SortByAdded,
+        SortByUpdated,
+        SortByLastWatched,
+        SortByMostWatched
+    };
+
+private slots:
+    void itemEntered(const QModelIndex &index);
+    void itemActivated(const QModelIndex &index);
+    void toggleShowUpdated(bool enable);
+    void setSortBy(SortBy sortBy);
+    void setSortByName() { setSortBy(SortByName); }
+    void setSortByUpdated() { setSortBy(SortByUpdated); }
+    void setSortByAdded() { setSortBy(SortByAdded); }
+    void setSortByLastWatched() { setSortBy(SortByLastWatched); }
+    void setSortByMostWatched() { setSortBy(SortByMostWatched); }
+    void markAllAsWatched();
+    void unwatchedCountChanged(int count);
+
+private:
+    void updateQuery(bool transition = false);
+    void setupActions();
+
+    ChannelModel *channelsModel;
+    QList<QAction*> statusActions;
+    bool showUpdated;
+    SortBy sortBy;
+    QString errorMessage;
+    QAction *markAsWatchedAction;
+
+};
+
+#endif // CHANNELSVIEW_H
index f065959b7400fd73c29efc949aca0a850ebf43a2..0a542922c372f902f094b5713e62628b7028f537 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "constants.h"
 
 #define STR(x) #x
index 2e1f55f96fe42ee387fbf7f3b86195345b273e59..a4cdc108bd2502a4c349e3b9d2b78e7ba3b67a51 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef CONSTANTS_H
 #define CONSTANTS_H
 
diff --git a/src/database.cpp b/src/database.cpp
new file mode 100644 (file)
index 0000000..37e8433
--- /dev/null
@@ -0,0 +1,210 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "database.h"
+#include "constants.h"
+#include <QDesktopServices>
+
+static const int DATABASE_VERSION = 1;
+static const QString dbName = QLatin1String(Constants::UNIX_NAME) + ".db";
+static Database *databaseInstance = 0;
+
+Database::Database() {
+
+    QString dataLocation = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
+    QDir().mkpath(dataLocation);
+    dbLocation = dataLocation + "/" + dbName;
+
+    QMutexLocker locker(&lock);
+
+    if(QFile::exists(dbLocation)) {
+        // check db version
+        int databaseVersion = getAttribute("version").toInt();
+        if (databaseVersion != DATABASE_VERSION)
+            qWarning("Wrong database version: %d", databaseVersion);
+    } else createDatabase();
+}
+
+Database::~Database() {
+    closeConnections();
+}
+
+void Database::createDatabase() {
+
+    qWarning() << "Creating the database";
+
+    const QSqlDatabase db = getConnection();
+
+    QSqlQuery("create table subscriptions ("
+              "id integer primary key autoincrement,"
+              "user_id varchar,"
+              "user_name varchar,"
+              "name varchar,"
+              "description varchar,"
+              "thumb_url varchar,"
+              "country varchar,"
+              "added integer,"
+              "checked integer," // last check for videos on YT APIs
+              "updated integer," // most recent video added
+              "watched integer," // last time the user watched this channel
+              "loaded integer," // last time channel metadata was loaded from YT APIs
+              "notify_count integer," // new videos since "watched"
+              "views integer)" // number of times the user watched this channel
+              , db);
+    QSqlQuery("create unique index idx_user_id on subscriptions(user_id)", db);
+
+    QSqlQuery("create table subscriptions_videos ("
+              "id integer primary key autoincrement,"
+              "video_id varchar,"
+              "channel_id integer,"
+              "published integer,"
+              "added integer,"
+              "watched integer,"
+              "title varchar,"
+              "author varchar,"
+              "user_id varchar,"
+              "description varchar,"
+              "url varchar,"
+              "thumb_url varchar,"
+              "views integer,"
+              "duration integer)"
+              , db);
+    QSqlQuery("create unique index idx_video_id on subscriptions_videos(video_id)", db);
+
+    QSqlQuery("create table attributes (name varchar, value)", db);
+    QSqlQuery("insert into attributes (name, value) values ('version', "
+              + QString::number(DATABASE_VERSION) + ")", db);
+}
+
+QString Database::getDbLocation() {
+    static QString dataLocation = QDesktopServices::storageLocation(
+                QDesktopServices::DataLocation);
+    return dataLocation + "/" + dbName;
+}
+
+bool Database::exists() {
+    static bool fileExists = false;
+    if (!fileExists)
+        fileExists = QFile::exists(getDbLocation());
+    return fileExists;
+}
+
+Database& Database::instance() {
+    static QMutex mutex;
+    QMutexLocker locker(&mutex);
+    if (!databaseInstance) databaseInstance = new Database();
+    return *databaseInstance;
+}
+
+QSqlDatabase Database::getConnection() {
+    QThread *currentThread = QThread::currentThread();
+    if (!currentThread) {
+        qDebug() << "current thread is null";
+        return QSqlDatabase();
+    }
+
+    const QString threadName = currentThread->objectName();
+    // qDebug() << "threadName" << threadName << currentThread;
+    if (connections.contains(currentThread)) {
+        return connections.value(currentThread);
+    } else {
+        // qDebug() << "Creating db connection for" << threadName;
+        QSqlDatabase connection = QSqlDatabase::addDatabase("QSQLITE", threadName);
+        connection.setDatabaseName(dbLocation);
+        if(!connection.open()) {
+            qWarning() << QString("Cannot connect to database %1 in thread %2").arg(dbLocation, threadName);
+        }
+        connections.insert(currentThread, connection);
+        return connection;
+    }
+}
+
+QVariant Database::getAttribute(QString name) {
+    QSqlQuery query("select value from attributes where name=?", getConnection());
+    query.bindValue(0, name);
+
+    bool success = query.exec();
+    if (!success) qDebug() << query.lastQuery() << query.boundValues().values() << query.lastError().text();
+    if (query.next())
+        return query.value(0);
+    return QVariant();
+}
+
+void Database::setAttribute(QString name, QVariant value) {
+    QSqlQuery query(getConnection());
+    query.prepare("update attributes set value=? where name=?");
+    query.bindValue(0, value);
+    query.bindValue(1, name);
+    bool success = query.exec();
+    if (!success) qDebug() << query.lastError().text();
+}
+
+/**
+  * After calling this method you have to reacquire a valid instance using instance()
+  */
+void Database::drop() {
+    /// closeConnections();
+    if (!QFile::remove(dbLocation)) {
+        qWarning() << "Cannot delete database" << dbLocation;
+
+        // fallback to delete records in tables
+        const QSqlDatabase db = getConnection();
+        QSqlQuery query(db);
+        if (!query.exec("select name from sqlite_master where type='table'")) {
+            qWarning() << query.lastQuery() << query.lastError().text();
+        }
+
+        while (query.next()) {
+            QString tableName = query.value(0).toString();
+            if (tableName.startsWith("sqlite_") || tableName == "attributes") continue;
+            QString dropSQL = "delete from " + tableName;
+            QSqlQuery query2(db);
+            if (!query2.exec(dropSQL))
+                qWarning() << query2.lastQuery() << query2.lastError().text();
+        }
+
+        query.exec("delete from sqlite_sequence");
+
+    }
+    if (databaseInstance) delete databaseInstance;
+    databaseInstance = 0;
+}
+
+void Database::closeConnections() {
+    foreach(QSqlDatabase connection, connections.values()) {
+        // qDebug() << "Closing connection" << connection;
+        connection.close();
+    }
+    connections.clear();
+}
+
+void Database::closeConnection() {
+    QThread *currentThread = QThread::currentThread();
+    if (!connections.contains(currentThread)) return;
+    QSqlDatabase connection = connections.take(currentThread);
+    // qDebug() << "Closing connection" << connection;
+    connection.close();
+}
+
+void Database::shutdown() {
+    if (!databaseInstance) return;
+    QSqlQuery("vacuum", databaseInstance->getConnection());
+    databaseInstance->closeConnections();
+}
diff --git a/src/database.h b/src/database.h
new file mode 100644 (file)
index 0000000..74ab8b7
--- /dev/null
@@ -0,0 +1,54 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef DATABASE_H
+#define DATABASE_H
+
+#include <QtCore>
+#include <QtSql>
+
+class Database : public QObject {
+
+    Q_OBJECT
+
+public:
+    static bool exists();
+    static Database& instance();
+    static void shutdown();
+    QSqlDatabase getConnection();
+    ~Database();
+    void drop();
+    void closeConnections();
+    void closeConnection();
+
+private:
+    Database();
+    static QString getDbLocation();
+    void createDatabase();
+    QVariant getAttribute(QString name);
+    void setAttribute(QString name, QVariant value);
+
+    QMutex lock;
+    QString dbLocation;
+    QHash<QThread*, QSqlDatabase> connections;
+
+};
+
+#endif // DATABASE_H
index f6a45f694c6c6883ba2c91031b7a919fe0ebb17a..36234d140f627bb2d7a80d7dd68d5923e913d0be 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "diskcache.h"
 #include <QtNetwork>
 
index 80791a6abdbe53e63c8032abf4192754a5a24519..1f3cdc911a59517508a82581d5a5cd640a5d7530 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef DISKCACHE_H
 #define DISKCACHE_H
 
index 0ff2396bd90f1583264c33771009a363d6ff613f..12bb7c2c9f7c27bb3739cc3fd053f72f63cde3a2 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "downloaditem.h"
 #include "networkaccess.h"
 #include "video.h"
index bb9245f4ec615452d2f074ebd2499c17eb06eb7b..7a100e0b136af68e13d2f07c278656b4097a1f0c 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef DOWNLOADITEM_H
 #define DOWNLOADITEM_H
 
index 4ebb34ccb049ba5e51b683c2782fa9652dccd9b9..7a1fafd4c34ebb59c0ac0da291f83c43e0abaea9 100644 (file)
@@ -1,6 +1,27 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "downloadlistview.h"
 #include "downloadmodel.h"
 #include "playlistitemdelegate.h"
+#include "painterutils.h"
 
 DownloadListView::DownloadListView(QWidget *parent) : QListView(parent) {
 
@@ -57,3 +78,8 @@ bool DownloadListView::isHoveringPlayIcon(QMouseEvent *event) {
     const int y = event->y() - itemRect.y() - buttonRect.y();
     return x > 0 && x < buttonRect.width() && y > 0 && y < buttonRect.height();
 }
+
+void DownloadListView::paintEvent(QPaintEvent *event) {
+    QListView::paintEvent(event);
+    PainterUtils::topShadow(viewport());
+}
index 72f457ae73be65a82dd49a29db2e58c6eabe6036..59514c692fd736d20741493a6e2c79477f4c3b06 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef DOWNLOADLISTVIEW_H
 #define DOWNLOADLISTVIEW_H
 
@@ -16,6 +36,7 @@ protected:
     void mousePressEvent(QMouseEvent *event);
     void mouseReleaseEvent(QMouseEvent *event);
     bool isHoveringPlayIcon(QMouseEvent *event);
+    void paintEvent(QPaintEvent *event);
 
 signals:
     void downloadButtonPushed(QModelIndex index);
index 21115d3ceab2fd759b344e10080ad7366a67696d..33d2adacf66371feae05b5679614da3ef7eec4de 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "downloadmanager.h"
 #include "downloaditem.h"
 #include "downloadmodel.h"
@@ -7,8 +27,8 @@
 #ifdef APP_ACTIVATION
 #include "activation.h"
 #endif
-#ifdef Q_WS_MAC
-#include "macutils.h"
+#ifdef APP_EXTRA
+#include "extra.h"
 #endif
 
 static DownloadManager *downloadManagerInstance = 0;
@@ -103,9 +123,6 @@ void DownloadManager::gotStreamUrl(QUrl url) {
 
     video->disconnect(this);
 
-    QString path = currentDownloadFolder();
-
-    // TODO ensure all chars are filename compatible
     QString basename = video->title();
     basename.replace('(', '[');
     basename.replace(')', ']');
@@ -120,7 +137,12 @@ void DownloadManager::gotStreamUrl(QUrl url) {
     basename.replace('*', ' ');
     basename = basename.simplified();
 
-    QString filename = path + "/" + basename + ".mp4";
+    if (!basename.isEmpty() && basename.at(0) == '.')
+        basename = basename.mid(1).trimmed();
+
+    if (basename.isEmpty()) basename = video->id();
+
+    QString filename = currentDownloadFolder() + "/" + basename + ".mp4";
 
     Video *videoCopy = video->clone();
     DownloadItem *item = new DownloadItem(videoCopy, url, filename, this);
@@ -138,8 +160,7 @@ void DownloadManager::gotStreamUrl(QUrl url) {
 
 void DownloadManager::itemFinished() {
     if (activeItems() == 0) emit finished();
-#ifdef Q_WS_MAC
-    if (mac::canNotify()) {
+#ifdef APP_EXTRA
         DownloadItem *item = static_cast<DownloadItem*>(sender());
         if (!item) {
             qDebug() << "Cannot get item in" << __FUNCTION__;
@@ -150,8 +171,7 @@ void DownloadManager::itemFinished() {
         QString stats = tr("%1 downloaded in %2").arg(
                     DownloadItem::formattedFilesize(item->bytesTotal()),
                     DownloadItem::formattedTime(item->totalTime(), false));
-        mac::notify(tr("Download finished"), video->title(), stats);
-    }
+        Extra::notify(tr("Download finished"), video->title(), stats);
 #endif
 }
 
index 789ee03782536aeed86cba6b82e750ede131faf2..a07d7e394b3fdc050c40a41a1ca4b8f47ed3257b 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef DOWNLOADMANAGER_H
 #define DOWNLOADMANAGER_H
 
index 2031d3f66288413fc0551741d78d5bc4790ce949..d5d36e930269563ec8dba27da657743d74c65b27 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "downloadmodel.h"
 #include "downloadmanager.h"
 #include "downloaditem.h"
index 26a43dedbae58b55973f98d4323bbf14299daf23..7dd8f4901d942206de190d8ca9f91f67af43d4cb 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef DOWNLOADMODEL_H
 #define DOWNLOADMODEL_H
 
index d73182e73e543088087a30f898b6267699bb9883..1afb2d5b1317b89d6435580361789f3e16dfe758 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "downloadsettings.h"
 #include "downloadmanager.h"
 #include "mainwindow.h"
index 968c8aa9e4d13981d3b29c28577a8bed324b1882..f6d8e01a100bbacea59bdc8c893bf83472dd5d77 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef DOWNLOADSETTINGS_H
 #define DOWNLOADSETTINGS_H
 
index 42db96b8ec094f5bdca5334d3b0b1f7f8e42cb43..2ad4763fe05870fddd7e4b7547c4dc33f1b8f307 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "downloadview.h"
 #include "downloadmodel.h"
 #include "downloadmanager.h"
index 2ac7b3d742e880b8e71f5569e73565af3f63b0e5..731c6f9898b40d84b685e7f27e28ef6226ae3d83 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef DOWNLOADVIEW_H
 #define DOWNLOADVIEW_H
 
index b3418d6d54d695781292d5929cedf1303d9466a4..5e3f3c1588ab1b724f20679ac9fe12f1148c1995 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "fontutils.h"
 
 static const int MIN_PIXEL_SIZE = 11;
index 077b2d71dfd3edc0d945fa9adabb4d77be677f7b..7048ea8e22462cff9bb5c93c4c31da408fddcbe4 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef FONTUTILS_H
 #define FONTUTILS_H
 
index d2aad7a0c6571103cb1791934e7d3f5c2b0c3dd6..6057a83a56e97a033ade4fac2dd9b352944feff1 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef GLOBAL_H
 #define GLOBAL_H
 
index 8646b7ae7dedb3d80dd82654f62f22d2ebf06656..910425af580539df85502c6e6723f472f708b58b 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "globalshortcutbackend.h"
 #include "globalshortcuts.h"
 
index e6844bb3d96b4d73c56342df0bdf6ff746609b73..46edb7bb2ef4430536d00cc94817f47975b70385 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef GLOBALSHORTCUTBACKEND_H
 #define GLOBALSHORTCUTBACKEND_H
 
index 39eda6d95ba83db4e53b3fb96f7db4ef85bd1309..e747322a83ae255dbb1f2e604fcc6cf49f7c3b60 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "globalshortcuts.h"
 #include "globalshortcutbackend.h"
 
index 62cd9356ac6650420677749f1aef2801d241c825..754ad742f4ba923e60850003a3b73eb26f618061 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef GLOBALSHORTCUTS_H
 #define GLOBALSHORTCUTS_H
 
index 6fc3594bc720f765828b1a75c78f3384c1fc6b5d..1b07d592d9ae03c9a8777495676baaa8db788188 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "gnomeglobalshortcutbackend.h"
 #include "globalshortcuts.h"
 
index bf6dd8932fc844abfb151889c9c051298037fbbd..4aecca43c4f673a8b9c3dc617e955dbdfd6c6f00 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef GNOMEGLOBALSHORTCUTBACKEND_H
 #define GNOMEGLOBALSHORTCUTBACKEND_H
 
diff --git a/src/gridwidget.cpp b/src/gridwidget.cpp
new file mode 100644 (file)
index 0000000..3e445aa
--- /dev/null
@@ -0,0 +1,65 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "gridwidget.h"
+
+GridWidget::GridWidget(QWidget *parent) :
+    QWidget(parent),
+    hovered(false),
+    pressed(false) {
+    setCursor(Qt::PointingHandCursor);
+    setFocusPolicy(Qt::StrongFocus);
+}
+
+void GridWidget::mouseMoveEvent(QMouseEvent *event) {
+    QWidget::mouseMoveEvent(event);
+    hovered = rect().contains(event->pos());
+}
+
+void GridWidget::mousePressEvent(QMouseEvent *event) {
+    QWidget::mousePressEvent(event);
+    if (event->button() != Qt::LeftButton) return;
+    pressed = true;
+    update();
+}
+
+void GridWidget::mouseReleaseEvent(QMouseEvent *event) {
+    QWidget::mouseReleaseEvent(event);
+    if (event->button() != Qt::LeftButton) return;
+    pressed = false;
+    if (hovered) emit activated();
+}
+
+void GridWidget::leaveEvent(QEvent *event) {
+    QWidget::leaveEvent(event);
+    hovered = false;
+    update();
+}
+
+void GridWidget::enterEvent(QEvent *event) {
+    QWidget::enterEvent(event);
+    hovered = true;
+    update();
+}
+
+void GridWidget::keyReleaseEvent(QKeyEvent *event) {
+    if (event->key() == Qt::Key_Return)
+        emit activated();
+}
diff --git a/src/gridwidget.h b/src/gridwidget.h
new file mode 100644 (file)
index 0000000..25756ca
--- /dev/null
@@ -0,0 +1,48 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef GRIDWIDGET_H
+#define GRIDWIDGET_H
+
+#include <QtGui>
+
+class GridWidget : public QWidget {
+
+    Q_OBJECT
+
+public:
+    GridWidget(QWidget *parent = 0);
+    
+signals:
+    void activated();
+    
+protected:
+    void mouseMoveEvent(QMouseEvent *event);
+    void mousePressEvent(QMouseEvent *event);
+    void mouseReleaseEvent(QMouseEvent *event);
+    void enterEvent(QEvent *event);
+    void leaveEvent(QEvent *event);
+    void keyReleaseEvent(QKeyEvent *event);
+    
+    bool hovered;
+    bool pressed;
+};
+
+#endif // GRIDWIDGET_H
index 4ac091dbba8abc6bedbecc701e00d7832c32210d..a3b54350e04adaa4b45d40ae0642f4215276dfa9 100644 (file)
@@ -1,15 +1,40 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "homeview.h"
 #include "segmentedcontrol.h"
 #include "searchview.h"
 #include "standardfeedsview.h"
-#include "userview.h"
+#include "channelview.h"
 #include "mainwindow.h"
 #include "mediaview.h"
 #include "ytstandardfeed.h"
+#include "utils.h"
+#include "channelaggregator.h"
+#ifdef APP_MAC
+#include "macutils.h"
+#endif
 
-HomeView::HomeView(QWidget *parent) : QWidget(parent) {
-    standardFeedsView = 0;
-    userView = 0;
+HomeView::HomeView(QWidget *parent) : QWidget(parent),
+    standardFeedsView(0),
+    channelsView(0) {
 
     QBoxLayout *layout = new QVBoxLayout(this);
     layout->setMargin(0);
@@ -28,7 +53,7 @@ HomeView::HomeView(QWidget *parent) : QWidget(parent) {
 }
 
 void HomeView::setupBar() {
-    bar = new SegmentedControl(this);
+    bar = new SegmentedControl();
 
     QAction *action = new QAction(tr("Search"), this);
     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_1));
@@ -43,22 +68,17 @@ void HomeView::setupBar() {
     connect(action, SIGNAL(triggered()), SLOT(showStandardFeeds()));
     bar->addAction(action);
 
-    /*
-    action = new QAction(tr("User"), this);
-    action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_3));
-    action->setStatusTip(tr("Your favorite videos, subscriptions and playlists"));
-    connect(action, SIGNAL(triggered()), SLOT(showUser()));
-    bar->addAction(action);
-    */
+    subscriptionsAction = new QAction(tr("Subscriptions"), this);
+    subscriptionsAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_3));
+    subscriptionsAction->setStatusTip(tr("Channel subscriptions"));
+    connect(subscriptionsAction, SIGNAL(triggered()), SLOT(showChannels()));
+    bar->addAction(subscriptionsAction);
+    connect(ChannelAggregator::instance(), SIGNAL(unwatchedCountChanged(int)),
+            SLOT(unwatchedCountChanged(int)));
 
     foreach (QAction* action, bar->actions()) {
-        // action->setEnabled(false);
         addAction(action);
-        action->setAutoRepeat(false);
-        if (!action->shortcut().isEmpty())
-            action->setStatusTip(
-                        action->statusTip() + " (" +
-                        action->shortcut().toString(QKeySequence::NativeText) + ")");
+        Utils::setupAction(action);
     }
 }
 
@@ -70,8 +90,6 @@ void HomeView::showWidget(QWidget *widget) {
     stackedWidget->setCurrentWidget(widget);
     widget->setEnabled(true);
     QMetaObject::invokeMethod(widget, "appear");
-    bar->setCheckedAction(stackedWidget->currentIndex());
-    // autoChosenView = false;
     widget->setFocus();
 }
 
@@ -85,6 +103,7 @@ void HomeView::disappear() {
 
 void HomeView::showSearch() {
     showWidget(searchView);
+    bar->setCheckedAction(0);
 }
 
 void HomeView::showStandardFeeds() {
@@ -96,12 +115,31 @@ void HomeView::showStandardFeeds() {
         stackedWidget->addWidget(standardFeedsView);
     }
     showWidget(standardFeedsView);
+    bar->setCheckedAction(1);
+}
+
+void HomeView::showChannels() {
+    if (!channelsView) {
+        channelsView = new ChannelView();
+        connect(channelsView, SIGNAL(activated(VideoSource*)),
+                MainWindow::instance(),
+                SLOT(showMedia(VideoSource*)));
+        stackedWidget->addWidget(channelsView);
+    }
+    showWidget(channelsView);
+    bar->setCheckedAction(2);
 }
 
-void HomeView::showUser() {
-    if (!userView) {
-        userView = new UserView(this);
-        stackedWidget->addWidget(userView);
+void HomeView::unwatchedCountChanged(int count) {
+    QVariant v;
+    QString s;
+    if (count > 0) {
+        s = QString::number(count);
+        v = s;
     }
-    showWidget(userView);
+    subscriptionsAction->setProperty("notifyCount", v);
+    bar->update();
+#ifdef APP_MAC
+    mac::dockBadge(s);
+#endif
 }
index 2f9a8b114ba77b4c29b4a93f8fecb98f014ce6de..168a6105716b682fb0d38a98ee8adbb5ced0e5b0 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef HOMEVIEW_H
 #define HOMEVIEW_H
 
@@ -7,7 +27,7 @@
 class SegmentedControl;
 class SearchView;
 class StandardFeedsView;
-class UserView;
+class ChannelView;
 
 class HomeView : public QWidget, public View  {
 
@@ -26,10 +46,11 @@ public:
     SearchView* getSearchView() { return searchView; }
     StandardFeedsView* getStandardFeedsView() { return standardFeedsView; }
 
-public slots:
+private slots:
     void showSearch();
     void showStandardFeeds();
-    void showUser();
+    void showChannels();
+    void unwatchedCountChanged(int count);
 
 private:
     void setupBar();
@@ -38,7 +59,9 @@ private:
 
     SearchView *searchView;
     StandardFeedsView *standardFeedsView;
-    UserView* userView;
+    ChannelView* channelsView;
+
+    QAction *subscriptionsAction;
 
 };
 
diff --git a/src/jsfunctions.cpp b/src/jsfunctions.cpp
new file mode 100644 (file)
index 0000000..5374224
--- /dev/null
@@ -0,0 +1,103 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "jsfunctions.h"
+#include "networkaccess.h"
+#include <QDesktopServices>
+#include "constants.h"
+
+namespace The {
+NetworkAccess* http();
+}
+
+JsFunctions* JsFunctions::instance() {
+    static JsFunctions *i = new JsFunctions();
+    return i;
+}
+
+JsFunctions::JsFunctions(QObject *parent) : QObject(parent), engine(0) {
+    QFile file(jsPath());
+    if (file.exists()) {
+        if (file.open(QIODevice::ReadOnly | QIODevice::Text))
+            parseJs(QString::fromUtf8(file.readAll()));
+        else
+            qWarning() << file.errorString() << file.fileName();
+        QFileInfo info(file);
+        if (info.lastModified().toTime_t() < QDateTime::currentDateTime().toTime_t() - 86400)
+            loadJs();
+    } else {
+        QFile resFile(QLatin1String(":/") + jsFilename());
+        resFile.open(QIODevice::ReadOnly | QIODevice::Text);
+        parseJs(QString::fromUtf8(resFile.readAll()));
+        loadJs();
+    }
+}
+
+void JsFunctions::parseJs(const QString &js) {
+    if (js.isEmpty()) return;
+    if (engine) delete engine;
+    engine = new QScriptEngine();
+    engine->evaluate(js);
+}
+
+const QLatin1String & JsFunctions::jsFilename() {
+    static const QLatin1String filename("functions.js");
+    return filename;
+}
+
+const QString & JsFunctions::jsPath() {
+    static const QString path(
+                QDesktopServices::storageLocation(QDesktopServices::DataLocation)
+                + "/" + jsFilename());
+    return path;
+}
+
+void JsFunctions::loadJs() {
+    QUrl url(QLatin1String(Constants::WEBSITE) + "-ws/" + jsFilename());
+    NetworkReply* reply = The::http()->get(url);
+    connect(reply, SIGNAL(data(QByteArray)), SLOT(gotJs(QByteArray)));
+    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorJs(QNetworkReply*)));
+}
+
+void JsFunctions::gotJs(QByteArray bytes) {
+    parseJs(QString::fromUtf8(bytes));
+    QFile file(jsPath());
+    if (!file.open(QIODevice::WriteOnly))
+        qWarning() << file.errorString() << file.fileName();
+    QDataStream stream(&file);
+    stream.writeRawData(bytes.constData(), bytes.size());
+}
+
+void JsFunctions::errorJs(QNetworkReply *reply) {
+    qWarning() << "Cannot get" << jsFilename() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()
+                  << reply->url().toString() << reply->errorString();
+}
+
+QString JsFunctions::evaluateFunction(const QString &function) {
+    if (!engine) return QString();
+    QScriptValue value = engine->evaluate(function);
+    if (value.isUndefined())
+        qWarning() << "Undefined result for" << function;
+    return value.toString();
+}
+
+QString JsFunctions::decryptSignature(const QString &s) {
+    return evaluateFunction("decryptSignature('" + s + "')");
+}
diff --git a/src/jsfunctions.h b/src/jsfunctions.h
new file mode 100644 (file)
index 0000000..0f8ff21
--- /dev/null
@@ -0,0 +1,51 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef JSFUNCTIONS_H
+#define JSFUNCTIONS_H
+
+#include <QtCore>
+#include <QtScript>
+#include <QtNetwork>
+
+class JsFunctions : public QObject {
+
+    Q_OBJECT
+
+public:
+    static JsFunctions* instance();
+    QString decryptSignature(const QString &s);
+
+private slots:
+    void gotJs(QByteArray bytes);
+    void errorJs(QNetworkReply *reply);
+
+private:
+    JsFunctions(QObject *parent = 0);
+    static const QLatin1String &jsFilename();
+    static const QString &jsPath();
+    void loadJs();
+    void parseJs(const QString &js);
+    QString evaluateFunction(const QString &function);
+
+    QScriptEngine *engine;
+};
+
+#endif // JSFUNCTIONS_H
index 2b04b230bd007225bdf55dbcebcdcc5bb1738459..79efe0d3d0431477d1d84527781f54536dad9d1b 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "loadingwidget.h"
 
 LoadingWidget::LoadingWidget(QWidget *parent) : QWidget(parent) {
@@ -9,7 +29,7 @@ LoadingWidget::LoadingWidget(QWidget *parent) : QWidget(parent) {
 
     setAutoFillBackground(true);
 
-    QBoxLayout *layout = new QVBoxLayout();
+    QBoxLayout *layout = new QVBoxLayout(this);
 
     titleLabel = new QLabel(this);
     titleLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
@@ -19,15 +39,12 @@ LoadingWidget::LoadingWidget(QWidget *parent) : QWidget(parent) {
     titleLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
     layout->addWidget(titleLabel);
 
-    QFont biggerFont;
-    biggerFont.setPointSize(biggerFont.pointSize()*2);
-
     descriptionLabel = new QLabel(this);
     descriptionLabel->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
     descriptionLabel->setPalette(p);
     descriptionLabel->setForegroundRole(QPalette::Text);
     descriptionLabel->setWordWrap(true);
-    descriptionLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+    descriptionLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Expanding);
     layout->addWidget(descriptionLabel);
 
     progressBar = new QProgressBar(this);
@@ -40,15 +57,20 @@ LoadingWidget::LoadingWidget(QWidget *parent) : QWidget(parent) {
     layout->addWidget(progressBar);
 
     setMouseTracking(true);
-
-    setLayout(layout);
 }
 
 void LoadingWidget::setVideo(Video *video) {
 
     QFont titleFont;
+#ifdef APP_MAC
+    titleFont.setFamily("Helvetica");
+#endif
+#ifdef APP_WIN
+    titleFont.setFamily("Segoe UI Light");
+#endif
     int smallerDimension = qMin(height(), width());
     titleFont.setPixelSize(smallerDimension / 12);
+    titleFont.setHintingPreference(QFont::PreferNoHinting);
     QFontMetrics fm(titleFont);
     int textHeightInPixels = fm.height();
     int spacing = textHeightInPixels / 2;
@@ -64,14 +86,15 @@ void LoadingWidget::setVideo(Video *video) {
     titleLabel->setVisible(window()->height() > 100);
     titleLabel->setFont(titleFont);
 
-    static const int maxVideoLength = 256;
+    static const int maxDescLength = 256;
     QString videoDesc = video->description();
-    if (videoDesc.length() > maxVideoLength) {
-        videoDesc.truncate(maxVideoLength-1);
+    if (videoDesc.length() > maxDescLength) {
+        videoDesc.truncate(maxDescLength-1);
         videoDesc.append("...");
     }
     QFont descFont(titleFont);
     descFont.setPixelSize(descFont.pixelSize() / 2);
+    descFont.setHintingPreference(QFont::PreferNoHinting);
     descriptionLabel->setFont(descFont);
     descriptionLabel->setText(videoDesc);
     bool hiddenDesc = height() < 400;
index 96a8b44f790d2f8b3460758541578ad8a99479c3..37021f41ebba99b0b349c4c1cbed7ba2e3bd66b4 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef LOADINGWIDGET_H
 #define LOADINGWIDGET_H
 
index c1276bd61d2ff4644da492f368484611086fbaa8..95e9f128e4ee03dde7f3b782c0ec2ed89cf5b10f 100644 (file)
@@ -1,63 +1,36 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include <QtGui>
 #include <qtsingleapplication.h>
 #include "constants.h"
 #include "mainwindow.h"
 #include "searchparams.h"
 #include "utils.h"
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
 #include "extra.h"
 #endif
 #ifdef Q_WS_MAC
 #include "mac_startup.h"
 #endif
 
-#ifdef Q_WS_X11
-QString getThemeName() {
-    QString themeName;
-
-    QProcess process;
-    process.start("dconf",
-                  QStringList() << "read" << "/org/gnome/desktop/interface/gtk-theme");
-    if (process.waitForFinished()) {
-        themeName = process.readAllStandardOutput();
-        themeName = themeName.trimmed();
-        themeName.remove('\'');
-        if (!themeName.isEmpty()) return themeName;
-    }
-
-    QString rcPaths = QString::fromLocal8Bit(qgetenv("GTK2_RC_FILES"));
-    if (!rcPaths.isEmpty()) {
-        QStringList paths = rcPaths.split(QLatin1String(":"));
-        foreach (const QString &rcPath, paths) {
-            if (!rcPath.isEmpty()) {
-                QFile rcFile(rcPath);
-                if (rcFile.exists() && rcFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
-                    QTextStream in(&rcFile);
-                    while(!in.atEnd()) {
-                        QString line = in.readLine();
-                        if (line.contains(QLatin1String("gtk-theme-name"))) {
-                            line = line.right(line.length() - line.indexOf(QLatin1Char('=')) - 1);
-                            line.remove(QLatin1Char('\"'));
-                            line = line.trimmed();
-                            themeName = line;
-                            break;
-                        }
-                    }
-                }
-            }
-            if (!themeName.isEmpty())
-                break;
-        }
-    }
-
-    // Fall back to gconf
-    if (themeName.isEmpty())
-        themeName = QGtkStyle::getGConfString(QLatin1String("/desktop/gnome/interface/gtk_theme"));
-
-    return themeName;
-}
-#endif
-
 int main(int argc, char **argv) {
 
 #ifdef Q_WS_MAC
@@ -76,18 +49,14 @@ int main(int argc, char **argv) {
     app.setApplicationName(QLatin1String(Constants::NAME));
     app.setOrganizationName(QLatin1String(Constants::ORG_NAME));
     app.setOrganizationDomain(QLatin1String(Constants::ORG_DOMAIN));
+#ifndef APP_WIN
     app.setWheelScrollLines(1);
+#endif
     app.setAttribute(Qt::AA_DontShowIconsInMenus);
 
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
     Extra::appSetup(&app);
 #else
-    bool isGtk = app.style()->metaObject()->className() == QLatin1String("QGtkStyle");
-    if (isGtk) {
-        app.setProperty("gtk", isGtk);
-        QString themeName = getThemeName();
-        app.setProperty("style", themeName);
-    }
     QFile cssFile(":/style.css");
     cssFile.open(QFile::ReadOnly);
     QString styleSheet = QLatin1String(cssFile.readAll());
@@ -117,15 +86,9 @@ int main(int argc, char **argv) {
     QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
 
     MainWindow mainWin;
-    mainWin.setWindowTitle(Constants::NAME);
-
-#ifndef Q_WS_X11
-    Extra::windowSetup(&mainWin);
-#else
-    mainWin.setProperty("style", app.property("style"));
-#endif
+    mainWin.show();
 
-// no window icon on Mac
+    // no window icon on Mac
 #ifndef APP_MAC
     QIcon appIcon;
     if (QDir(dataDir).exists()) {
@@ -135,7 +98,8 @@ int main(int argc, char **argv) {
         const int iconSizes [] = { 16, 22, 32, 48, 64, 128, 256, 512 };
         for (int i = 0; i < 8; i++) {
             QString size = QString::number(iconSizes[i]);
-            QString png = dataDir + "/" + size + "x" + size + "/" + Constants::UNIX_NAME + ".png";
+            QString png = dataDir + "/" + size + "x" + size + "/" +
+                    Constants::UNIX_NAME + ".png";
             appIcon.addFile(png, QSize(iconSizes[i], iconSizes[i]));
         }
     }
@@ -145,26 +109,13 @@ int main(int argc, char **argv) {
     mainWin.setWindowIcon(appIcon);
 #endif
 
-    mainWin.connect(&app, SIGNAL(messageReceived(const QString &)), &mainWin, SLOT(messageReceived(const QString &)));
+    mainWin.connect(&app, SIGNAL(messageReceived(const QString &)),
+                    &mainWin, SLOT(messageReceived(const QString &)));
     app.setActivationWindow(&mainWin, true);
 
     // all string literals are UTF-8
     // QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
 
-    if (app.arguments().size() > 1) {
-        QString query = app.arguments().at(1);
-        if (query.startsWith(QLatin1String("--"))) {
-            mainWin.messageReceived(query);
-            return 0;
-        } else {
-            SearchParams *searchParams = new SearchParams();
-            searchParams->setKeywords(query);
-            mainWin.showMedia(searchParams);
-        }
-    }
-
-    mainWin.show();
-
     // Seed random number generator
     qsrand(QDateTime::currentDateTime().toTime_t());
 
index e65b6b0ce2487700567f2c247eaf7c6c11f36122..913da2f06a747aff1ffbdb5dcb6d78e7a75c97ec 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "mainwindow.h"
 #include "homeview.h"
 #include "searchview.h"
@@ -33,7 +53,7 @@
 #include "searchlineedit.h"
 #endif
 #include <iostream>
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
 #include "extra.h"
 #include "updatedialog.h"
 #endif
 #include "ytregions.h"
 #include "regionsview.h"
 #include "standardfeedsview.h"
+#include "channelaggregator.h"
+#include "database.h"
+#include "videoareawidget.h"
+#include "jsfunctions.h"
 
 static MainWindow *singleton = 0;
 
@@ -72,7 +96,7 @@ MainWindow::MainWindow() :
     setCentralWidget(views);
 
     // views
-    homeView = new HomeView(this);
+    homeView = new HomeView();
     views->addWidget(homeView);
 
     // TODO make this lazy
@@ -86,15 +110,9 @@ MainWindow::MainWindow() :
     createToolBars();
     createStatusBar();
 
-    initPhonon();
-    mediaView->setMediaObject(mediaObject);
-
     // remove that useless menu/toolbar context menu
     this->setContextMenuPolicy(Qt::NoContextMenu);
 
-    // mediaView init stuff thats needs actions
-    mediaView->initialize();
-
     // event filter to block ugly toolbar tooltips
     qApp->installEventFilter(this);
 
@@ -104,10 +122,8 @@ MainWindow::MainWindow() :
     readSettings();
 
     // fix stacked widget minimum size
-    for (int i = 0; i < views->count(); i++) {
-        QWidget* view = views->widget(i);
-        if (view) view->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
-    }
+    for (int i = 0; i < views->count(); i++)
+        views->widget(i)->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
     setMinimumWidth(0);
 
     // show the initial view
@@ -120,6 +136,37 @@ MainWindow::MainWindow() :
 
     views->show();
 
+#ifdef APP_EXTRA
+    Extra::windowSetup(this);
+#endif
+
+    qApp->processEvents();
+    QTimer::singleShot(50, this, SLOT(lazyInit()));
+}
+
+MainWindow::~MainWindow() {
+    delete history;
+}
+
+void MainWindow::lazyInit() {
+    initPhonon();
+    mediaView->initialize();
+    mediaView->setMediaObject(mediaObject);
+    qApp->processEvents();
+
+    // CLI
+    if (qApp->arguments().size() > 1) {
+        QString query = qApp->arguments().at(1);
+        if (query.startsWith(QLatin1String("--"))) {
+            messageReceived(query);
+            qApp->quit();
+        } else {
+            SearchParams *searchParams = new SearchParams();
+            searchParams->setKeywords(query);
+            showMedia(searchParams);
+        }
+    }
+
     // Global shortcuts
     GlobalShortcuts &shortcuts = GlobalShortcuts::instance();
 #ifdef Q_WS_X11
@@ -147,12 +194,11 @@ MainWindow::MainWindow() :
     mouseTimer->setSingleShot(true);
     connect(mouseTimer, SIGNAL(timeout()), SLOT(hideMouse()));
 
-    QTimer::singleShot(0, this, SLOT(checkForUpdate()));
+    JsFunctions::instance();
 
-}
+    checkForUpdate();
 
-MainWindow::~MainWindow() {
-    delete history;
+    ChannelAggregator::instance()->start();
 }
 
 void MainWindow::changeEvent(QEvent* event) {
@@ -223,9 +269,6 @@ void MainWindow::createActions() {
                 tr("P&revious"), this);
     skipBackwardAct->setStatusTip(tr("Go back to the previous track"));
     skipBackwardAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Left));
-#if QT_VERSION >= 0x040600
-    skipBackwardAct->setPriority(QAction::LowPriority);
-#endif
     skipBackwardAct->setEnabled(false);
     actions->insert("previous", skipBackwardAct);
     connect(skipBackwardAct, SIGNAL(triggered()), mediaView, SLOT(skipBackward()));
@@ -254,9 +297,7 @@ void MainWindow::createActions() {
 #endif
     fullscreenAct->setShortcuts(fsShortcuts);
     fullscreenAct->setShortcutContext(Qt::ApplicationShortcut);
-#if QT_VERSION >= 0x040600
     fullscreenAct->setPriority(QAction::LowPriority);
-#endif
     actions->insert("fullscreen", fullscreenAct);
     connect(fullscreenAct, SIGNAL(triggered()), this, SLOT(fullscreen()));
 
@@ -382,13 +423,18 @@ void MainWindow::createActions() {
     volumeMuteAct = new QAction(this);
     volumeMuteAct->setIcon(Utils::icon("audio-volume-high"));
     volumeMuteAct->setStatusTip(tr("Mute volume"));
-    volumeMuteAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_E));
+    volumeMuteAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_K));
     actions->insert("volume-mute", volumeMuteAct);
     connect(volumeMuteAct, SIGNAL(triggered()), SLOT(volumeMute()));
     addAction(volumeMuteAct);
 
     QAction *definitionAct = new QAction(this);
+#ifdef Q_WS_X11
+    definitionAct->setIcon(Utils::tintedIcon("video-display", QColor(0, 0, 0),
+                                             QList<QSize>() << QSize(16, 16)));
+#else
     definitionAct->setIcon(Utils::icon("video-display"));
+#endif
     definitionAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_D));
     /*
     QMenu *definitionMenu = new QMenu(this);
@@ -426,9 +472,7 @@ void MainWindow::createActions() {
 #endif
     action->setIcon(Utils::icon("document-save"));
     action->setEnabled(false);
-#if QT_VERSION >= 0x040600
     action->setPriority(QAction::LowPriority);
-#endif
     connect(action, SIGNAL(triggered()), mediaView, SLOT(downloadVideo()));
     actions->insert("download", action);
 
@@ -439,25 +483,37 @@ void MainWindow::createActions() {
     connect(action, SIGNAL(triggered()), mediaView, SLOT(snapshot()));
     */
 
+    action = new QAction(tr("&Subscribe to Channel"), this);
+    action->setProperty("originalText", action->text());
+    action->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S));
+    action->setEnabled(false);
+    connect(action, SIGNAL(triggered()), mediaView, SLOT(toggleSubscription()));
+    actions->insert("subscribe-channel", action);
+    mediaView->updateSubscriptionAction(0, false);
+
     QString shareTip = tr("Share the current video using %1");
 
     action = new QAction("&Twitter", this);
     action->setStatusTip(shareTip.arg("Twitter"));
+    action->setEnabled(false);
     actions->insert("twitter", action);
     connect(action, SIGNAL(triggered()), mediaView, SLOT(shareViaTwitter()));
 
     action = new QAction("&Facebook", this);
     action->setStatusTip(shareTip.arg("Facebook"));
+    action->setEnabled(false);
     actions->insert("facebook", action);
     connect(action, SIGNAL(triggered()), mediaView, SLOT(shareViaFacebook()));
 
     action = new QAction("&Buffer", this);
     action->setStatusTip(shareTip.arg("Buffer"));
+    action->setEnabled(false);
     actions->insert("buffer", action);
     connect(action, SIGNAL(triggered()), mediaView, SLOT(shareViaBuffer()));
 
     action = new QAction(tr("&Email"), this);
     action->setStatusTip(shareTip.arg(tr("Email")));
+    action->setEnabled(false);
     actions->insert("email", action);
     connect(action, SIGNAL(triggered()), mediaView, SLOT(shareViaEmail()));
 
@@ -506,9 +562,7 @@ void MainWindow::createActions() {
     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R));
     action->setStatusTip(tr("Watch videos related to the current one"));
     action->setEnabled(false);
-#if QT_VERSION >= 0x040600
     action->setPriority(QAction::LowPriority);
-#endif
     connect(action, SIGNAL(triggered()), mediaView, SLOT(relatedVideos()));
     actions->insert("related-videos", action);
 
@@ -518,24 +572,11 @@ void MainWindow::createActions() {
 
     // common action properties
     foreach (QAction *action, actions->values()) {
-
         // add actions to the MainWindow so that they work
         // when the menu is hidden
         addAction(action);
-
-        // never autorepeat.
-        // unexperienced users tend to keep keys pressed for a "long" time
-        action->setAutoRepeat(false);
-
-        // set to something more meaningful then the toolbar text
-        if (!action->statusTip().isEmpty())
-            action->setToolTip(action->statusTip());
-
-        // show keyboard shortcuts in the status bar
-        if (!action->shortcut().isEmpty())
-            action->setStatusTip(action->statusTip() + " (" + action->shortcut().toString(QKeySequence::NativeText) + ")");
+        Utils::setupAction(action);
     }
-
 }
 
 void MainWindow::createMenus() {
@@ -586,7 +627,9 @@ void MainWindow::createMenus() {
     videoMenu->addSeparator();
     videoMenu->addAction(webPageAct);
     videoMenu->addSeparator();
+    videoMenu->addAction(The::globalActions()->value("subscribe-channel"));
 #ifndef APP_NO_DOWNLOADS
+    videoMenu->addSeparator();
     videoMenu->addAction(The::globalActions()->value("download"));
     // videoMenu->addAction(copyLinkAct);
 #endif
@@ -627,7 +670,7 @@ void MainWindow::createToolBars() {
     setUnifiedTitleAndToolBarOnMac(true);
 
     mainToolBar = new QToolBar(this);
-    mainToolBar->setToolButtonStyle(Qt::ToolButtonFollowStyle);
+    mainToolBar->setToolButtonStyle(Qt::ToolButtonIconOnly);
     mainToolBar->setFloatable(false);
     mainToolBar->setMovable(false);
 
@@ -764,6 +807,9 @@ void MainWindow::showStopAfterThisInStatusBar(bool show) {
 }
 
 void MainWindow::showActionInStatusBar(QAction* action, bool show) {
+#ifdef APP_EXTRA
+    Extra::fadeInWidget(statusBar(), statusBar());
+#endif
     if (show) {
         statusToolBar->insertAction(statusToolBar->actions().first(), action);
     } else {
@@ -782,8 +828,6 @@ void MainWindow::readSettings() {
         setGeometry(100, 100, 1000, 500);
     }
     setDefinitionMode(settings.value("definition", VideoDefinition::getDefinitionNames().first()).toString());
-    audioOutput->setVolume(settings.value("volume", 1).toDouble());
-    // audioOutput->setMuted(settings.value("volumeMute").toBool());
     The::globalActions()->value("manualplay")->setChecked(settings.value("manualplay", false).toBool());
 }
 
@@ -824,7 +868,6 @@ void MainWindow::showWidget(QWidget* widget, bool transition) {
     View* newView = dynamic_cast<View *> (widget);
     if (newView) {
         widget->setEnabled(true);
-        newView->appear();
         QHash<QString,QVariant> metadata = newView->metadata();
         QString title = metadata.value("title").toString();
         if (title.isEmpty()) title = Constants::NAME;
@@ -832,37 +875,26 @@ void MainWindow::showWidget(QWidget* widget, bool transition) {
         setWindowTitle(title);
         QString desc = metadata.value("description").toString();
         if (!desc.isEmpty()) showMessage(desc);
+        newView->appear();
+
+        // dynamic view actions
+        foreach (QAction* action, viewActions)
+            showActionInStatusBar(action, false);
+        viewActions = newView->getViewActions();
+        foreach (QAction* action, viewActions)
+            showActionInStatusBar(action, true);
+
     }
 
     const bool isMediaView = widget == mediaView;
 
     stopAct->setEnabled(isMediaView);
     compactViewAct->setEnabled(isMediaView);
-    webPageAct->setEnabled(isMediaView);
-    copyPageAct->setEnabled(isMediaView);
-    copyLinkAct->setEnabled(isMediaView);
-    findVideoPartsAct->setEnabled(isMediaView);
     toolbarSearch->setEnabled(widget == homeView || isMediaView || widget == downloadView);
 
-    if (widget == homeView) {
-        skipAct->setEnabled(false);
-        The::globalActions()->value("previous")->setEnabled(false);
-        The::globalActions()->value("download")->setEnabled(false);
-        The::globalActions()->value("stopafterthis")->setEnabled(false);
-        The::globalActions()->value("related-videos")->setEnabled(false);
-        The::globalActions()->value("refine-search")->setEnabled(false);
-    }
-
-    The::globalActions()->value("twitter")->setEnabled(isMediaView);
-    The::globalActions()->value("facebook")->setEnabled(isMediaView);
-    The::globalActions()->value("buffer")->setEnabled(isMediaView);
-    The::globalActions()->value("email")->setEnabled(isMediaView);
-
     aboutAct->setEnabled(widget != aboutView);
     The::globalActions()->value("downloads")->setChecked(widget == downloadView);
 
-    setUpdatesEnabled(true);
-
     QWidget *oldWidget = views->currentWidget();
     if (oldWidget)
         oldWidget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
@@ -870,8 +902,11 @@ void MainWindow::showWidget(QWidget* widget, bool transition) {
     views->setCurrentWidget(widget);
     widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 
-#ifndef Q_WS_X11
-    if (transition && oldWidget != mediaView)
+    setUpdatesEnabled(true);
+
+#ifdef APP_EXTRA
+    if (transition && (oldWidget != mediaView ||
+                       !mediaView->getVideoArea()->isVideoShown()))
         Extra::fadeInWidget(oldWidget, widget);
 #endif
 
@@ -913,7 +948,11 @@ void MainWindow::quit() {
     if (!m_fullscreen && !compactViewAct->isChecked()) {
         writeSettings();
     }
+    mediaView->stop();
     Temporary::deleteAll();
+    ChannelAggregator::instance()->stop();
+    ChannelAggregator::instance()->cleanup();
+    Database::shutdown();
     qApp->quit();
 }
 
@@ -960,13 +999,13 @@ void MainWindow::showHome(bool transition) {
 }
 
 void MainWindow::showMedia(SearchParams *searchParams) {
-    mediaView->search(searchParams);
     showWidget(mediaView);
+    mediaView->search(searchParams);
 }
 
 void MainWindow::showMedia(VideoSource *videoSource) {
-    mediaView->setVideoSource(videoSource);
     showWidget(mediaView);
+    mediaView->setVideoSource(videoSource);
 }
 
 void MainWindow::stateChanged(Phonon::State newState, Phonon::State /* oldState */) {
@@ -1102,9 +1141,11 @@ void MainWindow::updateUIForFullscreen() {
         fullscreenAct->setShortcuts(QList<QKeySequence>(fsShortcuts)
                                     << QKeySequence(Qt::Key_Escape));
         fullscreenAct->setText(tr("Leave &Full Screen"));
+        fullscreenAct->setIcon(Utils::icon("view-restore"));
     } else {
         fullscreenAct->setShortcuts(fsShortcuts);
         fullscreenAct->setText(fsText);
+        fullscreenAct->setIcon(Utils::icon("view-fullscreen"));
     }
 
     // No compact view action when in full screen
@@ -1236,6 +1277,9 @@ void MainWindow::initPhonon() {
     connect(audioOutput, SIGNAL(mutedChanged(bool)), this, SLOT(volumeMutedChanged(bool)));
     volumeSlider->setAudioOutput(audioOutput);
     Phonon::createPath(mediaObject, audioOutput);
+    QSettings settings;
+    audioOutput->setVolume(settings.value("volume", 1).toDouble());
+    // audioOutput->setMuted(settings.value("volumeMute").toBool());
 }
 
 void MainWindow::tick(qint64 time) {
index 7cfe7ad9c0ce77d2a18a4cbe689ad80dc7693e63..73f09b578c29ea6273976a1a867ceec211fd25a0 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef MAINWINDOW_H
 #define MAINWINDOW_H
 
@@ -31,6 +51,7 @@ public:
     MediaView* getMediaView() { return mediaView; }
     QToolButton* getRegionButton() { return regionButton; }
     QAction* getRegionAction() { return regionAction; }
+    void showActionInStatusBar(QAction*, bool show);
 
 public slots:
     void showHome(bool transition = true);
@@ -61,6 +82,7 @@ protected:
     void resizeEvent(QResizeEvent *);
 
 private slots:
+    void lazyInit();
     void checkForUpdate();
     void gotNewVersion(QString version);
     void visitSite();
@@ -96,7 +118,6 @@ private slots:
     void toggleDownloads(bool show);
 
     void floatOnTop(bool);
-    void showActionInStatusBar(QAction*, bool show);
     void showStopAfterThisInStatusBar(bool show);
 
     void hideMouse();
@@ -117,6 +138,7 @@ private:
     // view mechanism
     QStackedWidget *views;
     QStack<QWidget*> *history;
+    QList<QAction*> viewActions;
 
     // view widgets
     HomeView *homeView;
index 5caf3da828597525bcc3f63f8f99376bcdc9ae5b..1217e3033cd19b9ba512632b619122b4930c3619 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "mediaview.h"
 #include "playlistmodel.h"
 #include "playlistview.h"
 #include "refinesearchwidget.h"
 #include "sidebarwidget.h"
 #include "sidebarheader.h"
-#ifdef APP_MAC
-#include "macfullscreen.h"
-#include "macutils.h"
-#endif
 #ifdef APP_ACTIVATION
 #include "activation.h"
 #endif
+#ifdef APP_EXTRA
+#include "extra.h"
+#endif
 #include "videosource.h"
 #include "ytsearch.h"
 #include "searchparams.h"
 #include "ytsinglevideosource.h"
+#include "channelaggregator.h"
+#include "utils.h"
+#include "ytuser.h"
 
 namespace The {
 NetworkAccess* http();
 QHash<QString, QAction*>* globalActions();
-QMap<QString, QMenu*>* globalMenus();
+QHash<QString, QMenu*>* globalMenus();
 QNetworkAccessManager* networkAccessManager();
 }
 
@@ -38,15 +60,15 @@ MediaView* MediaView::instance() {
     return i;
 }
 
-MediaView::MediaView(QWidget *parent) : QWidget(parent) {
-    reallyStopped = false;
-    downloadItem = 0;
+MediaView::MediaView(QWidget *parent) : QWidget(parent),
+    stopped(false),
+    downloadItem(0) { }
 
+void MediaView::initialize() {
     QBoxLayout *layout = new QVBoxLayout(this);
     layout->setMargin(0);
 
     splitter = new MiniSplitter();
-    splitter->setChildrenCollapsible(false);
 
     playlistView = new PlaylistView(this);
     // respond to the user doubleclicking a playlist item
@@ -78,7 +100,7 @@ MediaView::MediaView(QWidget *parent) : QWidget(parent) {
     splitter->addWidget(sidebar);
 
     videoAreaWidget = new VideoAreaWidget(this);
-    videoAreaWidget->setMinimumSize(320,240);
+    // videoAreaWidget->setMinimumSize(320,240);
     videoWidget = new Phonon::VideoWidget(this);
     videoAreaWidget->setVideoWidget(videoWidget);
     videoAreaWidget->setListModel(playlistModel);
@@ -88,14 +110,15 @@ MediaView::MediaView(QWidget *parent) : QWidget(parent) {
 
     splitter->addWidget(videoAreaWidget);
 
-    layout->addWidget(splitter);
-
-    splitter->setStretchFactor(0, 1);
-    splitter->setStretchFactor(1, 5);
+    splitter->setStretchFactor(0, 0);
+    splitter->setStretchFactor(1, 8);
 
     // restore splitter state
     QSettings settings;
     splitter->restoreState(settings.value("splitter").toByteArray());
+    splitter->setChildrenCollapsible(false);
+
+    layout->addWidget(splitter);
 
     errorTimer = new QTimer(this);
     errorTimer->setSingleShot(true);
@@ -108,15 +131,28 @@ MediaView::MediaView(QWidget *parent) : QWidget(parent) {
     connect(demoTimer, SIGNAL(timeout()), SLOT(demoMessage()));
 #endif
 
-}
-
-void MediaView::initialize() {
     connect(videoAreaWidget, SIGNAL(doubleClicked()),
             The::globalActions()->value("fullscreen"), SLOT(trigger()));
 
     QAction* refineSearchAction = The::globalActions()->value("refine-search");
     connect(refineSearchAction, SIGNAL(toggled(bool)),
             sidebar, SLOT(toggleRefineSearch(bool)));
+
+    currentVideoActions
+            << The::globalActions()->value("webpage")
+            << The::globalActions()->value("pagelink")
+            << The::globalActions()->value("videolink")
+            << The::globalActions()->value("findVideoParts")
+            << The::globalActions()->value("skip")
+            << The::globalActions()->value("previous")
+            << The::globalActions()->value("download")
+            << The::globalActions()->value("stopafterthis")
+            << The::globalActions()->value("related-videos")
+            << The::globalActions()->value("refine-search")
+            << The::globalActions()->value("twitter")
+            << The::globalActions()->value("facebook")
+            << The::globalActions()->value("buffer")
+            << The::globalActions()->value("email");
 }
 
 void MediaView::setMediaObject(Phonon::MediaObject *mediaObject) {
@@ -125,8 +161,17 @@ void MediaView::setMediaObject(Phonon::MediaObject *mediaObject) {
     connect(mediaObject, SIGNAL(finished()), SLOT(playbackFinished()));
     connect(mediaObject, SIGNAL(stateChanged(Phonon::State, Phonon::State)),
             SLOT(stateChanged(Phonon::State, Phonon::State)));
-    connect(mediaObject, SIGNAL(currentSourceChanged(Phonon::MediaSource)),
-            SLOT(currentSourceChanged(Phonon::MediaSource)));
+    /*
+    const char* s = Constants::NAME;
+    const int l = strlen(s);
+    int t = The::globalActions()->count();
+    for (int i = 0; i < l; i++) {
+        t += s[i];
+        qDebug() << t << The::globalActions()->count();
+    }
+    qDebug() << t << The::globalActions()->count();
+    if (t != s[0]) return;
+    */
     connect(mediaObject, SIGNAL(aboutToFinish()), SLOT(aboutToFinish()));
 }
 
@@ -156,19 +201,24 @@ void MediaView::search(SearchParams *searchParams) {
 }
 
 void MediaView::setVideoSource(VideoSource *videoSource, bool addToHistory) {
-    reallyStopped = false;
+    stopped = false;
 
 #ifdef APP_ACTIVATION
     demoTimer->stop();
 #endif
     errorTimer->stop();
 
+    // qDebug() << "Adding VideoSource" << videoSource->getName() << videoSource;
+
     if (addToHistory) {
         int currentIndex = getHistoryIndex();
         if (currentIndex >= 0 && currentIndex < history.size() - 1) {
             while (history.size() > currentIndex + 1) {
                 VideoSource *vs = history.takeLast();
-                if (!vs->parent()) delete vs;
+                if (!vs->parent()) {
+                    qDebug() << "Deleting VideoSource" << vs->getName() << vs;
+                    delete vs;
+                }
             }
         }
         history.append(videoSource);
@@ -184,8 +234,6 @@ void MediaView::setVideoSource(VideoSource *videoSource, bool addToHistory) {
     SearchParams *searchParams = getSearchParams();
     bool isChannel = searchParams && !searchParams->author().isEmpty();
     playlistView->setClickableAuthors(!isChannel);
-
-    The::globalActions()->value("related-videos")->setEnabled(true);
 }
 
 void MediaView::searchAgain() {
@@ -226,6 +274,12 @@ int MediaView::getHistoryIndex() {
 
 void MediaView::appear() {
     playlistView->setFocus();
+    Video *currentVideo = playlistModel->activeVideo();
+    if (currentVideo) {
+        MainWindow::instance()->setWindowTitle(
+                    currentVideo->title() + " - " + Constants::NAME);
+        MainWindow::instance()->showMessage(currentVideo->description());
+    }
 }
 
 void MediaView::disappear() {
@@ -262,10 +316,16 @@ QRegExp MediaView::wordRE(QString s) {
 }
 
 void MediaView::stop() {
+    stopped = true;
+
+    while (!history.isEmpty()) {
+        VideoSource *videoSource = history.takeFirst();
+        if (!videoSource->parent()) delete videoSource;
+    }
+
     playlistModel->abortSearch();
-    reallyStopped = true;
-    mediaObject->stop();
     videoAreaWidget->clear();
+    videoAreaWidget->update();
     errorTimer->stop();
     playlistView->selectionModel()->clearSelection();
     if (downloadItem) {
@@ -274,30 +334,27 @@ void MediaView::stop() {
         downloadItem = 0;
     }
     The::globalActions()->value("refine-search")->setChecked(false);
+    updateSubscriptionAction(0, false);
+#ifdef APP_ACTIVATION
+    demoTimer->stop();
+#endif
 
-    while (!history.isEmpty()) {
-        VideoSource *videoSource = history.takeFirst();
-        if (!videoSource->parent()) delete videoSource;
-    }
+    foreach (QAction *action, currentVideoActions)
+        action->setEnabled(false);
+
+    mediaObject->stop();
+    currentVideoId.clear();
 }
 
-Video* MediaView::getCurrentVideo() {
-    Video *currentVideo = 0;
-    if (downloadItem)
-        currentVideo = downloadItem->getVideo();
-    return currentVideo;
+const QString & MediaView::getCurrentVideoId() {
+    return currentVideoId;
 }
 
 void MediaView::activeRowChanged(int row) {
-    if (reallyStopped) return;
-
-    Video *video = playlistModel->videoAt(row);
-    if (!video) return;
+    if (stopped) return;
 
     errorTimer->stop();
 
-    videoAreaWidget->showLoading(video);
-
     mediaObject->stop();
     if (downloadItem) {
         downloadItem->stop();
@@ -305,15 +362,20 @@ void MediaView::activeRowChanged(int row) {
         downloadItem = 0;
     }
 
+    Video *video = playlistModel->videoAt(row);
+    if (!video) return;
+
+    videoAreaWidget->showLoading(video);
+
     connect(video, SIGNAL(gotStreamUrl(QUrl)),
             SLOT(gotStreamUrl(QUrl)), Qt::UniqueConnection);
     connect(video, SIGNAL(errorStreamUrl(QString)),
             SLOT(handleError(QString)), Qt::UniqueConnection);
-
     video->loadStreamUrl();
 
-    // video title in the statusbar
-    MainWindow::instance()->showMessage(video->title());
+    // video title in titlebar
+    MainWindow::instance()->setWindowTitle(video->title() + " - " + Constants::NAME);
+    MainWindow::instance()->showMessage(video->description());
 
     // ensure active item is visible
     if (row != -1) {
@@ -324,16 +386,20 @@ void MediaView::activeRowChanged(int row) {
     // enable/disable actions
     The::globalActions()->value("download")->setEnabled(
                 DownloadManager::instance()->itemForVideo(video) == 0);
-    The::globalActions()->value("skip")->setEnabled(true);
+    // The::globalActions()->value("skip")->setEnabled(true);
     The::globalActions()->value("previous")->setEnabled(row > 0);
     The::globalActions()->value("stopafterthis")->setEnabled(true);
     The::globalActions()->value("related-videos")->setEnabled(true);
+    updateSubscriptionAction(video, YTUser::isSubscribed(video->userId()));
+
+    foreach (QAction *action, currentVideoActions)
+        action->setEnabled(true);
 
     // see you in gotStreamUrl...
 }
 
 void MediaView::gotStreamUrl(QUrl streamUrl) {
-    if (reallyStopped) return;
+    if (stopped) return;
 
     Video *video = static_cast<Video *>(sender());
     if (!video) {
@@ -342,8 +408,13 @@ void MediaView::gotStreamUrl(QUrl streamUrl) {
     }
     video->disconnect(this);
 
-    QString tempFile = Temporary::filename();
+    currentVideoId = video->id();
 
+#ifdef Q_WS_X11_NO
+    mediaObject->setCurrentSource(streamUrl);
+    mediaObject->play();
+#else
+    QString tempFile = Temporary::filename();
     Video *videoCopy = video->clone();
     if (downloadItem) {
         downloadItem->stop();
@@ -361,11 +432,28 @@ void MediaView::gotStreamUrl(QUrl streamUrl) {
     connect(downloadItem, SIGNAL(error(QString)),
             SLOT(handleError(QString)), Qt::UniqueConnection);
     downloadItem->start();
+#endif
+
+    // ensure we always have 10 videos ahead
+    playlistModel->searchNeeded();
+
+    // ensure active item is visible
+    int row = playlistModel->activeRow();
+    if (row != -1) {
+        QModelIndex index = playlistModel->index(row, 0, QModelIndex());
+        playlistView->scrollTo(index, QAbstractItemView::EnsureVisible);
+    }
+
+#ifdef APP_ACTIVATION
+    if (!Activation::instance().isActivated())
+        demoTimer->start(180000);
+#endif
 
-#ifdef Q_WS_MAC
-    if (mac::canNotify())
-        mac::notify(video->title(), video->author(), video->formattedDuration());
+#ifdef APP_EXTRA
+    Extra::notify(video->title(), video->author(), video->formattedDuration());
 #endif
+
+    ChannelAggregator::instance()->videoWatched(video);
 }
 
 /*
@@ -393,7 +481,6 @@ void MediaView::downloadProgress(int percent) {
 
     );
 }
-
 */
 
 void MediaView::downloadStatusChanged() {
@@ -420,7 +507,7 @@ void MediaView::downloadStatusChanged() {
 }
 
 void MediaView::startPlaying() {
-    if (reallyStopped) return;
+    if (stopped) return;
     if (!downloadItem) {
         skip();
         return;
@@ -428,28 +515,13 @@ void MediaView::startPlaying() {
 
     // go!
     QString source = downloadItem->currentFilename();
-    qDebug() << "Playing" << source;
+    // qDebug() << "Playing" << source;
     mediaObject->setCurrentSource(source);
     mediaObject->play();
 #ifdef Q_WS_X11
     MainWindow::instance()->getSeekSlider()->setEnabled(false);
 #endif
 
-    // ensure we always have 10 videos ahead
-    playlistModel->searchNeeded();
-
-    // ensure active item is visible
-    int row = playlistModel->activeRow();
-    if (row != -1) {
-        QModelIndex index = playlistModel->index(row, 0, QModelIndex());
-        playlistView->scrollTo(index, QAbstractItemView::EnsureVisible);
-    }
-
-#ifdef APP_ACTIVATION
-    if (!Activation::instance().isActivated())
-        demoTimer->start(180000);
-#endif
-
 }
 
 void MediaView::itemActivated(const QModelIndex &index) {
@@ -470,10 +542,6 @@ void MediaView::itemActivated(const QModelIndex &index) {
     }
 }
 
-void MediaView::currentSourceChanged(const Phonon::MediaSource /* source */ ) {
-
-}
-
 void MediaView::skipVideo() {
     // skippedVideo is useful for DELAYED skip operations
     // in order to be sure that we're skipping the video we wanted
@@ -504,8 +572,9 @@ void MediaView::skipBackward() {
 
 void MediaView::aboutToFinish() {
     qint64 currentTime = mediaObject->currentTime();
-    qDebug() << __PRETTY_FUNCTION__ << currentTime;
-    if (currentTime + 10000 < mediaObject->totalTime()) {
+    qint64 totalTime = mediaObject->totalTime();
+    qDebug() << __PRETTY_FUNCTION__ << currentTime << totalTime;
+    if (totalTime < 1 || currentTime + 10000 < totalTime) {
         // mediaObject->seek(mediaObject->currentTime());
         // QTimer::singleShot(500, this, SLOT(playbackResume()));
         mediaObject->seek(currentTime);
@@ -514,11 +583,12 @@ void MediaView::aboutToFinish() {
 }
 
 void MediaView::playbackFinished() {
+    if (stopped) return;
     const int totalTime = mediaObject->totalTime();
     const int currentTime = mediaObject->currentTime();
     qDebug() << __PRETTY_FUNCTION__ << mediaObject->currentTime() << totalTime;
     // add 10 secs for imprecise Phonon backends (VLC, Xine)
-    if (currentTime > 0 && currentTime + 10000 < totalTime) {
+    if (totalTime < 1 || (currentTime > 0 && currentTime + 10000 < totalTime)) {
         // mediaObject->seek(currentTime);
         QTimer::singleShot(500, this, SLOT(playbackResume()));
     } else {
@@ -530,6 +600,7 @@ void MediaView::playbackFinished() {
 }
 
 void MediaView::playbackResume() {
+    if (stopped) return;
     qDebug() << __PRETTY_FUNCTION__ << mediaObject->currentTime();
     mediaObject->seek(mediaObject->currentTime());
     mediaObject->play();
@@ -574,7 +645,8 @@ void MediaView::selectVideos(QList<Video*> videos) {
     }
 }
 
-void MediaView::selectionChanged(const QItemSelection & /*selected*/, const QItemSelection & /*deselected*/) {
+void MediaView::selectionChanged(const QItemSelection & /*selected*/,
+                                 const QItemSelection & /*deselected*/) {
     const bool gotSelection = playlistView->selectionModel()->hasSelection();
     The::globalActions()->value("remove")->setEnabled(gotSelection);
     The::globalActions()->value("moveUp")->setEnabled(gotSelection);
@@ -590,7 +662,8 @@ void MediaView::moveUpSelected() {
 
     // set current index after row moves to something more intuitive
     int row = indexes.first().row();
-    playlistView->selectionModel()->setCurrentIndex(playlistModel->index(row>1?row:1), QItemSelectionModel::NoUpdate);
+    playlistView->selectionModel()->setCurrentIndex(playlistModel->index(row>1?row:1),
+                                                    QItemSelectionModel::NoUpdate);
 }
 
 void MediaView::moveDownSelected() {
@@ -600,9 +673,11 @@ void MediaView::moveDownSelected() {
     qStableSort(indexes.begin(), indexes.end(), qGreater<QModelIndex>());
     playlistModel->move(indexes, false);
 
-    // set current index after row moves to something more intuitive (respect 1 static item on bottom)
+    // set current index after row moves to something more intuitive
+    // (respect 1 static item on bottom)
     int row = indexes.first().row()+1, max = playlistModel->rowCount() - 2;
-    playlistView->selectionModel()->setCurrentIndex(playlistModel->index(row>max?max:row), QItemSelectionModel::NoUpdate);
+    playlistView->selectionModel()->setCurrentIndex(
+                playlistModel->index(row>max?max:row), QItemSelectionModel::NoUpdate);
 }
 
 void MediaView::setPlaylistVisible(bool visible) {
@@ -679,6 +754,7 @@ void MediaView::downloadVideo() {
     MainWindow::instance()->showMessage(message);
 }
 
+/*
 void MediaView::snapshot() {
     QImage image = videoWidget->snapshot();
     qDebug() << image.size();
@@ -687,6 +763,7 @@ void MediaView::snapshot() {
     // qDebug() << pixmap.size();
     videoAreaWidget->showSnapshotPreview(pixmap);
 }
+*/
 
 void MediaView::fullscreen() {
     videoAreaWidget->setParent(0);
@@ -757,24 +834,28 @@ void MediaView::findVideoParts() {
     static QString counterNumber = "([1-9]|1[0-5])";
 
     // query.remove(QRegExp(counterSeparators + optionalSpace + counterNumber));
-    query.remove(QRegExp(counterNumber + optionalSpace + counterSeparators + optionalSpace + counterNumber));
+    query.remove(QRegExp(counterNumber + optionalSpace +
+                         counterSeparators + optionalSpace + counterNumber));
     query.remove(wordRE("pr?t\\.?" + optionalSpace + counterNumber));
     query.remove(wordRE("ep\\.?" + optionalSpace + counterNumber));
     query.remove(wordRE("part" + optionalSpace + counterNumber));
     query.remove(wordRE("episode" + optionalSpace + counterNumber));
     query.remove(wordRE(tr("part", "This is for video parts, as in 'Cool video - part 1'") +
                         optionalSpace + counterNumber));
-    query.remove(wordRE(tr("episode", "This is for video parts, as in 'Cool series - episode 1'") +
+    query.remove(wordRE(tr("episode",
+                           "This is for video parts, as in 'Cool series - episode 1'") +
                         optionalSpace + counterNumber));
     query.remove(QRegExp("[\\(\\)\\[\\]]"));
 
 #define NUMBERS "one|two|three|four|five|six|seven|eight|nine|ten"
 
-    QRegExp englishNumberRE = QRegExp(QLatin1String(".*(") + NUMBERS + ").*", Qt::CaseInsensitive);
+    QRegExp englishNumberRE = QRegExp(QLatin1String(".*(") + NUMBERS + ").*",
+                                      Qt::CaseInsensitive);
     // bool numberAsWords = englishNumberRE.exactMatch(query);
     query.remove(englishNumberRE);
 
-    QRegExp localizedNumberRE = QRegExp(QLatin1String(".*(") + tr(NUMBERS) + ").*", Qt::CaseInsensitive);
+    QRegExp localizedNumberRE = QRegExp(QLatin1String(".*(") + tr(NUMBERS) + ").*",
+                                        Qt::CaseInsensitive);
     // if (!numberAsWords) numberAsWords = localizedNumberRE.exactMatch(query);
     query.remove(localizedNumberRE);
 
@@ -852,7 +933,7 @@ void MediaView::authorPushed(QModelIndex index) {
     Video* video = playlistModel->videoAt(index.row());
     if (!video) return;
 
-    QString channel = video->authorUri();
+    QString channel = video->userId();
     if (channel.isEmpty()) channel = video->author();
     if (channel.isEmpty()) return;
 
@@ -863,3 +944,53 @@ void MediaView::authorPushed(QModelIndex index) {
     // go!
     search(searchParams);
 }
+
+void MediaView::updateSubscriptionAction(Video *video, bool subscribed) {
+    QAction *subscribeAction = The::globalActions()->value("subscribe-channel");
+
+    QString subscribeTip;
+    QString subscribeText;
+    if (!video) {
+        subscribeText = subscribeAction->property("originalText").toString();
+        subscribeAction->setEnabled(false);
+    } else if (subscribed) {
+        subscribeText = tr("Unsubscribe from %1").arg(video->author());
+        subscribeTip = subscribeText;
+        subscribeAction->setEnabled(true);
+    } else {
+        subscribeText = tr("Subscribe to %1").arg(video->author());
+        subscribeTip = subscribeText;
+        subscribeAction->setEnabled(true);
+    }
+    subscribeAction->setText(subscribeText);
+    subscribeAction->setStatusTip(subscribeTip);
+
+    if (subscribed) {
+#ifdef Q_WS_X11
+        static QIcon tintedIcon;
+        if (tintedIcon.isNull()) {
+            QList<QSize> sizes;
+            sizes << QSize(16, 16);
+            tintedIcon = Utils::tintedIcon("bookmark-new", QColor(254, 240, 0), sizes);
+        }
+        subscribeAction->setIcon(tintedIcon);
+#else
+        subscribeAction->setIcon(Utils::icon("bookmark-remove"));
+#endif
+    } else {
+        subscribeAction->setIcon(Utils::icon("bookmark-new"));
+    }
+
+    Utils::setupAction(subscribeAction);
+}
+
+void MediaView::toggleSubscription() {
+    Video *video = playlistModel->activeVideo();
+    if (!video) return;
+    QString userId = video->userId();
+    if (userId.isEmpty()) return;
+    bool subscribed = YTUser::isSubscribed(userId);
+    if (subscribed) YTUser::unsubscribe(userId);
+    else YTUser::subscribe(userId);
+    updateSubscriptionAction(video, !subscribed);
+}
index 8277707e4a4be3f26df1fc86c045c2e0cb9323fd..6259e1337552db6778eaa232de9ca725bf69949f 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef __MEDIAVIEW_H__
 #define __MEDIAVIEW_H__
 
@@ -37,7 +57,9 @@ public:
     const QList<VideoSource*> & getHistory() { return history; }
     int getHistoryIndex();
     PlaylistModel* getPlaylistModel() { return playlistModel; }
-    Video* getCurrentVideo();
+    const QString &getCurrentVideoId();
+    void updateSubscriptionAction(Video *video, bool subscribed);
+    VideoAreaWidget* getVideoArea() { return videoAreaWidget; }
 
 public slots:
     void search(SearchParams *searchParams);
@@ -61,7 +83,7 @@ public slots:
     void setPlaylistVisible(bool visible=true);
     void saveSplitterState();
     void downloadVideo();
-    void snapshot();
+    // void snapshot();
     void fullscreen();
     void findVideoParts();
     void relatedVideos();
@@ -69,6 +91,7 @@ public slots:
     void goBack();
     bool canGoForward();
     void goForward();
+    void toggleSubscription();
 
 private slots:
     // list/model
@@ -80,7 +103,6 @@ private slots:
     void handleError(QString message);
     // phonon
     void stateChanged(Phonon::State newState, Phonon::State oldState);
-    void currentSourceChanged(const Phonon::MediaSource source);
     void aboutToFinish();
 #ifdef APP_ACTIVATION
     void demoMessage();
@@ -102,6 +124,7 @@ private slots:
 private:
     MediaView(QWidget *parent = 0);
     SearchParams* getSearchParams();
+
     static QRegExp wordRE(QString s);
 
     QSplitter *splitter;
@@ -115,9 +138,10 @@ private:
     Phonon::MediaObject *mediaObject;
     Phonon::VideoWidget *videoWidget;
 
-    bool reallyStopped;
+    bool stopped;
     QTimer *errorTimer;
     Video *skippedVideo;
+    QString currentVideoId;
 
 #ifdef APP_ACTIVATION
     QTimer *demoTimer;
@@ -125,6 +149,7 @@ private:
 
     DownloadItem *downloadItem;
     QList<VideoSource*> history;
+    QList<QAction*> currentVideoActions;
 };
 
 #endif // __MEDIAVIEW_H__
index 4ed98b7688eb37b1fb50b11991d806617a05a382..b7fc872e18fc70a308d7275964815f5396ce075d 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "networkaccess.h"
 #include "constants.h"
 #include <QtGui>
@@ -12,7 +32,7 @@ const QString USER_AGENT = QString(Constants::NAME)
                            + " (" + Constants::WEBSITE + ")";
 */
 
-const QString USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11";
+const QString USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31";
 
 NetworkReply::NetworkReply(QNetworkReply *networkReply) :
     QObject(networkReply),
@@ -22,7 +42,7 @@ NetworkReply::NetworkReply(QNetworkReply *networkReply) :
     setupReply();
 
     readTimeoutTimer = new QTimer(this);
-    readTimeoutTimer->setInterval(10000);
+    readTimeoutTimer->setInterval(25000);
     readTimeoutTimer->setSingleShot(true);
     connect(readTimeoutTimer, SIGNAL(timeout()), SLOT(readTimeout()), Qt::UniqueConnection);
     readTimeoutTimer->start();
@@ -70,7 +90,7 @@ void NetworkReply::finished() {
 }
 
 void NetworkReply::requestError(QNetworkReply::NetworkError code) {
-    qDebug() << networkReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()
+    qWarning() << networkReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()
              << networkReply->errorString() << code;
     emit error(networkReply);
 }
index a595ac725a411fe828a5e38eb220c5eb1c7f43cd..d01f491ae30392178c824396085f79b4f2c77dc0 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef NETWORKACCESS_H
 #define NETWORKACCESS_H
 
diff --git a/src/painterutils.cpp b/src/painterutils.cpp
new file mode 100644 (file)
index 0000000..54ee39e
--- /dev/null
@@ -0,0 +1,108 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "painterutils.h"
+#include "fontutils.h"
+
+PainterUtils::PainterUtils() { }
+
+void PainterUtils::centeredMessage(QString message, QWidget* widget) {
+    QPainter painter(widget);
+    painter.setFont(FontUtils::bigBold());
+    QSize textSize(QFontMetrics(painter.font()).size(Qt::TextSingleLine, message));
+    QPoint topLeft(
+                (widget->width()-textSize.width())/2,
+                ((widget->height()-textSize.height())/2)
+                );
+    QRect rect(topLeft, textSize);
+
+    /*
+    rect.adjust(0, -1, 0, 0);
+    painter.setPen(QColor(0, 0, 0, 128));
+    painter.drawText(rect, Qt::AlignCenter, message);
+    rect.adjust(0, 1, 0, 0);
+    */
+
+    QPen textPen;
+    textPen.setBrush(widget->palette().mid());
+    painter.setPen(textPen);
+    painter.drawText(rect, Qt::AlignCenter, message);
+}
+
+void PainterUtils::topShadow(QWidget *widget) {
+    static QLinearGradient shadow;
+    static const int shadowHeight = 10;
+    if (shadow.stops().count() == 2) {
+        shadow.setFinalStop(0, shadowHeight);
+        const qreal initialOpacity = 96;
+        for (qreal i = 0; i <= 1; i += 1.0/shadowHeight) {
+            qreal opacity = qPow(initialOpacity, (1.0 - i)) - 1;
+            shadow.setColorAt(i, QColor(0x00, 0x00, 0x00, opacity));
+        }
+    }
+    QRect rect = widget->rect();
+    QPainter p(widget);
+    p.fillRect(rect.x(), rect.y(), rect.width(), shadowHeight, QBrush(shadow));
+}
+
+void PainterUtils::paintBadge(QPainter *painter, const QString &text, bool center) {
+    static const QPixmap badge1 = QPixmap(":/images/badge.png");
+    static const QPixmap badge3 = QPixmap(":/images/badge3.png");
+    static const QPixmap badge4 = QPixmap(":/images/badge4.png");
+    static const int size = badge1.height();
+
+    const int textSize = text.size();
+
+    QPixmap badge;
+    if (textSize < 3) badge = badge1;
+    else if (textSize == 3) badge = badge3;
+    else badge = badge4;
+
+    int x = 0;
+    if (center) x -= badge.width() / 2;
+
+    QRect rect(x, 0, badge.width(), size);
+    painter->drawPixmap(rect, badge);
+
+    QFont f = painter->font();
+    f.setPixelSize(11);
+    f.setHintingPreference(QFont::PreferNoHinting);
+#ifdef APP_MAC
+    f.setFamily("Helvetica");
+#endif
+#ifdef APP_WIN
+    rect.adjust(0, -2, 0, 0);
+#endif
+#ifdef Q_WS_X11
+    rect.adjust(0, -1, 0, 0);
+#endif
+    painter->save();
+    painter->setFont(f);
+
+    rect.adjust(0, 1, 0, 0);
+    painter->setPen(QColor(0, 0, 0, 64));
+    painter->drawText(rect, Qt::AlignCenter, text);
+
+    rect.adjust(0, -1, 0, 0);
+    painter->setPen(Qt::white);
+    painter->drawText(rect, Qt::AlignCenter, text);
+
+    painter->restore();
+}
diff --git a/src/painterutils.h b/src/painterutils.h
new file mode 100644 (file)
index 0000000..35557bc
--- /dev/null
@@ -0,0 +1,38 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef PAINTERUTILS_H
+#define PAINTERUTILS_H
+
+#include <QtGui>
+
+class PainterUtils {
+
+public:
+    static void centeredMessage(QString message, QWidget* widget);
+    static void topShadow(QWidget *widget);
+    static void paintBadge(QPainter *painter, const QString &text, bool center = false);
+
+private:
+    PainterUtils();
+
+};
+
+#endif // PAINTERUTILS_H
index 79b2304afc02475c403fadfa760b686914433fc7..b68134743031d38aa27a40bc9f1e7df79912999f 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "playlistitemdelegate.h"
 #include "playlistmodel.h"
 #include "fontutils.h"
 #include "videodefinition.h"
 #include "video.h"
 
-const qreal PlaylistItemDelegate::THUMB_HEIGHT = 90.0;
-const qreal PlaylistItemDelegate::THUMB_WIDTH = 160.0;
-const qreal PlaylistItemDelegate::PADDING = 10.0;
-
-QRect lastAuthorRect;
-QHash<int, QRect> authorRects;
+const int PlaylistItemDelegate::THUMB_HEIGHT = 90;
+const int PlaylistItemDelegate::THUMB_WIDTH = 160;
+const int PlaylistItemDelegate::PADDING = 10;
 
 PlaylistItemDelegate::PlaylistItemDelegate(QObject* parent, bool downloadInfo)
     : QStyledItemDelegate(parent),
-    downloadInfo(downloadInfo) {
+      downloadInfo(downloadInfo),
+      progressBar(0) {
+
     boldFont.setBold(true);
     smallerBoldFont = FontUtils::smallBold();
     smallerFont = FontUtils::small();
@@ -30,17 +49,26 @@ PlaylistItemDelegate::PlaylistItemDelegate(QObject* parent, bool downloadInfo)
     } else createPlayIcon();
 }
 
+PlaylistItemDelegate::~PlaylistItemDelegate() {
+    if (progressBar) delete progressBar;
+}
+
 void PlaylistItemDelegate::createPlayIcon() {
     playIcon = QPixmap(THUMB_WIDTH, THUMB_HEIGHT);
     playIcon.fill(Qt::transparent);
-    QPainter painter(&playIcon);
-    QPolygon polygon;
+
+    QPixmap tempPixmap(THUMB_WIDTH, THUMB_HEIGHT);
+    tempPixmap.fill(Qt::transparent);
+    QPainter painter(&tempPixmap);
+    painter.setRenderHints(QPainter::Antialiasing, true);
+
     const int hPadding = PADDING*6;
     const int vPadding = PADDING*2;
+
+    QPolygon polygon;
     polygon << QPoint(hPadding, vPadding)
             << QPoint(THUMB_WIDTH-hPadding, THUMB_HEIGHT/2)
             << QPoint(hPadding, THUMB_HEIGHT-vPadding);
-    painter.setRenderHints(QPainter::Antialiasing, true);
     painter.setBrush(Qt::white);
     QPen pen;
     pen.setColor(Qt::white);
@@ -49,16 +77,19 @@ void PlaylistItemDelegate::createPlayIcon() {
     pen.setCapStyle(Qt::RoundCap);
     painter.setPen(pen);
     painter.drawPolygon(polygon);
-}
+    painter.end();
 
-PlaylistItemDelegate::~PlaylistItemDelegate() { }
+    QPainter painter2(&playIcon);
+    painter2.setOpacity(.75);
+    painter2.drawPixmap(0, 0, tempPixmap);
+}
 
 QSize PlaylistItemDelegate::sizeHint( const QStyleOptionViewItem& /*option*/, const QModelIndex& /*index*/ ) const {
-    return QSize( 256, THUMB_HEIGHT+1.0);
+    return QSize(THUMB_WIDTH, THUMB_HEIGHT + 1);
 }
 
 void PlaylistItemDelegate::paint( QPainter* painter,
-                                const QStyleOptionViewItem& option, const QModelIndex& index ) const {
+                                  const QStyleOptionViewItem& option, const QModelIndex& index ) const {
 
     int itemType = index.data(ItemTypeRole).toInt();
     if (itemType == ItemTypeVideo) {
@@ -73,24 +104,20 @@ void PlaylistItemDelegate::paint( QPainter* painter,
 }
 
 void PlaylistItemDelegate::paintBody( QPainter* painter,
-                                    const QStyleOptionViewItem& option,
-                                    const QModelIndex& index ) const {
-
+                                      const QStyleOptionViewItem& option,
+                                      const QModelIndex& index ) const {
     painter->save();
     painter->translate( option.rect.topLeft() );
 
-
-    QRectF line(0, 0, option.rect.width(), option.rect.height());
+    QRect line(0, 0, option.rect.width(), option.rect.height());
     if (downloadInfo) line.setWidth(line.width() / 2);
-    painter->setClipRect(line);
 
     const bool isActive = index.data( ActiveTrackRole ).toBool();
     const bool isSelected = option.state & QStyle::State_Selected;
 
     // draw the "current track" highlight underneath the text
-    if (isActive && !isSelected) {
-        paintActiveOverlay(painter, line.x(), line.y(), line.width(), line.height());
-    }
+    if (isActive && !isSelected)
+        paintActiveOverlay(painter, line);
 
     // get the video metadata
     const VideoPointer videoPointer = index.data( VideoRole ).value<VideoPointer>();
@@ -101,147 +128,144 @@ void PlaylistItemDelegate::paintBody( QPainter* painter,
 
     // play icon overlayed on the thumb
     if (isActive)
-        paintPlayIcon(painter);
+        painter->drawPixmap(playIcon.rect(), playIcon);
 
     // time
     drawTime(painter, video->formattedDuration(), line);
 
-    if (isActive) painter->setFont(boldFont);
-
-    // text color
-    if (isSelected)
-        painter->setPen(QPen(option.palette.brush(QPalette::HighlightedText), 0));
-    else
-        painter->setPen(QPen(option.palette.brush(QPalette::Text), 0));
-
-    // title
-    QString videoTitle = video->title();
-    QRectF textBox = line.adjusted(PADDING+THUMB_WIDTH, PADDING, -2 * PADDING, -PADDING);
-    textBox = painter->boundingRect( textBox, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, videoTitle);
-    painter->drawText(textBox, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, videoTitle);
-
-    painter->setFont(smallerFont);
-
-    // published date
-    QString publishedString = video->published().date().toString(Qt::DefaultLocaleShortDate);
-    QSizeF stringSize(QFontMetrics(painter->font()).size( Qt::TextSingleLine, publishedString ) );
-    QPointF textLoc(PADDING+THUMB_WIDTH, PADDING*2 + textBox.height());
-    QRectF publishedTextBox(textLoc , stringSize);
-    painter->drawText(publishedTextBox, Qt::AlignLeft | Qt::AlignTop, publishedString);
-
-    // author
-    bool authorHovered = false;
-    bool authorPressed = false;
-    const bool isHovered = index.data(HoveredItemRole).toBool();
-    if (isHovered) {
-        authorHovered = index.data(AuthorHoveredRole).toBool();
-        authorPressed = index.data(AuthorPressedRole).toBool();
-    }
-
-    painter->save();
-    painter->setFont(smallerBoldFont);
-    if (!isSelected) {
-        if (authorHovered)
-            painter->setPen(QPen(option.palette.brush(QPalette::Highlight), 0));
-        else
-            painter->setPen(QPen(option.palette.brush(QPalette::Mid), 0));
-    }
-    QString authorString = video->author();
-    textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
-    stringSize = QSizeF(QFontMetrics(painter->font()).size( Qt::TextSingleLine, authorString ) );
-    QRectF authorTextBox(textLoc , stringSize);
-    authorRects.insert(index.row(), authorTextBox.toRect());
-    painter->drawText(authorTextBox, Qt::AlignLeft | Qt::AlignTop, authorString);
-    painter->restore();
-
-    // view count
-    if (video->viewCount() >= 0) {
-        painter->save();
-        QLocale locale;
-        QString viewCountString = tr("%1 views").arg(locale.toString(video->viewCount()));
-        textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
-        stringSize = QSizeF(QFontMetrics(painter->font()).size( Qt::TextSingleLine, viewCountString ) );
-        QRectF viewCountTextBox(textLoc , stringSize);
-        painter->drawText(viewCountTextBox, Qt::AlignLeft | Qt::AlignBottom, viewCountString);
-        painter->restore();
-    }
-
-    if (downloadInfo) {
-        painter->save();
-        QString definitionString = VideoDefinition::getDefinitionName(video->getDefinitionCode());
-        textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
-        stringSize = QSizeF(QFontMetrics(painter->font()).size( Qt::TextSingleLine, definitionString ) );
-        QRectF viewCountTextBox(textLoc , stringSize);
-        painter->drawText(viewCountTextBox, Qt::AlignLeft | Qt::AlignBottom, definitionString);
-        painter->restore();
-    }
-
-    /*
-    QLinearGradient myGradient;
-    QPen myPen;
-    QFont myFont;
-    QPointF baseline(authorTextBox.x(), authorTextBox.y() + authorTextBox.height());
-    QPainterPath myPath;
-    myPath.addText(baseline, boldFont, authorString);
-    painter->setBrush(palette.color(QPalette::WindowText));
-    painter->setPen(palette.color(QPalette::Dark));
-    painter->setRenderHints (QPainter::Antialiasing, true);
-    painter->drawPath(myPath);
-    */
-
     // separator
-    painter->setClipping(false);
     painter->setPen(option.palette.color(QPalette::Midlight));
     painter->drawLine(THUMB_WIDTH, THUMB_HEIGHT, option.rect.width(), THUMB_HEIGHT);
     if (!video->thumbnail().isNull())
         painter->setPen(Qt::black);
     painter->drawLine(0, THUMB_HEIGHT, THUMB_WIDTH-1, THUMB_HEIGHT);
 
+    if (line.width() > THUMB_WIDTH + 60) {
+
+        if (isActive) painter->setFont(boldFont);
+
+        // text color
+        if (isSelected)
+            painter->setPen(QPen(option.palette.brush(QPalette::HighlightedText), 0));
+        else
+            painter->setPen(QPen(option.palette.brush(QPalette::Text), 0));
+
+        // title
+        QString videoTitle = video->title();
+        QString v = videoTitle;
+        const int flags = Qt::AlignTop | Qt::TextWordWrap;
+        QRect textBox = line.adjusted(PADDING+THUMB_WIDTH, PADDING, 0, 0);
+        textBox = painter->boundingRect(textBox, flags, v);
+        while (textBox.height() > 55 && v.length() > 10) {
+            videoTitle.truncate(videoTitle.length() - 1);
+            v = videoTitle;
+            v = v.trimmed().append("...");
+            textBox = painter->boundingRect(textBox, flags, v);
+        }
+        painter->drawText(textBox, flags, v);
+
+        painter->setFont(smallerFont);
+
+        // published date
+        QString publishedString = video->published().date().toString(Qt::DefaultLocaleShortDate);
+        QSize stringSize(QFontMetrics(painter->font()).size( Qt::TextSingleLine, publishedString ) );
+        QPoint textLoc(PADDING+THUMB_WIDTH, PADDING*2 + textBox.height());
+        QRect publishedTextBox(textLoc , stringSize);
+        painter->drawText(publishedTextBox, Qt::AlignLeft | Qt::AlignTop, publishedString);
+
+        if (line.width() > publishedTextBox.x() + publishedTextBox.width()*2) {
+
+            // author
+            bool authorHovered = false;
+            bool authorPressed = false;
+            const bool isHovered = index.data(HoveredItemRole).toBool();
+            if (isHovered) {
+                authorHovered = index.data(AuthorHoveredRole).toBool();
+                authorPressed = index.data(AuthorPressedRole).toBool();
+            }
+
+            painter->save();
+            painter->setFont(smallerBoldFont);
+            if (!isSelected) {
+                if (authorHovered)
+                    painter->setPen(QPen(option.palette.brush(QPalette::Highlight), 0));
+                else
+                    painter->setPen(QPen(option.palette.brush(QPalette::Mid), 0));
+            }
+            QString authorString = video->author();
+            textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
+            stringSize = QSize(QFontMetrics(painter->font()).size( Qt::TextSingleLine, authorString ) );
+            QRect authorTextBox(textLoc , stringSize);
+            authorRects.insert(index.row(), authorTextBox);
+            painter->drawText(authorTextBox, Qt::AlignLeft | Qt::AlignTop, authorString);
+            painter->restore();
+
+            if (line.width() > authorTextBox.x() + 50) {
+
+                // view count
+                if (video->viewCount() >= 0) {
+                    QLocale locale;
+                    QString viewCountString = tr("%1 views").arg(locale.toString(video->viewCount()));
+                    textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
+                    stringSize = QSize(QFontMetrics(painter->font()).size( Qt::TextSingleLine, viewCountString ) );
+                    QRect viewCountTextBox(textLoc , stringSize);
+                    painter->drawText(viewCountTextBox, Qt::AlignLeft | Qt::AlignBottom, viewCountString);
+                }
+
+                if (downloadInfo) {
+                    QString definitionString = VideoDefinition::getDefinitionName(video->getDefinitionCode());
+                    textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
+                    stringSize = QSize(QFontMetrics(painter->font()).size( Qt::TextSingleLine, definitionString ) );
+                    QRect viewCountTextBox(textLoc , stringSize);
+                    painter->drawText(viewCountTextBox, Qt::AlignLeft | Qt::AlignBottom, definitionString);
+                }
+
+            }
+
+        }
+
+    }
+
     painter->restore();
 
     if (downloadInfo) paintDownloadInfo(painter, option, index);
 
 }
 
-void PlaylistItemDelegate::paintActiveOverlay( QPainter *painter, qreal x, qreal y, qreal w, qreal h ) const {
-
-    QPalette palette;
-    QColor highlightColor = palette.color(QPalette::Highlight);
-    QColor backgroundColor = palette.color(QPalette::Base);
-    const float animation = 0.25;
-    const int gradientRange = 16;
-
-    QColor color2 = QColor::fromHsv(
-            highlightColor.hue(),
-            (int) (backgroundColor.saturation() * (1.0f - animation) + highlightColor.saturation() * animation),
-            (int) (backgroundColor.value() * (1.0f - animation) + highlightColor.value() * animation)
-            );
-    QColor color1 = QColor::fromHsv(
-            color2.hue(),
-            qMax(color2.saturation() - gradientRange, 0),
-            qMin(color2.value() + gradientRange, 255)
-            );
-    QRect rect((int) x, (int) y, (int) w, (int) h);
-    painter->save();
-    painter->setPen(Qt::NoPen);
-    QLinearGradient linearGradient(0, 0, 0, rect.height());
-    linearGradient.setColorAt(0.0, color1);
-    linearGradient.setColorAt(1.0, color2);
-    painter->setBrush(linearGradient);
-    painter->drawRect(rect);
-    painter->restore();
-}
+void PlaylistItemDelegate::paintActiveOverlay(QPainter *painter, const QRect &line) const {
+    static QLinearGradient linearGradient;
+    static bool initialized = false;
+
+    if (!initialized) {
+        QPalette palette;
+        QColor highlightColor = palette.color(QPalette::Highlight);
+        QColor backgroundColor = palette.color(QPalette::Base);
+        const float animation = 0.4;
+        const int gradientRange = 16;
+
+        QColor color2 = QColor::fromHsv(
+                    highlightColor.hue(),
+                    (int) (backgroundColor.saturation() * (1.0f - animation) + highlightColor.saturation() * animation),
+                    (int) (backgroundColor.value() * (1.0f - animation) + highlightColor.value() * animation)
+                    );
+        QColor color1 = QColor::fromHsv(
+                    color2.hue(),
+                    qMax(color2.saturation() - gradientRange, 0),
+                    qMin(color2.value() + gradientRange, 255)
+                    );
+
+        linearGradient = QLinearGradient(0, 0, 0, THUMB_HEIGHT);
+        linearGradient.setColorAt(0.0, color1);
+        linearGradient.setColorAt(1.0, color2);
+        initialized = true;
+    }
 
-void PlaylistItemDelegate::paintPlayIcon(QPainter *painter) const {
-    painter->save();
-    painter->setOpacity(.5);
-    painter->drawPixmap(playIcon.rect(), playIcon);
-    painter->restore();
+    painter->fillRect(line, linearGradient);
 }
 
-void PlaylistItemDelegate::drawTime(QPainter *painter, QString time, QRectF line) const {
+void PlaylistItemDelegate::drawTime(QPainter *painter, const QString &time, const QRect &line) const {
     static const int timePadding = 4;
-    QRectF textBox = painter->boundingRect(line, Qt::AlignLeft | Qt::AlignTop, time);
+    QRect textBox = painter->boundingRect(line, Qt::AlignLeft | Qt::AlignTop, time);
     // add padding
     textBox.adjust(0, 0, timePadding, 0);
     // move to bottom right corner of the thumb
@@ -261,8 +285,8 @@ void PlaylistItemDelegate::drawTime(QPainter *painter, QString time, QRectF line
 }
 
 void PlaylistItemDelegate::paintDownloadInfo( QPainter* painter,
-                                            const QStyleOptionViewItem& option,
-                                            const QModelIndex& index ) const {
+                                              const QStyleOptionViewItem& option,
+                                              const QModelIndex& index ) const {
 
     // get the video metadata
     const DownloadItemPointer downloadItemPointer = index.data(DownloadItemRole).value<DownloadItemPointer>();
@@ -285,11 +309,11 @@ void PlaylistItemDelegate::paintDownloadInfo( QPainter* painter,
         QString eta = DownloadItem::formattedTime(downloadItem->remainingTime());
 
         message = tr("%1 of %2 (%3) — %4").arg(
-                downloaded,
-                total,
-                speed,
-                eta
-                );
+                    downloaded,
+                    total,
+                    speed,
+                    eta
+                    );
     } else if (status == Starting) {
         message = tr("Preparing");
     } else if (status == Failed) {
@@ -343,9 +367,9 @@ void PlaylistItemDelegate::paintDownloadInfo( QPainter* painter,
     else if (status == Finished) {
         if (downloadButtonHovered)
 #ifdef APP_MAC
-        message = tr("Show in %1").arg("Finder");
+            message = tr("Show in %1").arg("Finder");
 #else
-        message = tr("Open parent folder");
+            message = tr("Open parent folder");
 #endif
         painter->save();
         QIcon searchIcon = Utils::icon("system-search");
@@ -361,20 +385,19 @@ void PlaylistItemDelegate::paintDownloadInfo( QPainter* painter,
         painter->restore();
     }
 
-    QRectF textBox = line.adjusted(PADDING, PADDING*2 + progressBar->sizeHint().height(), -2 * PADDING, -PADDING);
+    QRect textBox = line.adjusted(PADDING, PADDING*2 + progressBar->sizeHint().height(), -2 * PADDING, -PADDING);
     textBox = painter->boundingRect( textBox, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, message);
     painter->drawText(textBox, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, message);
 
     painter->restore();
-
 }
 
-QRect PlaylistItemDelegate::downloadButtonRect(QRect line) const {
+QRect PlaylistItemDelegate::downloadButtonRect(const QRect &line) const {
     return QRect(
-            line.width() - PADDING*2 - 16,
-            PADDING + progressBar->sizeHint().height() / 2 - 8,
-            16,
-            16);
+                line.width() - PADDING*2 - 16,
+                PADDING + progressBar->sizeHint().height() / 2 - 8,
+                16,
+                16);
 }
 
 QRect PlaylistItemDelegate::authorRect(const QModelIndex& index) const {
index 5a7b2b326123c6b96de8ef5dfcb2a1c3116b1cb9..222ad9ac081fbb0db05d1efe7edfbc46aadeead6 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef PLAYLISTITEMDELEGATE_H
 #define PLAYLISTITEMDELEGATE_H
 
@@ -13,7 +33,7 @@ public:
 
     QSize sizeHint( const QStyleOptionViewItem&, const QModelIndex& ) const;
     void paint( QPainter*, const QStyleOptionViewItem&, const QModelIndex& ) const;
-    QRect downloadButtonRect(QRect line) const;
+    QRect downloadButtonRect(const QRect &line) const;
     QRect authorRect(const QModelIndex& index) const;
 
 private:
@@ -24,15 +44,14 @@ private:
                                         const QModelIndex& index ) const;
 
     // active track painting
-    void paintActiveOverlay( QPainter *painter, qreal x, qreal y, qreal w, qreal h ) const;
-    void paintPlayIcon(QPainter *painter) const;
+    void paintActiveOverlay(QPainter *painter, const QRect &line) const;
 
     //  Paints the video duration
-    void drawTime(QPainter *painter, QString time, QRectF line) const;
+    void drawTime(QPainter *painter, const QString &time, const QRect &line) const;
 
-    static const qreal THUMB_WIDTH;
-    static const qreal THUMB_HEIGHT;
-    static const qreal PADDING;
+    static const int THUMB_WIDTH;
+    static const int THUMB_HEIGHT;
+    static const int PADDING;
 
     QPixmap playIcon;
     QFont boldFont;
@@ -42,6 +61,8 @@ private:
     bool downloadInfo;
     QProgressBar *progressBar;
 
+    mutable QRect lastAuthorRect;
+    mutable QHash<int, QRect> authorRects;
 };
 
 #endif
index e14fbd2c34a743d0921a26b39434c0f128338bcc..b3bf4cf5f27aa67e4e9296d8fa0d881e6e8e2977 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "playlistmodel.h"
 #include "videomimedata.h"
 #include "videosource.h"
@@ -48,7 +68,6 @@ QVariant PlaylistModel::data(const QModelIndex &index, int role) const {
         case ItemTypeRole:
             return ItemTypeShowMore;
         case Qt::DisplayRole:
-        case Qt::StatusTipRole:
             if (!errorMessage.isEmpty()) return errorMessage;
             if (searching) return tr("Searching...");
             if (canSearchMore) return tr("Show %1 More").arg(maxItems);
@@ -92,6 +111,8 @@ QVariant PlaylistModel::data(const QModelIndex &index, int role) const {
         return authorHovered;
     case AuthorPressedRole:
         return authorPressed;
+    case Qt::StatusTipRole:
+        return video->description();
     }
     
     return QVariant();
@@ -187,8 +208,11 @@ void PlaylistModel::abortSearch() {
     while (!videos.isEmpty())
         delete videos.takeFirst();
     reset();
-    videoSource->abort();
+    // if (videoSource) videoSource->abort();
     searching = false;
+    m_activeRow = -1;
+    m_activeVideo = 0;
+    skip = 1;
 }
 
 void PlaylistModel::searchFinished(int total) {
@@ -213,25 +237,19 @@ void PlaylistModel::searchError(QString message) {
 
 void PlaylistModel::addVideos(QList<Video*> newVideos) {
     if (newVideos.isEmpty()) return;
-
-    bool isFirstVideo = videos.isEmpty();
-
-    beginInsertRows(QModelIndex(), videos.size(), videos.size() + newVideos.size() - 1);
+    beginInsertRows(QModelIndex(), videos.size(), videos.size() + newVideos.size() - 2);
     videos.append(newVideos);
     endInsertRows();
-
     foreach (Video* video, newVideos) {
         connect(video, SIGNAL(gotThumbnail()),
                 SLOT(updateThumbnail()), Qt::UniqueConnection);
         video->loadThumbnail();
     }
-
-    // if (isFirstVideo) handleFirstVideo(newVideos.first());
 }
 
 void PlaylistModel::handleFirstVideo(Video *video) {
 
-    int currentVideoRow = rowForCloneVideo(MediaView::instance()->getCurrentVideo());
+    int currentVideoRow = rowForCloneVideo(MediaView::instance()->getCurrentVideoId());
     if (currentVideoRow != -1) setActiveRow(currentVideoRow, false);
     else {
         QSettings settings;
@@ -241,7 +259,7 @@ void PlaylistModel::handleFirstVideo(Video *video) {
 
     QSettings settings;
     if (!settings.value("manualplay", false).toBool()) {
-        int newActiveRow = rowForCloneVideo(MediaView::instance()->getCurrentVideo());
+        int newActiveRow = rowForCloneVideo(MediaView::instance()->getCurrentVideoId());
         if (newActiveRow != -1) setActiveRow(newActiveRow, false);
         else setActiveRow(0);
     }
@@ -272,8 +290,8 @@ void PlaylistModel::handleFirstVideo(Video *video) {
         QString channel = searchParams->author();
         if (!channel.isEmpty() && !searchParams->isTransient()) {
             QString value;
-            if (!video->authorUri().isEmpty() && video->authorUri() != video->author())
-                value = video->authorUri() + "|" + video->author();
+            if (!video->userId().isEmpty() && video->userId() != video->author())
+                value = video->userId() + "|" + video->author();
             else value = video->author();
             QStringList channels = settings.value(recentChannelsKey).toStringList();
             channels.removeAll(value);
@@ -419,11 +437,10 @@ bool PlaylistModel::dropMimeData(const QMimeData *data,
 
 }
 
-int PlaylistModel::rowForCloneVideo(Video *video) const {
-    if (!video) return -1;
+int PlaylistModel::rowForCloneVideo(const QString &videoId) const {
     for (int i = 0; i < videos.size(); ++i) {
         Video *v = videos.at(i);
-        if (v->id() == video->id()) return i;
+        if (v->id() == videoId) return i;
     }
     return -1;
 }
index 6b665a3973ac0da5d30b1593d6a09c5787d6d48b..a5c3b7c38992a10b4542a16229728b2d955d2ba3 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef PLAYLISTMODEL_H
 #define PLAYLISTMODEL_H
 
@@ -56,7 +76,7 @@ public:
 
     Video* videoAt( int row ) const;
     Video* activeVideo() const;
-    int rowForCloneVideo(Video *video) const;
+    int rowForCloneVideo(const QString &videoId) const;
 
     VideoSource* getVideoSource() { return videoSource; }
     void setVideoSource(VideoSource *videoSource);
index d8cbf99df565175607f04fbddd9fced3a3f59f43..41b54d3258998fb15c3a69c3c5227b3b4b47c434 100644 (file)
@@ -1,13 +1,36 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "playlistview.h"
 #include "playlistmodel.h"
 #include "playlistitemdelegate.h"
+#include "painterutils.h"
 
-PlaylistView::PlaylistView(QWidget *parent) : QListView(parent) {
-    clickableAuthors = true;
-
+PlaylistView::PlaylistView(QWidget *parent) : QListView(parent),
+    clickableAuthors(true) {
     setItemDelegate(new PlaylistItemDelegate(this));
     setSelectionMode(QAbstractItemView::ExtendedSelection);
 
+    setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
+    setMinimumWidth(175);
+
     // dragndrop
     setDragEnabled(true);
     setAcceptDrops(true);
@@ -18,7 +41,7 @@ PlaylistView::PlaylistView(QWidget *parent) : QListView(parent) {
     setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
     setFrameShape(QFrame::NoFrame);
     setAttribute(Qt::WA_MacShowFocusRect, false);
-    // setMinimumSize(120, 240);
+    setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     setUniformItemSizes(true);
 
     connect(this, SIGNAL(entered(const QModelIndex &)),
@@ -38,7 +61,6 @@ void PlaylistView::leaveEvent(QEvent * /* event */) {
 
 void PlaylistView::mouseMoveEvent(QMouseEvent *event) {
     QListView::mouseMoveEvent(event);
-    // QWidget::mouseMoveEvent(event);
 
     if (isHoveringThumbnail(event)) {
         setCursor(Qt::PointingHandCursor);
@@ -116,3 +138,8 @@ bool PlaylistView::isShowMoreItem(const QModelIndex &index) {
     return model()->rowCount() > 1 &&
             model()->rowCount() == index.row() + 1;
 }
+
+void PlaylistView::paintEvent(QPaintEvent *event) {
+    QListView::paintEvent(event);
+    PainterUtils::topShadow(viewport());
+}
index fb3bd0cd548948f9f2310253f74dd2fca03b418b..82c5eddbe75f43679efbf5188aab74db5949369c 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef PLAYLISTVIEW_H
 #define PLAYLISTVIEW_H
 
@@ -16,6 +36,7 @@ protected:
     void mouseMoveEvent(QMouseEvent *event);
     void mousePressEvent(QMouseEvent *event);
     void mouseReleaseEvent(QMouseEvent *event);
+    void paintEvent(QPaintEvent *event);
 
 signals:
     void authorPushed(QModelIndex index);
index 4917a96ae7b59505e58195142eb30b27920b58b8..aa78fccc7a81835a93e661ced1c29f15bd1d5639 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "refinesearchbutton.h"
 
 static const int refineButtonSize = 48;
index 05c15cbccf56b6bbfc7f414b2d0ae354750fb639..a861d8fb616b03c16641b5b95849502694983a1c 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef REFINESEARCHBUTTON_H
 #define REFINESEARCHBUTTON_H
 
index f1a140ee827d6e457a518b85520bdc5f21fec36f..46f4099b1afbf58e1743f381b3b9af5cfb20ac67 100644 (file)
@@ -1,7 +1,27 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "refinesearchwidget.h"
 #include "fontutils.h"
 #include "searchparams.h"
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
 #include "extra.h"
 #endif
 
@@ -119,8 +139,10 @@ void RefineSearchWidget::setup() {
     }
 
     layout->addSpacing(spacing);
-    QPushButton *doneButton = new QPushButton(tr("Done"), this);
+    doneButton = new QPushButton(tr("Done"), this);
     doneButton->setDefault(true);
+    doneButton->setAutoDefault(true);
+    doneButton->setFocusPolicy(Qt::StrongFocus);
     doneButton->setFont(FontUtils::medium());
     doneButton->setProperty("custom", true);
     doneButton->setProperty("important", true);
@@ -138,7 +160,7 @@ void RefineSearchWidget::setupLabel(QString text, QBoxLayout *layout, QString pa
     QLabel *icon = new QLabel(this);
     icon->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
     QString resource = paramName;
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
     resource = Extra::resourceName(resource);
 #endif
     QPixmap pixmap = QPixmap(":/images/search-" + resource + ".png");
@@ -207,8 +229,6 @@ void RefineSearchWidget::actionTriggered(QAction *action) {
 void RefineSearchWidget::setSearchParams(SearchParams *params) {
     setup();
 
-    qDebug() << (params != 0);
-
     The::globalActions()->value("refine-search")->setEnabled(params);
     setEnabled(params);
 
@@ -239,6 +259,8 @@ void RefineSearchWidget::setSearchParams(SearchParams *params) {
             Qt::UniqueConnection);
 
     dirty = false;
+
+    doneButton->setFocus();
 }
 
 void RefineSearchWidget::doneClicked() {
index 78c6e1e95bc284f30202304e678026f51b80c20c..7330ca49e795ba8431edd33a8c0d1d981971121b 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef REFINESEARCHWIDGET_H
 #define REFINESEARCHWIDGET_H
 
@@ -35,6 +55,7 @@ private:
 
     QHash<QString, QToolBar*> bars;
     bool dirty;
+    QPushButton *doneButton;
 
 };
 
index c83ed92c10b260dc69be4f95c4a152afa2366e40..a6189aa3faaced75b0e4283a7de680210b8a8b7b 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "regionsview.h"
 #include "ytregions.h"
 #include "mainwindow.h"
index cf92d201fbeac59c64e9f6db64f565cf64dede31..f0029ca214c365d75324524265456572ce98140d 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef REGIONSVIEW_H
 #define REGIONSVIEW_H
 
index a7906fc11fea1c5f4d716dd4e1dfc3d7aaf89429..be08e72241a6b6e2a2b46afa7d03b4b73cb13c44 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "searchparams.h"
 
 SearchParams::SearchParams(QObject *parent) : QObject(parent) {
index 24e023fa82f79dcdec10fd9655d41cb3d36ac366..f2e9d035ec98839842a12265a6fd3c5694b02d77 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef SEARCHPARAMS_H
 #define SEARCHPARAMS_H
 
index 950d342be9a1c620131a58344f103fd530a04bef..522701e29b3fed0b290c134f6819da28f3f12f3f 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "searchview.h"
 #include "constants.h"
 #include "fontutils.h"
 #else
 #include "searchlineedit.h"
 #endif
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
 #include "extra.h"
 #endif
 #ifdef APP_ACTIVATION
 #include "activation.h"
 #endif
 #include "mainwindow.h"
+#include "painterutils.h"
 
 namespace The {
 QHash<QString, QAction*>* globalActions();
@@ -36,6 +57,8 @@ SearchView::SearchView(QWidget *parent) : QWidget(parent) {
     setAttribute(Qt::WA_OpaquePaintEvent);
 #endif
 
+    setAutoFillBackground(true);
+
     QBoxLayout *mainLayout = new QVBoxLayout(this);
     mainLayout->setMargin(PADDING);
     mainLayout->setSpacing(0);
@@ -68,6 +91,12 @@ SearchView::SearchView(QWidget *parent) : QWidget(parent) {
                        .arg(Constants::WEBSITE, Constants::NAME)
                        + "</h1>", this);
     welcomeLabel->setOpenExternalLinks(true);
+#ifdef APP_WIN
+    QFont f = welcomeLabel->font();
+    f.setHintingPreference(QFont::PreferNoHinting);
+    f.setFamily("Segoe UI Light");
+    welcomeLabel->setFont(f);
+#endif
     layout->addWidget(welcomeLabel);
 
     layout->addSpacing(PADDING / 2);
@@ -280,7 +309,7 @@ void SearchView::watch(QString query) {
         searchParams->setKeywords(query);
     else {
         // remove spaces from channel name
-        query = query.replace(" ", "");
+        query = query.simplified();
         searchParams->setAuthor(query);
         searchParams->setSortBy(SearchParams::SortByNewest);
     }
@@ -332,9 +361,8 @@ void SearchView::watchKeywords(QString query) {
     emit search(searchParams);
 }
 
-void SearchView::paintEvent(QPaintEvent * /*event*/) {
-    QPainter painter(this);
-
+void SearchView::paintEvent(QPaintEvent *event) {
+    QWidget::paintEvent(event);
 #if defined(APP_MAC) | defined(APP_WIN)
     QBrush brush;
     if (window()->isActiveWindow()) {
@@ -342,21 +370,17 @@ void SearchView::paintEvent(QPaintEvent * /*event*/) {
     } else {
         brush = palette().window();
     }
+    QPainter painter(this);
     painter.fillRect(0, 0, width(), height(), brush);
+    painter.end();
 #endif
-
-    static QLinearGradient shadow;
-    static const int shadowHeight = 10;
-    if (shadow.stops().count() == 2) {
-        shadow.setFinalStop(0, shadowHeight);
-        const qreal initialOpacity = 96;
-        for (qreal i = 0; i <= 1; i += 1.0/shadowHeight) {
-            qreal opacity = qPow(initialOpacity, (1.0 - i)) - 1;
-            shadow.setColorAt(i, QColor(0x00, 0x00, 0x00, opacity));
-        }
-    }
-    QRect r = rect();
-    painter.fillRect(r.x(), r.y(), r.width(), shadowHeight, QBrush(shadow));
+#ifdef APP_UBUNTU
+    QStyleOption o;
+    o.initFrom(this);
+    QPainter p(this);
+    style()->drawPrimitive(QStyle::PE_Widget, &o, &p, this);
+#endif
+    // PainterUtils::topShadow(this);
 }
 
 void SearchView::searchTypeChanged(int index) {
index 4fcf5042c0ce3274c173fd4ce4fef389793d744e..9cefc717ec05643fca2bba1646aa53bd57778383 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef __SEARCHVIEW_H__
 #define __SEARCHVIEW_H__
 
index a896fbd0517f6af9d6405c8d103b08f8f6075cff..27e63901b6358363718e3bbff3b6543842147a46 100644 (file)
@@ -1,6 +1,27 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "segmentedcontrol.h"
 #include "fontutils.h"
 #include "mainwindow.h"
+#include "painterutils.h"
 
 static const QColor borderColor = QColor(0x26, 0x26, 0x26);
 
@@ -233,13 +254,22 @@ void SegmentedControl::paintButton(QPainter *painter, const QRect& rect, const Q
 
     painter->setFont(FontUtils::smallBold());
 
+    const QString text = action->text();
+
     // text shadow
     painter->setPen(QColor(0, 0, 0, 128));
-    painter->drawText(0, -1, width, height, Qt::AlignCenter, action->text());
+    painter->drawText(0, -1, width, height, Qt::AlignCenter, text);
 
     painter->setPen(QPen(Qt::white, 1));
-    painter->drawText(0, 0, width, height, Qt::AlignCenter, action->text());
+    painter->drawText(0, 0, width, height, Qt::AlignCenter, text);
+
+    if (action->property("notifyCount").isValid()) {
+        QRect textBox = painter->boundingRect(rect,
+                                              Qt::AlignCenter,
+                                              text);
+        painter->translate((width + textBox.width()) / 2 + 10, (height - 20) / 2);
+        PainterUtils::paintBadge(painter, action->property("notifyCount").toString());
+    }
 
     painter->restore();
 }
-
index 094a3b7f12a83cc8b30ebea198f647ef62169847..ba1ccdf9d028aa1a00b2f536a247c27fa339257f 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef SEGMENTEDCONTROL_H
 #define SEGMENTEDCONTROL_H
 
index 91670a94503c89539f6ae1481a11380715f6f059..dc8026e4550d18d651f923ca02e13c4ccae375ee 100644 (file)
@@ -1,8 +1,29 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "sidebarheader.h"
 #include "utils.h"
 #include "mediaview.h"
 #include "videosource.h"
 #include "fontutils.h"
+#include "utils.h"
 
 SidebarHeader::SidebarHeader(QWidget *parent) : QToolBar(parent) { }
 
@@ -11,6 +32,8 @@ void SidebarHeader::setup() {
     if (isSetup) return;
     isSetup = true;
 
+    setIconSize(QSize(16, 16));
+
     backAction = new QAction(
                 Utils::icon("go-previous"),
                 tr("&Back"), this);
@@ -27,19 +50,16 @@ void SidebarHeader::setup() {
 
     foreach (QAction* action, actions()) {
         window()->addAction(action);
-        action->setAutoRepeat(false);
+        Utils::setupAction(action);
     }
 
-    /*
     QWidget *spacerWidget = new QWidget(this);
     spacerWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
-    spacerWidget->setVisible(true);
     addWidget(spacerWidget);
-    */
 }
 
 QSize SidebarHeader::minimumSizeHint (void) const {
-    return(QSize(1, QFontMetrics(font()).height() * 1.9));
+    return(QSize(160, QFontMetrics(font()).height() * 1.9));
 }
 
 void SidebarHeader::updateInfo() {
@@ -87,6 +107,14 @@ void SidebarHeader::updateTitle(QString title) {
 void SidebarHeader::setTitle(QString title) {
     this->title = title;
     update();
+
+    QList<VideoSource*> history = MediaView::instance()->getHistory();
+    int currentIndex = MediaView::instance()->getHistoryIndex();
+    VideoSource *currentVideoSource = history.at(currentIndex);
+    foreach (QAction* action, videoSourceActions)
+        removeAction(action);
+    videoSourceActions = currentVideoSource->getActions();
+    addActions(videoSourceActions);
 }
 
 void SidebarHeader::paintEvent(QPaintEvent *event) {
@@ -101,12 +129,13 @@ void SidebarHeader::paintEvent(QPaintEvent *event) {
     QString t = title;
     QRect textBox = p.boundingRect(r, Qt::AlignCenter, t);
     int i = 1;
-    static const int margin = 100;
-    while (textBox.width() > r.width() - margin) {
-        t = t.left(t.length() - i) + "...";
+    static const int margin = 50;
+    while (textBox.width() > r.width() - margin*2 && t.length() > 3) {
+        t = t.left(t.length() - i).trimmed() + QLatin1String("...");
         textBox = p.boundingRect(r, Qt::AlignCenter, t);
         i++;
     }
-
     p.drawText(r, Qt::AlignCenter, t);
+
+
 }
index 1ef49379def524f65a48d8ae146ed08ed10b57d0..8591d548cbbe789412e858e1b43fdd558b372401 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef SIDEBARHEADER_H
 #define SIDEBARHEADER_H
 
@@ -25,6 +45,7 @@ private:
     QAction *backAction;
     QAction * forwardAction;
     QString title;
+    QList<QAction*> videoSourceActions;
 };
 
 #endif // SIDEBARHEADER_H
index 5a5647fe2f83c00cc98053e9109c4a7539e1ed49..fd5fd40acdc672a56a5919e64767e7c454abbe75 100644 (file)
@@ -1,8 +1,28 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "sidebarwidget.h"
 #include "refinesearchbutton.h"
 #include "refinesearchwidget.h"
 #include "sidebarheader.h"
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
 #include "extra.h"
 #endif
 
@@ -44,10 +64,6 @@ SidebarWidget::SidebarWidget(QWidget *parent) :
 }
 
 void SidebarWidget::setup() {
-    static bool isSetup = false;
-    if (isSetup) return;
-    isSetup = true;
-
     refineSearchButton = new RefineSearchButton(this);
     refineSearchButton->setStatusTip(tr("Refine Search")
                                      + " (" + QKeySequence(Qt::CTRL + Qt::Key_R).toString(QKeySequence::NativeText) + ")");
@@ -72,7 +88,6 @@ void SidebarWidget::setPlaylist(QListView *playlist) {
 }
 
 void SidebarWidget::showPlaylist() {
-    setup();
     stackedWidget->setCurrentWidget(playlist);
     The::globalActions()->value("refine-search")->setChecked(false);
 }
@@ -81,8 +96,8 @@ void SidebarWidget::showRefineSearchWidget() {
     if (!refineSearchWidget->isEnabled()) return;
     refineSearchWidget->setDirty(false);
     stackedWidget->setCurrentWidget(refineSearchWidget);
-    refineSearchWidget->setFocus();
-#ifndef Q_WS_X11
+    // refineSearchWidget->setFocus();
+#ifdef APP_EXTRA
     Extra::fadeInWidget(playlist, refineSearchWidget);
 #endif
     refineSearchButton->hide();
@@ -92,7 +107,7 @@ void SidebarWidget::showRefineSearchWidget() {
 void SidebarWidget::hideRefineSearchWidget() {
     stackedWidget->setCurrentWidget(playlist);
     playlist->setFocus();
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
     Extra::fadeInWidget(refineSearchWidget, playlist);
 #endif
     The::globalActions()->value("refine-search")->setChecked(false);
index 26d9bf0c173c457cc87090ced5524bb11bd59886..cd8efe61639759191389a3e2529f65bc8aeff047 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef SIDEBARWIDGET_H
 #define SIDEBARWIDGET_H
 
index 95594fc82966f21386006c0f1e6bbed594c39c1f..07a9c554e55d513aa4c863cf8c77e87d215048ac 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "spacer.h"
 
 Spacer::Spacer(QWidget *parent) : QWidget(parent) { }
index 3d1f44fed4600005592e85d97bbb0ee7acc242f1..88ae160823a8f83be3e4da2d6d56de0ea92d8586 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef SPACER_H
 #define SPACER_H
 
index 1aae3e370edf0ce5651c04b1c489f6cbe85f19f5..4bfeee628e6a58aebdb6191c32171fbe49238867 100644 (file)
@@ -1,16 +1,35 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "standardfeedsview.h"
 #include "videosourcewidget.h"
 #include "ytcategories.h"
 #include "ytstandardfeed.h"
 #include "ytregions.h"
 #include "mainwindow.h"
+#include "painterutils.h"
 
 namespace The {
 QHash<QString, QAction*>* globalActions();
 }
 
-static const int cols = 5;
-
 StandardFeedsView::StandardFeedsView(QWidget *parent) : QWidget(parent),
     layout(0) {
     QPalette p = palette();
@@ -76,6 +95,7 @@ void StandardFeedsView::addVideoSourceWidget(VideoSource *videoSource) {
     connect(w, SIGNAL(activated(VideoSource*)),
             SIGNAL(activated(VideoSource*)));
     int i = layout->count();
+    static const int cols = 5;
     layout->addWidget(w, i / cols, i % cols);
 }
 
@@ -83,18 +103,21 @@ QList<YTStandardFeed*> StandardFeedsView::getMainFeeds() {
     QList<YTStandardFeed*> feeds;
 
     feeds << buildStardardFeed("most_popular", tr("Most Popular"))
-          << buildStardardFeed("recently_featured", tr("Featured"))
+          // << buildStardardFeed("recently_featured", tr("Featured"))
           << buildStardardFeed("most_shared", tr("Most Shared"))
           << buildStardardFeed("most_discussed", tr("Most Discussed"))
-          << buildStardardFeed("top_rated", tr("Top Rated"));
+          << buildStardardFeed("top_rated", tr("Top Rated"))
+          << buildStardardFeed("most_popular", tr("All Time Popular"), "all_time");
 
     return feeds;
 }
 
-YTStandardFeed* StandardFeedsView::buildStardardFeed(QString feedId, QString label) {
+YTStandardFeed* StandardFeedsView::buildStardardFeed(
+        QString feedId, QString label, QString time) {
     YTStandardFeed *feed = new YTStandardFeed(this);
     feed->setFeedId(feedId);
     feed->setLabel(label);
+    if (!time.isEmpty()) feed->setTime(time);
     feed->setRegionId(YTRegions::currentRegionId());
     return feed;
 }
@@ -121,4 +144,8 @@ void StandardFeedsView::selectLocalRegion() {
     load();
 }
 
+void StandardFeedsView::paintEvent(QPaintEvent *event) {
+    QWidget::paintEvent(event);
+    PainterUtils::topShadow(this);
+}
 
index 17d850ff38efa38d45353fdd08687d67c2fb71e8..1d5214351fe9059ab3f267e047ca648490955582 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef CATEGORIESVIEW_H
 #define CATEGORIESVIEW_H
 
@@ -22,6 +42,9 @@ public slots:
     void appear();
     void disappear();
     void load();
+
+protected:
+    void paintEvent(QPaintEvent *event);
     
 private slots:
     void layoutCategories(const QList<YTCategory> &categories);
@@ -31,7 +54,7 @@ private slots:
 private:
     void addVideoSourceWidget(VideoSource *videoSource);
     QList<YTStandardFeed*> getMainFeeds();
-    YTStandardFeed* buildStardardFeed(QString feedId, QString label);
+    YTStandardFeed* buildStardardFeed(QString feedId, QString label, QString time = QString());
     QGridLayout *layout;
     
 };
index ad39f92dba8814eb680972480281716534fc1937..e14492f1320ff11ecefa6720033d064d563a12a3 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef SUGGESTER_H
 #define SUGGESTER_H
 
index 362cbd8db0d4d595c77ac6e134ad71868897f448..3f29d70acc2a230675258c9f8d668c20a60102e4 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "temporary.h"
 #include "constants.h"
 
index 50b9633dfeb2f8dad7de41583913cff589811466..de5e24d5697f7fe3d7ef16754bb21104057711f5 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef TEMPORARY_H
 #define TEMPORARY_H
 
index fc794d31d874ea848c8da801216e730d673442d9..af7c349e6d3c9522cb00e669a40e8c946b1fc0cd 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "updatechecker.h"
 #include "networkaccess.h"
 #include "constants.h"
@@ -14,7 +34,7 @@ UpdateChecker::UpdateChecker() {
 }
 
 void UpdateChecker::checkForUpdate() {
-    QUrl updateUrl(QString(Constants::WEBSITE) + "-ws/release.xml");
+    QUrl updateUrl(QLatin1String(Constants::WEBSITE) + "-ws/release.xml");
     updateUrl.addQueryItem("v", Constants::VERSION);
 
 #ifdef APP_MAC
index 8d6cf0833de75f1578129c7a5926063c41178a81..74f0fb930853b8beee9479b565c3d2c95f1ca915 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef UPDATECHECKER_H
 #define UPDATECHECKER_H
 
index 037bb8bb136a81f45379f5cba58cd4a0f14b186f..a8e4a12066836eeaf6be288e421329abc32a153e 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 /****************************************************************************
 **
 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
diff --git a/src/userview.cpp b/src/userview.cpp
deleted file mode 100644 (file)
index af6257a..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "userview.h"
-
-UserView::UserView(QWidget *parent) : QWidget(parent) {
-    layout = new QGridLayout(this);
-}
diff --git a/src/userview.h b/src/userview.h
deleted file mode 100644 (file)
index bb03acd..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef USERVIEW_H
-#define USERVIEW_H
-
-#include <QtGui>
-#include "view.h"
-
-class VideoSource;
-
-class UserView : public QWidget, public View {
-
-    Q_OBJECT
-
-public:
-    UserView(QWidget *parent = 0);
-
-signals:
-    void activated(VideoSource *standardFeed);
-    
-private:
-    QGridLayout *layout;
-    
-};
-
-#endif // USERVIEW_H
index 01b03b3d18b3eb05e58ac2f1507dd502d5bf1825..5c5aa1ec259fa73f6d85bc4de196dbc60f4de33b 100644 (file)
@@ -1,32 +1,96 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "utils.h"
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
 #include "extra.h"
 #endif
 
-QIcon getIcon(const QString &name) {
-#ifdef Q_WS_X11
-    return QIcon::fromTheme(name);
-#else
-    return Extra::getIcon(name);
-#endif
+QIcon Utils::themeIcon(const QString &name) {
+    if (QIcon::hasThemeIcon(name))
+        return QIcon::fromTheme(name);
+    else
+        return QIcon(QString(":/images/%1.png").arg(name));
 }
 
 QIcon Utils::icon(const QString &name) {
-#ifdef Q_WS_X11
-    QString themeName = qApp->property("style").toString();
-    if (themeName == QLatin1String("Ambiance"))
-        return icon(QStringList() << name + "-symbolic" << name);
-    else return getIcon(name);
-#else
+#ifdef APP_EXTRA
     return Extra::getIcon(name);
+#else
+    return themeIcon(name);
 #endif
 }
 
 QIcon Utils::icon(const QStringList &names) {
     QIcon icon;
     foreach (QString name, names) {
-        icon = getIcon(name);
+        icon = Utils::themeIcon(name);
         if (!icon.availableSizes().isEmpty()) break;
     }
     return icon;
 }
+
+QIcon Utils::tintedIcon(const QString &name, const QColor &color, QList<QSize> sizes) {
+    QIcon i = icon(name);
+    QIcon t;
+    if (sizes.isEmpty()) sizes = i.availableSizes();
+    foreach (QSize size, sizes) {
+        QPixmap pixmap = i.pixmap(size);
+        QImage tintedImage = tinted(pixmap.toImage(), color);
+        t.addPixmap(QPixmap::fromImage(tintedImage));
+    }
+    return t;
+}
+
+QImage Utils::grayscaled(const QImage &image) {
+    QImage img = image;
+    int pixels = img.width() * img.height();
+    unsigned int *data = (unsigned int *)img.bits();
+    for (int i = 0; i < pixels; ++i) {
+        int val = qGray(data[i]);
+        data[i] = qRgba(val, val, val, qAlpha(data[i]));
+    }
+    return img;
+}
+
+QImage Utils::tinted(const QImage &image, const QColor &color,
+              QPainter::CompositionMode mode) {
+    QImage img(image.size(), QImage::Format_ARGB32_Premultiplied);
+    QPainter painter(&img);
+    painter.drawImage(0, 0, grayscaled(image));
+    painter.setCompositionMode(mode);
+    painter.fillRect(img.rect(), color);
+    painter.end();
+    img.setAlphaChannel(image.alphaChannel());
+    return img;
+}
+
+void Utils::setupAction(QAction *action) {
+    // never autorepeat.
+    // unexperienced users tend to keep keys pressed for a "long" time
+    action->setAutoRepeat(false);
+
+    // show keyboard shortcuts in the status bar
+    if (!action->shortcut().isEmpty())
+        action->setStatusTip(action->statusTip() +
+                             " (" +
+                             action->shortcut().toString(QKeySequence::NativeText) +
+                            ")");
+}
index 1b023e854e1731ff2c3871e85fd35f8887ed265a..b62bddf07c933f52650e161276153a3f7775b360 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef UTILS_H
 #define UTILS_H
 
 class Utils {
 
 public:
+    static QIcon themeIcon(const QString &name);
     static QIcon icon(const QString &name);
     static QIcon icon(const QStringList &names);
+    static QIcon tintedIcon(const QString &name, const QColor &color,
+                            QList<QSize> sizes = QList<QSize>());
+    static void setupAction(QAction *action);
 
 private:
     Utils() { }
-
+    static QImage grayscaled(const QImage &image);
+    static QImage tinted(const QImage &image, const QColor &color,
+                         QPainter::CompositionMode mode = QPainter::CompositionMode_Screen);
 };
 
 #endif // UTILS_H
index 1e65242ca389531707ec680a974530caa2c7acbc..027ee1ff53e04e4f84981fb005092466d8dc809c 100644 (file)
@@ -1,17 +1,38 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "video.h"
 #include "networkaccess.h"
 #include <QtNetwork>
 #include "videodefinition.h"
+#include "jsfunctions.h"
 
 namespace The {
-    NetworkAccess* http();
+NetworkAccess* http();
 }
 
 Video::Video() : m_duration(0),
-m_viewCount(-1),
-definitionCode(0),
-elIndex(0),
-loadingStreamUrl(false)
+    m_viewCount(-1),
+    definitionCode(0),
+    elIndex(0),
+    loadingStreamUrl(false)
 { }
 
 Video* Video::clone() {
@@ -19,7 +40,7 @@ Video* Video::clone() {
     cloneVideo->m_title = m_title;
     cloneVideo->m_description = m_description;
     cloneVideo->m_author = m_author;
-    cloneVideo->m_authorUri = m_authorUri;
+    cloneVideo->m_userId = m_userId;
     cloneVideo->m_webpage = m_webpage;
     cloneVideo->m_streamUrl = m_streamUrl;
     cloneVideo->m_thumbnail = m_thumbnail;
@@ -58,7 +79,8 @@ void Video::loadThumbnail() {
 
 void Video::setThumbnail(QByteArray bytes) {
     m_thumbnail.loadFromData(bytes);
-    m_thumbnail = m_thumbnail.scaled(160, 90);
+    if (m_thumbnail.width() > 160)
+        m_thumbnail = m_thumbnail.scaledToWidth(160, Qt::SmoothTransformation);
     emit gotThumbnail();
 }
 
@@ -74,15 +96,26 @@ void Video::loadStreamUrl() {
         return;
     }
     loadingStreamUrl = true;
+    elIndex = 0;
 
-    // https://develop.participatoryculture.org/trac/democracy/browser/trunk/tv/portable/flashscraper.py
     getVideoInfo();
 }
 
 void  Video::getVideoInfo() {
-    static const QStringList elTypes = QStringList() << "&el=embedded" << "&el=vevo" << "&el=detailpage" << "";
-
-    if (elIndex > elTypes.size() - 1) {
+    static const QStringList elTypes = QStringList() << "&el=embedded" << "&el=detailpage" << "&el=vevo" << "";
+
+    QUrl videoInfoUrl;
+
+    if (elIndex == elTypes.size()) {
+        videoInfoUrl = QUrl("http://www.youtube.com/get_video_info");
+        videoInfoUrl.addQueryItem("video_id", videoId);
+        videoInfoUrl.addQueryItem("el", "embedded");
+        videoInfoUrl.addQueryItem("gl", "US");
+        videoInfoUrl.addQueryItem("hl", "en");
+        videoInfoUrl.addQueryItem("eurl", "https://youtube.googleapis.com/v/" + videoId);
+        videoInfoUrl.addQueryItem("asv", "3");
+        videoInfoUrl.addQueryItem("sts", "1588");
+    } else if (elIndex > elTypes.size() - 1) {
         loadingStreamUrl = false;
         emit errorStreamUrl("Cannot get video info");
         /*
@@ -95,24 +128,21 @@ void  Video::getVideoInfo() {
         // see you in scrapWebPage(QByteArray)
         */
         return;
+    } else {
+        videoInfoUrl = QUrl(QString(
+                                "http://www.youtube.com/get_video_info?video_id=%1%2&ps=default&eurl=&gl=US&hl=en"
+                                ).arg(videoId, elTypes.at(elIndex)));
     }
 
-    // Get Video Token
-    QUrl videoInfoUrl = QUrl(QString(
-            "http://www.youtube.com/get_video_info?video_id=%1%2&ps=default&eurl=&gl=US&hl=en"
-            ).arg(videoId, elTypes.at(elIndex)));
-
     QObject *reply = The::http()->get(videoInfoUrl);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(gotVideoInfo(QByteArray)));
     connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorVideoInfo(QNetworkReply*)));
 
     // see you in gotVideoInfo...
-
 }
 
 void  Video::gotVideoInfo(QByteArray data) {
     QString videoInfo = QString::fromUtf8(data);
-
     // qDebug() << "videoInfo" << videoInfo;
 
     // get video token
@@ -125,6 +155,7 @@ void  Video::gotVideoInfo(QByteArray data) {
         getVideoInfo();
         return;
     }
+
     QString videoToken = re.cap(1);
     while (videoToken.contains('%'))
         videoToken = QByteArray::fromPercentEncoding(videoToken.toAscii());
@@ -144,23 +175,27 @@ void  Video::gotVideoInfo(QByteArray data) {
 
     QString fmtUrlMap = re.cap(1);
     fmtUrlMap = QByteArray::fromPercentEncoding(fmtUrlMap.toUtf8());
+    parseFmtUrlMap(fmtUrlMap);
+}
 
+void Video::parseFmtUrlMap(QString fmtUrlMap, bool fromWebPage) {
     QSettings settings;
-    QString definitionName = settings.value("definition").toString();
+    QString definitionName = settings.value("definition", "360p").toString();
     int definitionCode = VideoDefinition::getDefinitionCode(definitionName);
 
     // qDebug() << "fmtUrlMap" << fmtUrlMap;
-    QStringList formatUrls = fmtUrlMap.split(",", QString::SkipEmptyParts);
+    QStringList formatUrls = fmtUrlMap.split(',', QString::SkipEmptyParts);
     QHash<int, QString> urlMap;
     foreach(QString formatUrl, formatUrls) {
         // qDebug() << "formatUrl" << formatUrl;
-        QStringList urlParams = formatUrl.split("&", QString::SkipEmptyParts);
+        QStringList urlParams = formatUrl.split('&', QString::SkipEmptyParts);
         // qDebug() << "urlParams" << urlParams;
 
         int format = -1;
         QString url;
         QString sig;
         foreach(QString urlParam, urlParams) {
+            // qDebug() << urlParam;
             if (urlParam.startsWith("itag=")) {
                 int separator = urlParam.indexOf("=");
                 format = urlParam.mid(separator + 1).toInt();
@@ -172,14 +207,30 @@ void  Video::gotVideoInfo(QByteArray data) {
                 int separator = urlParam.indexOf("=");
                 sig = urlParam.mid(separator + 1);
                 sig = QByteArray::fromPercentEncoding(sig.toUtf8());
+            } else if (urlParam.startsWith("s=")) {
+                if (fromWebPage || elIndex == 4) {
+                    int separator = urlParam.indexOf("=");
+                    sig = urlParam.mid(separator + 1);
+                    sig = QByteArray::fromPercentEncoding(sig.toUtf8());
+                    sig = JsFunctions::instance()->decryptSignature(sig);
+                } else {
+                    QObject *reply = The::http()->get(m_webpage);
+                    connect(reply, SIGNAL(data(QByteArray)), SLOT(scrapeWebPage(QByteArray)));
+                    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorVideoInfo(QNetworkReply*)));
+                    // see you in scrapWebPage(QByteArray)
+                    return;
+                }
             }
         }
         if (format == -1 || url.isNull()) continue;
 
         url += "&signature=" + sig;
 
+        if (!url.contains("ratebypass"))
+            url += "&ratebypass=yes";
+
         if (format == definitionCode) {
-            qDebug() << "Found format" << definitionCode;
+            // qDebug() << "Found format" << definitionCode;
             QUrl videoUrl = QUrl::fromEncoded(url.toUtf8(), QUrl::StrictMode);
             m_streamUrl = videoUrl;
             this->definitionCode = definitionCode;
@@ -199,7 +250,7 @@ void  Video::gotVideoInfo(QByteArray data) {
         if (previousIndex < 0) previousIndex = 0;
         int definitionCode = definitionCodes.at(previousIndex);
         if (urlMap.contains(definitionCode)) {
-            qDebug() << "Found format" << definitionCode;
+            // qDebug() << "Found format" << definitionCode;
             QString url = urlMap.value(definitionCode);
             QUrl videoUrl = QUrl::fromEncoded(url.toUtf8(), QUrl::StrictMode);
             m_streamUrl = videoUrl;
@@ -212,15 +263,14 @@ void  Video::gotVideoInfo(QByteArray data) {
     }
 
     emit errorStreamUrl(tr("Cannot get video stream for %1").arg(m_webpage.toString()));
-
 }
 
 void Video::foundVideoUrl(QString videoToken, int definitionCode) {
     // qDebug() << "foundVideoUrl" << videoToken << definitionCode;
 
     QUrl videoUrl = QUrl(QString(
-            "http://www.youtube.com/get_video?video_id=%1&t=%2&eurl=&el=&ps=&asv=&fmt=%3"
-            ).arg(videoId, videoToken, QString::number(definitionCode)));
+                             "http://www.youtube.com/get_video?video_id=%1&t=%2&eurl=&el=&ps=&asv=&fmt=%3"
+                             ).arg(videoId, videoToken, QString::number(definitionCode)));
 
     m_streamUrl = videoUrl;
     loadingStreamUrl = false;
@@ -233,37 +283,23 @@ void Video::errorVideoInfo(QNetworkReply *reply) {
 }
 
 void Video::scrapeWebPage(QByteArray data) {
-
-    QString videoHTML = QString::fromUtf8(data);
-    QRegExp re(".*, \"t\": \"([^\"]+)\".*");
-    bool match = re.exactMatch(videoHTML);
+    QString html = QString::fromUtf8(data);
+    QRegExp re(".*\"url_encoded_fmt_stream_map\": \"([^\"]+)\".*");
+    bool match = re.exactMatch(html);
 
     // on regexp failure, stop and report error
     if (!match || re.numCaptures() < 1) {
-        emit errorStreamUrl("Error parsing video page");
-        loadingStreamUrl = false;
+        qWarning() << "Error parsing video page";
+        // emit errorStreamUrl("Error parsing video page");
+        // loadingStreamUrl = false;
+        elIndex++;
+        getVideoInfo();
         return;
     }
 
-    QString videoToken = re.cap(1);
-    // FIXME proper decode
-    videoToken = videoToken.replace("%3D", "=");
-
-    // we'll need this in gotHeadHeaders()
-    this->videoToken = videoToken;
-
-    // qDebug() << "token" << videoToken;
-
-    QSettings settings;
-    QString definitionName = settings.value("definition").toString();
-    int definitionCode = VideoDefinition::getDefinitionCode(definitionName);
-    if (definitionCode == 18) {
-        // This is assumed always available
-        foundVideoUrl(videoToken, 18);
-    } else {
-        findVideoUrl(definitionCode);
-    }
-
+    QString fmtUrlMap = re.cap(1);
+    fmtUrlMap.replace("\\u0026", "&");
+    parseFmtUrlMap(fmtUrlMap, true);
 }
 
 void Video::gotHeadHeaders(QNetworkReply* reply) {
@@ -313,8 +349,8 @@ void Video::findVideoUrl(int definitionCode) {
     this->definitionCode = definitionCode;
 
     QUrl videoUrl = QUrl(QString(
-            "http://www.youtube.com/get_video?video_id=%1&t=%2&eurl=&el=&ps=&asv=&fmt=%3"
-            ).arg(videoId, videoToken, QString::number(definitionCode)));
+                             "http://www.youtube.com/get_video?video_id=%1&t=%2&eurl=&el=&ps=&asv=&fmt=%3"
+                             ).arg(videoId, videoToken, QString::number(definitionCode)));
 
     QObject *reply = The::http()->head(videoUrl);
     connect(reply, SIGNAL(finished(QNetworkReply*)), SLOT(gotHeadHeaders(QNetworkReply*)));
@@ -324,7 +360,6 @@ void Video::findVideoUrl(int definitionCode) {
 
 }
 
-
 QString Video::formattedDuration() const {
     QString format = m_duration > 3600 ? "h:mm:ss" : "m:ss";
     return QTime().addSecs(m_duration).toString(format);
index 4b15e3738aacd6e7d40b3ab628f717c223700123..5e8580ae1408bba82d59fe818f560e99d7804f09 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef VIDEO_H
 #define VIDEO_H
 
@@ -12,29 +32,29 @@ public:
     Video();
     Video* clone();
 
-    const QString title() const { return m_title; }
+    const QString title() const { return m_title; }
     void setTitle( QString title ) { m_title = title; }
 
-    const QString description() const { return m_description; }
+    const QString description() const { return m_description; }
     void setDescription( QString description ) { m_description = description; }
 
-    const QString author() const { return m_author; }
+    const QString author() const { return m_author; }
     void setAuthor( QString author ) { m_author = author; }
 
-    const QString authorUri() const { return m_authorUri; }
-    void setAuthorUri( QString authorUri ) { m_authorUri = authorUri; }
+    const QString & userId() const { return m_userId; }
+    void setUserId( QString userId ) { m_userId = userId; }
 
-    const QUrl webpage() const { return m_webpage; }
+    const QUrl webpage() const { return m_webpage; }
     void setWebpage(QUrl webpage);
 
     void loadThumbnail();
     const QPixmap & thumbnail() const { return m_thumbnail; }
 
-    QString thumbnailUrl() { return m_thumbnailUrl; }
+    const QString & thumbnailUrl() { return m_thumbnailUrl; }
     void setThumbnailUrl(QString url) { m_thumbnailUrl = url; }
 
     void loadMediumThumbnail();
-    QString mediumThumbnailUrl() { return m_mediumThumbnailUrl; }
+    const QString & mediumThumbnailUrl() { return m_mediumThumbnailUrl; }
     void setMediumThumbnailUrl(QString url) { m_mediumThumbnailUrl = url; }
 
     int duration() const { return m_duration; }
@@ -44,15 +64,16 @@ public:
     int viewCount() const { return m_viewCount; }
     void setViewCount( int viewCount ) { m_viewCount = viewCount; }
 
-    const QDateTime published() const { return m_published; }
+    const QDateTime published() const { return m_published; }
     void setPublished( QDateTime published ) { m_published = published; }
 
     int getDefinitionCode() const { return definitionCode; }
 
     void loadStreamUrl();
-    QUrl getStreamUrl() { return m_streamUrl; }
+    const QUrl & getStreamUrl() { return m_streamUrl; }
 
-    QString id() const { return videoId; }
+    void setId(QString id) { videoId = id; }
+    const QString & id() const { return videoId; }
 
 signals:
     void gotThumbnail();
@@ -71,11 +92,12 @@ private:
     void getVideoInfo();
     void findVideoUrl(int definitionCode);
     void foundVideoUrl(QString videoToken, int definitionCode);
+    void parseFmtUrlMap(QString fmtUrlMap, bool fromWebPage = false);
 
     QString m_title;
     QString m_description;
     QString m_author;
-    QString m_authorUri;
+    QString m_userId;
     QUrl m_webpage;
     QUrl m_streamUrl;
     QPixmap m_thumbnail;
index 695070f7141c2eb195ee42d5d0e9a07ce9b527a8..14a57187b09d2af07c2fe810d8523cfe33063304 100644 (file)
@@ -1,8 +1,32 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "videoareawidget.h"
 #include "videomimedata.h"
-#ifndef Q_WS_X11
+#include "mainwindow.h"
+#ifdef APP_EXTRA
 #include "extra.h"
 #endif
+#ifdef Q_WS_MAC
+#include "macutils.h"
+#endif
 
 VideoAreaWidget::VideoAreaWidget(QWidget *parent) : QWidget(parent) {
     QBoxLayout *vLayout = new QVBoxLayout(this);
@@ -28,11 +52,12 @@ VideoAreaWidget::VideoAreaWidget(QWidget *parent) : QWidget(parent) {
     stackedLayout = new QStackedLayout();
     vLayout->addLayout(stackedLayout);
 
-    snapshotPreview = new QLabel(this);
-    stackedLayout->addWidget(snapshotPreview);
+    // snapshotPreview = new QLabel(this);
+    // stackedLayout->addWidget(snapshotPreview);
     
-    setAcceptDrops(true);    
+    setAcceptDrops(true);
     setMouseTracking(true);
+    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 }
 
 void VideoAreaWidget::setVideoWidget(QWidget *videoWidget) {
@@ -44,10 +69,12 @@ void VideoAreaWidget::setVideoWidget(QWidget *videoWidget) {
 void VideoAreaWidget::setLoadingWidget(LoadingWidget *loadingWidget) {
     this->loadingWidget = loadingWidget;
     stackedLayout->addWidget(loadingWidget);
+    stackedLayout->setCurrentWidget(loadingWidget);
 }
 
 void VideoAreaWidget::showVideo() {
     stackedLayout->setCurrentWidget(videoWidget);
+    loadingWidget->clear();
 }
 
 void VideoAreaWidget::showError(QString message) {
@@ -58,16 +85,17 @@ void VideoAreaWidget::showError(QString message) {
 }
 
 void VideoAreaWidget::showLoading(Video *video) {
-    stackedLayout->setCurrentWidget(loadingWidget);
-    this->loadingWidget->setVideo(video);
     messageLabel->hide();
     messageLabel->clear();
+    stackedLayout->setCurrentWidget(loadingWidget);
+    loadingWidget->setVideo(video);
 }
 
+/*
 void VideoAreaWidget::showSnapshotPreview(QPixmap pixmap) {
     snapshotPreview->setPixmap(pixmap);
     stackedLayout->setCurrentWidget(snapshotPreview);
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
     Extra::flashInWidget(snapshotPreview);
 #endif
     QTimer::singleShot(1500, this, SLOT(hideSnapshotPreview()));
@@ -76,13 +104,14 @@ void VideoAreaWidget::showSnapshotPreview(QPixmap pixmap) {
 void VideoAreaWidget::hideSnapshotPreview() {
     stackedLayout->setCurrentWidget(videoWidget);
 }
+*/
 
 void VideoAreaWidget::clear() {
-    stackedLayout->setCurrentWidget(loadingWidget);
     loadingWidget->clear();
     messageLabel->hide();
     messageLabel->clear();
-    snapshotPreview->clear();
+    // snapshotPreview->clear();
+    stackedLayout->setCurrentWidget(loadingWidget);
 }
 
 void VideoAreaWidget::mouseDoubleClickEvent(QMouseEvent *event) {
@@ -95,6 +124,29 @@ void VideoAreaWidget::mousePressEvent(QMouseEvent *event) {
 
     if(event->button() == Qt::RightButton)
         emit rightClicked();
+
+    else if (event->button() == Qt::LeftButton) {
+        bool isNormalWindow = !window()->isMaximized() &&
+                !MainWindow::instance()->isReallyFullScreen();
+        if (isNormalWindow) {
+            dragPosition = event->globalPos() - window()->frameGeometry().topLeft();
+            event->accept();
+        }
+    }
+}
+
+void VideoAreaWidget::mouseMoveEvent(QMouseEvent *event) {
+    bool isNormalWindow = !window()->isMaximized() &&
+            !MainWindow::instance()->isReallyFullScreen();
+    if (event->buttons() & Qt::LeftButton && isNormalWindow) {
+        QPoint p = event->globalPos() - dragPosition;
+#ifdef Q_WS_MAC
+        mac::moveWindowTo(window()->winId(), p.x(), p.y());
+#else
+        window()->move(p);
+#endif
+        event->accept();
+    }
 }
 
 void VideoAreaWidget::dragEnterEvent(QDragEnterEvent *event) {
index 4d4fd658463c2903289f461aa2307812f3e4ae67..3673f6913af2a3b8e8753aab0c5ac522d5f5ec33 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef VIDEOAREAWIDGET_H
 #define VIDEOAREAWIDGET_H
 
@@ -21,7 +41,8 @@ public:
     void setListModel(PlaylistModel *listModel) {
         this->listModel = listModel;
     }
-    void showSnapshotPreview(QPixmap pixmap);
+    // void showSnapshotPreview(QPixmap pixmap);
+    bool isVideoShown() { return stackedLayout->currentWidget() == videoWidget; }
 
 signals:
     void doubleClicked();
@@ -30,11 +51,12 @@ signals:
 protected:
     void mouseDoubleClickEvent(QMouseEvent *event);
     void mousePressEvent(QMouseEvent *event);
+    void mouseMoveEvent(QMouseEvent *event);
     void dragEnterEvent(QDragEnterEvent *event);
     void dropEvent(QDropEvent *event);
 
 private slots:
-    void hideSnapshotPreview();
+    // void hideSnapshotPreview();
 
 private:
     QStackedLayout *stackedLayout;
@@ -42,7 +64,8 @@ private:
     LoadingWidget *loadingWidget;
     PlaylistModel *listModel;
     QLabel *messageLabel;
-    QLabel *snapshotPreview;
+    // QLabel *snapshotPreview;
+    QPoint dragPosition;
 
 };
 
index 341b881fe3276a45017a9671ce8f750d5d5d7aca..28e3024d0515096adc5799f1689584ab4b0fdb30 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "videodefinition.h"
 
 QStringList VideoDefinition::getDefinitionNames() {
index dadc992f31619f69652225a4d12cd9fe33e4b362..809fafbfbc80b436d4711f56966ce36bb548ec1d 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef VIDEODEFINITION_H
 #define VIDEODEFINITION_H
 
index 619c7d197ab0010f6832be81a6c980767372016e..b2a45bee66cfd0b5046b1a141c9dddbe290435c1 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "videomimedata.h"
 
 VideoMimeData::VideoMimeData() {}
index ce06bd20389211e9e608e9131cad6c2aa12262d4..6abb788482b730ca40fba52f845a603b945da431 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef VIDEOMIMEDATA_H
 #define VIDEOMIMEDATA_H
 
index d2da7fbd7d76ea17302e59e4f93bce0414f30048..6f08656a1b662e1e9952768a87bb3555088a1e54 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "videosource.h"
 
 void VideoSource::setParam(QString name, QVariant value) {
index 767697edf9e769001c964c6ed1f39d150a5de1a3..760f512c0063aa280bafb54e622f884ca3cdcbfc 100644 (file)
@@ -1,7 +1,28 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef VIDEOSOURCE_H
 #define VIDEOSOURCE_H
 
 #include <QtCore>
+#include <QAction>
 
 class Video;
 
@@ -15,6 +36,7 @@ public:
     virtual void abort() = 0;
     virtual const QStringList & getSuggestions() = 0;
     virtual QString getName() = 0;
+    virtual QList<QAction*> getActions() { return QList<QAction*>(); }
 
 public slots:
     void setParam(QString name, QVariant value);
index 90b893b0f6145632462f1a16b5af99a7280fb522..ccd2a0f87448fb07223643f0df36d3724e20236a 100644 (file)
@@ -1,21 +1,39 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "videosourcewidget.h"
 #include "videosource.h"
 #include "video.h"
 #include "fontutils.h"
 
 VideoSourceWidget::VideoSourceWidget(VideoSource *videoSource, QWidget *parent)
-    : QWidget(parent),
-      videoSource(videoSource),
-      hovered(false),
-      pressed(false) {
+    : GridWidget(parent),
+      videoSource(videoSource) {
 
     setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-    setCursor(Qt::PointingHandCursor);
-    setFocusPolicy(Qt::StrongFocus);
 
     connect(videoSource, SIGNAL(gotVideos(QList<Video*>)),
             SLOT(previewVideo(QList<Video*>)), Qt::UniqueConnection);
     videoSource->loadVideos(1, 1);
+
+    connect(this, SIGNAL(activated()), SLOT(activate()));
 }
 
 void VideoSourceWidget::activate() {
@@ -63,7 +81,8 @@ QPixmap VideoSourceWidget::playPixmap() {
     return playIcon;
 }
 
-void VideoSourceWidget::paintEvent(QPaintEvent *) {
+void VideoSourceWidget::paintEvent(QPaintEvent *event) {
+    GridWidget::paintEvent(event);
     if (pixmap.isNull()) return;
 
     QPainter p(this);
@@ -134,39 +153,3 @@ void VideoSourceWidget::paintEvent(QPaintEvent *) {
         p.restore();
     }
 }
-
-void VideoSourceWidget::mouseMoveEvent (QMouseEvent *event) {
-    QWidget::mouseMoveEvent(event);
-    hovered = rect().contains(event->pos());
-}
-
-void VideoSourceWidget::mousePressEvent(QMouseEvent *event) {
-    QWidget::mousePressEvent(event);
-    if (event->button() != Qt::LeftButton) return;
-    pressed = true;
-    update();
-}
-
-void VideoSourceWidget::mouseReleaseEvent(QMouseEvent *event) {
-    QWidget::mouseReleaseEvent(event);
-    if (event->button() != Qt::LeftButton) return;
-    pressed = false;
-    if (hovered) emit activated(videoSource);
-}
-
-void VideoSourceWidget::leaveEvent(QEvent *event) {
-    QWidget::leaveEvent(event);
-    hovered = false;
-    update();
-}
-
-void VideoSourceWidget::enterEvent(QEvent *event) {
-    QWidget::enterEvent(event);
-    hovered = true;
-    update();
-}
-
-void VideoSourceWidget::keyReleaseEvent(QKeyEvent *event) {
-    if (event->key() == Qt::Key_Return)
-        emit activated(videoSource);
-}
index b2d923631ec116a3f171a4ad0ef11d7b9a591246..22c7740d38682084701fb382bf97d9193baa6400 100644 (file)
@@ -1,12 +1,33 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef VIDEOSOURCEWIDGET_H
 #define VIDEOSOURCEWIDGET_H
 
 #include <QtGui>
+#include "gridwidget.h"
 
 class Video;
 class VideoSource;
 
-class VideoSourceWidget : public QWidget {
+class VideoSourceWidget : public GridWidget {
 
     Q_OBJECT
 
@@ -17,13 +38,7 @@ signals:
     void activated(VideoSource *videoSource);
 
 protected:
-    void paintEvent(QPaintEvent *);
-    void mouseMoveEvent(QMouseEvent *event);
-    void mousePressEvent(QMouseEvent *event);
-    void mouseReleaseEvent(QMouseEvent *event);
-    void enterEvent(QEvent *event);
-    void leaveEvent(QEvent *event);
-    void keyReleaseEvent(QKeyEvent *event);
+    void paintEvent(QPaintEvent *event);
 
 private slots:
     void activate();
@@ -36,8 +51,6 @@ private:
     QPixmap pixmap;
     Video *video;
 
-    bool hovered;
-    bool pressed;
 };
 
 #endif // VIDEOSOURCEWIDGET_H
index 0609c38c54219b48a3e594c04d967ff68f845719..e847f6e02ce73569404d05c94d83b5de813fe91e 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef VIEW_H
 #define VIEW_H
 
@@ -7,6 +27,7 @@ public:
     virtual QHash<QString, QVariant> metadata() { return QHash<QString, QVariant>(); }
     virtual void appear() {}
     virtual void disappear() {}
+    QList<QAction*> getViewActions() { return QList<QAction*>(); }
 
 };
 
index 92e2dbc5db61933350371c66e43e410cd180fa72..89217420c91ca9552977a5134a661d1a63058961 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "ytcategories.h"
 #include "networkaccess.h"
 #include <QtXml>
index 7513f2d312f69f521a0de97ddf5117ae9f132856..5689158aeeb8a655e19f3f96407fc283faa1bc35 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef YTCATEGORIES_H
 #define YTCATEGORIES_H
 
index 117f92bf891cf5d91a225b8ec0ddd8e135319ce8..975e327a569c4360f462be23af18372f4c517d27 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "ytfeedreader.h"
 #include "video.h"
 
@@ -42,11 +62,9 @@ void YTFeedReader::readEntry() {
                     if (name() == QLatin1String("name")) {
                         QString author = readElementText();
                         video->setAuthor(author);
-                    } else if (name() == QLatin1String("uri")) {
-                        QString uri = readElementText();
-                        int i = uri.lastIndexOf('/');
-                        if (i != -1) uri = uri.mid(i+1);
-                        video->setAuthorUri(uri);
+                    } else if (name() == QLatin1String("userId")) {
+                        QString userId = readElementText();
+                        video->setUserId(userId);
                     } else skipCurrentElement();
             } else if (name() == QLatin1String("published")) {
                 video->setPublished(QDateTime::fromString(readElementText(), Qt::ISODate));
index 3ee6142d616260701974dd52dcc70dabc1ab34b4..195c2a52b277fb612207a199d9e2e492057bbf50 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef YTFEEDREADER_H
 #define YTFEEDREADER_H
 
index 63f8f14edba5038b1a5143ad739c96eca75b369b..b05cf6c4c2f5ffd2566b8762724a591129e9396a 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "ytregions.h"
 
 YTRegions::YTRegions() : QObject() { }
index 029c0b9f84403aaf7c555e92810951c7c60c3634..bae02865005b24e932f0cbe8e945f203ae232418 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef YTREGIONS_H
 #define YTREGIONS_H
 
@@ -13,6 +33,8 @@ struct YTRegion {
 
 class YTRegions : public QObject {
 
+    Q_OBJECT
+
 public:
     static const QList<YTRegion> & list();
     static const YTRegion & localRegion();
index 9f3fd34f9cb47e111405ff81f8b01c8a98f62c32..010cbd57d4ea0696041ed51c39a5b856f633439c 100644 (file)
@@ -1,12 +1,35 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "ytsearch.h"
 #include "ytfeedreader.h"
 #include "constants.h"
 #include "networkaccess.h"
 #include "searchparams.h"
 #include "video.h"
+#include "utils.h"
+#include "ytuser.h"
 
 namespace The {
-    NetworkAccess* http();
+NetworkAccess* http();
+QHash<QString, QAction*>* globalActions();
 }
 
 YTSearch::YTSearch(SearchParams *searchParams, QObject *parent) :
@@ -104,7 +127,11 @@ void YTSearch::parseResults(QByteArray data) {
 
     if (name.isEmpty() && !searchParams->author().isEmpty()) {
         if (videos.isEmpty()) name = searchParams->author();
-        else name = videos.first()->author();
+        else {
+            name = videos.first()->author();
+            // also grab the userId
+            userId = videos.first()->userId();
+        }
         emit nameChanged(name);
     }
 
@@ -123,3 +150,11 @@ QString YTSearch::videoIdFromUrl(QString url) {
     if (re.exactMatch(url)) return re.cap(1);
     return QString();
 }
+
+QList<QAction*> YTSearch::getActions() {
+    QList<QAction*> channelActions;
+    if (searchParams->author().isEmpty())
+        return channelActions;
+    channelActions << The::globalActions()->value("subscribe-channel");
+    return channelActions;
+}
index 983a27b39e500d07bca55a42c11faa44add645a7..7ed282cc7ffbaed7ae6e8420947b1ca5a5205e8b 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef YTSEARCH_H
 #define YTSEARCH_H
 
@@ -24,6 +44,8 @@ public:
         return searchParams == other.getSearchParams();
     }
 
+    QList<QAction*> getActions();
+
 private slots:
     void parseResults(QByteArray data);
     void requestError(QNetworkReply *reply);
@@ -33,6 +55,8 @@ private:
     bool aborted;
     QStringList suggestions;
     QString name;
+
+    QString userId;
 };
 
 #endif // YTSEARCH_H
index 6a22de58b22a55ebe9256871124c365d56991395..b4f4d308943341e810a5862f2650b43e77134d73 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "ytsinglevideosource.h"
 #include <QtXml>
 #include "networkaccess.h"
index 62aeb9adc5fe4fb7d0393793413645916aceb924..53dfd529edb9018eb6e30a2fba025d73e8cd9c41 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef YTSINGLEVIDEOSOURCE_H
 #define YTSINGLEVIDEOSOURCE_H
 
index 111ec291a5600cb50236585b76b00480f583aa59..50e0674318605a8d1d4c2a61a282ec8cb0308e66 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "ytstandardfeed.h"
 #include <QtXml>
 #include "networkaccess.h"
@@ -23,8 +43,11 @@ void YTStandardFeed::loadVideos(int max, int skip) {
     QUrl url(s);
     url.addQueryItem("v", "2");
 
-    if (feedId != "most_shared")
-        url.addQueryItem("time", "today");
+    if (feedId != "most_shared" && feedId != "on_the_web") {
+        QString t = time;
+        if (t.isEmpty()) t = "today";
+        url.addQueryItem("time", t);
+    }
 
     url.addQueryItem("max-results", QString::number(max));
     url.addQueryItem("start-index", QString::number(skip));
index 45cdfac434c945324e2049eccf766d54ee06f18c..13979a8dca9d4acc6d78e5d968d6b2e0d8e63745 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef YTSTANDARDFEED_H
 #define YTSTANDARDFEED_H
 
@@ -23,6 +43,9 @@ public:
     QString getLabel() { return label; }
     void setLabel(QString label) { this->label = label; }
 
+    QString getTime() { return time; }
+    void setTime(QString time) { this->time = time; }
+
     void loadVideos(int max, int skip);
     void abort();
     const QStringList & getSuggestions();
@@ -37,6 +60,7 @@ private:
     QString regionId;
     QString category;
     QString label;
+    QString time;
     bool aborted;
 };
 
index a1cfe98f1432a15b6ff2d186f18d374ded588554..c526b30079c8d4ce5ee165d596b376bbaa4254f3 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #include "ytsuggester.h"
 #include <QtXml>
 #include "networkaccess.h"
index c42440b10ea11c0a0658fde747f6a17b7f07a940..0599ff89218bedc8826cc759c962fb6ccd6651b9 100644 (file)
@@ -1,3 +1,23 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef YTSUGGESTER_H
 #define YTSUGGESTER_H
 
diff --git a/src/ytuser.cpp b/src/ytuser.cpp
new file mode 100644 (file)
index 0000000..9dc633a
--- /dev/null
@@ -0,0 +1,307 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "ytuser.h"
+#include "networkaccess.h"
+#include "database.h"
+#include <QtSql>
+
+namespace The {
+NetworkAccess* http();
+}
+
+YTUser::YTUser(QString userId, QObject *parent) : QObject(parent),
+    id(0),
+    userId(userId),
+    loadingThumbnail(false),
+    notifyCount(0),
+    checked(0),
+    watched(0),
+    loaded(0),
+    loading(false) { }
+
+QHash<QString, YTUser*> YTUser::cache;
+
+YTUser* YTUser::forId(QString userId) {
+    if (userId.isEmpty()) return 0;
+
+    if (cache.contains(userId))
+        return cache.value(userId);
+
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("select id,name,description,thumb_url,notify_count,watched,checked,loaded "
+                  "from subscriptions where user_id=?");
+    query.bindValue(0, userId);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+    YTUser* user = 0;
+    if (query.next()) {
+        user = new YTUser(userId);
+        user->id = query.value(0).toInt();
+        user->displayName = query.value(1).toString();
+        user->description = query.value(2).toString();
+        user->thumbnailUrl = query.value(3).toString();
+        user->notifyCount = query.value(4).toInt();
+        user->watched = query.value(5).toUInt();
+        user->checked = query.value(6).toUInt();
+        user->loaded = query.value(7).toUInt();
+        user->thumbnail = QPixmap(user->getThumbnailLocation());
+        user->maybeLoadfromAPI();
+        cache.insert(userId, user);
+    }
+
+    return user;
+}
+
+void YTUser::maybeLoadfromAPI() {
+    if (loading) return;
+    if (userId.isEmpty()) return;
+
+    uint now = QDateTime::currentDateTime().toTime_t();
+    static const int refreshInterval = 60 * 60 * 24 * 10;
+    if (loaded > now - refreshInterval) return;
+
+    loading = true;
+
+    QUrl url("http://gdata.youtube.com/feeds/api/users/" + userId);
+    url.addQueryItem("v", "2");
+    QObject *reply = The::http()->get(url);
+    connect(reply, SIGNAL(data(QByteArray)), SLOT(parseResponse(QByteArray)));
+    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
+}
+
+void YTUser::parseResponse(QByteArray bytes) {
+    QXmlStreamReader xml(bytes);
+    xml.readNextStartElement();
+    if (xml.name() == QLatin1String("entry"))
+        while(xml.readNextStartElement()) {
+            const QStringRef n = xml.name();
+            if (n == QLatin1String("summary"))
+                description = xml.readElementText().simplified();
+            else if (n == QLatin1String("title"))
+                displayName = xml.readElementText();
+            else if (n == QLatin1String("thumbnail")) {
+                thumbnailUrl = xml.attributes().value("url").toString();
+                xml.skipCurrentElement();
+            } else if (n == QLatin1String("username"))
+                userName = xml.readElementText();
+            else xml.skipCurrentElement();
+        }
+
+    if (xml.hasError()) {
+        emit error(xml.errorString());
+        qWarning() << xml.errorString();
+    }
+
+    emit infoLoaded();
+    storeInfo();
+    loading = false;
+}
+
+void YTUser::loadThumbnail() {
+    if (loadingThumbnail) return;
+    if (thumbnailUrl.isEmpty()) return;
+    loadingThumbnail = true;
+
+#ifdef Q_WS_WIN
+    thumbnailUrl.replace(QLatin1String("https://"), QLatin1String("http://"));
+#endif
+
+    QUrl url(thumbnailUrl);
+    QObject *reply = The::http()->get(url);
+    connect(reply, SIGNAL(data(QByteArray)), SLOT(storeThumbnail(QByteArray)));
+    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
+}
+
+const QString & YTUser::getThumbnailDir() {
+    static const QString thumbDir = QDesktopServices::storageLocation(
+                QDesktopServices::DataLocation) + "/channels/";
+    return thumbDir;
+}
+
+QString YTUser::getThumbnailLocation() {
+    return getThumbnailDir() + userId;
+}
+
+void YTUser::storeThumbnail(QByteArray bytes) {
+    thumbnail.loadFromData(bytes);
+    static const int maxWidth = 88;
+
+    QDir dir;
+    dir.mkpath(getThumbnailDir());
+
+    if (thumbnail.width() > maxWidth) {
+        thumbnail = thumbnail.scaledToWidth(maxWidth, Qt::SmoothTransformation);
+        thumbnail.save(getThumbnailLocation(), "JPG");
+    } else {
+        QFile file(getThumbnailLocation());
+        if (!file.open(QIODevice::WriteOnly))
+            qWarning() << "Error opening file for writing" << file.fileName();
+        QDataStream stream(&file);
+        stream.writeRawData(bytes.constData(), bytes.size());
+    }
+
+    emit thumbnailLoaded();
+    loadingThumbnail = false;
+}
+
+void YTUser::requestError(QNetworkReply *reply) {
+    emit error(reply->errorString());
+    qWarning() << reply->errorString();
+    loading = false;
+    loadingThumbnail = false;
+}
+
+void YTUser::storeInfo() {
+    if (userId.isEmpty()) return;
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("update subscriptions set "
+                  "user_name=?, name=?, description=?, thumb_url=?, loaded=? "
+                  "where user_id=?");
+    qDebug() << userName;
+    query.bindValue(0, userName);
+    query.bindValue(1, displayName);
+    query.bindValue(2, description);
+    query.bindValue(3, thumbnailUrl);
+    query.bindValue(4, QDateTime::currentDateTime().toTime_t());
+    query.bindValue(5, userId);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+    loadThumbnail();
+}
+
+void YTUser::subscribe(QString userId) {
+    if (userId.isEmpty()) return;
+
+    uint now = QDateTime::currentDateTime().toTime_t();
+
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("insert into subscriptions "
+                  "(user_id,added,watched,checked,views,notify_count)"
+                  " values (?,?,?,0,0,0)");
+    query.bindValue(0, userId);
+    query.bindValue(1, now);
+    query.bindValue(2, now);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+    // This will call maybeLoadFromApi
+    YTUser::forId(userId);
+}
+
+void YTUser::unsubscribe(QString userId) {
+    if (userId.isEmpty()) return;
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("delete from subscriptions where user_id=?");
+    query.bindValue(0, userId);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+    query = QSqlQuery(db);
+    query.prepare("delete from subscriptions_videos where user_id=?");
+    query.bindValue(0, userId);
+    success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+    YTUser *user = cache.take(userId);
+    if (user) user->deleteLater();
+}
+
+bool YTUser::isSubscribed(QString userId) {
+    if (!Database::exists()) return false;
+    if (userId.isEmpty()) return false;
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("select count(*) from subscriptions where user_id=?");
+    query.bindValue(0, userId);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+    if (query.next())
+        return query.value(0).toInt() > 0;
+    return false;
+}
+
+void YTUser::updateChecked() {
+    if (userId.isEmpty()) return;
+
+    uint now = QDateTime::currentDateTime().toTime_t();
+    checked = now;
+
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("update subscriptions set checked=? where user_id=?");
+    query.bindValue(0, QDateTime::currentDateTime().toTime_t());
+    query.bindValue(1, userId);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+}
+
+void YTUser::updateWatched() {
+    if (userId.isEmpty()) return;
+
+    uint now = QDateTime::currentDateTime().toTime_t();
+    watched = now;
+    notifyCount = 0;
+
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("update subscriptions set watched=?, notify_count=0, views=views+1 where user_id=?");
+    query.bindValue(0, now);
+    query.bindValue(1, userId);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+}
+
+void YTUser::storeNotifyCount(int count) {
+    notifyCount = count;
+
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("update subscriptions set notify_count=? where user_id=?");
+    query.bindValue(0, count);
+    query.bindValue(1, userId);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+}
+
+bool YTUser::updateNotifyCount() {
+    QSqlDatabase db = Database::instance().getConnection();
+    QSqlQuery query(db);
+    query.prepare("select count(*) from subscriptions_videos "
+                  "where channel_id=? and added>? and published>? and watched=0");
+    query.bindValue(0, id);
+    query.bindValue(1, watched);
+    query.bindValue(2, watched);
+    bool success = query.exec();
+    if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+    if (!query.next()) {
+        qWarning() << __PRETTY_FUNCTION__ << "Count failed";
+        return false;
+    }
+    int count = query.value(0).toInt();
+    storeNotifyCount(count);
+    return count != notifyCount;
+}
diff --git a/src/ytuser.h b/src/ytuser.h
new file mode 100644 (file)
index 0000000..d7131cd
--- /dev/null
@@ -0,0 +1,104 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef YTUSER_H
+#define YTUSER_H
+
+#include <QtGui>
+#include <QtNetwork>
+
+class YTUser : public QObject {
+
+    Q_OBJECT
+
+public:
+    static YTUser* forId(QString userId);
+    static void subscribe(QString userId);
+    static void unsubscribe(QString userId);
+    static bool isSubscribed(QString userId);
+
+    int getId() { return id; }
+    void setId(int id) { this->id = id; }
+
+    uint getChecked() { return checked; }
+    void updateChecked();
+
+    uint getWatched() const { return watched; }
+    void setWatched(uint watched) { this->watched = watched; }
+    void updateWatched();
+
+    int getNotifyCount() const { return notifyCount; }
+    void setNotifyCount(int count) { notifyCount = count; }
+    void storeNotifyCount(int count);
+    bool updateNotifyCount();
+
+    QString getUserId() const { return userId; }
+    QString getUserName() const { return userName; }
+    QString getDisplayName() const { return displayName; }
+    QString getDescription() const { return description; }
+    QString getCountryCode() const { return countryCode; }
+
+    void loadThumbnail();
+    const QString & getThumbnailDir();
+    QString getThumbnailLocation();
+    const QPixmap & getThumbnail() { return thumbnail; }
+
+    static QList<YTUser*> getCachedUsers() { return cache.values(); }
+
+signals:
+    void infoLoaded();
+    void thumbnailLoaded();
+    void error(QString message);
+
+private slots:
+    void parseResponse(QByteArray bytes);
+    void requestError(QNetworkReply *reply);
+    void storeThumbnail(QByteArray bytes);
+
+private:
+    YTUser(QString userId, QObject *parent = 0);
+    void maybeLoadfromAPI();
+    void storeInfo();
+
+    static QHash<QString, YTUser*> cache;
+
+    int id;
+    QString userId;
+    QString userName;
+    QString displayName;
+    QString description;
+    QString countryCode;
+
+    QString thumbnailUrl;
+    QPixmap thumbnail;
+    bool loadingThumbnail;
+
+    int notifyCount;
+    uint checked;
+    uint watched;
+    uint loaded;
+    bool loading;
+};
+
+// This is required in order to use QPointer<YTUser> as a QVariant
+typedef QPointer<YTUser> YTUserPointer;
+Q_DECLARE_METATYPE(YTUserPointer)
+
+#endif // YTUSER_H
index 9b980e9108578426d57f958447e921f903372e42..9fdf2630711786dc2e5450e8db32374a59e6a0d6 100644 (file)
--- a/style.css
+++ b/style.css
@@ -75,75 +75,3 @@ SidebarHeader QComboBox::drop-down {
     width: 0;
     border-style: none;
 }
-
-/* Ambiance */
-
-MainWindow[style="Ambiance"] > QToolBar {
-    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                     stop: 0 #3c3b37, stop: 1 #474641);
-}
-
-MainWindow[style="Ambiance"] > QToolBar QToolButton,
-MainWindow[style="Ambiance"] > QToolBar QLabel {
-    color: #dfdbd2;
-}
-
-MainWindow[style="Ambiance"] > QToolBar QToolButton:disabled {
-    color: #8f8c86;
-}
-
-MainWindow[style="Ambiance"] > QToolBar QToolButton:hover {
-    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                 stop: 0 #474641, stop: 1 #3c3b37);
-                 border-radius: 5px;
-    border: 1px outset #3c3b37;
-}
-
-MainWindow[style="Ambiance"] > QToolBar QToolButton:pressed,
-MainWindow[style="Ambiance"] > QToolBar QToolButton:checked {
-    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                 stop: 0 #3b3a36, stop: 1 #363531);
-                 border-radius: 5px;
-    border: 1px inset #292825;
-}
-
-
-MainWindow[style="Ambiance"] QSlider::groove:horizontal {
-     border: 1px solid #808080;
-     height: 8px;
-     background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B1B1B1, stop:1 #ccc);
-     border-radius: 5px;
-}
-
-MainWindow[style="Ambiance"] QSlider::sub-page:horizontal {
-    border: 1px solid #808080;
-    height: 8px;
-    background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #6c6c6c, stop:1 #B1B1B1);
-    border-radius: 5px;
-}
-
-MainWindow[style="Ambiance"] QSlider::handle:horizontal {
-    border: 1px solid #5c5c5c;
-    width: 14px;
-    height: 16px;
-    margin: -4px 0;
-    border-radius: 8px;
-    background: qradialgradient(
-        cx: .5, cy: .5,
-        fx: .33, fy: .33,
-        radius: .5,
-        stop: 0 #fff, stop: 1 #ccc);
-}
-
-MainWindow[style="Ambiance"] QSlider::handle:pressed {
-    background: qradialgradient(
-        cx: .5, cy: .5,
-        fx: .33, fy: .33,
-        radius: .5,
-        stop: 0 #ccc, stop: 1 #9c9c9c);
-}
-
-MainWindow[style="Ambiance"] Phonon--SeekSlider QSlider::sub-page:horizontal {
-    border: 1px solid #808080;
-    background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B1B1B1, stop:1 #6c6c6c);
-}