C-DIT - Soft Exam 4.1 serial key or number

C-DIT - Soft Exam 4.1 serial key or number

C-DIT - Soft Exam 4.1 serial key or number

C-DIT - Soft Exam 4.1 serial key or number

manicapital.com

1 General Advice

Before attempting to upgrade an existing application, you should be sure you have a good reason to upgrade. You need to balance several factors: the need for new features, the increasing difficulty of finding support for old code, and your available time and skills, to name a few.

Test Coverage

The best way to be sure that your application still works after upgrading is to have good test coverage before you start the process. If you don't have automated tests that exercise the bulk of your application, you'll need to spend time manually exercising all the parts that have changed. In the case of a Rails upgrade, that will mean every single piece of functionality in the application. Do yourself a favor and make sure your test coverage is good before you start an upgrade.

The Upgrade Process

When changing Rails versions, it's best to move slowly, one minor version at a time, in order to make good use of the deprecation warnings. Rails version numbers are in the form manicapital.com Major and Minor versions are allowed to make changes to the public API, so this may cause errors in your application. Patch versions only include bug fixes, and don't change any public API.

The process should go as follows:

  1. Write tests and make sure they pass.
  2. Move to the latest patch version after your current version.
  3. Fix tests and deprecated features.
  4. Move to the latest patch version of the next minor version.

Repeat this process until you reach your target Rails version. Each time you move versions, you will need to change the Rails version number in the (and possibly other gem versions) and run . Then run the Update task mentioned below to update configuration files, then run your tests.

You can find a list of all released Rails versions here.

Ruby Versions

Rails generally stays close to the latest released Ruby version when it's released:

  • Rails 6 requires Ruby or newer.
  • Rails 5 requires Ruby or newer.
  • Rails 4 prefers Ruby and requires or newer.
  • Rails x is the last branch to support Ruby
  • Rails 3 and above require Ruby or higher. Support for all of the previous Ruby versions has been dropped officially. You should upgrade as early as possible.

Ruby p and p have marshalling bugs that crash Rails. Ruby Enterprise Edition has these fixed since the release of On the front, Ruby is not usable because it outright segfaults, so if you want to use x, jump straight to for smooth sailing.

The Update Task

Rails provides the command ( on and earlier). After updating the Rails version in the , run this command. This will help you with the creation of new files and changes of old files in an interactive session.

Don't forget to review the difference, to see if there were any unexpected changes.

Configure Framework Defaults

The new Rails version might have different configuration defaults than the previous version. However, after following the steps described above, your application would still run with configuration defaults from the previous Rails version. That's because the value for in has not been changed yet.

To allow you to upgrade to new defaults one by one, the update task has created a file . Once your application is ready to run with new defaults, you can remove this file and flip the value.

2 Upgrading from Rails to Rails

For more information on changes made to Rails please see the release notes.

return value no longer supports access with String keys.

Given a configuration file like this:

This used to return a hash on which you could access values with String keys. That was deprecated in , and now doesn't work anymore.

You can call on the return value of if you still want to access values with String keys, e.g.:

Response's Content-Type when using

The Content-Type header returned in the response can differ from what Rails returned, more specifically if your application uses . The Content-Type will now be based on the given block rather than the request's format.

Example:

Previous behaviour was returning a response's Content-Type which is inaccurate since a JSON response is being rendered. Current behaviour correctly returns a response's Content-Type.

If your application relies on the previous incorrect behaviour, you are encouraged to specify which formats your action accepts, i.e.

now receive a second argument

Active Support allows you to override the whenever a callback halts the chain. This method now receive a second argument which is the name of the callback being halted. If you have classes that override this method, make sure it accepts two arguments. Note that this is a breaking change without a prior deprecation cycle (for performance reasons).

Example:

The class method in controllers uses

Conceptually, before Rails

resulted in

Now it does this instead:

This change is backwards compatible for the majority of applications, in which case you do not need to do anything.

Technically, however, controllers could configure to point to a directoy in that was not in the autoload paths. That use case is no longer supported out of the box. If the helper module is not autoloadable, the application is responsible for loading it before calling .

Redirection to HTTPS from HTTP will now use the HTTP status code

The default HTTP status code used in when redirecting non-GET/HEAD requests from HTTP to HTTPS has been changed to as defined in manicapital.com

3 Upgrading from Rails to Rails

For more information on changes made to Rails please see the release notes.

Using Webpacker

Webpacker is the default JavaScript compiler for Rails 6. But if you are upgrading the app, it is not activated by default. If you want to use Webpacker, then include it in your Gemfile and install it:

Force SSL

The method on controllers has been deprecated and will be removed in Rails You are encouraged to enable to enforce HTTPS connections throughout your application. If you need to exempt certain endpoints from redirection, you can use to configure that behavior.

Purpose and expiry metadata is now embedded inside signed and encrypted cookies for increased security

To improve security, Rails embeds the purpose and expiry metadata inside encrypted or signed cookies value.

Rails can then thwart attacks that attempt to copy the signed/encrypted value of a cookie and use it as the value of another cookie.

This new embed metadata make those cookies incompatible with versions of Rails older than

If you require your cookies to be read by Rails and older, or you are still validating your deploy and want to be able to rollback set to .

All npm packages have been moved to the scope

If you were previously loading any of the , , or packages through npm/yarn, you must update the names of these dependencies before you can upgrade them to :

Action Cable JavaScript API Changes

The Action Cable JavaScript package has been converted from CoffeeScript to ES, and we now publish the source code in the npm distribution.

This release includes some breaking changes to optional parts of the Action Cable JavaScript API:

  • Configuration of the WebSocket adapter and logger adapter have been moved from properties of to properties of . If you are configuring these adapters you will need to make these changes:
  • The and methods have been removed and replaced with the property . If you are using these methods you will need to make these changes:

now returns the Content-Type header without modification

Previously, the return value of did NOT contain the charset part. This behavior has changed to include the previously omitted charset part as well.

If you want just the MIME type, please use instead.

Before:

After:

Autoloading

The default configuration for Rails 6

enables autoloading mode on CRuby. In that mode, autoloading, reloading, and eager loading are managed by Zeitwerk.

Public API

In general, applications do not need to use the API of Zeitwerk directly. Rails sets things up according to the existing contract: , , etc.

While applications should stick to that interface, the actual Zeitwerk loader object can be accessed as

That may be handy if you need to preload STIs or configure a custom inflector, for example.

Project Structure

If the application being upgraded autoloads correctly, the project structure should be already mostly compatible.

However, mode infers file names from missing constant names (), whereas mode infers constant names from file names (). These helpers are not always inverse of each other, in particular if acronyms are involved. For instance, is , but is , not .

Compatibility can be checked with the task:

require_dependency

All known use cases of have been eliminated, you should grep the project and delete them.

If your application has STIs, please check their section in the guide Autoloading and Reloading Constants (Zeitwerk Mode).

Qualified names in class and module definitions

You can now robustly use constant paths in class and module definitions:

A gotcha to be aware of is that, depending on the order of execution, the classic autoloader could sometimes be able to autoload in

That does not match Ruby semantics because is not in the nesting, and won't work at all in mode. If you find such corner case you can use the qualified name :

or add to the nesting:

Concerns

You can autoload and eager load from a standard structure like

In that case, is assumed to be a root directory (because it belongs to the autoload paths), and it is ignored as namespace. So, should define , not .

The namespace worked with the classic autoloader as a side-effect of the implementation, but it was not really an intended behavior. An application using needs to rename those classes and modules to be able to run in mode.

Having in the autoload paths

Some projects want something like to define , and add to the autoload paths to accomplish that in mode. Since Rails adds all subdirectories of to the autoload paths automatically, we have another situation in which there are nested root directories, so that setup no longer works. Similar principle we explained above with .

If you want to keep that structure, you'll need to delete the subdirectory from the autoload paths in an initializer:

Autoloaded Constants and Explicit Namespaces

If a namespace is defined in a file, as is here:

the constant has to be set using the or keywords. For example:

is good.

Alternatives like

or

won't work, child objects like won't be found.

This restriction only applies to explicit namespaces. Classes and modules not defining a namespace can be defined using those idioms.

One file, one constant (at the same top-level)

In mode you could technically define several constants at the same top-level and have them all reloaded. For example, given

while could not be autoloaded, autoloading would mark as autoloaded too. This is not the case in mode, you need to move to its own file . One file, one constant.

This affects only to constants at the same top-level as in the example above. Inner classes and modules are fine. For example, consider

If the application reloads , it will reload too.

Spring and the Environment

Spring reloads the application code if something changes. In the environment you need to enable reloading for that to work:

Otherwise you'll get this error:

Bootsnap

Bootsnap should be at least version

In addition to that, Bootsnap needs to disable the iseq cache due to a bug in the interpreter if running Ruby Please make sure to depend on at least Bootsnap in that case.

The new configuration point

is by default for backwards compatibility, but allows you to opt-out from adding the autoload paths to .

This makes sense in most applications, since you never should require a file in , for example, and Zeitwerk only uses absolute file names internally.

By opting-out you optimize lookups (less directories to check), and save Bootsnap work and memory consumption, since it does not need to build an index for these directories.

Thread-safety

In classic mode, constant autoloading is not thread-safe, though Rails has locks in place for example to make web requests thread-safe when autoloading is enabled, as it is common in mode.

Constant autoloading is thread-safe in mode. For example, you can now autoload in multi-threaded scripts executed by the command.

Globs in manicapital.comad_paths

Beware of configurations like

Every element of should represent the top-level namespace () and they cannot be nested in consequence (with the exception of directories explained above).

To fix this, just remove the wildcards:

Eager loading and autoloading are consistent

In mode, if defines , you won't be able to autoload that file, but eager loading will work because it loads files recursively blindly. This can be a source of errors if you test things first eager loading, execution may fail later autoloading.

In mode both loading modes are consistent, they fail and err in the same files.

How to Use the Classic Autoloader in Rails 6

Applications can load Rails 6 defaults and still use the classic autoloader by setting this way:

When using the Classic Autoloader in Rails 6 application it is recommended to set concurrency level to 1 in development environment, for the web servers and background processors, due to the thread-safety concerns.

Active Storage assignment behavior change

With the configuration defaults for Rails , assigning to a collection of attachments declared with appends new files:

With the configuration defaults for Rails , assigning to a collection of attachments replaces existing files instead of appending to them. This matches Active Record behavior when assigning to a collection association:

can be used to add new attachments without removing the existing ones:

Existing applications can opt in to this new behavior by setting to . The old behavior will be deprecated in Rails and removed in a subsequent release.

4 Upgrading from Rails to Rails

For more information on changes made to Rails please see the release notes.

Bootsnap

Rails adds bootsnap gem in the newly generated app's Gemfile. The command sets it up in . If you want to use it, then add it in the Gemfile, otherwise change the to not use bootsnap.

Expiry in signed or encrypted cookie is now embedded in the cookies values

To improve security, Rails now embeds the expiry information also in encrypted or signed cookies value.

This new embed information make those cookies incompatible with versions of Rails older than

If you require your cookies to be read by and older, or you are still validating your deploy and want to allow you to rollback set to .

5 Upgrading from Rails to Rails

For more information on changes made to Rails please see the release notes.

Top-level is soft-deprecated

If your application uses the top-level class, you should slowly move your code to instead use .

It is only soft-deprecated, which means that your code will not break at the moment and no deprecation warning will be displayed, but this constant will be removed in the future.

Also, if you have pretty old YAML documents containing dumps of such objects, you may need to load and dump them again to make sure that they reference the right constant, and that loading them won't break in the future.

now loaded with all keys as symbols

If your application stores nested configuration in , all keys are now loaded as symbols, so access using strings should be changed.

From:

To:

Removed deprecated support to and in

If your views are using , they will no longer work. The new method of rendering text with MIME type of is to use .

Similarly, is also removed and you should use the method to send responses that contain only headers. For example, sends a response with no body to render.

6 Upgrading from Rails to Rails

For more information on changes made to Rails please see the release notes.

Ruby + required

From Ruby on Rails onwards, Ruby + is the only supported Ruby version. Make sure you are on Ruby version or greater, before you proceed.

Active Record Models Now Inherit from ApplicationRecord by Default

In Rails , an Active Record model inherits from . In Rails , all models inherit from .

is a new superclass for all app models, analogous to app controllers subclassing instead of . This gives apps a single spot to configure app-wide model behavior.

When upgrading from Rails to Rails , you need to create an file in and add the following content:

Then make sure that all your models inherit from it.

Halting Callback Chains via

In Rails , when a 'before' callback returns in Active Record and Active Model, then the entire callback chain is halted. In other words, successive 'before' callbacks are not executed, and neither is the action wrapped in callbacks.

In Rails , returning in an Active Record or Active Model callback will not have this side effect of halting the callback chain. Instead, callback chains must be explicitly halted by calling .

When you upgrade from Rails to Rails , returning in those kind of callbacks will still halt the callback chain, but you will receive a deprecation warning about this upcoming change.

When you are ready, you can opt into the new behavior and remove the deprecation warning by adding the following configuration to your :

Note that this option will not affect Active Support callbacks since they never halted the chain when any value was returned.

See # for more details.

ActiveJob Now Inherits from ApplicationJob by Default

In Rails , an Active Job inherits from . In Rails , this behavior has changed to now inherit from .

When upgrading from Rails to Rails , you need to create an file in and add the following content:

Then make sure that all your job classes inherit from it.

See # for more details.

Rails Controller Testing

Extraction of some helper methods to

and have been extracted to the gem. To continue using these methods in your controller tests, add to your .

If you are using RSpec for testing, please see the extra configuration required in the gem's documentation.

New behavior when uploading files

If you are using in your tests to upload files, you will need to change to use the similar class instead.

See # for more details.

Autoloading is Disabled After Booting in the Production Environment

Autoloading is now disabled after booting in the production environment by default.

Eager loading the application is part of the boot process, so top-level constants are fine and are still autoloaded, no need to require their files.

Constants in deeper places only executed at runtime, like regular method bodies, are also fine because the file defining them will have been eager loaded while booting.

For the vast majority of applications this change needs no action. But in the very rare event that your application needs autoloading while running in production mode, set to true.

XML Serialization

has been extracted from Rails to the gem. To continue using XML serialization in your application, add to your .

Removed Support for Legacy Database Adapter

Rails 5 removes support for the legacy database adapter. Most users should be able to use instead. It will be converted to a separate gem when we find someone to maintain it.

Removed Support for Debugger

is not supported by Ruby which is required by Rails 5. Use instead.

Use for running tasks and tests

Rails 5 adds the ability to run tasks and tests through instead of rake. Generally these changes are in parallel with rake, but some were ported over altogether.

To use the new test runner simply type .

is now .

Run inside your application's root directory to see the list of commands available.

No Longer Inherits from

Calling in your application will now return an object instead of a hash. If your parameters are already permitted, then you will not need to make any changes. If you are using and other methods that depend on being able to read the hash regardless of you will need to upgrade your application to first permit and then convert to a hash.

Now Defaults to

defaults to which means that it will be inserted into the callback chain at the point in which you call it in your application. If you want to always run first, then you should change your application to use .

Default Template Handler is Now RAW

Files without a template handler in their extension will be rendered using the raw handler. Previously Rails would render files using the ERB template handler.

If you do not want your file to be handled via the raw handler, you should add an extension to your file that can be parsed by the appropriate template handler.

Added Wildcard Matching for Template Dependencies

You can now use wildcard matching for your template dependencies. For example, if you were defining your templates as such:

You can now just call the dependency once with a wildcard.

moved to external gem (record_tag_helper)

and have been removed in favor of just using . To continue using the older methods, add the gem to your :

See # for more details.

Removed Support for Gem

The gem is no longer supported in Rails 5.

Removed support for gem

The gem is no longer supported in Rails 5.

Default Test Order is Now Random

When tests are run in your application, the default order is now instead of . Use the following config option to set it back to .

became a

If you include in another module that is included in your controller, then you should also extend the module with . Alternatively, you can use the hook to include directly to the controller once the is included.

This means that if your application used to have its own streaming module, the following code would break in production mode:

New Framework Defaults

Active Record Required by Default Option

will now trigger a validation error by default if the association is not present.

This can be turned off per-association with .

This default will be automatically configured in new applications. If an existing application wants to add this feature it will need to be turned on in an initializer:

The configuration is by default global for all your models, but you can override it on a per model basis. This should help you migrate all your models to have their associations required by default.

Per-form CSRF Tokens

Rails 5 now supports per-form CSRF tokens to mitigate against code-injection attacks with forms created by JavaScript. With this option turned on, forms in your application will each have their own CSRF token that is specific to the action and method for that form.

Forgery Protection with Origin Check

You can now configure your application to check if the HTTP header should be checked against the site's origin as an additional CSRF defense. Set the following in your config to true:

Allow Configuration of Action Mailer Queue Name

The default mailer queue name is . This configuration option allows you to globally change the queue name. Set the following in your config:

Support Fragment Caching in Action Mailer Views

Set in your config to determine whether your Action Mailer views should support caching.

Configure the Output of

If you're using or other PostgreSQL extensions, you can control how the schema is dumped. Set to to generate all dumps, or to to generate from schema search path.

Configure SSL Options to Enable HSTS with Subdomains

Set the following in your config to enable HSTS when using subdomains:

Preserve Timezone of the Receiver

When using Ruby , you can preserve the timezone of the receiver when calling .

Changes with JSON/JSONB serialization

In Rails , how JSON/JSONB attributes are serialized and deserialized changed. Now, if you set a column equal to a , Active Record will no longer turn that string into a , and will instead only return the string. This is not limited to code interacting with models, but also affects column settings in . It is recommended that you do not set columns equal to a , but pass a instead, which will be converted to and from a JSON string automatically.

7 Upgrading from Rails to Rails

Web Console

