Skip to content

Commit 672030e

Browse files
authored
Merge pull request #361 from No0ne558/master
OrderCommentDialog: comment modifier ordering, keyboard redesign, and related cleanups
2 parents c06169c + b17651d commit 672030e

215 files changed

Lines changed: 13913 additions & 7087 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎CMakeLists.txt‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ endif()
6868
# https://cmake.org/cmake/help/latest/prop_tgt/CXX_STANDARD.html
6969
string(COMPARE EQUAL "${CMAKE_CXX_STANDARD}" "" no_cmake_cxx_standard_set)
7070
if(no_cmake_cxx_standard_set)
71-
set(CMAKE_CXX_STANDARD 20)
71+
set(CMAKE_CXX_STANDARD 23)
7272
set(CMAKE_CXX_STANDARD_REQUIRED ON)
7373
set(CMAKE_CXX_EXTENSIONS OFF)
7474
message(STATUS "Using default C++ standard ${CMAKE_CXX_STANDARD}")
@@ -105,9 +105,12 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error") # Don't treat warnings as
105105
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsign-compare")
106106
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshadow")
107107
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wconversion")
108-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnull-dereference")
108+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-null-dereference")
109+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-dangling-reference")
109110
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdouble-promotion")
110111
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat=2")
112+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-system-headers") # Suppress warnings from external libraries
113+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-maybe-uninitialized") # Suppress uninitialized variable warnings from external date library
111114

112115
# Performance optimizations
113116
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")

‎README.md‎

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
**The Original Graphical Touchscreen Restaurant Point of Sale Interface**
66

