- Add NTVersion to filter app packages and hide incompatible packages. The format is: "Max-", "Min-Max", "Min" or "Min+".
---------
Co-authored-by: Carl J. Bialorucki <[email protected]>
MSI, Inno and NSIS installers are automatically detected (also if they are nested by ExeInZip). Others can specify command line switches in the rapps-db package.
The Install/Uninstall/Modify/... buttons stay disabled by default, unless:
- For installed apps: when an app item is selected, Uninstall (and
Registry-remove) are enabled, and Modify is enabled under certain
conditions.
- For available apps:
* Modify, Uninstall and Registry-remove are always disabled.
* When an app item is selected, Install is enabled.
* Install is also enabled if there is at least one application
selected for installation (box checked), in which case the button
stays enabled even while changing across apps categories.
- Refresh the details view of the item that was just installed.
- Hint update of uninstallers list is needed.
- Restore focus correctly after installer process finishes.
CORE-17677
- Delete CAppRichEdit::SetWelcomeText() and move its implementation
inside CAppInfoDisplay::SetWelcomeText().
- Make CAppInfoDisplay::SetWelcomeText() select a suitable text,
depending on normal mode or APPWIZ mode.
- IDS_WELCOME_TITLE: Remove the double \n\n from the resources,
and add them programmatically instead.
The count makes sense only in normal mode, where we can select many apps
for bulk-install.
Split the IDS_APPS_COUNT string into it and IDS_APPS_SELECT_COUNT, and
append the number of selected apps only when we aren't in APPWIZ mode.
- Only the "Installed/Applications/Updates" items are shown.
- Delete the "Settings" item in the "File" menu.
- Remove unnecessary toolbar buttons: ID_INSTALL, ID_CHECK_ALL, ID_RESETDB.
- gui.cpp CMainWindow::ProcessWindowMessage():
Forbid the "Install" tree-view section to collapse.
However, there is currently a bug in Wine's comctl32, which ignores
the value returned from the TVN_ITEMEXPANDING notification handler
to control the collapse/expansion behaviour.
https://bugs.winehq.org/show_bug.cgi?id=53727
As a result, this feature doesn't work in ReactOS yet.
With a single database line added to applications distributed as zip/cab allows rapps.exe to act as an installer that automatically extracts the files and creates a startmenu shortcut. It can also uninstall the extracted files (and optionally other files and registry entries created by the application).
Providing quick access of Control
Panel "Add/Remove Programs".
JIRA issue: CORE-19419
- Don't download the database if
bAppwizMode in ParseCmdAndExecute
function.
- Add CAppDB::GetAvailableCount method.
- Add CMainWindow::CheckAvailable method.
- Use CMainWindow::CheckAvailable in
some cases of TVN_SELCHANGED handling.
Tries now to map the "License" text set to "Freeware" to the
LICENSE_FREEWARE "LicenseType" so it is translated correctly (LoadString).
Fixes the following:
- If only the "License" field is set in the DB, nothing will change
(this applies to 99% of the current entries in the DB).
- If both "LicenseType" and "License" are set, both will be used
(no observable change in behavior): "Open Source (GPL v2)" etc.
- If only "LicenseType" is set, it will now display just the type
"Freeware" instead of "Freeware ()".
This is done only for "Freeware", because the others (the open source ones)
have many variations. "OpenSource", "Open Source", "Open Source (GPL)" etc.
Centralize the names of the RAPPS' registry setting sub-key, and
user local settings & offline apps database sub-directories.
- Change the name of the application database sub-directory from
"rapps\rapps" to "RApps\appdb".
- Adjust the documentation to reflect this.
- Simplify CConfigParser constructor by removing GetINIFullPath().
* Just rename the 4 new files. Absolutely no other change.
* CMakeLists.txt, adapt the filenames
* Adapt all includes to make it compile
* CApplicationDB->CAppDB
* CApplicationInfo->CAppInfo
* Follow Mark Jansens good example and antipad the headers
Previously, there would be function duplication between installed and available applications.
Now this is handled with polymorphism, which allows to re-use a lot of code.
Additionally, toolbar buttons are properly disabled now.
The mutex used to guard rapps' single instance is renamed,
so that the 'new' and old rapps can be run at the same time for testing.
CORE-18459
CAvailableApps::GetFolderPath() and friends are unnecessary, since
the data they return are public members of the m_Strings global structure,
that are already being used directly by other code.