First, add to the group in your and run (it won't have been included when you upgraded Rails). Once it's been installed, you can simply drop a reference to the console helper (i.e., ) into any view you want to enable it for. A console will also be provided on any error page you view in your development environment.

Responders

and the class-level methods have been extracted to the gem. To use them, simply add to your . Calls to and (again, at the class level) will no longer work without having included the gem in your dependencies:

Instance-level is unaffected and does not require the additional gem:

See # for more details.

Error handling in transaction callbacks

Currently, Active Record suppresses errors raised within or callbacks and only prints them to the logs. In the next version, these errors will no longer be suppressed. Instead, the errors will propagate normally just like in other Active Record callbacks.

When you define an or callback, you will receive a deprecation warning about this upcoming change. When you are ready, you can opt into the new behavior and remove the deprecation warning by adding following configuration to your :

See # and # for more details.

Ordering of test cases

In Rails , test cases will be executed in random order by default. In anticipation of this change, Rails introduced a new configuration option for explicitly specifying the test ordering. This allows you to either lock down the current behavior by setting the option to , or opt into the future behavior by setting the option to .

If you do not specify a value for this option, a deprecation warning will be emitted. To avoid this, add the following line to your test environment:

Serialized attributes

When using a custom coder (e.g. ), assigning to a serialized attribute will save it to the database as instead of passing the value through the coder (e.g. when using the coder).

Production log level

In Rails 5, the default log level for the production environment will be changed to (from ). To preserve the current default, add the following line to your :

in Rails templates

If you have a Rails template that adds all the files in version control, it fails to add the generated binstubs because it gets executed before Bundler:

You can now wrap the calls in an block. It will be run after the binstubs have been generated.

Rails HTML Sanitizer

There's a new choice for sanitizing HTML fragments in your applications. The venerable html-scanner approach is now officially being deprecated in favor of .

This means the methods , , and are backed by a new implementation.

This new sanitizer uses Loofah internally. Loofah in turn uses Nokogiri, which wraps XML parsers written in both C and Java, so sanitization should be faster no matter which Ruby version you run.

The new version updates , so it can take a for powerful scrubbing. See some examples of scrubbers here.

Two new scrubbers have also been added: and

Источник: [manicapital.com]
, C-DIT - Soft Exam 4.1 serial key or number

Jelly Bean

Android

Welcome to Android , a sweeter version of Jelly Bean!

Android includes performance optimizations and great new features for users and developers. This document provides a glimpse of what's new for developers.

See the Android APIs document for a detailed look at the new developer APIs.

Find out more about the new Jelly Bean features for users at manicapital.com

Faster, Smoother, More Responsive

Android builds on the performance improvements already included in Jelly Bean — vsync timing, triple buffering, reduced touch latency, CPU input boost, and hardware-accelerated 2D rendering — and adds new optimizations that make Android even faster.

For a graphics performance boost, the hardware-accelerated 2D renderer now optimizes the stream of drawing commands, transforming it into a more efficient GPU format by rearranging and merging draw operations. For multithreaded processing, the renderer can also now use multithreading across multiple CPU cores to perform certain tasks.

Android also improves rendering for shapes and text. Shapes such as circles and rounded rectangles are now rendered at higher quality in a more efficient manner. Optimizations for text include increased performance when using multiple fonts or complex glyph sets (CJK), higher rendering quality when scaling text, and faster rendering of drop shadows.

Improved window buffer allocation results in a faster image buffer allocation for your apps, reducing the time taken to start rendering when you create a window.

For highest-performance graphics, Android introduces support for OpenGL ES and makes it accessible to apps through both framework and native APIs. On supported devices, the hardware accelerated 2D rendering engine takes advantage of OpenGL ES to optimize texture management and increase gradient rendering fidelity.

OpenGL ES for High-Performance Graphics

Android introduces platform support for Khronos OpenGL ES , providing games and other apps with highest-performance 2D and 3D graphics capabilities on supported devices. You can take advantage of OpenGL ES and related EGL extensions using either framework APIs or native API bindings through the Android Native Development Kit (NDK).

Key new functionality provided in OpenGL ES includes acceleration of advanced visual effects, high quality ETC2/EAC texture compression as a standard feature, a new version of the GLSL ES shading language with integer and bit floating point support, advanced texture rendering, and standardized texture size and render-buffer formats.

You can use the OpenGL ES APIs to create highly complex, highly efficient graphics that run across a range of compatible Android devices, and you can support a single, standard texture-compression format across those devices.

OpenGL ES is an optional feature that depends on underlying graphics hardware. Support is already available on Nexus 7 (), Nexus 4, and Nexus 10 devices.

Enhanced Bluetooth Connectivity

Connectivity with Bluetooth Smart devices and sensors

Now you can design and build apps that interact with the latest generation of small, low-power devices and sensors that use Bluetooth Smart technology.

Android gives you a single, standard API for interacting with Bluetooth Smart devices.

Android introduces built-in platform support for Bluetooth Smart Ready in the central role and provides a standard set of APIs that apps can use to discover nearby devices, query for GATT services, and read/write characteristics.

With the new APIs, your apps can efficiently scan for devices and services of interest. For each device, you can check for supported GATT services by UUID and manage connections by device ID and signal strength. You can connect to a GATT server hosted on the device and read or write characteristics, or register a listener to receive notifications whenever those characteristics change.

You can implement support for any GATT profile. You can read or write standard characteristics or add support for custom characteristics as needed. Your app can function as either client or server and can transmit and receive data in either mode. The APIs are generic, so you’ll be able to support interactions with a variety of devices such as proximity tags, watches, fitness meters, game controllers, remote controls, health devices, and more.

Support for Bluetooth Smart Ready is already available on Nexus 7 () and Nexus 4 devices and will be supported in a growing number of Android-compatible devices in the months ahead.

AVRCP Profile

Android adds built-in support for Bluetooth AVRCP , so your apps can support richer interactions with remote streaming media devices. Apps such as media players can take advantage of AVRCP through the remote control client APIs introduced in Android In addition to exposing playback controls on the remote devices connected over Bluetooth, apps can now transmit metadata such as track name, composer, and other types of media metadata.

Platform support for AVRCP is built on the Bluedroid Bluetooth stack introduced by Google and Broadcom in Android Support is available right away on Nexus devices and other Android-compatible devices that offer A2DP/AVRCP capability.

Support for Restricted Profiles

A tablet owner can set up one or more restricted profiles in Settings and manage them independently.

Your app can offer restrictions to let owners manage your app content when it's running in a profile.

Android extends the multiuser feature for tablets with restricted profiles, a new way to manage users and their capabilities on a single device. With restricted profiles, tablet owners can quickly set up separate environments for each user, with the ability to manage finer-grained restrictions in the apps that are available in those environments. Restricted profiles are ideal for friends and family, guest users, kiosks, point-of-sale devices, and more.

Each restricted profile offers an isolated and secure space with its own local storage, home screens, widgets, and settings. Unlike with users, profiles are created from the tablet owner’s environment, based on the owner’s installed apps and system accounts. The owner controls which installed apps are enabled in the new profile, and access to the owner’s accounts is disabled by default.

Apps that need to access the owner’s accounts — for sign-in, preferences, or other uses — can opt-in by declaring a manifest attribute, and the owner can review and manage those apps from the profile configuration settings.

For developers, restricted profiles offer a new way to deliver more value and control to your users. You can implement app restrictions — content or capabilities controls that are supported by your app — and advertise them to tablet owners in the profile configuration settings.

You can add app restrictions directly to the profile configuration settings using predefined boolean, select, and multi-select types. If you want more flexibility, you can even launch your own UI from profile configuration settings to offer any type of restriction you want.

When your app runs in a profile, it can check for any restrictions configured by the owner and enforce them appropriately. For example, a media app might offer a restriction to let the owner set a maturity level for the profile. At run time, the app could check for the maturity setting and then manage content according to the preferred maturity level.

If your app is not designed for use in restricted profiles, you can opt out altogether, so that your app can't be enabled in any restricted profile.

Optimized Location and Sensor Capabilities

Google Play services offers advanced location APIs that you can use in your apps. Android optimizes these APIs on supported devices with new hardware and software capabilities that minimize use of the battery.

Hardware geofencing optimizes for power efficiency by performing location computation in the device hardware, rather than in software. On devices that support hardware geofencing, Google Play services geofence APIs will be able to take advantage of this optimization to save battery while the device is moving.

Wi-Fi scan-only mode is a new platform optimization that lets users keep Wi-Fi scan on without connecting to a Wi-Fi network, to improve location accuracy while conserving battery. Apps that depend on Wi-Fi for location services can now ask users to enable scan-only mode from Wi-Fi advanced settings. Wi-Fi scan-only mode is not dependent on device hardware and is available as part of the Android platform.

New sensor types allow apps to better manage sensor readings. A game rotation vector lets game developers sense the device’s rotation without having to worry about magnetic interference. Uncalibrated gyroscope and uncalibrated magnetometer sensors report raw measurements as well as estimated biases to apps.

The new hardware capabilities are already available on Nexus 7 () and Nexus 4 devices, and any device manufacturer or chipset vendor can build them into their devices.

New Media Capabilities

Modular DRM framework

To meet the needs of the next generation of media services, Android introduces a modular DRM framework that enables media application developers to more easily integrate DRM into their own streaming protocols, such as MPEG DASH (Dynamic Adaptive Streaming over HTTP, ISO/IEC ).

Through a combination of new APIs and enhancements to existing APIs, the media DRM framework provides an integrated set of services for managing licensing and provisioning, accessing low-level codecs, and decoding encrypted media data. A new MediaExtractor API lets you get the PSSH metadata for DASH media. Apps using the media DRM framework manage the network communication with a license server and handle the streaming of encrypted data from a content library.

VP8 encoder

Android introduces built-in support for VP8 encoding, accessible from framework and native APIs. For apps using native APIs, the platform includes OpenMAX extension headers to support VP8 profiles and levels. VP8 encoding support includes settings for target bitrate, rate control, frame rate, token partitioning, error resilience, reconstruction and loop filters. The platform API introduces VP8 encoder support in a range of formats, so you can take advantage of the best format for your content.

VP8 encoding is available in software on all compatible devices running Android For highest performance, the platform also supports hardware-accelerated VP8 encoding on capable devices.

Video encoding from a surface

Starting in Android you can use a surface as the input to a video encoder. For example, you can now direct a stream from an OpenGL ES surface to the encoder, rather than having to copy between buffers.

Media muxer

Apps can use new media muxer APIs to combine elementary audio and video streams into a single output file. Currently apps can multiplex a single MPEG-4 audio stream and a single MPEG-4 video stream into a single MPEG-4 output file. The new APIs are a counterpart to the media demuxing APIs introduced in Android

Playback progress and scrubbing in remote control clients

Since Android , media players and similar applications have been able to offer playback controls from remote control clients such as the device lock screen, notifications, and remote devices connected over Bluetooth. Starting in Android , those applications can now also expose playback progress and speed through their remote control clients, and receive commands to jump to a specific playback position.

New Ways to Build Beautiful Apps

Access to notifications

Notifications have long been a popular Android feature because they let users see information and updates from across the system, all in one place. Now in Android , apps can observe the stream of notifications with the user's permission and display the notifications in any way they want, including sending them to nearby devices connected over Bluetooth.

You can access notifications through new APIs that let you register a notification listener service and with permission of the user, receive notifications as they are displayed in the status bar. Notifications are delivered to you in full, with all details on the originating app, the post time, the content view and style, and priority. You can evaluate fields of interest in the notifications, process or add context from your app, and route them for display in any way you choose.

The new API gives you callbacks when a notification is added, updated, and removed (either because the user dismissed it or the originating app withdrew it). You'll be able to launch any intents attached to the notification or its actions, as well as dismiss it from the system, allowing your app to provide a complete user interface to notifications.

Users remain in control of which apps can receive notifications. At any time, they can look in Settings to see which apps have notification access and enable or disable access as needed. Notification access is disabled by default — apps can use a new Intent to take the user directly to the Settings to enable the listener service after installation.

View overlays

You can now create transparent overlays on top of Views and ViewGroups to render a temporary View hierarchy or transient animation effects without disturbing the underlying layout hierarchy. Overlays are particularly useful when you want to create animations such as sliding a view outside of its container or dragging items on the screen without affecting the view hierarchy.

Optical bounds layout mode

A new layout mode lets you manage the positioning of Views inside ViewGroups according to their optical bounds, rather than their clip bounds. Clip bounds represent a widget’s actual outer boundary, while the new optical bounds describe the where the widget appears to be, within the clip bounds. You can use the optical bounds layout mode to properly align widgets that use outer visual effects such as shadows and glows.

Custom rotation animation types

Apps can now define the exit and entry animation types used on a window when the device is rotated. You can set window properties to enable jump-cut, cross-fade, or standard window rotation. The system uses the custom animation types when the window is fullscreen and is not covered by other windows.

Screen orientation modes

Apps can set new orientation modes for Activities to ensure that they are displayed in the proper orientation when the device is flipped. Additionally, apps can use a new mode to lock the screen to its current orientation. This is useful for apps using the camera that want to disable rotation while shooting video.

Intent for handling Quick Responses

Android introduces a new public Intent that lets any app handle Quick Responses — text messages sent by the user in response to an incoming call, without needing to pick up the call or unlock the device. Your app can listen for the intent and send the message to the caller over your messaging system. The intent includes the recipient (caller) as well as the message itself.

Support for International Users

More parts of Android are optimized for RTL languages.

RTL improvements

Android includes RTL performance enhancements and broader RTL support across framework UI widgets, including ProgressBar/Spinner and ExpandableListView. More debugging information visible through the tool. In addition, more system UI components are now RTL aware, such as notifications, navigation bar and the Action Bar.

To provide a better systemwide experience in RTL scripts, more default system apps now support RTL layouts, including Launcher, Quick Settings, Phone, People, SetupWizard, Clock, Downloads, and more.

Utilities for localization

Pseudo-locales make it easier to test your app's localization.

Android also includes new utilities and APIs for creating better RTL strings and testing your localized UIs. A new BidiFormatter class provides a simple API for wrapping Unicode strings, so that RTL-script data is displayed as intended in LTR-locale messages and vice-versa. To let you use this utility more broadly in your apps, the BidiFormatter API is also now available for earlier platform versions through the Support Package in the Android SDK.

To assist you with managing date formatting across locales, Android includes a new getBestDateTimePattern() method that automatically generates the best possible localized form of a Unicode UTS date for a locale that you specify. It’s a convenient way to provide a more localized experience for your users.

To help you test your app more easily in other locales, Android introduces pseudo-locales as a new developer option. Pseudo-locales simulate the language, script, and display characteristics associated with a locale or language group. Currently, you can test with a pseudo-locale for Accented English, which lets you see how your UI works with script accents and characters used in a variety of European languages.

Accessibility and UI Automation

Starting in Android , accessibility services can observe and filter key events, such as to handle keyboard shortcuts or provide navigation parity with gesture-based input. The service receives the events and can process them as needed before they are passed to the system or other installed apps.

Accessibility services can declare new capability attributes to describe what their services can do and what platform features they use. For example, they can declare the capability to filter key events, retrieve window content, enable explore-by-touch, or enable web accessibility features. In some cases, services must declare a capability attribute before they can access related platform features. The system uses the service’s capability attributes to generate an opt-in dialog for users, so they can see and agree to the capabilities before launch.

Building on the accessibility framework in Android , a new UI automation framework lets tests interact with the device’s UI by simulating user actions and introspecting the screen content. Through the UI automation framework you can perform basic operations, set rotation of the screen, generate input events, take screenshots, and much more. It’s a powerful way to automate testing in realistic user scenarios, including actions or sequences that span multiple apps.

Enterprise and Security

Wi-Fi configuration for WPA2-Enterprise networks

Apps can now configure the Wi-Fi credentials they need for connections to WPA2 enterprise access points. Developers can use new APIs to configure Extensible Authentication Protocol (EAP) and Encapsulated EAP (Phase 2) credentials for authentication methods used in the enterprise. Apps with permission to access and change Wi-Fi can configure authentication credentials for a variety of EAP and Phase 2 authentication methods.

Android sandbox reinforced with SELinux

Android now uses SELinux, a mandatory access control (MAC) system in the Linux kernel to augment the UID based application sandbox. This protects the operating system against potential security vulnerabilities.

KeyChain enhancements

The KeyChain API now provides a method that allows applications to confirm that system-wide keys are bound to a hardware root of trust for the device. This provides a place to create or store private keys that cannot be exported off the device, even in the event of a root or kernel compromise.

Android Keystore Provider

Android introduces a keystore provider and APIs that allow applications to create exclusive-use keys. Using the APIs, apps can create or store private keys that cannot be seen or used by other apps, and can be added to the keystore without any user interaction.

The keystore provider provides the same security benefits that the KeyChain API provides for system-wide credentials, such as binding credentials to a device. Private keys in the keystore cannot be exported off the device.

Restrict Setuid from Android Apps

The partition is now mounted for zygote-spawned processes, preventing Android applications from executing programs. This reduces root attack surface and likelihood of potential security vulnerabilities.

New Ways to Analyze Performance

Systrace uses a new command syntax and lets you collect more types of profiling data.

Enhanced Systrace logging

Android supports an enhanced version of the Systrace tool that’s easier to use and that gives you access to more types of information to profile the performance of your app. You can now collect trace data from hardware modules, kernel functions, Dalvik VM including garbage collection, resources loading, and more.

Android also includes new Trace APIs that you can use in your apps to mark specific sections of code to trace using Systrace begin/end events. When the marked sections of code execute, the system writes the begin/end events to the trace log. There's minimal impact on the performance of your app, so timings reported give you an accurate view of what your app is doing.

You can visualize app-specific events in a timeline in the Systrace output file and analyze the events in the context of other kernel and user space trace data. Together with existing Systrace tags, custom app sections can give you new ways to understand the performance and behavior of your apps.

On-screen GPU profiling in Android

On-screen GPU profiling

Android adds new developer options to help you analyze your app’s performance and pinpoint rendering issues on any device or emulator.

In the Profile GPU rendering option you can now visualize your app’s effective framerate on-screen, while the app is running. You can choose to display profiling data as on-screen bar or line graphs, with colors indicating time spent creating drawing commands (blue), issuing the commands (orange), and waiting for the commands to complete (yellow). The system updates the on-screen graphs continuously, displaying a graph for each visible Activity, including the navigation bar and notification bar.

A green line highlights the 16ms threshold for rendering operations, so you can assess the your app’s effective framerate relative to a 60 fps goal (because 1/60th of a second equals roughly 16ms). If you see operations that cross the green line, you can analyze them further using Systrace and other tools.

On devices running Android and higher, developer options are hidden by default. You can reveal them at any time by tapping 7 times on Settings > About phone > Build number on any compatible Android device.

StrictMode warning for file URIs

The latest addition to the StrictMode tool is a policy constraint that warns when your app exposes a URI to the system or another app. In some cases the receiving app may not have access to the URI path, so when sharing files between apps, a URI should be used (with the appropriate permission). This new policy helps you catch and fix such cases. If you’re looking for a convenient way to store and expose files to other apps, try using the content provider that’s available in the Support Library.

Android

Welcome to Android , the latest version of Jelly Bean!

Android has performance optimizations, a refreshed system UI, and great new features for users and developers. This document provides a glimpse of what's new for developers.

See the Android APIs document for a detailed look at the new developer APIs.

Find out more about the new Jelly Bean features for users at manicapital.com

Faster, Smoother, More Responsive

Android builds on the performance improvements already included in Jelly Bean — vsync timing, triple buffering, reduced touch latency, and CPU input boost — and adds new optimizations that make Android even faster.

Improvements in the hardware-accelerated 2D renderer make common animations such as scrolling and swiping smoother and faster. In particular, drawing is optimized for layers, clipping and certain shapes (rounded rects, circles and ovals).

A variety of WebView rendering optimizations make scrolling of web pages smoother and free from jitter and lags.

Android’s Renderscript Compute is the first computation platform ported to run directly on a mobile device GPU. It automatically takes advantage of GPU computation resources whenever possible, dramatically improving performance for graphics and image processing. Any app using Renderscript on a supported device can benefit immediately from this GPU integration without recompiling.

Refined, refreshed UI

Android refines the Jelly Bean user experience and brings familiar Android UI patterns such as status bar, system bar, and notifications window to all tablets.

All screen sizes now feature the status bar on top, with pull-down access to notifications and a new Quick Settings menu. The familiar system bar appears on the bottom, with buttons easily accessible from either hand. The Application Tray is also available on all screen sizes.

One tablet, many users

Now several users can share a single Android tablet, with each user having convenient access to a dedicated user space. Users can switch to their spaces with a single touch from the lock screen.

On a multiuser device, Android gives each user a separate environment, including user-specific emulated SD card storage. Users also have their own homescreens, widgets, accounts, settings, files, and apps, and the system keeps these separate. All users share core system services, but the system ensures that each user's applications and data remain isolated. In effect, each of the multiple users has their own Android device.

Users can install and uninstall apps at any time in their own environments. To save storage space, Google Play downloads an APK only if it's not already installed by another user on the device. If the app is already installed, Google Play records the new user's installation in the usual way but doesn't download another copy of the app. Multiple users can run the same copy of an APK because the system creates a new instance for each user, including a user-specific data directory.

For developers, multi-user support is transparent — your apps do not need to do anything special to run normally in a multi-user environment and there are no changes you need to make in your existing or published APKs. The system manages your app in each user space just as it does in a single-user environment.

New ways to engage users

You can extend app widgets to run on the lock screen, for instant access to your content.

Lock screen widgets

In Android , users can place app widgets directly on their lock screens, for instant access to favorite app content without having to unlock. Users can add as many as five lock screen widgets, choosing from widgets provided by installed apps. The lock screen displays each widget in its own panel, letting users swipe left and right to view different panels and their widgets.

Like all app widgets, lock screen widgets can display any kind of content and they can accept direct user interaction. They can be entirely self-contained, such as a widget that offers controls to play music, or they can let users jump straight to an Activity in your app, after unlocking along the way as needed.

For developers, lock screen widgets offer a great new way to engage users. They let you put your content in front of users in a location they’ll see often, and they give you more opportunities to bring users directly into your app.

You can take advantage of this new capability by building a new app widget or by extending an existing home screen widget. If your app already includes home screen widgets, you can extend them to the lock screen with minimal change. To give users an optimal experience, you can update the widget to use the full lock screen area when available and resize when needed on smaller screens. You can also add features to your widgets that might be especially useful or convenient on the lock screen.

Daydream

Daydream is an interactive screensaver mode that starts when a user’s device is docked or charging. In this mode, the system launches a daydream — a remote content service provided by an installed app — as the device screensaver. A user can enable Daydream from the Settings app and then choose the daydream to display.

Daydreams combine the best capabilities of live wallpapers and home screen widgets, but they are more powerful. They let you offer the any kind of content in a completely new context, with user interactions such as flipping through photos, playing audio or video, or jumping straight into your app with a single touch.

Because daydreams can start automatically when a device is charging or docked, they also give your app a great way to support new types of user experiences, such as leanback or exhibition mode, demo or kiosk mode, and "attract mode" — all without requiring special hardware.

Daydream lets you create powerful interactive screensavers that display any kind of content.

Daydreams are similar to Activities and can do anything that Activity can do — from rendering a UI hierarchy (without using RemoteViews) to drawing directly using Canvas, OpenGL, SurfaceTexture, and more. They can play video and audio and they can even accept direct user interaction. However, daydreams are not Activities, so they don’t affect the backstack or appear in Recents and they cannot be launched directly from your app.

Implementing a daydream is straightforward and you can take advantage of UI components and resources that you’ve already created for other parts of your app. You can provide multiple daydreams in your app and you can offer distinct content and display settings for each.

External display support

Android introduces platform support for external displays that goes far beyond mirroring — apps can now target unique content to any one or multiple displays that are attached to an Android device. Apps can build on this to deliver new kinds of interaction and entertainment experiences to users.

Display manager

Apps interact with displays through a new display manager system service. Your app can enumerate the displays and check the capabilities of each, including size, density, display name, ID, support for secure video, and more. Your app can also receive callbacks when displays are added or removed or when their capabilities change, to better manage your content on external displays.

Presentation window

To make it easy to show content on an external display, the framework provides a new UI object called a Presentation — a type of dialog that represents a window for your app’s content on a specific external display. Your app just gives the display to use, a theme for the window, and any unique content to show. The Presentation handles inflating resources and rendering your content according to the characteristics of the targeted display.

You can take full control of two or more independent displays using Presentation.

A Presentation gives your app full control over the remote display window and its content and lets you manage it based on user input events such as key presses, gestures, motion events, and more. You can use all of the normal tools to create a UI and render content in the Presentation, from building an arbitrary view hierarchy to using SurfaceView or SurfaceTexture to draw directly into the window for streamed content or camera previews.

Preferred display selection

When multiple external displays are available, you can create as many Presentations as you need, with each one showing unique content on a specific display. In many cases, you might only want to show your content on a single external display — but always on the that’s best for Presentation content. For this, the system can help your app choose the best display to use.

To find the best display to use, your app can query the display manager for the system’s preferred Presentation display and receive callbacks when that display changes. Alternatively, you can use the media router service, extended in Android , to receive notifications when a system video route changes. Your app can display content by default in the main Activity until a preferred Presentation display is attached, at which time it can automatically switch to Presentation content on the preferred display. Your apps can also use media router’s MediaRouteActionProvider and MediaRouteButton to offer standard display-selection UI.

Protected content

For apps that handle protected or encrypted content, the display API now reports the secure video capabilities of attached displays. Your app query a display to find out if it offers a secure video output or provides protected graphics buffers and then choose the appropriate content stream or decoding to make the content viewable. For additional security on SurfaceView objects, your app can set a secure flag to indicate that the contents should never appear in screenshots or on a non-secure display output, even when mirrored.

Wireless display

Starting in Android , users on supported devices can connect to an external display over Wi-Fi, using Wi-Fi Display (a peer-to-peer wireless display solution that complies with the Miracast™ certification program). When a wireless display is connected, users can stream any type of content to the big screen, including photos, games, maps, and more.

Apps can take advantage of wireless displays in the same way as they do other external displays and no extra work is needed. The system manages the network connection and streams your Presentation or other app content to the wireless display as needed.

Native RTL support

Developers can now mirror their layouts for RTL languages.

Android introduces full native support for RTL (right-to-left) layouts, including layout mirroring. With native RTL support, you can deliver the same great app experience to all of your users, whether their language uses a script that reads right-to-left or one that reads left-to-right.

When the user switches the system language to a right-to-left script, the system now provides automatic mirroring of app UI layouts and all view widgets, in addition to bidi mirroring of text elements for both reading and character input.

Your app can take advantage of RTL layout mirroring in your app with minimal effort. If you want the app to be mirrored, you simply declare a new attribute in your app manifest and change all "left/right" layout properties to new "start/end" equivalents. The system then handles the mirroring and display of your UI as appropriate.

For precise control over your app UI, Android includes new APIs that let you manage layout direction, text direction, text alignment, gravity, and locale direction in View components. You can even create custom versions of layout, drawables, and other resources for display when a right-to-left script is in use.

To help you debug and optimize your custom right-to-left layouts, the HierarchyViewer tool now lets you see start/end properties, layout direction, text direction, and text alignment for all the Views in the hierarchy.

Enhancements for international languages

Android includes a variety of font and character optimizations for international users:

  • For Korean users, a new font choice is available — Nanum (나눔글꼴) Gothic, a unicode font designed especially for the Korean-language script.
  • Improved support for Japanese vertical text displayed in WebViews.
  • Improved font kerning and positioning for Indic, Thai, Arabic, and Hebrew default fonts.

The default Android keyboard also includes an updated set of dictionaries:

  • Improved dictionaries for French (with bigram support), English, and Russian
  • New dictionaries for Danish, Greek, Finnish, Lithuanian, Latvian, Polish, Slovenian, Serbian, Swedish, Turkish

New ways to create beautiful UI

Nested Fragments

For more control over your UI components and to make them more modular, Android lets you nest Fragments inside of Fragments. For any Fragment, a new Fragment manager lets you insert other Fragments as child nodes in the View hierarchy.

You can use nested Fragments in a variety of ways, but they are especially useful for implementing dynamic and reusable UI components inside of a UI component that is itself dynamic and reusable. For example, if you use ViewPager to create fragments that swipe left and right, you can now insert fragments into each Fragment of the view pager.

To let you take advantage of nested Fragments more broadly in your app, this capability is added to the latest version of the Android Support Library.

Accessibility

The system now helps accessibility services distinguish between touch exploration and accessibility gestures while in touch-exploration mode. When a user touches the screen, the system notifies the service that a generic touch interaction has started. It then tracks the speed of the touch interaction and determines whether it is a touch exploration (slow) or accessibility gesture (fast) and notifies the service. When the touch interaction ends, the system notifies the service.

The system provides a new global accessibility option that lets an accessibility service open the Quick Settings menu based on an action by the user. Also added in Android is a new accessibility feedback type for Braille devices.

To give accessibility services insight into the meaning of Views for accessibility purposes, the framework provides new APIs for associating a View as the label for another View. The label for each View is available to accessibility services through AccessibilityNodeInfo.

Improved Camera with HDR

Android introduces a new camera hardware interface and pipeline for improved performance. On supported devices, apps can use a new HDR camera scene mode to capture an image using high dynamic range imaging techniques.

Additionally, the framework now provides an API to let apps check whether the camera shutter sound can be disabled. Apps can then let the user disable the sound or choose an alternative sound in place of the standard shutter sound, which is recommended.

Renderscript Computation

In Android , Renderscript Compute introduces new scripting features, new optimizations, and direct GPU integration for the highest performance in computation operations.

Filterscript

Filterscript is a subset of Renderscript that is focused on optimized image processing across a broad range of device chipsets. Developers can write their image processing operations in Filterscript using the standard Renderscript runtime API, but within stricter constraints that ensure wider compatibility and improved optimization across CPUs, GPUs, and DSPs.

Filterscript is ideal for hardware-accelerating simple image-processing and computation operations such as those that might be written for OpenGL ES fragment shaders. Because it places a relaxed set of constraints on hardware, your operations are optimized and accelerated on more types of device chipsets. Any app targeting API level 17 or higher can make use of Filterscript.

Script intrinsics

In Android , Renderscript adds support for a set of script intrinsics — pre-implemented filtering primitives that are accelerated to reduce the amount of code that you need to write and to ensure that your app gets the maximum performance gain possible.

Intrinsics are available for blends, blur, color matrix, 3x3 and 5x5 convolve, per-channel lookup table, and converting an Android YUV buffer to RGB.

Script groups

You can now create groups of Renderscript scripts and execute them all with a single call as though they were part of a single script. This allows Renderscript to optimize execution of the scripts in ways that it could not do if the scripts were executed individually.

Renderscript image-processing benchmarks run on different Android platform versions (Android , , and ) in CPU only on a Galaxy Nexus device.

Renderscript image-processing benchmarks comparing operations run with GPU + CPU to those run in CPU only on the same Nexus 10 device.

If you have a directed acyclic graph of Renderscript operations to run, you can use a builder class to create a script group defining the operations. At execution time, Renderscript optimizes the run order and the connections between these operations for best performance.

Ongoing optimization improvements

When you use Renderscript for computation operations, you apps benefit from ongoing performance and optimization improvements in the Renderscript engine itself, without any impact on your app code or any need for recompilation.

As optimization improves, your operations execute faster and on more chipsets, without any work on your part. The chart at right highlights the performance gain delivered by ongoing Renderscript optimization improvements across successive versions of the Android platform.

GPU Compute

Renderscript Compute is the first computation platform ported to run directly on a mobile device GPU. It now automatically takes advantage of GPU computation resources whenver possible to improve performance. With GPU integration, even the most complex computations for graphics or image processing can execute with dramatically improved performance.

Any app using Renderscript on a supported device can benefit immediately from this GPU integration, without recompiling. The Nexus 10 tablet is the first device to support this integration.

New built-in developer options

The Android system includes a variety of new developer options that make it easier to create great looking apps that perform well. The new options expose features for debugging and profiling your app from any device or emulator.

On devices running Android , developer options are hidden by default, helping to create a better experience for users. You can reveal the developer options at any time by tapping 7 times on Settings > About phone > Build number on any compatible Android device.

New developer options give you more ways to profile and debug on a device.

New developer options in Android include:

  • Take bug report — immediately takes a screen shot and dumps device state information to local file storage, then attaches them to a new outgoing email message.
  • Power menu bug reports — Adds a new option to the device power menu and quick settings to take a bug report (see above).
  • Verify apps over usb — Allows you to disable app checks for sideloading apps over USB, while still checking apps from other sources like the browser. This can speed up the development process while keeping the security feature enabled.
  • Show hardware layers updates — Flashes hardware layers green when they update.
  • Show GPU overdraw — Highlights GPU overdraw areas.
  • Force 4x MSAA — Enables 4x MSAA in Open GL ES apps.
  • Simulate secondary displays — Creates one or more non-secure overlay windows on the current screen for use as a simulated remote display. You can control the simulated display’s size and density.
  • Enable OpenGL traces — Lets you trace OpenGL execution using Logcat, Systrace, or callstack on glGetError.

New Platform Technologies

Android includes a variety of new and enhanced platform technologies to support innovative communications use-cases across a broad range of hardware devices. In most cases, the new platform technologies and enhancements do not directly affect your apps, so you can benefit from them without any modification.

Security enhancements

Every Android release includes dozens of security enhancements to protect users. Here are some of the enhancements in Android

  • Application verification — Users can choose to enable “Verify Apps" and have applications screened by an application verifier, prior to installation. App verification can alert the user if they try to install an app that might be harmful; if an application is especially bad, it can block installation.
  • More control of premium SMS — Android will provide a notification if an application attempts to send SMS to a short code that uses premium services which might cause additional charges. The user can choose whether to allow the application to send the message or block it.
  • Always-on VPN — VPN can be configured so that applications will not have access to the network until a VPN connection is established. This prevents applications from sending data across other networks.
  • Certificate Pinning — The libcore SSL implementation now supports certificate pinning. Pinned domains will receive a certificate validation failure if the certificate does not chain to a set of expected certificates. This protects against possible compromise of Certificate Authorities.
  • Improved display of Android permissions — Permissions have been organized into groups that are more easily understood by users. During review of the permissions, the user can click on the permission to see more detailed information about the permission.
  • installd hardening — The installd daemon does not run as the root user, reducing potential attack surface for root privilege escalation.
  • init script hardening — init scripts now apply O_NOFOLLOW semantics to prevent symlink related attacks.
  • FORTIFY_SOURCE — Android now implements FORTIFY_SOURCE. This is used by system libraries and applications to prevent memory corruption.
  • ContentProvider default configuration — Applications which target API level 17 will have “export” set to “false” by default for each ContentProvider, reducing default attack surface for applications.
  • Cryptography — Modified the default implementations of SecureRandom and manicapital.com to use OpenSSL. Added SSLSocket support for TLSv and TLSv using OpenSSL
  • Security Fixes — Upgraded open source libraries with security fixes include WebKit, libpng, OpenSSL, and LibXML. Android also includes fixes for Android-specific vulnerabilities. Information about these vulnerabilities has been provided to Open Handset Alliance members and fixes are available in Android Open Source Project. To improve security, some devices with earlier versions of Android may also include these fixes.

New Bluetooth stack

Android introduces a new Bluetooth stack optimized for use with Android devices. The new Bluetooth stack developed in collaboration between Google and Broadcom replaces the stack based on BlueZ and provides improved compatibility and reliability.

Low-latency audio

Android improves support for low-latency audio playback, starting from the improvements made in Android release for audio output latency using OpenSL ES, Soundpool and tone generator APIs. These improvements depend on hardware support — devices that offer these low-latency audio features can advertise their support to apps through a hardware feature constant. New AudioManager APIs are provided to query the native audio sample rate and buffer size, for use on devices which claim this feature.

New camera hardware interface

Android introduces a new implementation of the camera stack. The camera subsystem includes the implementations for components in the camera pipeline such as burst mode capture with processing controls.

New NFC hardware interface and controller interface

Android introduces support for controllers based on the NCI standard from the NFC-Forum. NCI provides a standard communication protocol between an NFC Controller (NFCC) and a device Host, and the new NFC stack developed in collaboration between Google and Broadcom supports it.

Dalvik runtime optimizations

The Dalvik runtime includes enhancements for performance and security across a wider range of architectures:

  • x86 JIT support from Intel and MIPS JIT support from MIPS
  • Optimized garbage-collection parameters for devices with > MB
  • Default implementations of SecureRandom and manicapital.com now use OpenSSL
  • SSLSocket support for TLSv and TLSv via OpenSSL
  • New intrinsic support for StrictMath methods abs, min, max, and sqrt
  • BouncyCastle updated to
  • zlib updated to
  • dlmalloc updated to

Android

Welcome to Android the first version of Jelly Bean!

Android is the fastest and smoothest version of Android yet. We’ve made improvements throughout the platform and added great new features for users and developers. This document provides a glimpse of what's new for developers.

See the Android APIs document for a detailed look at the new developer APIs.

Find out more about the Jelly Bean features for users at manicapital.com

Faster, Smoother, More Responsive

Android is optimized to deliver Android's best performance and lowest touch latency, in an effortless, intuitive UI.

To ensure a consistent framerate, Android extends vsync timing across all drawing and animation done by the Android framework. Everything runs in lockstep against a 16 millisecond vsync heartbeat — application rendering, touch events, screen composition, and display refresh — so frames don’t get ahead or behind.

Android also adds triple buffering in the graphics pipeline, for more consistent rendering that makes everything feel smoother, from scrolling to paging and animations.

Android reduces touch latency not only by synchronizing touch to vsync timing, but also by actually anticipating where your finger will be at the time of the screen refresh. This results in a more reactive and uniform touch response. In addition, after periods of inactivity, Android applies a CPU input boost at the next touch event, to make sure there’s no latency.

Tooling can help you get the absolute best performance out of your apps. Android is designed to work with a new tool called systrace, which collects data directly from the Linux kernel to produce an overall picture of system activities. The data is represented as a group of vertically stacked time series graphs, to help isolate rendering interruptions and other issues. The tool is available now in the Android SDK (Tools R20 or higher)

Enhanced Accessibility

New APIs for accessibility services let you handle gestures and manage accessibility focus as the user moves through the on-screen elements and navigation buttons using accessibility gestures, accessories, and other input. The Talkback system and explore-by-touch are redesigned to use accessibility focus for easier use and offer a complete set of APIs for developers.

Accessibility services can link their own tutorials into the Accessibility settings, to help users configure and use their services.

Apps that use standard View components inherit support for the new accessibility features automatically, without any changes in their code. Apps that use custom Views can use new accessibility node APIs to indicate the parts of the View that are of interest to accessibility services.

Support for International Users

Bi-Directional Text and Other Language Support

Android helps you to reach more users through support for bi-directional text in TextView and EditText elements. Apps can display text or handle text editing in left-to-right or right-to-left scripts. Apps can make use of new Arabic and Hebrew locales and associated fonts.

Other types of new language support include:

  • Additional Indic languages: Kannada, Telugu, and Malayalam
  • The new Emoji characters from Unicode version
  • Better glyph support for Japanese users (renders Japanese-specific versions of glyphs when system language is set to Japanese)
  • Arabic glyphs optimized for WebViews in addition to the Arabic glyphs for TextViews
  • Vertical Text support in WebViews, including Ruby Text and additional Vertical Text glyphs
  • Synthetic Bold is now available for all fonts that don't have dedicated bold glyphs

User-installable keymaps

The platform now supports user-installable keyboard maps, such as for additional international keyboards and special layout types. By default, Android includes 27 international keymaps for keyboards, including Dvorak. When users connect a keyboard, they can go to the Settings app and select one or more keymaps that they want to use for that keyboard. When typing, users can switch between keymaps using a shortcut (ctrl-space).

You can create an app to publish additional keymaps to the system. The APK would include the keyboard layout resources in it, based on standard Android keymap format. The application can offer additional keyboard layouts to the user by declaring a suitable broadcast receiver for ACTION_QUERY_KEYBOARD_LAYOUTS in its manifest.

New Ways to Create Beautiful UI

Developers can create custom notification styles like those shown in the examples above to display rich content and actions.

Expandable notifications

Notifications have long been a unique and popular feature on Android. Developers can use them to place important or time-based information in front of users in the notification bar, outside of the app’s normal UI.

Android brings a major update to the Android notifications framework. Apps can now display larger, richer notifications to users that can be expanded and collapsed with a pinch or swipe. Notifications support new types of content, including photos, have configurable priority, and can even include multiple actions.

Through an improved notification builder, apps can create notifications that use a larger area, up to dp in height. Three templated notification styles are available:

  • BigTextStyle — a notification that includes a multiline TextView object.
  • BigInboxStyle — a notification that shows any kind of list such as messages, headlines, and so on.
  • BigPictureStyle — a notification that showcases visual content such as a bitmap.

In addition to the templated styles, you can create your own notification styles using any remote View.

Apps can add up to three actions to a notification, which are displayed below the notification content. The actions let the users respond directly to the information in the notification in alternative ways. such as by email or by phone call, without visiting the app.

With expandable notifications, apps can give more information to the user, effortlessly and on demand. Users remain in control and can long-press any notification to get information about the sender and optionally disable further notifications from the app.

App Widgets can resize automatically to fit the home screen and load different content as their sizes change.

Resizable app widgets

Android introduces improved App Widgets that can automatically resize, based on where the user drops them on the home screen, the size to which the user expands them, and the amount of room available on the home screen. New App Widget APIs let you take advantage of this to optimize your app widget content as the size of widgets changes.

When a widget changes size, the system notifies the host app’s widget provider, which can reload the content in the widget as needed. For example, a widget could display larger, richer graphics or additional functionality or options. Developers can still maintain control over maximum and minimum sizes and can update other widget options whenever needed.

You can also supply separate landscape and portrait layouts for your widgets, which the system inflates as appropriate when the screen orientation changes.

App widgets can now be displayed in third party launchers and other host apps through a new bind Intent (manicapital.com_APPWIDGET_BIND).

Simplified task navigation

Android makes it easy for you to manage the “Up” navigation that’s available to users from inside of your apps and helps ensure a consistent experience for users.

You can define the intended Up navigation for individual Activity components of your UI by adding a new XML attribute in the app’s manifest file. At run time, as Activities are launched, the system extracts the Up navigation tree from the manifest file and automatically creates the Up affordance navigation in the action bar. Developers who declare Up navigation in the manifest no longer need to manage navigation by callback at run time, although they can also do so if needed.

Also available is a new TaskStackBuilder class that lets you quickly put together a synthetic task stack to start immediately or to use when an Activity is launched from a PendingIntent. Creating a synthetic task stack is especially useful when users launch Activities from remote views, such as from Home screen widgets and notifications, because it lets the developer provide a managed, consistent experience on Back navigation.

Easy animations for Activity launch

You can use a new helper class, ActivityOptions, to create and control the animation displayed when you launch your Activities. Through the helper class, you can specify custom animation resources to be used when the activity is launched, or request new zoom animations that start from any rectangle you specify on screen and that optionally include a thumbnail bitmap.

Transitions to Lights Out and Full Screen Modes

New system UI flags in View let you to cleanly transition from a normal application UI (with action bar, navigation bar, and system bar visible), to "lights out mode" (with status bar and action bar hidden and navigation bar dimmed) or "full screen mode" (with status bar, action bar, and navigation bar all hidden).

New types of remoteable Views

Developers can now use GridLayout and ViewStub views in Home screen widgets and notifications. GridLayout lets you structure the content of your remote views and manage child views alignments with a shallower UI hierarchy. ViewStub is an invisible, zero-sized View that can be used to lazily inflate layout resources at runtime.

Live wallpaper preview

Android makes it easier for users to find and install Live Wallpapers from apps that include them. If your app includes Live Wallpapers, you can now start an Activity (ACTION_CHANGE_LIVE_WALLPAPER) that shows the user a preview of the Live Wallpaper from your own app. From the preview, users can directly load the Live Wallpaper.

Higher-resolution contact photos

With Android , you can store contact photos that are as large as x , making contacts even richer and more personal. Apps can store and retrieve contact photos at that size or use any other size needed. The maximum photo size supported on specific devices may vary, so apps should query the built-in contacts provider at run time to obtain the max size for the current device.

New Input Types and Capabilities

Find out about devices being added and removed

Apps can register to be notified when any new input devices are attached, by USB, Bluetooth, or any other connection type. They can use this information to change state or capabilities as needed. For example, a game could receive notification that a new keyboard or joystick is attached, indicating the presence of a new player.

Query the capabilities of input devices

Android includes APIs that let apps and games take full advantage of all input devices that are connected and available.

Apps can query the device manager to enumerate all of the input devices currently attached and learn about the capabilities of each.

Control vibrator on input devices

Among other capabilities, apps can now make use of any vibrator service associated with an attached input device, such as for Rumble Pak controllers.

Animation and Graphics

Vsync for apps

Extending vsync across the Android framework leads to a more consistent framerate and a smooth, steady UI. So that apps also benefit, Android extends vsync timing to all drawing and animations initiated by apps. This lets them optimize operations on the UI thread and provides a stable timebase for synchronization.

Apps can take advantage of vsync timing for free, through Android’s animation framework. The animation framework now uses vsync timing to automatically handle synchronization across animators.

For specialized uses, apps can access vsync timing through APIs exposed by a new Choreographer class. Apps can request invalidation on the next vsync frame — a good way to schedule animation when the app is not using the animation framework. For more advanced uses, apps can post a callback that the Choreographer class will run on the next frame.

New animation actions and transition types

The animation framework now lets you define start and end actions to take when running ViewPropertyAnimator animations, to help synchronize them with other animations or actions in the application. The action can run any runnable object. For example, the runnable might specify another animation to start when the previous one finishes.

You can also now specify that a ViewPropertyAnimator use a layer during the course of its animation. Previously, it was a best practice to animate complicated views by setting up a layer prior to starting an animation and then handling an onAnimationEnd() event to remove the layer when the animation finishes. Now, the withLayer() method on ViewPropertyAnimator simplifies this process with a single method call.

A new transition type in LayoutTransition enables you to automate animations in response to all layout changes in a ViewGroup.

New Types of Connectivity

Android Beam

Android Beam is a popular NFC-based technology that lets users instantly share, just by touching two NFC-enabled phones together.

In Android , Android Beam makes it easier to share images, videos, or other payloads by leveraging Bluetooth for the data transfer. When the user triggers a transfer, Android Beam hands over from NFC to Bluetooth, making it really easy to manage the transfer of a file from one device to another.

Wi-Fi Network Service Discovery

Android introduces support for multicast DNS-based service discovery, which lets applications find and connect to services offered by peer devices over Wi-Fi networks — including mobile devices, printers, cameras, media players, and others. Developers can take advantage of Wi-Fi network service discovery to build cross-platform or multiplayer games and application experiences.

Using the service discovery API, apps can create and register any kind of service, for any other NSD-enabled device to discover. The service is advertised by multicast across the network using a human-readable string identifier, which lets user more easily identify the type of service.

Consumer devices can use the API to scan and discover services available from devices connected to the local Wi-Fi network. After discovery, apps can use the API to resolve the service to an IP address and port through which it can establish a socket connection.

You can take advantage of this API to build new features into your apps. For example, you could let users connect to a webcam, a printer, or an app on another mobile device that supports Wi-Fi peer-to-peer connections.

Wi-Fi P2P Service Discovery

Ice Cream Sandwich introduced support for Wi-Fi Peer-to-Peer (P2P), a technology that lets apps discover and pair directly, over a high-bandwidth peer-to-peer connection (in compliance with the Wi-Fi Alliance's Wi-Fi Direct™ certification program). Wi-Fi P2P is an ideal way to share media, photos, files and other types of data and sessions, even where there is no cell network or Wi-Fi available.

Android takes Wi-Fi P2P further, adding API support for pre-associated service discovery. Pre-associated service discovery lets your apps get more useful information from nearby devices about the services they support, before they attempt to connect. Apps can initiate discovery for a specific service and filter the list of discovered devices to those that actually support the target service or application.

For example, this means that your app could discover only devices that are “printers” or that have a specific game available, instead of discovering all nearby Wi-Fi P2P devices. On the other hand, your app can advertise the service it provides to other devices, which can discover it and then negotiate a connection. This greatly simplifies discovery and pairing for users and lets apps take advantage of Wi-Fi P2P more effectively.

With Wi-Fi P2P service discovery, you can create apps and multiplayer games that can share photos, videos, gameplay, scores, or almost anything else — all without requiring any Internet or mobile network. Your users can connect using only a direct p2p connection, which avoids using mobile bandwidth.

Источник: [manicapital.com]
C-DIT - Soft Exam 4.1 serial key or number

News

Saturday April 25th - qBittorrent v release

qBittorrent v was released.
It contains fixes for two crashes.
ATTENTION WINDOWS USERS: There's a "qBittorrent" app on the Windows Store which costs money. It isn't an official release nor it is coming from us. The person publicizing it doesn't have permission to use the qBittorrent name/logo.
v changelog:

  • BUGFIX: Fix crash when torrent is deleted on limit reached (glassez)
  • BUGFIX: Register datatype properly (Chocobo1)
  • WEBUI: Add ability to send custom HTTP headers (Chocobo1)
  • WEBUI: Expand RSS related API (Sepro)
  • WINDOWS: Installer: Update german translation (schnurlos)

Wednesday April 22nd - qBittorrent v release

qBittorrent v was released.
It contains various qbittorrent and libtorrent networking fixes. Now most issues with VPNs and SOCKS5 proxies should be fixed.
ATTENTION WINDOWS USERS: There's a "qBittorrent" app on the Windows Store which costs money. It isn't an official release nor it is coming from us. The person publicizing it doesn't have permission to use the qBittorrent name/logo.
v changelog:

  • BUGFIX: Fix sub-sorting of Transfer list (glassez)
  • BUGFIX: Fix wrong logic that disables "prevent sleeping" timer (Chocobo1)
  • BUGFIX: Set disk cache size for older libtorrent versions (NotTsunami)
  • BUGFIX: Sort locale language list (Chocobo1)
  • BUGFIX: Remove white outline around manicapital.com (adem)
  • BUGFIX: Various fixes in configuring the chosen network interface and not leaking the IP (Raif Atef, an0n)
  • BUGFIX: Save "resume data" when torrent storage is moved (glassez)
  • BUGFIX: Avoid holding encoded resume data in memory (Chocobo1)
  • BUGFIX: Fix date format for "Last seen complete" (Chocobo1)
  • BUGFIX: Remove deprecated strict super seeding mode from advanced settings (an0n)
  • BUGFIX: Change default stop_tracker_timeout settings (an0n)
  • BUGFIX: Convert the Log widget to use custom View/Model (jagannatharjun)
  • BUGFIX: Change default upload slot choking limits (an0n)
  • BUGFIX: Don't uncheck Authentication checkbox when changing proxy type (thalieht)
  • BUGFIX: Reduce ambiguity for selecting tray icons (Chocobo1)
  • WEBUI: Fix unable to add multiple peers in WebUI (Sepro)
  • WEBUI: Fix UPnP lease duration get/set (NotTsunami)
  • SEARCH: Detect python3 executable on Windows (József Sallai)

Wednesday April 1st - qBittorrent v release

qBittorrent v was released.
It contains various fixes from v regarding scaling on HiDPI monitors, some VPN issues and UNC path handling. Torrents with broken UNC paths will be fixed when you run this release.
On Windows, Qt is used because of a regression regarding VPNs that affects RSS and Search functionality. Due to this, the scaling behavior on HiDPI monitors will be the same as in v too.
ATTENTION WINDOWS USERS: There's a "qBittorrent" app on the Windows Store which costs money. It isn't an official release nor it is coming from us. The person publicizing it doesn't have permission to use the qBittorrent name/logo.
v changelog:

  • FEATURE: Add logging for SOCKS5 proxy errors (Chocobo1)
  • FEATURE: Add UPnP lease duration advanced option (NotTsunami)
  • BUGFIX: Allow to translate error messages (Chocobo1)
  • BUGFIX: Don't round scaling factor (Nick Korotysh)
  • BUGFIX: Save log file in UTF-8 encoding (Chocobo1)
  • BUGFIX: Avoid log file excessive flushing (Chocobo1)
  • BUGFIX: Fix regression when fastresume contains network path (Tester)
  • BUGFIX: Fix broken UNC paths in fastresumes on Windows (sledgehammer)
  • BUGFIX: Prevent multiple instances for the same app config (glassez)
  • BUGFIX: Fix unexpected torrent resume after app restart with libtorrent x (glassez)
  • WEBUI: Add alt and title tags for WebUI footer (LameLemon)
  • WINDOWS: Installer: Update Finnish translation (Roope Jukkara)
  • WINDOWS: Installer: Update Japanese translation (maboroshin)
  • WINDOWS: Installer: Update Turkish translation (Burak Yavuz)
  • WINDOWS: Installer: Update Russian translation (Andrei Stepanov)

Tuesday March 24th - qBittorrent v release

qBittorrent v was released.
ATTENTION WINDOWS USERS: There's a "qBittorrent" app on the Windows Store which costs money. It isn't an official release nor it is coming from us. The person publicizing it doesn't have permission to use the qBittorrent name/logo.
v changelog:

  • FEATURE: Allow transfer list text color changes through QSS (Prince Gupta)
  • FEATURE: Option to show console when external program is run (sledgehammer)
  • FEATURE: Rename Country column to "Country / Region" (Thomas Piccirello)
  • FEATURE: Change the defaults of some settings (FranciscoPombal)
  • FEATURE: Refactored Transfer List code to allow theming. As a sideffect the row height has more padding. (glassez)
  • FEATURE: Allow double-click in preview dialog (thalieht)
  • FEATURE: Expose stop_tracker_timeout in advanced settings (an0n)
  • FEATURE: Add piece_extent_affinity to AdvancedSettings (FranciscoPombal)
  • FEATURE: Reorganize UI theme selection (Prince Gupta)
  • FEATURE: Show any multiple connections from the same IP in peer list (thalieht)
  • FEATURE: Add stalled filters to GUI and Web API/UI (FranciscoPombal)
  • FEATURE: Use IP geolocation database by DB-IP instead of MaxMind (sledgehammer)
  • FEATURE: Allow to save downloaded metadata as torrent file (glassez)
  • FEATURE: Allow single app instance per configuration (glassez)
  • PERFORMANCE: Move multiple torrents one by one (glassez)
  • BUGFIX: Disable Torrent Queue by default for new users (an0n)
  • BUGFIX: Update free disk space label on Category change in Auto Mode (Medvedishce)
  • BUGFIX: Save resume data after recheck (glassez)
  • BUGFIX: Tracker is errored only if all local endpoints fail (sledgehammer)
  • BUGFIX: Change placement of stop tracker timeout setting (An0n)
  • BUGFIX: Redesign torrent startup handling (glassez)
  • BUGFIX: Show "∞" instead of " -1" in Preferences (Sakib-Abrar)
  • BUGFIX: Improve code efficiency for reverse resolution of peers (Chocobo1)
  • BUGFIX: Handle HTTP redirection to magnet URI (glassez)
  • BUGFIX: Various fixes for portable mode (Tester)
  • BUGFIX: Include resume folder path in exception message (Chocobo1)
  • BUGFIX: Change placeholder text in torrent list's filter (djt3)
  • BUGFIX: Improvements in the embedded tracker to be more spec compliant (FranciscoPombal)
  • BUGFIX: Improve the options tooltips (NotTsunami)
  • BUGFIX: Check if file exists in seed mode (an0n)
  • BUGFIX: Delegate GUI scaling work to Qt (Nick Korotysh)
  • BUGFIX: Fix crash when renaming torrent contents (Chocobo1)
  • BUGFIX: Fix total connected peers count calculation (FranciscoPombal)
  • BUGFIX: Allow other keypresses in LogListWidget (NotTsunami)
  • BUGFIX: Disable Auto TMM when not using default savepath from monitored folder (thalieht)
  • WEBUI: Fix first row renaming in files tab (Denis)
  • WEBUI: Use SVG image for WebUI favicon (Nick Korotysh)
  • WEBUI: Inherit text color for filter list elements (Nick Korotysh)
  • WEBUI: Expose WebUI ban counter to users (Chocobo1)
  • WEBUI: Expose WebUI ban duration to users (Chocobo1)
  • WEBUI: Implement "Secure" flag for session cookie (FranciscoPombal)
  • WEBUI: Remove unused/deprecated option (FranciscoPombal)
  • WEBUI: Prevent excessive sync requests (FranciscoPombal)
  • WEBUI: Fix populating statistics window (FranciscoPombal)
  • WEBUI: Fix matching uncategorized torrents (FranciscoPombal)
  • WEBUI: Always allow whitespace in category names (FranciscoPombal)
  • SEARCH: Bump python version for new installation (Chocobo1)
  • SEARCH: Fix missing string (Chocobo1)
  • SEARCH: Drop python2 support (Chocobo1)
  • WINDOWS: Installer: Option to start qBittorrent on Windows start up (An0n)
  • WINDOWS: Installer: Improve Czech translation (slrslr)
  • WINDOWS: Installer: Update French translation (zywo)
  • WINDOWS: Installer: Update German translation (schnurlos)
  • WINDOWS: Installer: Update Japanese translation (maboroshin)
  • WINDOWS: Path length limitation is removed on Windows 10 onwards (an0n)

Wednesday December 18th - qBittorrent v release

qBittorrent v was released.
Due to libtorrent fixes, UDP through proxies should work again. In some cases it also caused crashes.
ATTENTION: There's a slight change in the way network interfaces are configured. If you have a specific network interface/local address set in the Advanced Settings, go and make sure that your settings have stayed the same. The extra setting for has been removed.
v changelog:

  • FEATURE: Enable portable mode if "profile" directory exists (Tester)
  • FEATURE: Enable "Apply rate limit to peers on LAN" option by default (Chocobo1)
  • BUGFIX: Sync translations from Transifex and run lupdate (sledgehammer)
  • BUGFIX: Don't unnecessarily delete OS files in folders (sledgehammer)
  • BUGFIX: Use the incomplete folder where appropriate (sledgehammer)
  • BUGFIX: Align Properties tab bar correctly on window resize (Prince Gupta)
  • BUGFIX: Rework the listening IP/interface selection code (sledgehammer)
  • BUGFIX: Fix inconsistent icon for deleting torrent (Chocobo1)
  • BUGFIX: Show torrent error message in transfer list (Chocobo1)
  • BUGFIX: Fix stuck in wrong torrent state (Chocobo1)
  • BUGFIX: Expand single-item folders in torrent content (warren)
  • WEBUI: Bump Web API version (sledgehammer)
  • WEBUI: Add ability to rename torrent files from the WebUI (Thomas Piccirello)
  • WEBUI: Mention lack of HTTPS in WebUI magnet link warning (nl)
  • WEBUI: Fix HTML elements size in search tab (Chocobo1)
  • SEARCH: Fix incorrect translation displayed after language change (Chocobo1)
  • SEARCH: Fix missing translations in search plugins dialog (Chocobo1)
  • WINDOWS: Update russian translation of the installer (Andrei Stepanov)

Tuesday December 3rd - qBittorrent v release

qBittorrent v was released.
There were no significant user facing changes since the previous RC release. The full v changelog follows.
ATTENTION: This release uses the libtorrent x series. It saves fastresumes a bit differently than the x series, which are used so far in the previous versions. If you run it and then downgrade to a previous qBittorrent version then your torrents will probably start rechecking.

  • FEATURE: Libtorrent x series are supported now (glassez)
  • FEATURE: Add OpenSSL version to GUI and stackdump (Chocobo1)
  • FEATURE: Add zlib version to GUI & stackdump (silverqx)
  • FEATURE: Use PBKDF2 for storing GUI lock password. You will need to set your password again. (Chocobo1)
  • FEATURE: Rename "#" column to "Tier" in the tracker list (thalieht)
  • FEATURE: Allow setting larger checking memory usage in GUI (airium)
  • FEATURE: Converted remaining icons to svg (Bert Verhelst)
  • FEATURE: Replace CheckBox with Arrow in the side panel (Prince Gupta)
  • FEATURE: Log performance alerts from libtorrent (Chocobo1)
  • FEATURE: Use native folder icon in content tree (Chocobo1)
  • FEATURE: Move copy actions under a submenu (Chocobo1)
  • FEATURE: Add "Socket backlog size" option (Chocobo1)
  • FEATURE: Add "File pool size" option (Chocobo1)
  • FEATURE: Allow styling with QSS stylesheets (Prince Gupta)
  • FEATURE: Add "Tracker entries" dialog (Chocobo1)
  • FEATURE: Add availability column (Chocobo1)
  • FEATURE: Use a randomized port number for the first run (Chocobo1)
  • FEATURE: Enable Super Seeding mode once ratio/time limit is reached (thalieht)
  • FEATURE: Improve embedded tracker. Now it conforms to BEPs more closely. (Chocobo1)
  • FEATURE: Add option to align file to piece boundary when creating new torrent (Chocobo1)
  • FEATURE: Ability to open file or trigger torrect action via keypad Enter (Chocobo1)
  • FEATURE: Add "Remove torrent and its files" option to share ratio limiting (thalieht)
  • FEATURE: Allow to select multiple entries in "banned IP" dialog (Chocobo1)
  • FEATURE: Reallow to pause checking torrents (thalieht)
  • FEATURE: Reallow to force recheck torrents that aren't fully started (thalieht)
  • FEATURE: Add "Preview file" double-click action (warren)
  • BUGFIX: Avoid performance penalty when logger is full (Chocobo1)
  • BUGFIX: Remove the max half-open connections option (thalieht)
  • BUGFIX: Center align the section labels in advanced settings (thalieht)
  • BUGFIX: Add documentation links to some advanced settings (thalieht)
  • BUGFIX: Impove DownloadManager code (glassez)
  • BUGFIX: Limit DownloadHandler max redirection to 20 (Chocobo1)
  • BUGFIX: Log DownloadManager SSL errors (Chocobo1)
  • BUGFIX: Force recheck multiple torrents one by one (glassez)
  • BUGFIX: Close context menu when content model is reset (glassez)
  • BUGFIX: Improve Properties widget (glassez)
  • BUGFIX: Prevent flickering preview dialog (silver)
  • BUGFIX: Rename "Prefer encryption" to "Allow encryption" (thalieht)
  • BUGFIX: Fix search icon placement when using RTL languages (Chocobo1)
  • BUGFIX: Avoid combo boxes extending to the right in Options dialog (Chocobo1)
  • BUGFIX: Fix speed limit not applying to IPv6 peers (Chocobo1)
  • BUGFIX: Log failed file rename errors (Chocobo1)
  • BUGFIX: Fix wrong "Time Active" value displayed (Chocobo1)
  • BUGFIX: Rename priority to queue in the context of torrents (thalieht)
  • BUGFIX: Update remaining size of ignored files to 0 (Thomas Piccirello)
  • BUGFIX: Move "Check for program updates" checkbox to the Behavior settings (Chocobo1)
  • BUGFIX: Improve error messages for URL seed (Chocobo1)
  • BUGFIX: Rename share ratio limiting options (thalieht)
  • BUGFIX: Fix country name misspelling (horgan)
  • PERFORMANCE: Faster/efficient way of handling updates in the Transfer list (Chocobo1)
  • WEBUI: Bump Web API version
  • WEBUI: Use PBKDF2 for storing WebUI password. You will need to set your password again. (Chocobo1)
  • WEBUI: Use Javascript strict mode (Chocobo1)
  • WEBUI: Remove autocorrect/autocapitalise from filepaths on WebUI (AceLewis)
  • WEBUI: Display warning when Javascript is disabled (Chocobo1)
  • WEBUI: Remove mootools lib from login page (Chocobo1)
  • WEBUI: Prevent login credential appearing in URL (Chocobo1)
  • WEBUI: Load WebUI certificate & key from file path (Chocobo1)
  • WEBUI: Add migration code for WebUI https related change (Chocobo1)
  • WEBUI: Fix wrong element id being used (Thomas Piccirello)
  • WEBUI: Fix direction of Web UI sorted column icon (Thomas Piccirello)
  • WEBUI: Match WebUI About page to GUI (Thomas Piccirello)
  • WEBUI: Simplify tab logic (Thomas Piccirello)
  • WEBUI: Separate URL components before percent-decoding (glassez)
  • WEBUI: Capitalize event name (Thomas Piccirello)
  • WEBUI: Fix bug where input wouldn't always be focused (Thomas Piccirello)
  • WEBUI: Add Web UI support for escape key (Thomas Piccirello)
  • WEBUI: Fix broken image link (Tom Piccirello)
  • WEBUI: Include application version in css/js url for cache busting (Thomas Piccirello)
  • WEBUI: Update WebUI img to use svg images (Chocobo1)
  • WEBUI: Fix speed limit icon too large on WebUI (Chocobo1)
  • WEBUI: Fix misaligned icons in STATUS list in GUI (Chocobo1)
  • WEBUI: Drop legacy WebAPI support (glassez)
  • WEBUI: Allow WebUI Content tab to be sorted (Thomas Piccirello)
  • WEBUI: Encode torrent name before passing in URL (Thomas Piccirello)
  • WEBUI: Move WebUI Peers code to separate file (Thomas Piccirello)
  • WEBUI: Prevent WebUI tables from being highlighted (Thomas Piccirello)
  • WEBUI: Allow WebUI Trackers table to be manipulated (Thomas Piccirello)
  • WEBUI: Fix only the first newline char is replaced (Chocobo1)
  • WEBUI: Fix missing semicolon in WebUI (Chocobo1)
  • WEBUI: Add autocomplete attribute to WebUI (Chocobo1)
  • WEBUI: Always use manicapital.com as default page (CzBiX)
  • WEBUI: Set title attribute for all WebUI table cells (Thomas Piccirello)
  • WEBUI: Align WebUI login button to the right (Chocobo1)
  • WEBUI: Use force refresh on WebUI logout (Chocobo1)
  • WEBUI: Use a random number for WebUI cache busting (Chocobo1)
  • WEBUI: Register protocol handler in WebUI for magnet links (Cory)
  • WEBUI: Add WebAPI session timeout settings (Chocobo1)
  • WEBUI: Fix encoding of special characters (Tom Piccirello)
  • WEBUI: Avoid word wrap in webui footer (airium)
  • WEBUI: Add advanced options in WebUI (Zhaoyu Gan)
  • WEBUI: Move WebUI copy actions under a submenu (Thomas Piccirello)
  • WEBUI: Add WebUI support for triggering context menus on mobile (Thomas Piccirello)
  • WEBUI: Implement tag management for WebUI (Vasiliy Halimonchuk)
  • WEBUI: Fix WebUI removing parameters from magnet links (Thomas Piccirello)
  • WEBUI: Enable by default the search tab (Thomas Piccirello)
  • WEBUI: Add context menu to Web UI search table (Thomas Piccirello)
  • WEBUI: Display files hierarchically in Web UI content tab (Thomas Piccirello)
  • WEBUI: Add ability to add and ban a peer from the Web UI (Thomas Piccirello)
  • WEBUI: Increase WebUI window heights (Thomas Piccirello)
  • WEBUI: Sort torrent names case-insensitively in webui (airium)
  • WEBUI: Support exclusions in WebUI table filters (Thomas Piccirello)
  • WEBUI: Don't save preferences until all options are processed (Tom Piccirello)
  • WEBUI: Disable port selection when "Use different port on each startup" is selected (Chocobo1)
  • WEBUI: Remove max character limit of location path (Clément Pera)
  • RSS: Better widget for choosing file path in automated downloader (thalieht)
  • RSS: Allow to cancel/retry the fetching of feeds (glassez)
  • RSS: Add create subfolder option to RSS auto-download rules (Xegor)
  • RSS: Log "RSS Feed successfully downloaded" event (glassez)
  • SEARCH: Add default tooltip "Searching" on tab creation. (paolo-sz)
  • SEARCH: Avoid crashes on torrent search (paolo-sz)
  • SEARCH: Add right click menu to SearchJobWidget (Chocobo1)
  • SEARCH: Rename label in search widget (Chocobo1)
  • SEARCH: Add more copy field actions to search widget (Chocobo1)
  • SEARCH: Remove buttons from search widget (Chocobo1)
  • SEARCH: Update python installer URL (Chocobo1)
  • WINDOWS: Drop support for < Windows 7
  • WINDOWS: Allow headless builds on Windows (knackebrot)
  • WINDOWS: Add option to control qBittorrent process memory priority (Chocobo1)
  • LINUX: Add content_rating, release tags to appdata (Peter Eszlari)
  • LINUX: Update .appdata descriptions (Chocobo1)
  • LINUX: Use reverse DNS convention for metadata files naming (Chocobo1)
  • LINUX: Adjust open file descriptor limit on startup to max (Chocobo1)
  • MACOS: Drop support for < macOS (Yosemite)
  • MACOS: Replace deprecated (Chocobo1)
  • MACOS: Add some padding to macOS app icon (Nick Korotysh)
  • OTHER: Raise minimum C++ version to C++14 (Chocobo1)
  • OTHER: Raise minimum Qt version to (sledgehammer)
  • OTHER: Drop support of libtorrent < (glassez)
  • OTHER: Drop upgrade code from older saving systems (sledgehammer)
  • OTHER: Update INSTALL dependencies (Chocobo1)
  • OTHER: Optimize PNG images losslessly with zopflipng (Peter Dave Hello)
  • OTHER: Optimize svg files using SVGO (sledgehammer)
  • OTHER: QMake: Compile translations at build time (glassez)
  • OTHER: Drop support for "BC Link" format (Chocobo1)
  • OTHER: Lots of code refactorings, cleanups, improvements and optimizations (Chocobo1, glassez, thalieht)

Thursday November 21st - qBittorrent vRC__9cb release

qBittorrent vRC__9cb release was released.
For Windows only the bit build is available for the RC release. Changes included in the stable series aren't mentioned below.
The macOS build will follow.
The final version of will be released at the end of the month.
ATTENTION: This RC release uses the libtorrent x series. It saves fastresumes a bit differently than the x series, which are used so far in the stable versions (and alpha releases). If you run it and then downgrade to a previous qBittorrent version then your torrents will probably start rechecking.
Changes in vRC__9cb after the previous beta:

  • FEATURE: Allow to select multiple entries in "banned IP" dialog (Chocobo1)
  • FEATURE: Reallow to pause checking torrents (thalieht)
  • FEATURE: Reallow to force recheck torrents that aren't fully started (thalieht)
  • FEATURE: Add "Preview file" double-click action (warren)
  • BUGFIX: Fix country name misspelling (horgan)
  • RSS: Add create subfolder option to RSS auto-download rules (Xegor)
  • WINDOWS: Add option to control qBittorrent process memory priority (Chocobo1)

Thursday October 31st - qBittorrent v release

qBittorrent v was released to fix a Windows only regression. Builds for other OSes won't be made.

  • WINDOWS: Fix a problem with bigger dialogs due to wrong DPI reported by the system (Chocobo1)

Sunday October 27th - qBittorrent v and v_beta1__9cd84ec0 release

qBittorrent v and v_beta1__9cd84ec0 release were released.
For Windows only the bit build is available for the beta release. Changes included in the stable series aren't mentioned below.
ATTENTION: This beta release uses the libtorrent x series. It saves fastresumes a bit differently than the x series, which are used so far in the stable versions (and alpha releases). If you run it and then downgrade to a previous qBittorrent version then your torrents will probably start rechecking.
Changes in v

  • BUGFIX: Preserve relative order when moving to top/bottom in queue (Chocobo1)
  • WINDOWS: Use real physical screen DPI (Chocobo1)
  • WEBUI: Bump Web API version

Changes in v_beta1__9cd84ec0 after the previous alpha:

  • FEATURE: Ability to open file or trigger torrect action via keypad Enter (Chocobo1)
  • FEATURE: Add "Remove torrent and its files" option to share ratio limiting (thalieht)
  • BUGFIX: Rename share ratio limiting options (thalieht)

Thursday September 26th - qBittorrent v and valpha2__ccefdc4a release

qBittorrent v and valpha2__ccefdc4a release were released.
For Windows only the bit build is available for the alpha release. Changes included in the stable series aren't mentioned below.
After about ~2 weeks another release of the vx series will be made. Stay tuned to download and test. But remember to read the section before testing. Known incompatibilities will be mentioned.
Changes in v

  • BUGFIX: Fix filename validation on non-Windows OS (Chocobo1)
  • BUGFIX: ScanFolders/FileSystemWatcher now detect magnet files with case insensitivity in filename (Chocobo1)
  • BUGFIX: Fix failed seeding after creating a torrent and auto-adding it to the session (Chocobo1)

Changes in valpha2__ccefdc4a after the previous alpha:

  • FEATURE: Add option to align file to piece boundary when creating new torrent (Chocobo1)
  • BUGFIX: Move "Check for program updates" checkbox to the Behavior settings (Chocobo1)
  • BUGFIX: Improve error messages for URL seed (Chocobo1)
  • PERFORMANCE: Faster/efficient way of handling updates in the Transfer list (Chocobo1)
  • WEBUI: Disable port selection when "Use different port on each startup" is selected (Chocobo1)
  • WEBUI: Remove max character limit of location path (Clément Pera)
  • RSS: Allow to cancel/retry the fetching of feeds (glassez)

Saturday August 24th - qBittorrent valpha1__69fed release

qBittorrent valpha1__69fed was released.
For Windows only the bit build is available for the alpha release. Changes included in the stable series aren't mentioned below.

  • FEATURE: Libtorrent x series are supported now (glassez)
  • FEATURE: Add OpenSSL version to GUI and stackdump (Chocobo1)
  • FEATURE: Add zlib version to GUI & stackdump (silverqx)
  • FEATURE: Use PBKDF2 for storing GUI lock password. You will need to set your password again. (Chocobo1)
  • FEATURE: Rename "#" column to "Tier" in the tracker list (thalieht)
  • FEATURE: Allow setting larger checking memory usage in GUI (airium)
  • FEATURE: Converted remaining icons to svg (Bert Verhelst)
  • FEATURE: Replace CheckBox with Arrow in the side panel (Prince Gupta)
  • FEATURE: Log performance alerts from libtorrent (Chocobo1)
  • FEATURE: Use native folder icon in content tree (Chocobo1)
  • FEATURE: Move copy actions under a submenu (Chocobo1)
  • FEATURE: Add "Socket backlog size" option (Chocobo1)
  • FEATURE: Add "File pool size" option (Chocobo1)
  • FEATURE: Allow styling with QSS stylesheets (Prince Gupta)
  • FEATURE: Add "Tracker entries" dialog (Chocobo1)
  • FEATURE: Add availability column (Chocobo1)
  • FEATURE: Use a randomized port number for the first run (Chocobo1)
  • FEATURE: Enable Super Seeding mode once ratio/time limit is reached (thalieht)
  • FEATURE: Improve embedded tracker. Now it conforms to BEPs more closely. (Chocobo1)
  • BUGFIX: Avoid performance penalty when logger is full (Chocobo1)
  • BUGFIX: Remove the max half-open connections option (thalieht)
  • BUGFIX: Center align the section labels in advanced settings (thalieht)
  • BUGFIX: Add documentation links to some advanced settings (thalieht)
  • BUGFIX: Improve DownloadManager code (glassez)
  • BUGFIX: Limit DownloadHandler max redirection to 20 (Chocobo1)
  • BUGFIX: Log DownloadManager SSL errors (Chocobo1)
  • BUGFIX: Force recheck multiple torrents one by one (glassez)
  • BUGFIX: Close context menu when content model is reset (glassez)
  • BUGFIX: Improve Properties widget (glassez)
  • BUGFIX: Prevent flickering preview dialog (silver)
  • BUGFIX: Rename "Prefer encryption" to "Allow encryption" (thalieht)
  • BUGFIX: Fix search icon placement when using RTL languages (Chocobo1)
  • BUGFIX: Avoid combo boxes extending to the right in Options dialog (Chocobo1)
  • BUGFIX: Fix speed limit not applying to IPv6 peers (Chocobo1)
  • BUGFIX: Log failed file rename errors (Chocobo1)
  • BUGFIX: Fix wrong "Time Active" value displayed (Chocobo1)
  • BUGFIX: Rename priority to queue in the context of torrents (thalieht)
  • BUGFIX: Update remaining size of ignored files to 0 (Thomas Piccirello)
  • WEBUI: Use PBKDF2 for storing WebUI password. You will need to set your password again. (Chocobo1)
  • WEBUI: Use Javascript strict mode (Chocobo1)
  • WEBUI: Remove autocorrect/autocapitalise from filepaths on WebUI (AceLewis)
  • WEBUI: Display warning when Javascript is disabled (Chocobo1)
  • WEBUI: Remove mootools lib from login page (Chocobo1)
  • WEBUI: Prevent login credential appearing in URL (Chocobo1)
  • WEBUI: Load WebUI certificate & key from file path (Chocobo1)
  • WEBUI: Add migration code for WebUI https related change (Chocobo1)
  • WEBUI: Fix wrong element id being used (Thomas Piccirello)
  • WEBUI: Fix direction of Web UI sorted column icon (Thomas Piccirello)
  • WEBUI: Match WebUI About page to GUI (Thomas Piccirello)
  • WEBUI: Simplify tab logic (Thomas Piccirello)
  • WEBUI: Separate URL components before percent-decoding (glassez)
  • WEBUI: Capitalize event name (Thomas Piccirello)
  • WEBUI: Fix bug where input wouldn't always be focused (Thomas Piccirello)
  • WEBUI: Add Web UI support for escape key (Thomas Piccirello)
  • WEBUI: Fix broken image link (Tom Piccirello)
  • WEBUI: Include application version in css/js url for cache busting (Thomas Piccirello)
  • WEBUI: Update WebUI img to use svg images (Chocobo1)
  • WEBUI: Fix speed limit icon too large on WebUI (Chocobo1)
  • WEBUI: Fix misaligned icons in STATUS list in GUI (Chocobo1)
  • WEBUI: Drop legacy WebAPI support (glassez)
  • WEBUI: Allow WebUI Content tab to be sorted (Thomas Piccirello)
  • WEBUI: Encode torrent name before passing in URL (Thomas Piccirello)
  • WEBUI: Move WebUI Peers code to separate file (Thomas Piccirello)
  • WEBUI: Prevent WebUI tables from being highlighted (Thomas Piccirello)
  • WEBUI: Allow WebUI Trackers table to be manipulated (Thomas Piccirello)
  • WEBUI: Fix only the first newline char is replaced (Chocobo1)
  • WEBUI: Fix missing semicolon in WebUI (Chocobo1)
  • WEBUI: Add autocomplete attribute to WebUI (Chocobo1)
  • WEBUI: Always use manicapital.com as default page (CzBiX)
  • WEBUI: Set title attribute for all WebUI table cells (Thomas Piccirello)
  • WEBUI: Align WebUI login button to the right (Chocobo1)
  • WEBUI: Use force refresh on WebUI logout (Chocobo1)
  • WEBUI: Use a random number for WebUI cache busting (Chocobo1)
  • WEBUI: Register protocol handler in WebUI for magnet links (Cory)
  • WEBUI: Add WebAPI session timeout settings (Chocobo1)
  • WEBUI: Fix encoding of special characters (Tom Piccirello)
  • WEBUI: Avoid word wrap in webui footer (airium)
  • WEBUI: Add advanced options in WebUI (Zhaoyu Gan)
  • WEBUI: Move WebUI copy actions under a submenu (Thomas Piccirello)
  • WEBUI: Add WebUI support for triggering context menus on mobile (Thomas Piccirello)
  • WEBUI: Implement tag management for WebUI (Vasiliy Halimonchuk)
  • WEBUI: Fix WebUI removing parameters from magnet links (Thomas Piccirello)
  • WEBUI: Enable by default the search tab (Thomas Piccirello)
  • WEBUI: Add context menu to Web UI search table (Thomas Piccirello)
  • WEBUI: Display files hierarchically in Web UI content tab (Thomas Piccirello)
  • WEBUI: Add ability to add and ban a peer from the Web UI (Thomas Piccirello)
  • WEBUI: Increase WebUI window heights (Thomas Piccirello)
  • WEBUI: Sort torrent names case-insensitively in webui (airium)
  • WEBUI: Support exclusions in WebUI table filters (Thomas Piccirello)
  • WEBUI: Don't save preferences until all options are processed (Tom Piccirello)
  • RSS: Better widget for choosing file path in automated downloader (thalieht)
  • SEARCH: Add default tooltip "Searching" on tab creation. (paolo-sz)
  • SEARCH: Avoid crashes on torrent search (paolo-sz)
  • SEARCH: Add right click menu to SearchJobWidget (Chocobo1)
  • SEARCH: Rename label in search widget (Chocobo1)
  • SEARCH: Add more copy field actions to search widget (Chocobo1)
  • SEARCH: Remove buttons from search widget (Chocobo1)
  • SEARCH: Update python installer URL (Chocobo1)
  • WINDOWS: Drop support for < Windows 7
  • WINDOWS: Allow headless builds on Windows (knackebrot)
  • LINUX: Add content_rating, release tags to appdata (Peter Eszlari)
  • LINUX: Update .appdata descriptions (Chocobo1)
  • LINUX: Use reverse DNS convention for metadata files naming (Chocobo1)
  • LINUX: Adjust open file descriptor limit on startup to max (Chocobo1)
  • MACOS: Drop support for < macOS (Yosemite)
  • MACOS: Replace deprecated (Chocobo1)
  • MACOS: Add some padding to macOS app icon (Nick Korotysh)
  • OTHER: Raise minimum C++ version to C++14 (Chocobo1)
  • OTHER: Raise minimum Qt version to (sledgehammer)
  • OTHER: Drop support of libtorrent < (glassez)
  • OTHER: Drop upgrade code from older saving systems (sledgehammer)
  • OTHER: Update INSTALL dependencies (Chocobo1)
  • OTHER: Optimize PNG images losslessly with zopflipng (Peter Dave Hello)
  • OTHER: Optimize svg files using SVGO (sledgehammer)
  • OTHER: QMake: Compile translations at build time (glassez)
  • OTHER: Drop support for "BC Link" format (Chocobo1)
  • OTHER: Lots of code refactorings, cleanups, improvements and optimizations (Chocobo1, glassez, thalieht)

Sunday August 4th - qBittorrent v release

qBittorrent v was released.
The macOS build supports Sierra as minimum version. If you use an older macOS version then you should compile qBittorrent with an older Qt version that has support for your OS version.

  • FEATURE: Add 12 hour and 24 hour speed graphs (dzmat)
  • FEATURE: Change "Add new torrent" dialog to horizontal layout (Evgeny Lensky)
  • BUGFIX: Fix messed up symbols in log (Chocobo1)
  • BUGFIX: Fix incomplete file extension not applied for new torrents (Chocobo1)
  • BUGFIX: Save updated resume data for completed torrents (Vladimir Golovnev (Glassez))
  • BUGFIX: Fix requested torrent resume data handling (Vladimir Golovnev (Glassez))
  • BUGFIX: Prevent command injection via "Run external program" function (Chocobo1)
  • BUGFIX: Avoid race conditions when adding torrent (Vladimir Golovnev (Glassez))
  • BUGFIX: Fix torrent checking issues (Vladimir Golovnev (Glassez))
  • BUGFIX: Use proper log message when there are no error (Chocobo1)
  • BUGFIX: Fix torrent properties not saved for paused torrents (Chocobo1)
  • BUGFIX: Some improvements on qtsingleapplication code (Chocobo1)
  • BUGFIX: Remove limits of "Disk cache expiry interval" setting (Chocobo1)
  • BUGFIX: Remove upper limit of "Disk cache" setting (Chocobo1)
  • BUGFIX: Fix crash when removing phantom tags (Chocobo1)
  • BUGFIX: Improve handleFileErrorAlert error message (Chocobo1)
  • BUGFIX: Fix updated save path not saved for paused torrents (Chocobo1)
  • BUGFIX: Log save_resume_data_failed_alert (Chocobo1)
  • BUGFIX: Don't remove parent directories (Chocobo1)
  • BUGFIX: Properly remove empty leftover folders after rename (Chocobo1)
  • BUGFIX: Focus behavior row in Options dialog (silverqx)
  • BUGFIX: Fix unable to rename folder on Windows when same is used in different case(Chocobo1)
  • BUGFIX: Fix unable to control add torrent dialogs when opened simultaneously (Chocobo1)
  • BUGFIX: Disable "Upload mode" when start preloaded torrent (Vladimir Golovnev (Glassez))
  • BUGFIX: Fix wrong comparison result when sorting items(Chocobo1)
  • BUGFIX: Fix sequential downloading when redirected (Vladimir Golovnev (Glassez))
  • BUGFIX: Fix typos (Chocobo1)
  • BUGFIX: Fix assertion fail (Chocobo1)
  • BUGFIX: Change number of time axis divisions from 5 to 6 for convenience (dzmat)
  • BUGFIX: Don't turn window blank when closed to system tray (Ekin Dursun)
  • WEBUI: Fix WebUI encoding of special characters (Thomas Piccirello)
  • WEBUI: Change the speed unit from Bytes/s to KiB/s for the rate limiter(jerrymakesjelly)
  • WEBUI: Fix '+' char not decoded to space correctly (Chocobo1)
  • RSS: Ignore RSS articles with non-unique identifiers (Vladimir Golovnev (Glassez))
  • RSS: Perform more RSS parsing in working thread (Vladimir Golovnev (Glassez))
  • RSS: Download RSS enclosure element if no proper MIME type is found (Matan Bareket)

Sunday May 5th - qBittorrent v release

qBittorrent v was released.

  • BUGFIX: Force recheck multiple torrents one by one in all possible cases. Closes # (glassez)
  • BUGFIX: Don't query Google for tracker favicons, for privacy reasons (sledgehammer)
  • BUGFIX: Work around the crash occurred in QTimer. Closes # (Chocobo1)
  • BUGFIX: Increase the .torrent file download size limit to MiB (thalieht)
  • BUGFIX: Disable downloading tracker favicons by default. Works around reported crashes in Linux. Closes # (Chocobo1)
  • WEBUI: Separate URL components before percent-decoding. Allow special characters in query string parameters. Closes # (glassez)
  • WEBUI: Prevent login credential appearing in URL. Closes # (Chocobo1)
  • WEBUI: Display warning when Javascript is disabled (Chocobo1)
  • WEBUI: Fix translatable strings (Chocobo1)
  • WEBUI: Correctly handle '+' sign in x-www-form-urlencoded data. Closes # (Chocobo1)
  • WEBUI: Remove closed connections immediately. Closes # (Chocobo1)
  • WEBUI: Fix "Create subfolder" option is not working. Closes ## (Chocobo1)
  • SEARCH: Make num enter key work the same as return in searchjobwidget (thalieht)
  • LINUX: Make window title bar icon work in Wayland (Peter Eszlari)
  • LINUX: Update manicapital.com file (Chocobo1)
  • MACOS: Fix progress bar drawing by using different style than native (Nick Korotysh)
  • MACOS: Updated and cleaned up fields in manicapital.com (Nick Korotysh)
  • OTHER: Mention more translators in the about tab. Closes # (sledgehammer)

Monday December 24th - qBittorrent v release

qBittorrent v was released.
macOS: Support for Mavericks () was dropped due to usage of Qt qBittorrent v should be able to work if you compile it with Qt

  • FEATURE: Add checking_mem_usage option to AdvancedSettings (FranciscoPombal)
  • FEATURE: Save torrents queue in separate file. Now a new file named 'queue' is created, saving on each line the infohash of each queued torrent in sorted order. (glassez)
  • BUGFIX: Fix regression on resuming torrents without metadata (thalieht)
  • BUGFIX: Reorder and rename Tracker list context menu option (Thomas Piccirello)
  • BUGFIX: Rename Tracker List columns (Thomas Piccirello)
  • BUGFIX: Show error message when Session failed to start (glassez)
  • BUGFIX: Embedded tracker: Use ip parameter from tracker request if provided (Chocobo1)
  • BUGFIX: Fix weekday names translations (Chocobo1)
  • BUGFIX: Fix strings not translated (Chocobo1)
  • WEBUI: Change qBittorrent exit message to HTML5 (Chocobo1)
  • WEBUI: Revise CSP header (Chocobo1)
  • WEBUI: Enforce referrer-policy in WebUI (Chocobo1)
  • WEBUI: Add torrent name filtering to WebUI (Thomas Piccirello)
  • WEBUI: Send numeric status without translation (Thomas Piccirello)
  • WEBUI: Add WebUI Trackers context menu (Thomas Piccirello)
  • WEBUI: Add DHT, PeX, and LSD to WebUI Tracker list (Thomas Piccirello)
  • WEBUI: Add additional Tracker columns to WebUI (Thomas Piccirello)
  • WEBUI: Bump Web API version
  • WEBUI: Fix display bugs in WebUI Files tab. Remove <IE9 support (Thomas Piccirello)
  • WEBUI: Fix incorrect priority value sent from WebUI (Thomas Piccirello)
  • WEBUI: Set priority for multiple files in one WebAPI request (Thomas Piccirello)
  • WEBUI: Match WebUI Peers table column order to GUI (Thomas Piccirello)
  • WEBUI: Fetch data less frequently when torrents tab isn't visible (Thomas Piccirello)
  • WEBUI: Add Search tab to WebUI (Thomas Piccirello)
  • WEBUI: Add ability to pass urls to the webui download page (Thomas Piccirello)
  • WEBUI: Fix JavaScript error (Tom Piccirello)
  • WEBUI: Disallow setting a blank alternative WebUI location (Thomas Piccirello)
  • WEBUI: Add slow torrent options (Thomas Piccirello)
  • WEBUI: Add "Use alternative Web UI" option (Thomas Piccirello)
  • WEBUI: Add "Apply rate limit to peers on LAN" option (Thomas Piccirello)
  • WEBUI: Add email "From" option (Thomas Piccirello)
  • WEBUI: Set WebUI download options using set preferences (Thomas Piccirello)
  • WEBUI: Show list of categories on WebUI download page (Thomas Piccirello)
  • WEBUI: Hide WebUI text input for custom monitor save locations (Thomas Piccirello)
  • WEBUI: Add "When adding a torrent" options (Thomas Piccirello)
  • WEBUI: Add WebUI Auto TMM options (Thomas Piccirello)
  • WEBUI: Add speed limit icons to WebUI Speed options (Thomas Piccirello)
  • WEBUI: Add WebUI Random port button and proxy unencrypted password notice (Thomas Piccirello)
  • WEBUI: Replace WebUI Options fixed-width labels (Thomas Piccirello)
  • WEBUI: Reorder WebUI options to match GUI (Thomas Piccirello)
  • WEBUI: Allow WebUI sidebar to be collapsed (Thomas Piccirello)
  • WEBUI: Show ellipsis when WebUI sidebar is too narrow (Thomas Piccirello)
  • WEBUI: Fix WebUI bug on override of Start Download manicapital.com # (Tom Piccirello)
  • WEBUI: Fix missing words in WebUI (Chocobo1)
  • WEBUI: Add SameSite attribute to WebUI session cookie (Thomas Piccirello)
  • WEBUI: Put WebUI security related options into a groupbox (Chocobo1)
  • WEBUI: Add option for WebUI Host header validation (Chocobo1)
  • WEBUI: Show icon in WebUI sorted column (Thomas Piccirello)
  • RSS: Keep track of REPACK/PROPER downloads. Closes # (Stephen Dawkins)
  • SEARCH: Only instantiate SearchPluginManager as needed (Thomas Piccirello)
  • MACOS: Make file icon look like other macOS icons (Nick Korotysh)
  • MACOS: Save option to start minimized in Mac (thalieht)

Monday November 19th - qBittorrent v release

qBittorrent v was released.
The macOS builds will follow in a couple of days.
There will be more releases in the x series. After that we will switch to x. The x series will drop support for versions of Windows before Windows 7.
EDIT(): The installers for were deleted almost immediately after release. Crashes were reported on Windows 10 for the 64bit installer. See bug # New installers will be uploaded when the problem is fixed.
EDIT(): The crash issue has been resolved. The installers are available now.

  • FEATURE: Recognize *.ts files as previewable (silver)
  • FEATURE: Allow to disable speed graphs (dzmat)
  • FEATURE: Clear LineEdit on ESC (silverqx)
  • BUGFIX: Fix divide-by-zero crash (Chocobo1)
  • BUGFIX: Remove speed limit checkbox in Options dialog (Chocobo1)
  • BUGFIX: Fix speed graph "high speeds" bug (dzmat)
  • BUGFIX: Don't update torrent status unnecessarily (glassez)
  • BUGFIX: Improve force recheck of paused torrent (glassez)
  • BUGFIX: Restore torrent in two steps (glassez)
  • BUGFIX: Improve scaling of speed graphs (dzmat)
  • BUGFIX: Add isNetworkFileSystem() detection on Windows. This allows network mounts to be monitored correctly by polling timer. (Chocobo1)
  • BUGFIX: Reduce horizontal graphs resolution. Improves performance. (dzmat)
  • BUGFIX: Don't recheck just checked torrent (mj-p, glassez)
  • BUGFIX: Add SMB2 magic number (Chocobo1)
  • BUGFIX: Restore startup performance to v times. Needs at least libtorrent (sledgehammer)
  • BUGFIX: Make strings actually translatable (sledgehammer)
  • WEBUI: Handle downloading .torrent file as success (Tom Piccirello)
  • WEBUI: Fix Alternative Web UI to be available (glassez)
  • WEBUI: Consider empty locale setting as not set (glassez)
  • WEBUI: Add free disk space to WebUI status bar (Thomas Piccirello)
  • WEBUI: Add WebUI search API controller (Thomas Piccirello)
  • WEBUI: Fix WebUI Auto TMM context menu bug (Thomas Piccirello)
  • WEBUI: Use independent translation for WebUI (glassez)
  • WEBUI: Add categories WebAPI (Thomas Piccirello)
  • WEBUI: Fix minor JavaScript defects (Thomas Piccirello)
  • WEBUI: Add locale to js file path (Thomas Piccirello)
  • WEBUI: Translate WebUI torrents Status column (Thomas Piccirello)
  • WEBUI: Bump Web API version
  • RSS: Allow to disable downloading REPACK/PROPER matches (Stephen Dawkins)
  • RSS: Improve RSS Feed updating (glassez)
  • SEARCH: Allow resizing search filter in search job (thalieht)
  • SEARCH: Improve parser for search engine manicapital.com (Chocobo1)
  • SEARCH: Update Python URLs (Chocobo1)
  • SEARCH: Fix asking to install Python (Chocobo1)
  • SEARCH: Reformat python code to be compliant with PEP8 (Chocobo1)
  • OTHER: cmake: restore out-of-source build (Eugene Shalygin)
  • OTHER: cmake: cmake: use C++14 when available (Eugene Shalygin)

Tuesday September 18th - qBittorrent v release

qBittorrent v was released.

  • FEATURE: Preselect name without extension when renaming files (thalieht)
  • FEATURE: Allow setting seq & first/last from context menu without metadata (thalieht)
  • BUGFIX: Show "N/A" if there is no scrape (thalieht)
  • BUGFIX: Save option about tracker favicons under correct key (sledgehammer)
  • BUGFIX: When file data are unreachable pause torrent and show "Missing Files" status (temporary fix) (sledgehammer)
  • BUGFIX: Don't disable DHT when using force proxy (Thomas Piccirello)
  • BUGFIX: Correctly save torrent queue position/state/priority changes in fastresume (glassez, thalieht, sledgehammer)
  • BUGFIX: Fix icon height/width ratio (Chocobo1)
  • BUGFIX: Fix values sorted wrong in "Last Activity" column (Chocobo1)
  • BUGFIX: Replace png icons with svg (Chocobo1)
  • WEBUI: Allow WebUI sidebar filters to be hidden (Thomas Piccirello)
  • WEBUI: Increase WebUI Options initial height (Thomas Piccirello)
  • WEBUI: Adjust WebUI Options form alignment (Thomas Piccirello)
  • WEBUI: Fix WebUI unreachable issue (Chocobo1)
  • WEBUI: Require torrent category creation to be explicit (Thomas Piccirello)
  • WEBUI: Include category save path in web api sync data (Thomas Piccirello)
  • WEBUI: Add save path and editing to WebUI new category dialog (Thomas Piccirello)
  • WEBUI: Bump Web API version
  • SEARCH: Refactor in searchjob to always color visited entries (thalieht)
  • SEARCH: Set "enter" as shortcut to download the selected torrents in search job (thalieht)
  • SEARCH: Add regex option in the search filter's context menu (thalieht)
  • LINUX: Fix GUI scaling issue on Linux (Chocobo1)
  • LINUX: Fix regression that broke installing desktop file (Eli Schwartz)
  • OPENBSD: Better filesystem support for filewatcher (Elias M. Mariani)

Sunday August 12th - qBittorrent v release

qBittorrent v was released.

  • FEATURE: New options for "inhibit sleep" (Lukas Greib)
  • FEATURE: Add option for regexps in the transferlist search filter's context menu (thalieht)
  • FEATURE: Add async io threads option to AdvancedSettings (tjjh)
  • FEATURE: Allow save resume interval to be disabled (Chocobo1)
  • FEATURE: Add checkbox for recursive download dialog (Chocobo1)
  • FEATURE: Add changelog link in program updater (Chocobo1)
  • BUGFIX: Avoid allocating large memory when loading a .torrent file (Couchy)
  • BUGFIX: Notify users on 1st time close/minimize to tray (sledgehammer)
  • BUGFIX: Fix I/O error after fetching magnet metadata (Chocobo1)
  • BUGFIX: Never save resume data for already paused torrents (glassez)
  • BUGFIX: Make ProgramUpdater upgrade to bit qbt when running on bit Windows (Chocobo1)
  • BUGFIX: Put temporary files in qbt own temp folder (Chocobo1)
  • BUGFIX: Avoid potentially setting the wrong piece priorities (Chocobo1)
  • BUGFIX: Various code refactorings/improvements (Chocobo1, thalieht, glassez)
  • BUGFIX: Add options "Download in sequential order" and "Download first and last pieces first" in AddNewTorrentDialog (Chocobo1)
  • BUGFIX: Download favicon using appropriate protocol (glassez)
  • BUGFIX: Apply proxy settings on DownloadManager creation (glassez)
  • BUGFIX: Improve torrent initialization (glassez)
  • BUGFIX: Save resume data on torrent change events (glassez)
  • BUGFIX: Increase default resume data save interval (Chocobo1)
  • BUGFIX: Work around crash when processing recursive download. Closes # (Chocobo1)
  • BUGFIX: Reduce queries to python version (Chocobo1)
  • BUGFIX: Disable certain mouse wheel events in Options dialog (Chocobo1)
  • WEBUI: Send all rechecks in one request (Thomas Piccirello)
  • WEBUI: Add WebUI Force Reannounce option (Thomas Piccirello)
  • WEBUI: Create non-existing path in setLocationAction() (Goshik)
  • WEBUI: Add WebUI support for Mac ⌘ (Command) key (Thomas Piccirello)
  • WEBUI: Show current save path in 'Set location' window (Goshik)
  • WEBUI: Fix WebUI cache behavior for css files (Chocobo1)
  • WEBUI: Send Cache-Control header in WebUI responses (Chocobo1)
  • WEBUI: Add form-action to CSP (Thomas Piccirello)
  • WEBUI: Add upgrade-insecure-requests to CSP when HTTPS is enabled (Thomas Piccirello)
  • WEBUI: Reset WebUI ban counter on login success (Chocobo1)
  • WEBUI: Add logging messages in WebUI login action (Chocobo1)
  • WEBUI: Add option to control CSRF protection (Chocobo1)
  • WEBUI: Add option to control WebUI clickjacking protection (Chocobo1)
  • RSS: Implement "Sequential downloading" feature. Closes # (glassez)
  • RSS: Don't use RSS feed URLs as base for file names. Closes # (glassez)
  • SEARCH: Add a name filter for search results (thalieht)
  • SEARCH: Fix python version detection (Chocobo1)
  • SEARCH: Clear python cache conditionally (Chocobo1)
  • SEARCH: Properly normalize version string before parsing it (hannsen)
  • WINDOWS: Turn on Control Flow Guard for MSVC builds (Chocobo1)
  • MACOS: Replace deprecated function IOPMAssertionCreate() on macOS (Chocobo1)
  • OTHER: Fix CMake build with QtSingleApplication. Fixes # (Eugene Shalygin)

Sunday May 27th - qBittorrent v release

qBittorrent v was released.
Important fixes are in the version of libtorrent used. It fixes SOCKS5 issues and and tracker announces about downloaded/uploaded data.

  • FEATURE: Add 'Moving' state for torrents being relocated/moved (sledgehammer)
  • FEATURE: Show rechecking progress (sledgehammer)
  • FEATURE: Add option to remember last used save path (glassez)
  • FEATURE: Torrent name is also renamed if the content was renamed in the "Add New Torrent" dialog (glassez)
  • FEATURE: Relax behavior of "Download first and last piece first". It applies to all files and not only to the previewable. (Chocobo1)
  • BUGFIX: Fix issues with translatable strings (Chocobo1)
  • BUGFIX: Fix displayed tracker messages (Chocobo1)
  • BUGFIX: Make settings file recovery more robust (Chocobo1)
  • BUGFIX: Retry saving settings when operation failed (Chocobo1)
  • BUGFIX: Log successful torrent move (sledgehammer)
  • BUGFIX: Fix deletion of old logs (sledgehammer)
  • BUGFIX: Delete non-commited fastresume files (sledgehammer)
  • BUGFIX: Don't migrate torrents that have newer fastresumes (sledgehammer)
  • BUGFIX: Fix adding multiple torrents at once from WebUI (glassez)
  • BUGFIX: Improve "Run External Program" behavior. On Windows, a backslash isn't appended to paths from path variables (Chocobo1)
  • BUGFIX: Suppress multiple I/O errors for the same torrent (sledgehammer)
  • BUGFIX: Replace raster qbt logo with vector version (Chocobo1)
  • WEBUI: Fix wrong API method names (glassez)
  • WEBUI: Filter torrent info endpoint by hashes (Marcel Petersen)
  • WEBUI: Fix invalid API calls in WebUI (glassez)
  • WEBUI: Improve legacy API params handling (glassez)
  • WEBUI: Fix params handling for some legacy API methods (glassez)
  • WEBUI: Apply locale changes immediately in WebUI (Chocobo1)
  • WEBUI: Use 32px icons for favicon (Chocobo1)
  • WEBUI/RSS: Properly set RSS settings via API (glassez)
  • RSS: Fix auto-downloading rule when Smart filter with regular Episode filter are used (glassez)
  • RSS: Make "Ignoring days" to behave like other filters (glassez)
  • RSS: Place "Use Smart Episode Filter" more correctly (glassez)
  • RSS: Use RSS feed update time as a fallback (glassez)
  • COSMETIC: Fix Stats dialog size (sledgehammer)
  • MACOS: Fix GUI scaling factor on macOS (Chocobo1)
  • WINDOWS: Update icons (adem4ik)
  • LINUX: Fix open destination folder with Nautilus > (Evgeny Lensky)
  • OTHER: Code improvements and refactoring (thalieht, Nick Korotysh, Chocobo1)

Friday May 5th - qBittorrent v release

qBittorrent v was released.
This is a major version bump purely because there was a ton of code commits from the last one.
There a new v2 WebAPI now, but v1 is still supported too.
The Windows bit installer now uses Qt instead of The version is an LTS release and newer than the version. The x series don't offer something useful for our usage.

  • FEATURE: Add "Coalesce reads & writes" checkbox in advanced options (Chocobo1)
  • FEATURE: Smart Filter for RSS (Stephen Dawkins)
  • FEATURE: Possibility to configure at which speed a torrent is considered slow (thalieht)
  • FEATURE: When creating a torrent you can choose to preserve the file order (toster, Chocobo1)
  • FEATURE: A new, redesigned and refactored WebAPI (glassez)
  • BUGFIX: Redefine manicapital.comtio field. (Chocobo1)
  • BUGFIX: Clarify some terms in stats dialog (Chocobo1)
  • BUGFIX: Fix possible crash when using both share limits (thalieht)
  • BUGFIX: Disable options when is enabled (Thomas Piccirello)
  • BUGFIX: Add link to an explanation of (Thomas Piccirello)
  • BUGFIX: Fix typo in a log message (Andrei Stepanov)
  • BUGFIX: Fix loading very large torrents. Closes # (Chocobo1)
  • BUGFIX: Fix reverting backslashes to slashes in run external program. Closes # (Chocobo1)
  • BUGFIX: Use https for documentation links (Chocobo1)
  • BUGFIX: Use original scheme when downloading favicons (Chocobo1)
  • BUGFIX: Parse URL query string at application level (glassez)
  • BUGFIX: Properly reply to announce request (embedded tracker) (glassez)
  • BUGFIX: Add parameter to "Run External Program" (Chocobo1)
  • BUGFIX: Fix various typos (Chocobo1)
  • BUGFIX: Refactor filesystem watcher. Delay before processing new files. (Chocobo1)
  • BUGFIX: Don't strip empty arguments passed to external program. Closes # (Chocobo1)
  • BUGFIX: Stop creating Download folder on start (Chocobo1)
  • BUGFIX: Avoid data corruption when rechecking paused torrents (sledgehammer)
  • BUGFIX: Fix crashes due to invalid iterator use (Luís Pereira)
  • BUGFIX: Fix renaming completed files (Chocobo1)
  • BUGFIX: Fix path separator in log messages (Chocobo1)
  • WEBUI: Switch built-in Web UI html to HTML5 (glassez)
  • WEBUI: WebUI Save user's resized window sizes (Thomas Piccirello)
  • WEBUI: Make download + upload windows resizable (Thomas Piccirello)
  • WEBUI: Add option to show/hide webui status bar (Thomas Piccirello)
  • WEBUI: Add "Use proxy only for torrents" option to webui (Thomas Piccirello)
  • WEBUI: Various fixes in the html code (Thomas Piccirello)
  • WEBUI: Don't unselect selected torrents after a few seconds (Thomas Piccirello)
  • WEBUI: Enable Http/ persistence connection (Chocobo1)
  • WEBUI: Format Read cache hits as percentage (Thomas Piccirello)
  • WEBUI: Re-order and rename stats (Thomas Piccirello)
  • WEBUI: Right align stat values (Thomas Piccirello)
  • WEBUI: Enable Statistics window to be scrolled and resized (Tom Piccirello)
  • WEBUI: Save WebUI Statistics window size (Thomas Piccirello)
  • WEBUI: Make WebUI iframe windows scrollable on iOS (Thomas Piccirello)
  • WEBUI: Remove unused CSS from WebUI login page (Thomas Piccirello)
  • WEBUI: Consolidate CSS into manicapital.com (Thomas Piccirello)
  • WEBUI: Resolve JavaScript errors (Thomas Piccirello)
  • WEBUI: Fix spacing in login form(Thomas Piccirello)
  • WEBUI: Update WebUI to be more compliant with HTML5 standard (Chocobo1)
  • WEBUI: Update manicapital.com to v (Chocobo1)
  • WEBUI: Remove unused JavaScript library (Chocobo1)
  • WEBUI: Fix setting preferences via WebAPI (glassez)
  • WEBUI: Rename property to match its definition (Thomas Piccirello)
  • WEBUI: Add Limit Share Ratio context menu option (Thomas Piccirello)
  • RSS: Disable Auto TMM when RSS rule has save path (glassez)
  • RSS: Process loaded RSS articles in case of error (glassez)
  • RSS: Resolve (X)HTML entities in RSS content (glassez)
  • SEARCH: Improve Search handling (glassez)
  • SEARCH: Calculate supported categories based on selected plugin (Thomas Piccirello)
  • SEARCH: Fix memory leak (Chocobo1)
  • COSMETIC: Use spinbox suffix to display rate/time units (thalieht)
  • COSMETIC: Avoid showing an empty row in AdvancedSettings (Chocobo1)
  • OTHER: Various code optimizations and fixes (Luís Pereira, Chocobo1)
  • OTHER: Fix build when using Clang under CMake (Luís Pereira)
  • OTHER: Allow to disable Stacktrace support (Nick Korotysh)
  • OTHER: Use RNG provided by OS (Chocobo1)

Friday February 16th - qBittorrent v release

qBittorrent v was released.

  • FEATURE: Add source field in Torrent creator. Closes # (Chocobo1)
  • FEATURE: Torrent creator: raise maximum piece size to 32 MiB (Chocobo1)
  • FEATURE: Add a force reannounce option in the transfer list context menu. Closes # (Jesse Bryan)
  • BUGFIX: Fix sorting of country flags column in Peers tab. (sledgehammer)
  • BUGFIX: Fix natural sorting when the common part of 2 strings ends partially in a number which continues in the uncommon part. Closes # # (sledgehammer)
  • BUGFIX: Fix application of speed limits on LAN and μTP connections. Closes # (sledgehammer)
  • BUGFIX: Make peer information flags in peerlist more readable. (thalieht)
  • BUGFIX: Fix gui issues on high DPI monitor. (Chocobo1)
  • BUGFIX: Fix dialog and column size on high DPI monitors. (Chocobo1)
  • BUGFIX: Fix constant status of '[F] Downloading'. Closes # (sledgehammer)
  • BUGFIX: Fix translation context. Closes # (sledgehammer)
  • BUGFIX: Separate subnet whitelist options into two lines. (Thomas Piccirello)
  • BUGFIX: Don't set application name twice. (Luís Pereira)
  • BUGFIX: Set default file log size to 65 KiB and delete backup logs older than 1 month. (sledgehammer)
  • WEBUI: Only prepend scheme when it is not present. Closes # (Chocobo1)
  • WEBUI: Add "Remaining" and "Availability" columns to webui Content tab. (Thomas Piccirello)
  • WEBUI: Make value formatting consistent with GUI (Thomas Piccirello)
  • WEBUI: Reposition Total Size column to match gui (Thomas Piccirello)
  • WEBUI: Add Tags and Time Active columns (Thomas Piccirello)
  • WEBUI: Use https for manicapital.com (Thomas Piccirello)
  • WEBUI: Match webui statuses to gui, closes # (Thomas Piccirello)
  • WEBUI: Right-align stat values (Thomas Piccirello)
  • WEBUI: Add missing units. (Thomas Piccirello)
  • RSS: Fix crash when deleting rule because it tries to update. Closes # (glassez)
  • RSS: Don't process new/updated RSS rules when disabled (glassez)
  • RSS: Remove legacy and corrupted RSS settings (glassez)
  • SEARCH: Search only when category is supported by plugin. Closes # (manicapital.comg)
  • SEARCH: Only add search separators as needed. (Thomas Piccirello)
  • COSMETIC: Tweak spacing in torrent properties widget and speed widget. (Chocobo1)
  • WINDOWS: Use standard folder icon for open file behavior on Windows. Closes # (Chocobo1)
  • WINDOWS: Revert "Run external program" function. Now you will not be able to directly run batch scripts. (Chocobo1)
  • MACOS: Fix torrent file selection in Finder on mac (vit)
  • MACOS: Fix Finder reveal in preview and torrent contents (vit)
  • MACOS: Fix cmd+w not closing the main window on macOS (vit)
  • OTHER: Fix splitting of compiler flags in configure. Autoconf removes a set of [] during script translation, resulting in a wrong sed command. (sledgehammer)
  • OTHER: configure: Parse all compiler related flags together. (sledgehammer)
  • OTHER: Update copyright year. (sledgehammer)

Sunday December 17th - qBittorrent v release

Some more bugs fixed.
macOS builds are available now too. Check the changelog for the macOS specific new features.
v changelog:

  • BUGFIX: Add height padding to the transfer list icons. Closes # (sledgehammer)
  • BUGFIX: Allow to drag-n-drop URLs into mainwindow to initiate download. (Chocobo1)
  • BUGFIX: Fix crash when fitlering search results. Stable sorting is removed. Closes #(Chocobo1)
  • WEBUI: Fix missing qbt logo on login page in webUI. Closes # (Chocobo1)
  • WEBUI: Add check to avoid type error after logout. (Chocobo1)
  • WEBUI: Use POST for logout command. This is to avoid browser being smart to prefetch the link then logging out the user. (Chocobo1)
  • WEBUI: Fix WebUI is not reachable via IPv6. (glassez)
  • WINDOWS: Disable the "?" help button in all dialogs on Windows. Closes # Requires Qt (Chocobo1)

Friday December 1st - qBittorrent v release

This is a hotfix release too. It addresses some important RSS issues. macOS builds will follow.
NOTICE: If you find your torrents being paused instead of seeding, then right click on your torrent, choose and adjust the setting.
v changelog:

  • BUGFIX: Fix crash on some systems when creating address object for Closes # (sledgehammer)
  • PERFORMANCE: Change MixedModeAlgorithm default to TCP. This was the v3_3_x default and should sustain higher speeds. Closes # (Chocobo1)
  • PERFORMANCE: Stop logging IP filter parsing errors after a while, otherwise the GUI freezes or qBittorrent doesn't start. (sledgehammer)
  • GUI: Implement stable sort. Rows in transfer list shouldn't flicker anymore. (Chocobo1)
  • WEBUI: Fix build when webui is disabled. (Heiko Becker)
  • RSS: Fix build because of missing header. Closes # (thoradia)
  • RSS: Fix RSS parser. (glassez)
  • RSS: Implement Import/Export RSS rules in legacy(aka v3_3_x) format. (glassez)
  • RSS: Implement Import/Export RSS rules in JSON format. (glassez)
  • WINDOWS: Fixed blurry text under Windows by setting DPI awareness to default. (TheNicker)
  • LINUX: Fix i build. (Evgeny Lensky)

Wednesday November 22nd - qBittorrent v release

This is a hotfix release. It is also build against newer libtorrent code that fixes connectivity issues with proxies.
v changelog:

  • BUGFIX: Fix crash on opening torrent/magnet (uninitialized pointer). Closes # # (sledgehammer)
  • BUGFIX: Enable preferences Apply button when ip banlist is modified (Thomas Piccirello)
  • BUGFIX: Allow drag-n-drop magnet links to mainwindow. Closes # (Chocobo1)
  • BUGFIX: Fix crash when aborting a torrent creation process. Closes # (Chocobo1)
  • BUGFIX: Correctly check if torrent passed during application start already exists. (sledgehammer)
  • WEBUI: Add ip subnet whitelist for bypassing webui auth (Thomas Piccirello)
  • WEBUI: Fix logo missing in login page (Chocobo1)
  • COSMETIC: Fix english typo. (sledgehammer)
  • OTHER: cmake: qtsingleapplication should always be built statically (luigino)

Monday November 20th - qBittorrent v release

This is a major new release with a huge changelog. Enjoy!
v changelog:

  • FEATURE: Change qbittorrent logo. Issue # (HVS, Atif Afzal, sledgehammer)
  • FEATURE: New icon theme with SVG source, so we can scale it appropriately in the future. (Bert Verhelst)
  • FEATURE: Drop Qt 4 support. Raise minimum Qt version to (evsh)
  • FEATURE: UI for managing locally banned IP list (dzmat)
  • FEATURE: Support for specifying where to save/load config files. Support for portable mode. (evsh)
  • FEATURE: It is now possible to pass options via ENV variables instead of cmd options. (evsh)
  • FEATURE: Allow to strip subfolder in multifile torrents. (glassez, sledgehammer)
  • FEATURE: Allow cmd args to specify options when adding torrents. (Brian Kendall)
  • FEATURE: Widget for showing filesystem paths while typing. Used in the Add New Torrent and Options dialogs. (evsh)
  • FEATURE: Trackerlist: Allow to toggle columns (thalieht)
  • FEATURE: Add availability column to torrent content model and torrent properties window (evsh)
  • FEATURE: Implemented share limit by seeding time (naikel)
  • FEATURE: Revamp Torrent creator (Chocobo1)
  • FEATURE: Enable drag n drop to create torrent on mainwindow (Chocobo1)
  • FEATURE: Add show/hide statusbar option (takiz)
  • FEATURE: Show number of pieces. Closes # (Chocobo1)
  • FEATURE: Allow to select & delete multiple entries in "Manage Cookies" dialog (Chocobo1)
  • FEATURE: Fetch Favicons via google as a final fallback (KingLucius)
  • FEATURE: Add a Tags (multi-label) feature to the GUI. Closes # (tgregerson)
  • FEATURE: Use the system icons for each file type in the Content tab (evsh)
  • FEATURE: Use SVG files for monochrome tray icons. Closes # (evsh)
  • FEATURE: Prefill torrent name when creating a new torrent. Closes # (Chocobo1)
  • FEATURE: Expose more libtorrent options in advanced settings (Chocobo1)
  • FEATURE: Add comboBox for selecting BitTorrent protocol. Closes # (Chocobo1)
  • FEATURE: Allow SMTP sender to be set. Closes # (Chocobo1)
  • FEATURE: Allow to specify if announcing to all tiers is desired. (sledgehammer)
  • FEATURE: Configurable number of history of paths in Add New Torrent dialog. (evsh)
  • BUGFIX: Adjust icons names to better fit FDO scheme (evsh)
  • BUGFIX: Optimized IP filter parsing, making blazingly fast (sledgehammer, evsh)
  • BUGFIX: Fix dialogs didn't position on the correct screen which qBittorrent window is on. Closes #, #, # (Chocobo1)
  • BUGFIX: Refactor and improve StatusBar (glassez)
  • BUGFIX: Set expiration date for newly added cookie to +2 years from now, instead of +99 years. (Chocobo1)
  • BUGFIX: Don't create subfolder inside temp folder (glassez)
  • BUGFIX: Don't replace existing files when relocating torrent (glassez)
  • BUGFIX: Fix explicit Torrent Management Mode in Add New Torrent dialog. Closes # (sledgehammer)
  • BUGFIX: Fix calculation of 'Average time in queue' stat under libtorrent x (sledgehammer)
  • BUGFIX: Don't disable bandwidth scheduler when manually switching speed limits. Closes # (glassez)
  • BUGFIX: Fix dereferencing freed pointer. Closes # (Chocobo1)
  • BUGFIX: Change the default cache size to 64MiB. (Chocobo1)
  • BUGFIX: The previous "Disk write cache size" is not accurate since it is also being used for read cache, so rename it to "Disk cache". (Chocobo1)
  • BUGFIX: Replace dialog ok-cancel buttons with QDialogButtonBox, which follows the platform specific button order. (Chocobo1)
  • BUGFIX: Better reporting of success/failure of torrent and file deletion. (sledgehammer)
  • BUGFIX: Fix last activity calculation. Closes # (Chocobo1)
  • BUGFIX: Save state of options windows on cancel too. (silverqx)
  • BUGFIX: Persist size and treeview header state in preview dialog. (silverqx)
  • BUGFIX: Show torrent name in "add new torrent" dialog on merging trackers (Chocobo1)
  • BUGFIX: Properly pre-select the selected torrent's current ratio limiting options in UpDownRatioDlg dialogs. Fixes # (thalieht)
  • BUGFIX: Optimize code for SpeedWidget. (dzmat)
  • BUGFIX: Disable processing events when adding torrents(prevents crashes). Closes # (Chocobo1)
  • BUGFIX: Open links in browser. Closes # (Chocobo1)
  • BUGFIX: Change default settings for tracker/tier announces to mimic μTorrent behavior. (sledgehammer)
  • BUGFIX: Explicitly set UPnP state on start-up. Closes # (Chocobo1)
  • BUGFIX: Include/print caught signal in stackdump (Chocobo1)
  • COSMETIC: Trackerlist: Set text alignment of columns with numbers to the right (thalieht)
  • COSMETIC: Enable alternatingRowColors for "Manage Cookie" dialog (Chocobo1)
  • COSMETIC: Remove indentation for category/tag filter widgets in all platforms (thalieht)
  • COSMETIC: Add space between widgets in left side panel. Closes # (Chocobo1, glassez)
  • COSMETIC: Unify preference window borders across the tabs (vit)
  • COSMETIC: Center Options dialog when showed. (silverqx)
  • COSMETIC: Show delete accelerator key in menu. closes # (Nick Korotysh)
  • COSMETIC: Set QTextOption::NoWrap property in "Download from URLs" dialog (Chocobo1)
  • COSMETIC: Use SVG icons for the country flags. Closes # (sledgehammer)
  • WEBUI: Allow to load/use ECDSA certificate in webUI. (Chocobo1)
  • WEBUI: Add copy options to webui context menu (addresses #) (#) (Tom Piccirello)
  • WEBUI: Set torrent location from webui context menu (addresses #) (#) (Tom Piccirello)
  • WEBUI: Add option to rename torrent from WebUI (Thomas Piccirello)
  • WEBUI: Add auto torrent management to webui context menu (addresses #) (Thomas Piccirello)
  • WEBUI: Option for "Create subfolder" when adding new torrent. (thalieht)
  • WEBUI: Fix addPaused wrong default behavior. (Chocobo1)
  • WEBUI: Reposition "Priority" menu option in WebUI to match gui. Closes # (Thomas Piccirello)
  • WEBUI: Report TCPServer errorString() if webui fails to listen to port. (Matthew Fioravante)
  • WEBUI: Exit gracefully when failed to initialize web server with qbt-nox (Chocobo1)
  • WEBUI: Add file-to-piece-index mappings in /query/propertiesFiles command (Chocobo1)
  • WEBUI: Add optional parameters for /command/download & /command/upload (Chocobo1)
  • WEBUI: Print error messages upon receiving invalid header fields. (Chocobo1)
  • WEBUI: Add WebUi\Address config option. (Matthew Fioravante)
  • WEBUI: Reinitialize webUI server when "IP address" setting changed. An app restart won't be necessary from now on. (Chocobo1)
  • WEBUI: Improve log and error messages (Chocobo1)
  • SEARCH: Use explicit class for search plugin versions (evsh)
  • SEARCH: Remove all search plugins from repo. There is another repo named 'search-plugins'. (sledgehammer)
  • SEARCH: Update the backend when a new plugin favicon is downloaded. (sledgehammer)
  • SEARCH: Allow search plugins sorting. Closes # (Nick Korotysh)
  • RSS: Redesigned RSS subsystem (glassez)
  • RSS: Do not use hardcoded colors in RSS feed view (evsh)
  • RSS: Improve RSS events logging (glassez)
  • WINDOWS: Use dpiawareness=1 on Windows. Closes # (sledgehammer)
  • WINDOWS: Reformat Windows build configuration files. (glassez)
  • LINUX: Allow custom tray icons when system icon theme is used. Closes # (evsh)
  • MACOS: Various macOS UI improvements (vit)
  • MACOS: Fix main menu item location on macOS (vit)
  • MACOS: Fix macOS window restoration after using hide icon (vit)
  • MACOS: Fix notification display on macOS (vit)
  • OTHER: Use new classes/methods from libtorrent and stop using deprecate ones. (glassez)
  • OTHER: Various string fixes (Allan Nordhøy, sledgehammer)
  • OTHER: cmake: do not use Qt5Widgets when locating QtSingleApplication. Closes # (evsh)
  • OTHER: Update BOOST m4 macros and simplify AX_BOOST_BASE usage (Chocobo1)
  • OTHER: Drop OS/2 support. (sledgehammer)
  • OTHER: Optimize file size of PNG and SVG files. (sledgehammer)
  • OTHER: Add new translators in the About page.

Thursday September 7th - qBittorrent v and beta2__cbfbae release

Since it was a month since the last stable and v seems to be delayed just a bit, it was a good time to backport critical fixes and do another vx release.
Alongside v there is beta2 of v It contains various fixes for the things mentioned in the first beta plus a few new additions. See changelog. This beta works on Windows XP (bit) too. macOS packages are ready too.
Finally, the future stable version will be v not v
v changelog:

  • BUGFIX: Better memory footprint when using libtorrent x. The cache is turned off by default( value in the settings). The value makes it use 1/8 of your RAM. (sledgehammer)
  • BUGFIX: Skip user input events when adding torrent. Closes # (glassez)
  • BUGFIX: Avoid memory leak in the speed graph. (Chocobo1)
  • WEBUI: Fix validating wrong header field. X-Forwarded-Host is a foreign proxy setting, it isn't the same as qbt's local setting and thus it makes no sense to verify it. Closes # (Chocobo1)
  • WINDOWS: Fix connection problems when a specific interface/ip is configured. (sledgehammer)
  • WINDOWS: Disable skipping of loopback interfaces. This fixes the absence of VPN tunnel interfaces under Windows and works around the QTBUG Fixes # (Evengard)
  • WINDOWS: The installer detects the 64bit running process too. (vlakoff)

beta2__cbfbae changelog:

  • FEATURE: Prefill torrent name when creating a new torrent. Closes # (Chocobo1)
  • FEATURE: Expose more libtorrent options in advanced settings (Chocobo1)
  • BUGFIX: Fix explicit Torrent Management Mode in Add New Torrent dialog. Closes # (sledgehammer)
  • BUGFIX: Fix calculation of 'Average time in queue' stat under libtorrent x (sledgehammer)
  • BUGFIX: Don't disable bandwidth scheduler when manually switching speed limits. Closes # (glassez)
  • COSMETIC: Remove indentation for category/tag filter widgets in all platforms (thalieht)
  • COSMETIC: Add space between widgets in left side panel. Closes # (Chocobo1, glassez)
  • COSMETIC: Unify preference window borders across the tabs (vit)
  • WEBUI: Add option to rename torrent from WebUI (Thomas Piccirello)
  • WEBUI: Add auto torrent management to webui context menu (addresses #) (Thomas Piccirello)
  • WINDOWS: Use dpiawareness=1 on Windows. Closes # (sledgehammer)
  • MACOS: Fix macOS window restoration after using hide icon (vit)
  • MACOS: Fix notification display on macOS (vit)

Monday August 7th - qBittorrent vbeta__f9d5b5e release

Windows packages for vbeta__f9d5b5e are released.
macOS packages might follow.
CAVEAT: The 32bit build doesn't work on Windows XP. Apparently the libtorrent x series have dropped the support for that OS.
Here is the current changelog:

  • FEATURE: New icon theme with SVG source, so we can scale it appropriately in the future. (Bert Verhelst)
  • FEATURE: Drop Qt 4 support. Raise minimum Qt version to (evsh)
  • FEATURE: UI for managing locally banned IP list (dzmat)
  • FEATURE: Support for specifying where to save/load config files. Support for portable mode. (evsh)
  • FEATURE: It is now possible to pass options via ENV variables instead of cmd options. (evsh)
  • FEATURE: Allow to strip subfolder in multifile torrents. (glassez, sledgehammer)
  • FEATURE: Allow cmd args to specify options when adding torrents. (Brian Kendall)
  • FEATURE: Widget for showing filesystem paths while typing. Used in the Add New Torrent and Options dialogs. (evsh)
  • FEATURE: Trackerlist: Allow to toggle columns (thalieht)
  • FEATURE: Add availability column to torrent content model and torrent properties window (evsh)
  • FEATURE: Implemented share limit by seeding time (naikel)
  • FEATURE: Revamp Torrent creator (Chocobo1)
  • FEATURE: Enable drag n drop to create torrent on mainwindow (Chocobo1)
  • FEATURE: Add show/hide statusbar option (takiz)
  • FEATURE: Show number of pieces. Closes # (Chocobo1)
  • FEATURE: Allow to select & delete multiple entries in "Manage Cookies" dialog (Chocobo1)
  • FEATURE: Fetch Favicons via google as a final fallback (KingLucius)
  • FEATURE: Add a Tags (multi-label) feature to the GUI. Closes # (tgregerson)
  • FEATURE: Use the system icons for each file type in the Content tab (evsh)
  • FEATURE: Use SVG files for monochrome tray icons. Closes # (evsh)
  • BUGFIX: Adjust icons names to better fit FDO scheme (evsh)
  • BUGFIX: Optimized IP filter parsing, making blazingly fast (sledgehammer, evsh)
  • BUGFIX: Fix dialogs didn't position on the correct screen which qBittorrent window is on. Closes #, #, # (Chocobo1)
  • BUGFIX: Refactor and improve StatusBar (glassez)
  • BUGFIX: Set expiration date for newly added cookie to +2 years from now, instead of +99 years. (Chocobo1)
  • BUGFIX: Don't create subfolder inside temp folder (glassez)
  • BUGFIX: Don't replace existing files when relocating torrent (glassez)
  • COSMETIC: Trackerlist: Set text alignment of columns with numbers to the right (thalieht)
  • COSMETIC: Enable alternatingRowColors for "Manage Cookie" dialog (Chocobo1)
  • WEBUI: Allow to load/use ECDSA certificate in webUI. (Chocobo1)
  • WEBUI: Add copy options to webui context menu (addresses #) (#) (Tom Piccirello)
  • WEBUI: Set torrent location from webui context menu (addresses #) (#) (Tom Piccirello)
  • SEARCH: Use explicit class for search plugin versions (evsh)
  • SEARCH: Remove all search plugins from repo. There is another repo named 'search-plugins'. (sledgehammer)
  • SEARCH: Update the backend when a new plugin favicon is downloaded. (sledgehammer)
  • RSS: Redesigned RSS subsystem (glassez)
  • RSS: Do not use hardcoded colors in RSS feed view (evsh)
  • WINDOWS: Installer detects running process when it is bit (vlakoff)
  • MACOS: Various macOS UI improvements (vit)
  • MACOS: Fix main menu item location on macOS (vit)
  • OTHER: Use new classes/methods from libtorrent and stop using deprecate ones. (glassez)
  • OTHER: Various string fixes (Allan Nordhøy, sledgehammer)

Thursday August 3rd - qBittorrent v release

qBittorrent v was released. Very minor release to fix a possibly annoying problem. beta is being prepped and will be released this weekend. Stay tuned.

  • BUGFIX: Temporary subfolder wasn't being deleted. (glassez)

Thursday July 20th - qBittorrent v release

qBittorrent v was released.

  1. This release is made mainly to fix the previous problematic fix for Cross-Site Request Forgery attacks via the webui.
  2. It also contains another Webui fix for a DNS rebinding attack. For all WebUI users, if your qBittorrent server is assigned with a domain name, it is recommended to enter the domain name in or in in order to defend against DNS rebinding attacks.
  3. For macOS users: This is my first attempt to have a shortcut to folder in the dmg. I hope that I didn't screw up the presentation.
  4. Google has decided that qBittorrent is a persona non-grata. Read this reddit post for more info.
  5. Either this weekend or the next one you will get a beta for v It has A LOT of new features so help in finding grave bugs. Keep checking back to see if it is posted.
  • BUGFIX: Set interface for outgoing traffic(libtorrent x series). (evsh)
  • WEBUI: Fix KEEP_ALIVE_DURATION value (Chocobo1)
  • WEBUI: Relax CSRF defense. Closes # Allow HTTP request which has neither Origin nor Referer header included. (Chocobo1)
  • WEBUI: Skip username/password check for active sessions (closes #) (Thomas Piccirello)
  • WEBUI: Fix javascript errors and follow best practices (Thomas Piccirello)
  • WEBUI: Fix value comparison. Closes # (Chocobo1)
  • WEBUI: Avoid modifying request headers (Chocobo1)
  • WEBUI: Implement HTTP host header filtering. This filtering is required to defend against DNS rebinding attack. Fixes security issues reported by @beardog privately. (Chocobo1)
  • WEBUI: Add Status column to webui (addresses #) (#) (Tom Piccirello)
  • WEBUI: Bump API_VERSION and API_VERSION_MIN to
  • SEARCH: Pad shorter python versions. Closes # (sledgehammer)
  • WINDOWS: Updated Arabic, Turkish, Greek, Russian, Danish languages of the installer. (KingLucius, BouRock, thalieht, Andrei Stepanov, scootergrisen)
  • WINDOWS: Raise total stack size on Windows to 8 MB. Closes # (Chocobo1)
  • LINUX: Systemd service with user switch and other fixes/optimizations. (manicapital.coma)

Thursday June 1st - qBittorrent v release

qBittorrent v was released. This release is made mainly to fix possible Cross-Site Request Forgery attacks via the webui reported by OpenGG and fixed by Chocobo1.

  • BUGFIX: Fixed UI glitch about torrent numbers in the sidepanel. Fixes # (evsh)
  • BUGFIX: Fix downloaded/uploaded columns were not highlighted properly when selected. (Chocobo1)
  • BUGFIX: Always draw background in files list and search result list (Chocobo1)
  • BUGFIX: Remove torrent temp folder if it becomes unneeded (glassez)
  • BUGFIX: Remove torrent temp folder when torrent is deleted (glassez)
  • BUGFIX: Setup DPI at startup (Chocobo1)
  • BUGFIX: Do not attempt to show detailed tooltips without torrent metadata. Closes # (evsh)
  • BUGFIX: Better detection of already present files when adding a torrent. (fbriere)
  • BUGFIX: Fix double click on system tray icon causing program to open and minimize immediately. Closes # (Chocobo1)
  • BUGIFX: Fix categories sorting in AddNewTorrentDialog. Partially fixes # (fbriere)
  • BUGFIX: Set "category" column as case-insensitive in transfer list. (fbriere)
  • BUGFIX: Properly sort categories case-insensitively in filter widget. Closes # (fbriere)
  • BUGFIX: Fix renaming files is not case sensitive on Windows platform. Closes # (Chocobo1)
  • BUGFIX: Fix crash in download piece bar (evsh)
  • BUGFIX: Fix focusing on the previously opened dialog didn't work (Chocobo1)
  • WEBUI: Bugfix: drop extra trailing newline. (OpenGG)
  • WEBUI: Add and to and (OpenGG)
  • WEBUI: Fix checkbox hidden. Closes # (Chocobo1)
  • WEBUI: Implement http persistence connection. Max simultaneous connection limit set to This also release allocated memory of Connection instances at runtime instead of at program shutdown. (Chocobo1)
  • WEBUI: Always send Content-Length header. (Chocobo1)
  • WEBUI: Send Date http header (Chocobo1)
  • WEBUI: Fix "Content-Encoding" header is always created. (Chocobo1)
  • WEBUI: Implement robust checking for gzip encoding and revise gzip compressing/decompressing code. (Chocobo1)
  • WEBUI: Make the context obligatory for translatable strings. Also delete duplicate strings from extra translations. (sledgehammer)
  • WEBUI: Use translatable strings in Statistics dialog. (sledgehammer)
  • WEBUI: Add missing unit sizes in manicapital.com (sledgehammer)
  • WEBUI: Use the same layout in the Speed tab in preferences as the GUI. (sledgehammer)
  • WEBUI: Return status indicating if at least one torrent was successfully added (Thomas Piccirello)
  • WEBUI: Increase the number of digits after the decimal point (thalieht)
  • WEBUI: Use less permissive Content Security Policy (Thomas Piccirello)
  • WEBUI: Fix connection status icon too large. Closes # (Chocobo1)
  • WEBUI: Cosmetic fixes for WebUI upload and download windows (naikel)
  • WEBUI: Fix slow filtering in WebUI. (naikel)
  • WEBUI: Make cookie parsing robust (Chocobo1)
  • WEBUI: New API for getting torrent piece info (Chocobo1)
  • WEBUI: Implement Cross-Site Request Forgery defense. Due to this the HTTP header is now expected in (almost) all HTTP requests. qBittorrent will drop the request sent without the header. That's why we bump the too. (reported by OpenGG, fixed by Chocobo1)
  • SEARCH: Update demonoid, legittorrents plugins (ngosang)
  • SEARCH: Remove mininova, ExtraTorrent plugins (ngosang, KingLucius)
  • SEARCH: Add btdb plugin (ngosang)
  • WINDOWS: Updated Spanish, Ukrainian, German, Chinese languages of the installer. (ngosang, evsh, schnurlos, wevsty)
  • LINUX: Rename .desktop and appdata files to match executable name. Fixes # (evsh)
  • MACOS: Fix UI responsiveness after AddNewTorrentDialog received metadata. (Brian Kendall)

Thursday April 6th - qBittorrent v release

qBittorrent v was released. This a bugfix release not a major one.

  • FEATURE: Indicate bitness in stackstrace and about dialog. Closes # (sledgehammer)
  • BUGFIX: Fix incomplete type compile error with Qt4 (Chocobo1)
  • BUGFIX: Fix compile error: ‘escape’ is not a member of ‘Qt’ (Chocobo1)
  • BUGFIX: Use system locale to format dates/time/etc (sledgehammer)
  • BUGFIX: Follow http user-agent format (Chocobo1)
  • BUGFIX: Fix cancel "Set location" causes files move to installation dir. (Chocobo1)
  • WEBUI: Improve performance of updating 'progress' column (buinsky)
  • WEBUI: Implement statistics window in web UI (FranciscoPombal)
  • WEBUI: fixed "remaining" column in WebUI (FranciscoPombal)
  • WEBUI: Set HttpOnly attribute to SID cookie (Chocobo1)
  • WEBUI: Fire up the timer to clean inactive sessions (Chocobo1)
  • WEBUI: Set cookie SID value to empty on logout (Chocobo1)
  • WINDOWS: Make the installer DPI aware (regs01)
  • WINDOWS: Set exit code to 0 on install/uninstall success. Fixes problem with silent installations. (Chocobo1)
  • WINDOWS: The bit installer refuses to install on bit systems. (sledgehammer)
  • WINDOWS: The bit installer uses the correct "Program Files" now. Detection will not work if you install on top of previous installer. (sledgehammer)
  • WINDOWS: Fix running the uninstaller if the user chose a different path in the installer. Closes # (sledgehammer)
  • LINUX: Add keywords to the .desktop file. (sledgehammer)
  • LINUX: Update stuff in manicapital.com and run 'appstream-utl upgrade' on it. (sledgehammer)
  • OTHER: Replace rand() by a true uniform distribution generator (Chocobo1)
  • OTHER: Change our user-agent format as indicated earlier in the news section (Chocobo1)
  • OTHER: cmake: fix OSX bundle creation (evsh)

Tuesday March 7th - NOTICE to tracker operators: User agent change

Starting from the next version (v) qBittorrent will use the following user-agent format:

, , and are numbers indicating , , and respectively.
If is zero it will be omitted. The 3rd dot() will be omitted in this case.
, and will always be present.
is a string and possible values of it are , and . They might not appear in all lowercase. Also they might appear numbered eg .
If is empty it will be omitted. This indicates a stable release.
There is no connection between and . One might be present even if the other isn't. To sum up and give an example, the user agent that v will use is .

Monday March 6th - "qBittorrent is the best BitTorrent client": a guide by manicapital.com

The Italian techzine manicapital.com published a new long-form BitTorrent tutorial titled La Grande Guida a BitTorrent (literally: The big guide to BitTorrent). The author recommends qBittorrent as "the best BitTorrent client for Windows", citing the lightweight footprint, the no-crapware bundled installer and the clean interface among the top reasons for his choice.
Those who understand Italian can read the full guide here: La Grande Guida a BitTorrent.
manicapital.com team welcomes hints, tips and tricks to make the guide even better: comments can be left using the guide own commenting system (free registration required).

Friday March 3rd - qBittorrent v release

qBittorrent v was released. There are a few WebUI security fixes.
This will be the last release in the vx series. Next release will have a new icon theme(at least) and will drop Qt4 support. Also Qt seems to be the last release supporting Windows XP. It is unknown how long I am going to still support it.

  • FEATURE: Always show progress and remaining bytes for unselected files. (sledgehammer)
  • FEATURE: Allow to change priority for unselected files through the combobox like it is done via the context menu. (sledgehammer)
  • FEATURE: Remove settings to exchange trackers. It wasn't used by non-libtorrent clients. Also it has a privacy risk and you might be DDoSing someone. (sledgehammer)
  • FEATURE: Put temp files in .qBittorrent directory. Closes # (Chocobo1)
  • FEATURE: Use the numbers from tracker scrape response. Closes #, # (Chocobo1)
  • FEATURE: Implement category filter widget. Show categories in tree mode when subcategories are enabled. (glassez)
  • FEATURE: Allow to toggle columns in searchtab (thalieht)
  • FEATURE: PeerList: allow to hide zero values for the "uploaded" and "downloaded" columns (thalieht)
  • FEATURE: Display more information in tracker tab (ngosang)
  • FEATURE: Use Ctrl+F to search torrents. Closes # (Tim Delaney)
  • FEATURE: Transferlist: add hotkeys for double click and recheck selected torrents (thalieht)
  • FEATURE: Add hotkey for execution log tab, Trackerlist, Peerlist etc (thalieht)
  • FEATURE: Separate seeds from peers for DHT, PeX and LSD (thalieht)
  • BUGFIX: Do not remove added files unconditionally. Closes # (Eugene Shalygin)
  • BUGFIX: Ignore mouse wheel events in Advanced Settings. Closes # (Chocobo1)
  • BUGFIX: Add queue repair code. It should fix missing torrents after restarting. (Eugene Shalygin, nxd4)
  • BUGFIX: Fetch torrent status when generating final fastresume data. It should fix missing torrents after restarting. (Eugene Shalygin)
  • BUGFIX: Fix queue overload for add torrent at session start. It should fix missing torrents after restarting. (falco)
  • BUGFIX: After files relocate, don't remove the old folder even if it is empty. (Chocobo1)
  • BUGFIX: Fix finding 'English' item in language dropdown menu when an unrecognized locale is requested. Closes # (sledgehammer)
  • BUGIFX: Speedlimitdlg: raise slider default value to Closes # (Chocobo1)
  • BUGFIX: TransferListWidget: keep columns width even if they are hidden on qBittorrent startup (unless something goes wrong) (thalieht)
  • BUGFIX: fix index overflow for torrents with invalid meta data or empty progress (Falco)
  • BUGFIX: Immediately update torrent_status after manipulating super seeding mode. Partially fixes # (sledgehammer)
  • BUGFIX: Use case-insensitive comparison for torrent content window. Closes # (Chocobo1)
  • BUGFIX: Fixed sort order for datetime columns with empty values (closes #) (Vladimir Sinenko)
  • BUGFIX: Disable proxy in WebUI HTTP server. Closes # (Eugene Shalygin)
  • COSMETIC: Use a disabled progressbar's palette for unselected files. (sledgehammer)
  • COSMETIC: Support fallback when selecting theme icons (Eugene Shalygin)
  • COSMETIC: Do not resize SVG icons (Eugene Shalygin)
  • COSMETIC: Align text to the right in columns that handle numbers for PeerList and SearchTab (thalieht)
  • COSMETIC: Increased number of digits after the decimal point for Gibibytes and above (thalieht)
  • COSMETIC: Use non-breaking spaces between numbers and units (thalieht)
  • WEBUI: Fix proxy type bug (Oke Atime)
  • WEBUI: Use the correct value for KEY_TORRENT_NUM_COMPLETE/KEY_TORRENT_NUM_INCOMPLETE (Chocobo1)
  • WEBUI: Make torrents table scrollable horizontally (buinsky)
  • WEBUI: Make torrent peers table scrollable horizontally (buinsky)
  • WEBUI: Add tooltips to dynamic table header (buinsky)
  • WEBUI: Implement dynamic table columns resizing, reordering and hiding (buinsky)
  • WEBUI: Add some missing columns to dynamic tables (buinsky)
  • WEBUI: Make too tall menus scrollable (buinksy)
  • WEBUI: Prevent text wrapping in menus (buinsky)
  • WEBUI: Add a vertical separator between columns (buinsky)
  • WEBUI: Implement resizable progress bar in "Done" column (buinsky)
  • WEBUI: Fix scrollbar covers menu item with long text (buinsky)
  • WEBUI: Remove px limit of column width (buinsky)
  • WEBUI: Avoid lags in firefox on resizing progress column (buinsky)
  • WEBUI: Fix category in torrent upload. Closes # (ngosang)
  • WEBUI: Turn off port forwarding of WebUI by default for GUI users (Chocobo1)
  • WEBUI: Exclude insecure ciphers. Fixes security issues reported by @beardog privately. (Chocobo1)
  • WEBUI: Avoid clickjacking attacks. Fixes security issues reported by @beardog privately. (ngosang)
  • WEBUI: Add X-XSS-Protection, X-Content-Type-Options, CSP header. Fixes security issues reported by @beardog privately. (Chocobo1)
  • WEBUI: Escape various values that might contain injected html. Fixes security issues reported by @beardog privately. (Chocobo1)
  • WEBUI: Bump API_VERSION to
  • SEARCH: Update extratorrent plugin. Closes # (ngosang)
  • SEARCH: SearchTab: can now save sorting column changes (thalieht)
  • SEARCH: Use case-insensitive sort for Name column in Search tab. Closes # (Chocobo1)
  • RSS: Fix tab order in RSS downloader. Closes # (Tim Delaney)
  • RSS: Move old RSS items to separate config file. Closes # (Tim Delaney)
  • RSS: Episode filter code refactoring (Tim Delaney)
  • RSS: Allow resetting rule to no category. Closes # (Tim Delaney)
  • RSS: Save rule on enable/disable even if not selected. Closes # (Tim Delaney)
  • RSS: Allow | in RSS must contain. Closes # (Tim Delaney)
  • RSS: RSS use red text to indicate invalid filter. Closes # (Tim Delaney)
  • RSS: Allow episode zero (special) and leading zeroes in RSS episode filter. (Tim Delaney)
  • RSS: RSS parse torrent episodes like 1x01 as well as S01E Closes # (Tim Delaney)
  • RSS: RSS allow infinite range to extend beyond current season. Closes #, #, # (Tim Delaney)
Источник: [manicapital.com]
.

What’s New in the C-DIT - Soft Exam 4.1 serial key or number?

Screen Shot

System Requirements for C-DIT - Soft Exam 4.1 serial key or number

Add a Comment

Your email address will not be published. Required fields are marked *