7-
[![Build Status](https://img.shields.io/travis/ViewTouch/viewtouch/master.svg?label=Travis)](https://travis-ci.org/ViewTouch/viewtouch/builds)
8-
[![Discord](https://img.shields.io/discord/YOUR_SERVER_ID?color=7289da&label=Discord&logo=discord&logoColor=white)](https://discord.com/invite/ySmH2U2Mzb)
7+
[![Linux builds (basic)](https://github.com/ViewTouch/viewtouch/actions/workflows/linux-simple-builds.yml/badge.svg)](https://github.com/ViewTouch/viewtouch/actions/workflows/linux-simple-builds.yml)
98
[![Join the chat at https://gitter.im/ViewTouch/viewtouch](https://badges.gitter.im/ViewTouch/viewtouch.svg)](https://gitter.im/ViewTouch/viewtouch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
109
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
10+
[![C++](https://img.shields.io/badge/C%2B%2B-23-blue)](https://en.wikipedia.org/wiki/C%2B%2B23)
1111

1212
*ViewTouch is a registered trademark in the USA*
1313

@@ -59,6 +59,23 @@ ViewTouch is a powerful, open-source Point of Sale system designed specifically
5959

6060
See the [Wiki](../../wiki) for detailed build instructions and development setup. Make sure your display is 1920 x 1080.
6161

62+
**Basic Build Instructions:**
63+
64+
```bash
65+
# Install dependencies (Ubuntu/Debian)
66+
sudo apt-get update
67+
sudo apt-get install -y build-essential cmake xorg-dev libmotif-dev libfreetype6-dev libcurl4-gnutls-dev
68+
69+
# Clone and build
70+
git clone https://github.com/ViewTouch/viewtouch.git
71+
cd viewtouch
72+
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
73+
cmake --build build -j$(nproc)
74+
cmake --build build --target install
75+
```
76+
77+
For more detailed instructions and development setup, see the [Wiki](../../wiki).
78+
6279
---
6380

6481
## Hardware
@@ -231,4 +248,4 @@ ViewTouch does not manage electronic payment processing. Please make your own de
231248

232249
Made with ❤️ by the ViewTouch community
233250

234-
</div>
251+
</div>

‎SECURITY.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ The following versions of ViewTouch are currently supported with security update
66

77
| Version | Supported | Notes |
88
| ------- | ------------------ | ----- |
9-
| 25.03.x | :white_check_mark: | Current stable release |
10-
| < 25.03 | :x: | End of life |
9+
| 26.01.x | :white_check_mark: | Current stable release |
10+
| < 26.01 | :x: | End of life |
1111

1212
**Note**: Only the latest stable release receives security updates. For the latest version information, please check the project repository.
1313

‎cdu/cdu_main.cc‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright ViewTouch, Inc., 1995, 1996, 1997, 1998, 2025
2+
* Copyright ViewTouch, Inc., 1995, 1996, 1997, 1998, 2025, 2026
33
44
* This program is free software: you can redistribute it and/or modify
55
* it under the terms of the GNU General Public License as published by
@@ -34,6 +34,7 @@
3434
#include "cdu_att.hh"
3535
#include "socket.hh"
3636
#include "utility.hh"
37+
#include "src/utils/cpp23_utils.hh"
3738

3839
#ifdef DMALLOC
3940
#include <dmalloc.h>
@@ -219,7 +220,7 @@ int main(int argc, const char* argv[])
219220
else
220221
{
221222
std::array<char, STRLENGTH> error_message{};
222-
std::snprintf(error_message.data(), error_message.size(), "Could not write %s", g_deviceName.c_str());
223+
vt::cpp23::format_to_buffer(error_message.data(), error_message.size(), "Could not write {}", g_deviceName.c_str());
223224
perror(error_message.data());
224225
}
225226
}

‎config/version.cmake‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/gen_compiler_tag.cmake)
77
set(PROJECT_IDENTIFIER ${TOP_PROJECT_UPPER})
88

99
# The version number.
10-
set (ViewTouch_VERSION_MAJOR 25)
11-
set (ViewTouch_VERSION_MINOR 03)
10+
set (ViewTouch_VERSION_MAJOR 26)
11+
set (ViewTouch_VERSION_MINOR 0)
1212
set (ViewTouch_VERSION_PATCH 1)
1313

1414
# generate short version string <MAJOR>.<MINOR>.<PATCH>

‎docs/BUILD_OPTIMIZATIONS.md‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Build Optimizations Guide
2+
3+
This page documents the new CMake options and recommended workflows for build-time optimizations.
4+
5+
Options added to the top-level `CMakeLists.txt`:
6+
7+
- `VT_ENABLE_LTO` (ON/OFF): enable interprocedural optimization support.
8+
- `VT_LTO_MODE` (off|thin|full): choose ThinLTO (default `thin`) or full LTO.
9+
- `VT_USE_CCACHE` (ON/OFF): enable use of `ccache` if present on PATH.
10+
- `VT_ENABLE_PGO` (ON/OFF): enable PGO scaffolding.
11+
- `VT_PGO_PHASE` (off|generate|use): set the PGO phase.
12+
13+
Quick examples
14+
15+
1) Configure a Release build with ThinLTO and ccache (recommended):
16+
17+
```bash
18+
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DVT_USE_CCACHE=ON -DVT_ENABLE_LTO=ON -DVT_LTO_MODE=thin
19+
cmake --build build -j$(nproc)
20+
```
21+
22+
2) PGO workflow (generate -> run -> use):
23+
24+
# Generate profile
25+
```bash
26+
cmake -S . -B build/pgo-generate -DCMAKE_BUILD_TYPE=Release -DVT_ENABLE_PGO=ON -DVT_PGO_PHASE=generate
27+
cmake --build build/pgo-generate -j$(nproc)
28+
# Run the instrumented binaries to produce profile data (exercise hotspots)
29+
./build/pgo-generate/vt_main [args...]
30+
31+
# Use profile
32+
cmake -S . -B build/pgo-use -DCMAKE_BUILD_TYPE=Release -DVT_ENABLE_PGO=ON -DVT_PGO_PHASE=use
33+
cmake --build build/pgo-use -j$(nproc)
34+
```
35+
36+
Notes and recommendations
37+
38+
- ThinLTO is the best tradeoff between link time and optimization for incremental builds.
39+
- `ccache` greatly speeds up iterative development builds — ensure it is installed if enabled.
40+
- PGO requires two phases: `generate` (build instrumented binaries, run them) and `use` (rebuild using gathered profile data).
41+
- Performance compiler flags are applied only to `Release` and `RelWithDebInfo` builds by default.
42+
43+
If you want CI integration, add a job that runs a Release build with `-DVT_ENABLE_LTO=ON -DVT_LTO_MODE=thin` and records binary size and a small smoke test. For PGO, consider a two-stage CI job or manual profiling step.

0 commit comments

Comments
 (0)