Got a user database working with authentication.
This commit is contained in:
parent
d1846c5a27
commit
7bf93623bf
276
AUTHENTICATION.md
Normal file
276
AUTHENTICATION.md
Normal file
@ -0,0 +1,276 @@
|
|||||||
|
# SCAR Chat - Authentication & Nickname System
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The SCAR Chat system now includes user authentication with database-backed nicknames. Each client must login with valid credentials before they can send messages or perform actions.
|
||||||
|
|
||||||
|
## Authentication Flow
|
||||||
|
|
||||||
|
### Server-Side
|
||||||
|
|
||||||
|
1. **Client connects** via SSL/TLS
|
||||||
|
2. **Server waits for LOGIN message**: `LOGIN:username:password`
|
||||||
|
3. **Server validates credentials** against SQLite database
|
||||||
|
4. **If valid**: Server sends `LOGIN_SUCCESS:username` and accepts messages from this client
|
||||||
|
5. **If invalid**: Server sends `LOGIN_FAILED:reason` and blocks messages
|
||||||
|
6. **All messages must come from authenticated clients** - unauthenticated clients are rejected with `ERROR:Not authenticated`
|
||||||
|
|
||||||
|
### Client-Side (Android)
|
||||||
|
|
||||||
|
1. User enters server hostname and port
|
||||||
|
2. Click "Connect" to establish SSL connection
|
||||||
|
3. After connecting, username/password fields become enabled
|
||||||
|
4. User enters credentials and clicks "Login"
|
||||||
|
5. On successful login, credentials fields are disabled and user can send messages
|
||||||
|
6. All sent messages show the authenticated username in the format: `*{HH:MM:SS}* username: message`
|
||||||
|
|
||||||
|
## Message Format
|
||||||
|
|
||||||
|
All messages now include timestamp and authenticated username:
|
||||||
|
|
||||||
|
```
|
||||||
|
*{HH:MM:SS}* username: message content
|
||||||
|
```
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `*{14:32:45}* alice: Hello everyone!`
|
||||||
|
- `*{14:32:52}* admin: System message`
|
||||||
|
- `*{14:33:01}* bob: Nice to meet you`
|
||||||
|
|
||||||
|
## Server Authentication Flow
|
||||||
|
|
||||||
|
### 1. Parse LOGIN Message
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
LOGIN:username:password
|
||||||
|
```
|
||||||
|
|
||||||
|
Server extracts username and password from the message format.
|
||||||
|
|
||||||
|
### 2. Database Lookup
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
if (global_db->authenticate_user(username, password)) {
|
||||||
|
// Authentication successful
|
||||||
|
nickname = username;
|
||||||
|
authenticated = true;
|
||||||
|
client_nicknames[ssl] = username;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The database validates the credentials by:
|
||||||
|
- Checking if user exists
|
||||||
|
- Checking if user account is active
|
||||||
|
- Computing SHA256(password + salt) and comparing with stored hash
|
||||||
|
|
||||||
|
### 3. Track Authenticated Client
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
std::map<SSL*, std::string> client_nicknames; // Track authenticated clients
|
||||||
|
std::mutex nicknames_mutex;
|
||||||
|
```
|
||||||
|
|
||||||
|
The server maintains a map of SSL connections to usernames to ensure:
|
||||||
|
- Only authenticated clients can send messages
|
||||||
|
- Camera events are attributed to correct user
|
||||||
|
- Disconnects are properly logged
|
||||||
|
|
||||||
|
### 4. Accept/Reject Messages
|
||||||
|
|
||||||
|
**Authenticated clients:**
|
||||||
|
- Messages are accepted and broadcast with nickname
|
||||||
|
- Format: `*{timestamp}* nickname: message`
|
||||||
|
- CAMERA_ENABLE/DISABLE events also use nickname
|
||||||
|
|
||||||
|
**Unauthenticated clients:**
|
||||||
|
- Messages are rejected
|
||||||
|
- Response: `ERROR:Not authenticated. Send LOGIN:username:password`
|
||||||
|
- Client must send LOGIN message first
|
||||||
|
|
||||||
|
## Server API
|
||||||
|
|
||||||
|
### Initialize with Database
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
// In main()
|
||||||
|
global_db = new Database("scar_chat.db");
|
||||||
|
if (!global_db->initialize()) {
|
||||||
|
std::cerr << "Failed to initialize database" << std::endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Per-Client Handler
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
void handle_client(SSL *ssl, int client_socket) {
|
||||||
|
std::string nickname;
|
||||||
|
bool authenticated = false;
|
||||||
|
|
||||||
|
// Wait for LOGIN message
|
||||||
|
// Validate against database
|
||||||
|
// If valid, set authenticated = true and nickname = username
|
||||||
|
|
||||||
|
// Reject all messages from unauthenticated clients
|
||||||
|
if (!authenticated) {
|
||||||
|
SSL_write(ssl, error_msg);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process authenticated messages
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Android Client Flow
|
||||||
|
|
||||||
|
### UI Components Added
|
||||||
|
|
||||||
|
- **Username Input**: Text field (disabled until connected)
|
||||||
|
- **Password Input**: Password field (disabled until connected)
|
||||||
|
- **Login Button**: Sends LOGIN:username:password (disabled until connected)
|
||||||
|
- **Connection Status**: Shows current connection and login state
|
||||||
|
|
||||||
|
### Login Handling
|
||||||
|
|
||||||
|
```java
|
||||||
|
private void attemptLogin() {
|
||||||
|
String username = usernameInput.getText().toString().trim();
|
||||||
|
String password = passwordInput.getText().toString().trim();
|
||||||
|
|
||||||
|
String loginCmd = "LOGIN:" + username + ":" + password;
|
||||||
|
chatConnection.sendMessage(loginCmd);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Response Handling
|
||||||
|
|
||||||
|
```java
|
||||||
|
@Override
|
||||||
|
public void onMessageReceived(String message) {
|
||||||
|
if (message.startsWith("LOGIN_SUCCESS:")) {
|
||||||
|
// Extract username
|
||||||
|
currentUsername = message.substring("LOGIN_SUCCESS:".length()).trim();
|
||||||
|
// Enable chat
|
||||||
|
connectionStatus.setText("Logged in as: " + currentUsername);
|
||||||
|
loginBtn.setEnabled(false);
|
||||||
|
} else if (message.startsWith("LOGIN_FAILED:")) {
|
||||||
|
// Show error
|
||||||
|
String reason = message.substring("LOGIN_FAILED:".length()).trim();
|
||||||
|
Toast.makeText(this, "Login failed: " + reason, Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Send Messages with Nickname
|
||||||
|
|
||||||
|
```java
|
||||||
|
private void sendMessage() {
|
||||||
|
if (mainActivity.getCurrentUsername().isEmpty()) {
|
||||||
|
Toast.makeText(getContext(), "Please login first", Toast.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String username = mainActivity.getCurrentUsername();
|
||||||
|
String timestamp = new SimpleDateFormat("HH:mm:ss").format(new Date());
|
||||||
|
String formattedMsg = "*{" + timestamp + "}* " + username + ": " + message;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Database User Management
|
||||||
|
|
||||||
|
### Create Users for Testing
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd build
|
||||||
|
./dbmanager register alice AlicePassword789 alice@scar.local user
|
||||||
|
./dbmanager register bob BobPassword000 bob@scar.local user
|
||||||
|
./dbmanager register admin AdminPass123 admin@scar.local admin
|
||||||
|
```
|
||||||
|
|
||||||
|
### Verify Users
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./dbmanager list
|
||||||
|
```
|
||||||
|
|
||||||
|
### Test Authentication
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./dbmanager authenticate alice AlicePassword789
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running the System
|
||||||
|
|
||||||
|
### 1. Setup Database
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd build
|
||||||
|
./dbmanager register alice AlicePassword789 alice@scar.local user
|
||||||
|
./dbmanager register bob BobPassword000 bob@scar.local user
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Start Server
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./chat_server ../certs/server.crt ../certs/server.key
|
||||||
|
```
|
||||||
|
|
||||||
|
Server output:
|
||||||
|
```
|
||||||
|
Database initialized successfully
|
||||||
|
SCAR Chat Server listening on port 42317
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Connect Android Client
|
||||||
|
|
||||||
|
1. Open SCAR Chat app
|
||||||
|
2. Enter server hostname (e.g., "192.168.1.100")
|
||||||
|
3. Enter port (42317)
|
||||||
|
4. Click "Connect"
|
||||||
|
5. Username/Password fields become enabled
|
||||||
|
6. Enter credentials: alice / AlicePassword789
|
||||||
|
7. Click "Login"
|
||||||
|
8. Send messages - they will appear with nickname "alice"
|
||||||
|
|
||||||
|
### 4. Verify Server Logs
|
||||||
|
|
||||||
|
```
|
||||||
|
User authenticated: alice (FD: 4)
|
||||||
|
User authenticated: bob (FD: 5)
|
||||||
|
Received: *{14:32:45}* alice: Hello Bob!
|
||||||
|
```
|
||||||
|
|
||||||
|
## Security Considerations
|
||||||
|
|
||||||
|
1. **Passwords are NOT transmitted in plain text** - TLS/SSL encrypts all traffic
|
||||||
|
2. **Passwords are stored securely** - SHA256 with unique salt per user
|
||||||
|
3. **Each connection is independent** - disconnecting doesn't affect other users
|
||||||
|
4. **Unauthenticated clients are isolated** - cannot access chat or perform actions
|
||||||
|
|
||||||
|
## Error Handling
|
||||||
|
|
||||||
|
### Server-Side Errors
|
||||||
|
|
||||||
|
| Message | Meaning |
|
||||||
|
|---------|---------|
|
||||||
|
| `LOGIN_FAILED:Invalid credentials` | Username not found or password incorrect |
|
||||||
|
| `ERROR:Not authenticated` | Client tried to send message without logging in |
|
||||||
|
| `ERROR:Account inactive` | User account has been deactivated |
|
||||||
|
|
||||||
|
### Client-Side Errors
|
||||||
|
|
||||||
|
| Error | Resolution |
|
||||||
|
|-------|-----------|
|
||||||
|
| "Not connected to server" | Click Connect first |
|
||||||
|
| "Login failed: Invalid credentials" | Check username/password spelling |
|
||||||
|
| "Please login first" | User must complete login before sending messages |
|
||||||
|
|
||||||
|
## Future Enhancements
|
||||||
|
|
||||||
|
- Session tokens with expiration
|
||||||
|
- Multiple devices per user
|
||||||
|
- Rate limiting per user
|
||||||
|
- Activity logging
|
||||||
|
- User profile information
|
||||||
|
- Message history per user
|
||||||
|
- Direct messaging between users
|
||||||
@ -17,7 +17,7 @@
|
|||||||
android:theme="@style/Theme.SCARChat">
|
android:theme="@style/Theme.SCARChat">
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".LoginActivity"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
@ -25,6 +25,10 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name=".MainActivity"
|
||||||
|
android:exported="false" />
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
@ -54,14 +54,18 @@ public class ChatConnection {
|
|||||||
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
||||||
|
|
||||||
connected = true;
|
connected = true;
|
||||||
|
if (listener != null) {
|
||||||
listener.onConnected();
|
listener.onConnected();
|
||||||
|
}
|
||||||
|
|
||||||
// Start reading messages
|
// Start reading messages
|
||||||
readMessages();
|
readMessages();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
connected = false;
|
connected = false;
|
||||||
|
if (listener != null) {
|
||||||
listener.onError("Connection failed: " + e.getMessage());
|
listener.onError("Connection failed: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}).start();
|
}).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,10 +74,12 @@ public class ChatConnection {
|
|||||||
try {
|
try {
|
||||||
String message;
|
String message;
|
||||||
while (connected && (message = in.readLine()) != null) {
|
while (connected && (message = in.readLine()) != null) {
|
||||||
|
if (listener != null) {
|
||||||
listener.onMessageReceived(message);
|
listener.onMessageReceived(message);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
if (connected) {
|
if (connected && listener != null) {
|
||||||
listener.onError("Read error: " + e.getMessage());
|
listener.onError("Read error: " + e.getMessage());
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
@ -92,12 +98,16 @@ public class ChatConnection {
|
|||||||
out.flush();
|
out.flush();
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
if (listener != null) {
|
||||||
listener.onError("Failed to send message: " + e.getMessage());
|
listener.onError("Failed to send message: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}).start();
|
}).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disconnect() {
|
public void disconnect() {
|
||||||
|
// Run on background thread to avoid NetworkOnMainThreadException
|
||||||
|
new Thread(() -> {
|
||||||
connected = false;
|
connected = false;
|
||||||
try {
|
try {
|
||||||
if (out != null) out.close();
|
if (out != null) out.close();
|
||||||
@ -106,8 +116,11 @@ public class ChatConnection {
|
|||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
if (listener != null) {
|
||||||
listener.onDisconnected();
|
listener.onDisconnected();
|
||||||
}
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isConnected() {
|
public boolean isConnected() {
|
||||||
return connected;
|
return connected;
|
||||||
|
|||||||
@ -6,13 +6,17 @@ import android.view.View;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.*;
|
import android.widget.*;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
public class ChatFragment extends Fragment {
|
public class ChatFragment extends Fragment {
|
||||||
private TextSwitcher chatDisplay;
|
private TextView chatDisplay;
|
||||||
private EditText messageInput;
|
private EditText messageInput;
|
||||||
private Button sendBtn, bgColorBtn, textColorBtn;
|
private Button sendBtn, bgColorBtn, textColorBtn;
|
||||||
private SeekBar transparencySlider;
|
private SeekBar transparencySlider;
|
||||||
private TextView transparencyValue;
|
private TextView transparencyValue;
|
||||||
|
private ScrollView chatScroll;
|
||||||
private MainActivity mainActivity;
|
private MainActivity mainActivity;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -30,6 +34,10 @@ public class ChatFragment extends Fragment {
|
|||||||
textColorBtn = root.findViewById(R.id.text_color_btn);
|
textColorBtn = root.findViewById(R.id.text_color_btn);
|
||||||
transparencySlider = root.findViewById(R.id.transparency_slider);
|
transparencySlider = root.findViewById(R.id.transparency_slider);
|
||||||
transparencyValue = root.findViewById(R.id.transparency_value);
|
transparencyValue = root.findViewById(R.id.transparency_value);
|
||||||
|
chatScroll = root.findViewById(R.id.chat_scroll);
|
||||||
|
|
||||||
|
// Make chat display read-only and scrollable
|
||||||
|
chatDisplay.setMovementMethod(new android.text.method.ScrollingMovementMethod());
|
||||||
|
|
||||||
// Send button
|
// Send button
|
||||||
sendBtn.setOnClickListener(v -> sendMessage());
|
sendBtn.setOnClickListener(v -> sendMessage());
|
||||||
@ -61,25 +69,59 @@ public class ChatFragment extends Fragment {
|
|||||||
private void sendMessage() {
|
private void sendMessage() {
|
||||||
String message = messageInput.getText().toString().trim();
|
String message = messageInput.getText().toString().trim();
|
||||||
if (!message.isEmpty()) {
|
if (!message.isEmpty()) {
|
||||||
if (mainActivity != null && mainActivity.getChatConnection().isConnected()) {
|
if (mainActivity == null) {
|
||||||
|
Toast.makeText(getContext(), "Activity not initialized", Toast.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ChatConnection conn = mainActivity.getChatConnection();
|
||||||
|
if (conn == null) {
|
||||||
|
Toast.makeText(getContext(), "Connection not initialized", Toast.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!conn.isConnected()) {
|
||||||
|
Toast.makeText(getContext(), "Not connected to server", Toast.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String username = mainActivity.getCurrentUsername();
|
||||||
|
if (username == null || username.isEmpty()) {
|
||||||
|
Toast.makeText(getContext(), "Please login first", Toast.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mainActivity.getChatConnection().sendMessage(message);
|
conn.sendMessage(message);
|
||||||
addMessage("[You] " + message);
|
// Format message with timestamp and current username
|
||||||
|
String timestamp = new SimpleDateFormat("HH:mm:ss", Locale.US).format(new Date());
|
||||||
|
String formattedMsg = "*{" + timestamp + "}* " + username + ": " + message;
|
||||||
|
addMessage(formattedMsg);
|
||||||
messageInput.setText("");
|
messageInput.setText("");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Toast.makeText(getContext(), "Error sending message: " + e.getMessage(), Toast.LENGTH_SHORT).show();
|
Toast.makeText(getContext(), "Error sending message: " + e.getMessage(), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
Toast.makeText(getContext(), "Not connected", Toast.LENGTH_SHORT).show();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addMessage(String message) {
|
public void addMessage(String message) {
|
||||||
|
try {
|
||||||
if (chatDisplay != null) {
|
if (chatDisplay != null) {
|
||||||
// Simple text view update (for demo)
|
// Append message to existing text
|
||||||
// In production, use RecyclerView for better performance
|
String currentText = chatDisplay.getText().toString();
|
||||||
|
if (currentText.isEmpty()) {
|
||||||
chatDisplay.setText(message);
|
chatDisplay.setText(message);
|
||||||
|
} else {
|
||||||
|
chatDisplay.append("\n" + message);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Auto-scroll to bottom
|
||||||
|
if (chatScroll != null) {
|
||||||
|
chatScroll.post(() -> chatScroll.fullScroll(View.FOCUS_DOWN));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,131 @@
|
|||||||
|
package com.scar.chat;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.EditText;
|
||||||
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
|
public class LoginActivity extends AppCompatActivity {
|
||||||
|
private EditText serverInput, portInput, usernameInput, passwordInput;
|
||||||
|
private Button loginButton;
|
||||||
|
private TextView infoText;
|
||||||
|
private ChatConnection chatConnection;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
setContentView(R.layout.activity_login);
|
||||||
|
|
||||||
|
// Initialize UI components
|
||||||
|
serverInput = findViewById(R.id.server_input);
|
||||||
|
portInput = findViewById(R.id.port_input);
|
||||||
|
usernameInput = findViewById(R.id.username_input);
|
||||||
|
passwordInput = findViewById(R.id.password_input);
|
||||||
|
loginButton = findViewById(R.id.login_button);
|
||||||
|
infoText = findViewById(R.id.info_text);
|
||||||
|
|
||||||
|
// Set default values
|
||||||
|
serverInput.setText("localhost");
|
||||||
|
portInput.setText("42317");
|
||||||
|
|
||||||
|
// Initialize chat connection with callback
|
||||||
|
chatConnection = new ChatConnection(new ChatConnection.ConnectionListener() {
|
||||||
|
@Override
|
||||||
|
public void onConnected() {
|
||||||
|
runOnUiThread(() -> {
|
||||||
|
infoText.setText("Connected to server. Sending credentials...");
|
||||||
|
sendLogin();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDisconnected() {
|
||||||
|
runOnUiThread(() -> {
|
||||||
|
infoText.setText("Disconnected");
|
||||||
|
loginButton.setEnabled(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMessageReceived(String message) {
|
||||||
|
runOnUiThread(() -> {
|
||||||
|
if (message.startsWith("LOGIN_SUCCESS:")) {
|
||||||
|
String username = message.substring("LOGIN_SUCCESS:".length()).trim();
|
||||||
|
Toast.makeText(LoginActivity.this, "Login successful!", Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
|
// Start MainActivity and pass the username
|
||||||
|
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
|
||||||
|
intent.putExtra("username", username);
|
||||||
|
intent.putExtra("server", serverInput.getText().toString());
|
||||||
|
intent.putExtra("port", portInput.getText().toString());
|
||||||
|
startActivity(intent);
|
||||||
|
finish();
|
||||||
|
} else if (message.startsWith("LOGIN_FAILED:")) {
|
||||||
|
String reason = message.substring("LOGIN_FAILED:".length()).trim();
|
||||||
|
infoText.setText("Login failed: " + reason);
|
||||||
|
chatConnection.disconnect();
|
||||||
|
loginButton.setEnabled(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(String error) {
|
||||||
|
runOnUiThread(() -> {
|
||||||
|
infoText.setText("Error: " + error);
|
||||||
|
chatConnection.disconnect();
|
||||||
|
loginButton.setEnabled(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Login button click listener
|
||||||
|
loginButton.setOnClickListener(v -> onLoginClick());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onLoginClick() {
|
||||||
|
String server = serverInput.getText().toString().trim();
|
||||||
|
String portStr = portInput.getText().toString().trim();
|
||||||
|
String username = usernameInput.getText().toString().trim();
|
||||||
|
String password = passwordInput.getText().toString().trim();
|
||||||
|
|
||||||
|
// Validate inputs
|
||||||
|
if (server.isEmpty() || portStr.isEmpty() || username.isEmpty() || password.isEmpty()) {
|
||||||
|
Toast.makeText(this, "Please fill in all fields", Toast.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
int port = Integer.parseInt(portStr);
|
||||||
|
|
||||||
|
// Disable button during login
|
||||||
|
loginButton.setEnabled(false);
|
||||||
|
infoText.setText("Connecting to server...");
|
||||||
|
|
||||||
|
// Connect to server
|
||||||
|
chatConnection.connect(server, port);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
Toast.makeText(this, "Invalid port number", Toast.LENGTH_SHORT).show();
|
||||||
|
loginButton.setEnabled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendLogin() {
|
||||||
|
String username = usernameInput.getText().toString().trim();
|
||||||
|
String password = passwordInput.getText().toString().trim();
|
||||||
|
String loginCmd = "LOGIN:" + username + ":" + password;
|
||||||
|
chatConnection.sendMessage(loginCmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
// Disconnect on background thread to avoid NetworkOnMainThreadException
|
||||||
|
if (chatConnection != null && chatConnection.isConnected()) {
|
||||||
|
new Thread(chatConnection::disconnect).start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -19,14 +19,16 @@ import androidx.fragment.app.Fragment;
|
|||||||
import com.google.android.material.tabs.TabLayout;
|
import com.google.android.material.tabs.TabLayout;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity implements ChatConnection.ConnectionListener {
|
public class MainActivity extends AppCompatActivity implements ChatConnection.ConnectionListener {
|
||||||
private EditText hostInput, portInput;
|
|
||||||
private Button connectBtn;
|
|
||||||
private ChatConnection chatConnection;
|
private ChatConnection chatConnection;
|
||||||
private ViewPager2 tabPager;
|
private ViewPager2 tabPager;
|
||||||
private TabAdapter tabAdapter;
|
private TabAdapter tabAdapter;
|
||||||
private TabLayout tabLayout;
|
private TabLayout tabLayout;
|
||||||
|
private TextView connectionStatus;
|
||||||
private int currentBgColor = Color.WHITE;
|
private int currentBgColor = Color.WHITE;
|
||||||
private int currentTextColor = Color.BLACK;
|
private int currentTextColor = Color.BLACK;
|
||||||
|
private String currentUsername = "";
|
||||||
|
private String serverAddress = "";
|
||||||
|
private int serverPort = 0;
|
||||||
|
|
||||||
private static final int PERMISSION_REQUEST_CODE = 100;
|
private static final int PERMISSION_REQUEST_CODE = 100;
|
||||||
|
|
||||||
@ -35,13 +37,33 @@ public class MainActivity extends AppCompatActivity implements ChatConnection.Co
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
|
||||||
|
// Get authenticated username and server info from LoginActivity
|
||||||
|
currentUsername = getIntent().getStringExtra("username");
|
||||||
|
serverAddress = getIntent().getStringExtra("server");
|
||||||
|
String portStr = getIntent().getStringExtra("port");
|
||||||
|
|
||||||
|
// Handle null values safely
|
||||||
|
if (currentUsername == null || currentUsername.isEmpty()) {
|
||||||
|
currentUsername = "Unknown";
|
||||||
|
}
|
||||||
|
if (serverAddress == null || serverAddress.isEmpty()) {
|
||||||
|
serverAddress = "localhost";
|
||||||
|
}
|
||||||
|
if (portStr == null || portStr.isEmpty()) {
|
||||||
|
serverPort = 42317;
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
serverPort = Integer.parseInt(portStr);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
serverPort = 42317;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Request permissions
|
// Request permissions
|
||||||
requestPermissions();
|
requestPermissions();
|
||||||
|
|
||||||
// Initialize UI components
|
// Initialize UI components
|
||||||
hostInput = findViewById(R.id.host_input);
|
connectionStatus = findViewById(R.id.connection_status);
|
||||||
portInput = findViewById(R.id.port_input);
|
|
||||||
connectBtn = findViewById(R.id.connect_btn);
|
|
||||||
tabPager = findViewById(R.id.tab_pager);
|
tabPager = findViewById(R.id.tab_pager);
|
||||||
tabLayout = findViewById(R.id.tab_layout);
|
tabLayout = findViewById(R.id.tab_layout);
|
||||||
|
|
||||||
@ -60,15 +82,13 @@ public class MainActivity extends AppCompatActivity implements ChatConnection.Co
|
|||||||
}
|
}
|
||||||
}).attach();
|
}).attach();
|
||||||
|
|
||||||
// Set default values
|
connectionStatus.setText("Logged in as: " + currentUsername);
|
||||||
hostInput.setText("localhost");
|
|
||||||
portInput.setText("42317");
|
|
||||||
|
|
||||||
// Connect button listener
|
// Initialize chat connection after fragments are initialized
|
||||||
connectBtn.setOnClickListener(v -> toggleConnection());
|
tabPager.post(() -> {
|
||||||
|
|
||||||
// Initialize chat connection
|
|
||||||
chatConnection = new ChatConnection(this);
|
chatConnection = new ChatConnection(this);
|
||||||
|
chatConnection.connect(serverAddress, serverPort);
|
||||||
|
});
|
||||||
|
|
||||||
// Apply initial colors
|
// Apply initial colors
|
||||||
applyTheme();
|
applyTheme();
|
||||||
@ -89,47 +109,60 @@ public class MainActivity extends AppCompatActivity implements ChatConnection.Co
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void toggleConnection() {
|
|
||||||
if (chatConnection.isConnected()) {
|
|
||||||
chatConnection.disconnect();
|
|
||||||
} else {
|
|
||||||
String host = hostInput.getText().toString();
|
|
||||||
int port = Integer.parseInt(portInput.getText().toString());
|
|
||||||
chatConnection.connect(host, port);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConnected() {
|
public void onConnected() {
|
||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
connectBtn.setText("Disconnect");
|
if (connectionStatus != null) {
|
||||||
Toast.makeText(this, "Connected!", Toast.LENGTH_SHORT).show();
|
connectionStatus.setText("Connected to server");
|
||||||
|
}
|
||||||
|
Toast.makeText(MainActivity.this, "Connected to server", Toast.LENGTH_SHORT).show();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisconnected() {
|
public void onDisconnected() {
|
||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
connectBtn.setText("Connect");
|
connectionStatus.setText("Disconnected");
|
||||||
Toast.makeText(this, "Disconnected", Toast.LENGTH_SHORT).show();
|
Toast.makeText(MainActivity.this, "Disconnected from server", Toast.LENGTH_SHORT).show();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMessageReceived(String message) {
|
public void onMessageReceived(String message) {
|
||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
if (tabAdapter != null) {
|
try {
|
||||||
ChatFragment chatFrag = tabAdapter.getChatFragment();
|
// Handle error messages
|
||||||
if (chatFrag != null) {
|
if (message.startsWith("ERROR:")) {
|
||||||
chatFrag.addMessage(message);
|
String error = message.substring("ERROR:".length()).trim();
|
||||||
|
Toast.makeText(MainActivity.this, "Error: " + error, Toast.LENGTH_SHORT).show();
|
||||||
|
} else {
|
||||||
|
// Regular chat message - display in chat fragment
|
||||||
|
if (tabPager != null && tabPager.getAdapter() != null) {
|
||||||
|
TabAdapter adapter = (TabAdapter) tabPager.getAdapter();
|
||||||
|
Fragment fragment = adapter.getFragment(0);
|
||||||
|
if (fragment instanceof ChatFragment && fragment.isAdded()) {
|
||||||
|
((ChatFragment) fragment).addMessage(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(String error) {
|
public void onError(String error) {
|
||||||
runOnUiThread(() -> Toast.makeText(this, error, Toast.LENGTH_LONG).show());
|
runOnUiThread(() -> {
|
||||||
|
if (connectionStatus != null) {
|
||||||
|
connectionStatus.setText("Error: " + error);
|
||||||
|
}
|
||||||
|
Toast.makeText(MainActivity.this, "Connection error: " + error, Toast.LENGTH_SHORT).show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCurrentUsername() {
|
||||||
|
return currentUsername;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void applyTheme() {
|
private void applyTheme() {
|
||||||
@ -177,5 +210,16 @@ public class MainActivity extends AppCompatActivity implements ChatConnection.Co
|
|||||||
ChatFragment getChatFragment() {
|
ChatFragment getChatFragment() {
|
||||||
return chatFragment;
|
return chatFragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Fragment getFragment(int position) {
|
||||||
|
switch (position) {
|
||||||
|
case 0:
|
||||||
|
return chatFragment;
|
||||||
|
case 1:
|
||||||
|
return videoFragment;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
65
android_client/app/src/main/res/layout/activity_login.xml
Normal file
65
android_client/app/src/main/res/layout/activity_login.xml
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:gravity="center">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="SCAR Chat"
|
||||||
|
android:textSize="32sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:gravity="center"
|
||||||
|
android:layout_marginBottom="32dp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/server_input"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="Server Address"
|
||||||
|
android:inputType="text"
|
||||||
|
android:layout_marginBottom="12dp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/port_input"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="Server Port"
|
||||||
|
android:inputType="number"
|
||||||
|
android:layout_marginBottom="12dp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/username_input"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="Username"
|
||||||
|
android:inputType="text"
|
||||||
|
android:layout_marginBottom="12dp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/password_input"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="Password"
|
||||||
|
android:inputType="textPassword"
|
||||||
|
android:layout_marginBottom="24dp" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/login_button"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Login"
|
||||||
|
android:layout_marginBottom="16dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/info_text"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textAlignment="center"
|
||||||
|
android:textColor="#666666"
|
||||||
|
android:layout_marginTop="16dp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
@ -6,43 +6,21 @@
|
|||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="16dp">
|
android:padding="16dp">
|
||||||
|
|
||||||
<!-- Connection controls -->
|
<!-- Connection status -->
|
||||||
<LinearLayout
|
<TextView
|
||||||
|
android:id="@+id/connection_status"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"
|
android:text="Logged in"
|
||||||
android:spacing="8dp">
|
android:gravity="center"
|
||||||
|
android:textStyle="bold"
|
||||||
<EditText
|
android:layout_marginBottom="8dp" />
|
||||||
android:id="@+id/host_input"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:hint="@string/host_hint"
|
|
||||||
android:inputType="text" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/port_input"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:hint="@string/port_hint"
|
|
||||||
android:inputType="number" />
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/connect_btn"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/connect_btn" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<!-- Tab layout -->
|
<!-- Tab layout -->
|
||||||
<com.google.android.material.tabs.TabLayout
|
<com.google.android.material.tabs.TabLayout
|
||||||
android:id="@+id/tab_layout"
|
android:id="@+id/tab_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
|
||||||
app:tabMode="fixed" />
|
app:tabMode="fixed" />
|
||||||
|
|
||||||
<!-- View pager for tab content -->
|
<!-- View pager for tab content -->
|
||||||
|
|||||||
@ -5,26 +5,23 @@
|
|||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="16dp">
|
android:padding="16dp">
|
||||||
|
|
||||||
<!-- Chat display -->
|
<!-- Chat display with scroll view -->
|
||||||
<TextSwitcher
|
<ScrollView
|
||||||
android:id="@+id/chat_display"
|
android:id="@+id/chat_scroll"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/chat_display"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
android:background="@android:color/white"
|
android:background="@android:color/white"
|
||||||
android:padding="8dp">
|
android:padding="8dp"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
<TextView
|
</ScrollView>
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:textColor="@android:color/black" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:textColor="@android:color/black" />
|
|
||||||
|
|
||||||
</TextSwitcher>
|
|
||||||
|
|
||||||
<!-- Message input -->
|
<!-- Message input -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
|||||||
@ -41,83 +41,77 @@ Daemon will be stopped at the end of the build
|
|||||||
> Task :app:createDebugApkListingFileRedirect UP-TO-DATE
|
> Task :app:createDebugApkListingFileRedirect UP-TO-DATE
|
||||||
> Task :app:assembleDebug UP-TO-DATE
|
> Task :app:assembleDebug UP-TO-DATE
|
||||||
> Task :app:preReleaseBuild UP-TO-DATE
|
> Task :app:preReleaseBuild UP-TO-DATE
|
||||||
> Task :app:javaPreCompileRelease
|
> Task :app:javaPreCompileRelease UP-TO-DATE
|
||||||
> Task :app:generateReleaseResValues
|
> Task :app:checkReleaseAarMetadata UP-TO-DATE
|
||||||
> Task :app:mapReleaseSourceSetPaths
|
> Task :app:generateReleaseResValues UP-TO-DATE
|
||||||
> Task :app:generateReleaseResources
|
> Task :app:mapReleaseSourceSetPaths UP-TO-DATE
|
||||||
> Task :app:checkReleaseAarMetadata
|
> Task :app:generateReleaseResources UP-TO-DATE
|
||||||
> Task :app:packageReleaseResources
|
> Task :app:mergeReleaseResources UP-TO-DATE
|
||||||
> Task :app:createReleaseCompatibleScreenManifests
|
> Task :app:packageReleaseResources UP-TO-DATE
|
||||||
> Task :app:extractDeepLinksRelease
|
> Task :app:parseReleaseLocalResources UP-TO-DATE
|
||||||
> Task :app:parseReleaseLocalResources
|
> Task :app:createReleaseCompatibleScreenManifests UP-TO-DATE
|
||||||
> Task :app:processReleaseMainManifest
|
> Task :app:extractDeepLinksRelease UP-TO-DATE
|
||||||
> Task :app:mergeReleaseResources
|
> Task :app:processReleaseMainManifest UP-TO-DATE
|
||||||
> Task :app:processReleaseManifest
|
> Task :app:processReleaseManifest UP-TO-DATE
|
||||||
> Task :app:extractProguardFiles
|
> Task :app:processReleaseManifestForPackage UP-TO-DATE
|
||||||
> Task :app:mergeReleaseJniLibFolders
|
> Task :app:processReleaseResources UP-TO-DATE
|
||||||
> Task :app:mergeReleaseNativeLibs
|
> Task :app:compileReleaseJavaWithJavac UP-TO-DATE
|
||||||
> Task :app:desugarReleaseFileDependencies
|
> Task :app:extractProguardFiles UP-TO-DATE
|
||||||
> Task :app:checkReleaseDuplicateClasses
|
> Task :app:generateReleaseLintVitalReportModel UP-TO-DATE
|
||||||
|
> Task :app:lintVitalAnalyzeRelease UP-TO-DATE
|
||||||
> Task :app:stripReleaseDebugSymbols
|
|
||||||
Unable to strip the following libraries, packaging them as they are: libimage_processing_util_jni.so.
|
|
||||||
|
|
||||||
> Task :app:mergeReleaseArtProfile
|
|
||||||
> Task :app:extractReleaseNativeSymbolTables
|
|
||||||
> Task :app:mergeReleaseNativeDebugMetadata NO-SOURCE
|
|
||||||
> Task :app:mergeReleaseShaders
|
|
||||||
> Task :app:compileReleaseShaders NO-SOURCE
|
|
||||||
> Task :app:generateReleaseAssets UP-TO-DATE
|
|
||||||
> Task :app:mergeReleaseAssets
|
|
||||||
> Task :app:compressReleaseAssets
|
|
||||||
> Task :app:processReleaseJavaRes NO-SOURCE
|
|
||||||
> Task :app:collectReleaseDependencies
|
|
||||||
> Task :app:sdkReleaseDependencyData
|
|
||||||
> Task :app:writeReleaseAppMetadata
|
|
||||||
> Task :app:writeReleaseSigningConfigVersions
|
|
||||||
> Task :app:preDebugAndroidTestBuild SKIPPED
|
|
||||||
> Task :app:generateDebugAndroidTestResValues
|
|
||||||
> Task :app:preDebugUnitTestBuild UP-TO-DATE
|
|
||||||
> Task :app:processDebugUnitTestJavaRes NO-SOURCE
|
|
||||||
> Task :app:preReleaseUnitTestBuild UP-TO-DATE
|
|
||||||
> Task :app:javaPreCompileDebugUnitTest
|
|
||||||
> Task :app:javaPreCompileReleaseUnitTest
|
|
||||||
> Task :app:processReleaseUnitTestJavaRes NO-SOURCE
|
|
||||||
> Task :app:processReleaseManifestForPackage
|
|
||||||
> Task :app:bundleDebugClassesToCompileJar
|
|
||||||
> Task :app:bundleDebugClassesToRuntimeJar
|
|
||||||
> Task :app:mergeReleaseJavaResource
|
|
||||||
> Task :app:generateDebugLintReportModel
|
|
||||||
> Task :app:compileDebugUnitTestJavaWithJavac NO-SOURCE
|
|
||||||
> Task :app:testDebugUnitTest NO-SOURCE
|
|
||||||
> Task :app:processReleaseResources
|
|
||||||
> Task :app:compileReleaseJavaWithJavac
|
|
||||||
> Task :app:generateReleaseLintVitalReportModel
|
|
||||||
> Task :app:dexBuilderRelease
|
|
||||||
> Task :app:mergeReleaseGlobalSynthetics
|
|
||||||
> Task :app:bundleReleaseClassesToRuntimeJar
|
|
||||||
> Task :app:bundleReleaseClassesToCompileJar
|
|
||||||
> Task :app:compileReleaseUnitTestJavaWithJavac NO-SOURCE
|
|
||||||
> Task :app:testReleaseUnitTest NO-SOURCE
|
|
||||||
> Task :app:test UP-TO-DATE
|
|
||||||
> Task :app:optimizeReleaseResources
|
|
||||||
> Task :app:mergeExtDexRelease
|
|
||||||
> Task :app:mergeDexRelease
|
|
||||||
> Task :app:compileReleaseArtProfile
|
|
||||||
> Task :app:packageRelease
|
|
||||||
> Task :app:createReleaseApkListingFileRedirect
|
|
||||||
> Task :app:lintVitalAnalyzeRelease
|
|
||||||
> Task :app:lintVitalReportRelease SKIPPED
|
> Task :app:lintVitalReportRelease SKIPPED
|
||||||
> Task :app:lintVitalRelease SKIPPED
|
> Task :app:lintVitalRelease SKIPPED
|
||||||
> Task :app:assembleRelease
|
> Task :app:mergeReleaseJniLibFolders UP-TO-DATE
|
||||||
> Task :app:assemble
|
> Task :app:mergeReleaseNativeLibs UP-TO-DATE
|
||||||
> Task :app:lintAnalyzeDebug
|
> Task :app:stripReleaseDebugSymbols UP-TO-DATE
|
||||||
|
> Task :app:extractReleaseNativeSymbolTables UP-TO-DATE
|
||||||
> Task :app:lintReportDebug
|
> Task :app:mergeReleaseNativeDebugMetadata NO-SOURCE
|
||||||
Wrote HTML report to file:///home/ganome/Projects/SCAR-719/repos/scar-chat/android_client/app/build/reports/lint-results-debug.html
|
> Task :app:checkReleaseDuplicateClasses UP-TO-DATE
|
||||||
|
> Task :app:dexBuilderRelease UP-TO-DATE
|
||||||
|
> Task :app:desugarReleaseFileDependencies UP-TO-DATE
|
||||||
|
> Task :app:mergeExtDexRelease UP-TO-DATE
|
||||||
|
> Task :app:mergeDexRelease UP-TO-DATE
|
||||||
|
> Task :app:mergeReleaseArtProfile UP-TO-DATE
|
||||||
|
> Task :app:mergeReleaseGlobalSynthetics UP-TO-DATE
|
||||||
|
> Task :app:compileReleaseArtProfile UP-TO-DATE
|
||||||
|
> Task :app:mergeReleaseShaders UP-TO-DATE
|
||||||
|
> Task :app:compileReleaseShaders NO-SOURCE
|
||||||
|
> Task :app:generateReleaseAssets UP-TO-DATE
|
||||||
|
> Task :app:mergeReleaseAssets UP-TO-DATE
|
||||||
|
> Task :app:compressReleaseAssets UP-TO-DATE
|
||||||
|
> Task :app:processReleaseJavaRes NO-SOURCE
|
||||||
|
> Task :app:mergeReleaseJavaResource UP-TO-DATE
|
||||||
|
> Task :app:optimizeReleaseResources UP-TO-DATE
|
||||||
|
> Task :app:collectReleaseDependencies UP-TO-DATE
|
||||||
|
> Task :app:sdkReleaseDependencyData UP-TO-DATE
|
||||||
|
> Task :app:writeReleaseAppMetadata UP-TO-DATE
|
||||||
|
> Task :app:writeReleaseSigningConfigVersions UP-TO-DATE
|
||||||
|
> Task :app:packageRelease UP-TO-DATE
|
||||||
|
> Task :app:createReleaseApkListingFileRedirect UP-TO-DATE
|
||||||
|
> Task :app:assembleRelease UP-TO-DATE
|
||||||
|
> Task :app:assemble UP-TO-DATE
|
||||||
|
> Task :app:bundleDebugClassesToCompileJar UP-TO-DATE
|
||||||
|
> Task :app:preDebugAndroidTestBuild SKIPPED
|
||||||
|
> Task :app:generateDebugAndroidTestResValues UP-TO-DATE
|
||||||
|
> Task :app:generateDebugLintReportModel UP-TO-DATE
|
||||||
|
> Task :app:lintAnalyzeDebug UP-TO-DATE
|
||||||
|
> Task :app:lintReportDebug UP-TO-DATE
|
||||||
> Task :app:lintDebug
|
> Task :app:lintDebug
|
||||||
> Task :app:lint
|
> Task :app:lint
|
||||||
|
> Task :app:bundleDebugClassesToRuntimeJar UP-TO-DATE
|
||||||
|
> Task :app:preDebugUnitTestBuild UP-TO-DATE
|
||||||
|
> Task :app:javaPreCompileDebugUnitTest UP-TO-DATE
|
||||||
|
> Task :app:compileDebugUnitTestJavaWithJavac NO-SOURCE
|
||||||
|
> Task :app:processDebugUnitTestJavaRes NO-SOURCE
|
||||||
|
> Task :app:testDebugUnitTest NO-SOURCE
|
||||||
|
> Task :app:bundleReleaseClassesToRuntimeJar UP-TO-DATE
|
||||||
|
> Task :app:bundleReleaseClassesToCompileJar UP-TO-DATE
|
||||||
|
> Task :app:preReleaseUnitTestBuild UP-TO-DATE
|
||||||
|
> Task :app:javaPreCompileReleaseUnitTest UP-TO-DATE
|
||||||
|
> Task :app:compileReleaseUnitTestJavaWithJavac NO-SOURCE
|
||||||
|
> Task :app:processReleaseUnitTestJavaRes NO-SOURCE
|
||||||
|
> Task :app:testReleaseUnitTest NO-SOURCE
|
||||||
|
> Task :app:test UP-TO-DATE
|
||||||
> Task :app:check
|
> Task :app:check
|
||||||
> Task :app:build
|
> Task :app:build
|
||||||
|
|
||||||
@ -129,5 +123,5 @@ You can use '--warning-mode all' to show the individual deprecation warnings and
|
|||||||
|
|
||||||
For more on this, please refer to https://docs.gradle.org/8.14.2/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
|
For more on this, please refer to https://docs.gradle.org/8.14.2/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
|
||||||
|
|
||||||
BUILD SUCCESSFUL in 10s
|
BUILD SUCCESSFUL in 4s
|
||||||
83 actionable tasks: 51 executed, 32 up-to-date
|
83 actionable tasks: 1 executed, 82 up-to-date
|
||||||
|
|||||||
625
build_qt/chat_client_qt_autogen/deps
Normal file
625
build_qt/chat_client_qt_autogen/deps
Normal file
@ -0,0 +1,625 @@
|
|||||||
|
chat_client_qt_autogen/timestamp: \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/CMakeLists.txt \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/build_qt/CMakeFiles/4.1.2/CMakeCXXCompiler.cmake \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/build_qt/CMakeFiles/4.1.2/CMakeSystem.cmake \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/build_qt/chat_client_qt_autogen/moc_predefs.h \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/src/qt_client/main.cpp \
|
||||||
|
/usr/include/alloca.h \
|
||||||
|
/usr/include/asm-generic/bitsperlong.h \
|
||||||
|
/usr/include/asm-generic/errno-base.h \
|
||||||
|
/usr/include/asm-generic/errno.h \
|
||||||
|
/usr/include/asm-generic/int-ll64.h \
|
||||||
|
/usr/include/asm-generic/posix_types.h \
|
||||||
|
/usr/include/asm-generic/types.h \
|
||||||
|
/usr/include/asm/bitsperlong.h \
|
||||||
|
/usr/include/asm/errno.h \
|
||||||
|
/usr/include/asm/posix_types.h \
|
||||||
|
/usr/include/asm/posix_types_64.h \
|
||||||
|
/usr/include/asm/types.h \
|
||||||
|
/usr/include/asm/unistd.h \
|
||||||
|
/usr/include/asm/unistd_64.h \
|
||||||
|
/usr/include/assert.h \
|
||||||
|
/usr/include/bits/atomic_wide_counter.h \
|
||||||
|
/usr/include/bits/byteswap.h \
|
||||||
|
/usr/include/bits/confname.h \
|
||||||
|
/usr/include/bits/cpu-set.h \
|
||||||
|
/usr/include/bits/endian.h \
|
||||||
|
/usr/include/bits/endianness.h \
|
||||||
|
/usr/include/bits/environments.h \
|
||||||
|
/usr/include/bits/errno.h \
|
||||||
|
/usr/include/bits/floatn-common.h \
|
||||||
|
/usr/include/bits/floatn.h \
|
||||||
|
/usr/include/bits/getopt_core.h \
|
||||||
|
/usr/include/bits/getopt_posix.h \
|
||||||
|
/usr/include/bits/libc-header-start.h \
|
||||||
|
/usr/include/bits/local_lim.h \
|
||||||
|
/usr/include/bits/locale.h \
|
||||||
|
/usr/include/bits/long-double.h \
|
||||||
|
/usr/include/bits/posix1_lim.h \
|
||||||
|
/usr/include/bits/posix2_lim.h \
|
||||||
|
/usr/include/bits/posix_opt.h \
|
||||||
|
/usr/include/bits/pthread_stack_min-dynamic.h \
|
||||||
|
/usr/include/bits/pthreadtypes-arch.h \
|
||||||
|
/usr/include/bits/pthreadtypes.h \
|
||||||
|
/usr/include/bits/sched.h \
|
||||||
|
/usr/include/bits/select.h \
|
||||||
|
/usr/include/bits/setjmp.h \
|
||||||
|
/usr/include/bits/stdint-intn.h \
|
||||||
|
/usr/include/bits/stdio_lim.h \
|
||||||
|
/usr/include/bits/stdlib-float.h \
|
||||||
|
/usr/include/bits/struct_mutex.h \
|
||||||
|
/usr/include/bits/struct_rwlock.h \
|
||||||
|
/usr/include/bits/syscall.h \
|
||||||
|
/usr/include/bits/thread-shared-types.h \
|
||||||
|
/usr/include/bits/time.h \
|
||||||
|
/usr/include/bits/time64.h \
|
||||||
|
/usr/include/bits/timesize.h \
|
||||||
|
/usr/include/bits/timex.h \
|
||||||
|
/usr/include/bits/types.h \
|
||||||
|
/usr/include/bits/types/FILE.h \
|
||||||
|
/usr/include/bits/types/__FILE.h \
|
||||||
|
/usr/include/bits/types/__fpos64_t.h \
|
||||||
|
/usr/include/bits/types/__fpos_t.h \
|
||||||
|
/usr/include/bits/types/__locale_t.h \
|
||||||
|
/usr/include/bits/types/__mbstate_t.h \
|
||||||
|
/usr/include/bits/types/__sigset_t.h \
|
||||||
|
/usr/include/bits/types/clock_t.h \
|
||||||
|
/usr/include/bits/types/clockid_t.h \
|
||||||
|
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||||
|
/usr/include/bits/types/error_t.h \
|
||||||
|
/usr/include/bits/types/locale_t.h \
|
||||||
|
/usr/include/bits/types/mbstate_t.h \
|
||||||
|
/usr/include/bits/types/sigset_t.h \
|
||||||
|
/usr/include/bits/types/struct_FILE.h \
|
||||||
|
/usr/include/bits/types/struct___jmp_buf_tag.h \
|
||||||
|
/usr/include/bits/types/struct_itimerspec.h \
|
||||||
|
/usr/include/bits/types/struct_sched_param.h \
|
||||||
|
/usr/include/bits/types/struct_timespec.h \
|
||||||
|
/usr/include/bits/types/struct_timeval.h \
|
||||||
|
/usr/include/bits/types/struct_tm.h \
|
||||||
|
/usr/include/bits/types/time_t.h \
|
||||||
|
/usr/include/bits/types/timer_t.h \
|
||||||
|
/usr/include/bits/types/wint_t.h \
|
||||||
|
/usr/include/bits/typesizes.h \
|
||||||
|
/usr/include/bits/uintn-identity.h \
|
||||||
|
/usr/include/bits/uio_lim.h \
|
||||||
|
/usr/include/bits/unistd_ext.h \
|
||||||
|
/usr/include/bits/waitflags.h \
|
||||||
|
/usr/include/bits/waitstatus.h \
|
||||||
|
/usr/include/bits/wchar.h \
|
||||||
|
/usr/include/bits/wctype-wchar.h \
|
||||||
|
/usr/include/bits/wordsize.h \
|
||||||
|
/usr/include/bits/xopen_lim.h \
|
||||||
|
/usr/include/ctype.h \
|
||||||
|
/usr/include/endian.h \
|
||||||
|
/usr/include/errno.h \
|
||||||
|
/usr/include/features-time64.h \
|
||||||
|
/usr/include/features.h \
|
||||||
|
/usr/include/gnu/stubs-64.h \
|
||||||
|
/usr/include/gnu/stubs.h \
|
||||||
|
/usr/include/limits.h \
|
||||||
|
/usr/include/linux/errno.h \
|
||||||
|
/usr/include/linux/limits.h \
|
||||||
|
/usr/include/linux/posix_types.h \
|
||||||
|
/usr/include/linux/stddef.h \
|
||||||
|
/usr/include/linux/types.h \
|
||||||
|
/usr/include/locale.h \
|
||||||
|
/usr/include/pthread.h \
|
||||||
|
/usr/include/qt5/Gentoo/gentoo-qconfig.h \
|
||||||
|
/usr/include/qt5/QtCore/QFlags \
|
||||||
|
/usr/include/qt5/QtCore/QThread \
|
||||||
|
/usr/include/qt5/QtCore/QTimer \
|
||||||
|
/usr/include/qt5/QtCore/qabstractitemmodel.h \
|
||||||
|
/usr/include/qt5/QtCore/qalgorithms.h \
|
||||||
|
/usr/include/qt5/QtCore/qarraydata.h \
|
||||||
|
/usr/include/qt5/QtCore/qatomic.h \
|
||||||
|
/usr/include/qt5/QtCore/qatomic_cxx11.h \
|
||||||
|
/usr/include/qt5/QtCore/qbasicatomic.h \
|
||||||
|
/usr/include/qt5/QtCore/qbasictimer.h \
|
||||||
|
/usr/include/qt5/QtCore/qbytearray.h \
|
||||||
|
/usr/include/qt5/QtCore/qbytearraylist.h \
|
||||||
|
/usr/include/qt5/QtCore/qchar.h \
|
||||||
|
/usr/include/qt5/QtCore/qcompilerdetection.h \
|
||||||
|
/usr/include/qt5/QtCore/qconfig.h \
|
||||||
|
/usr/include/qt5/QtCore/qcontainerfwd.h \
|
||||||
|
/usr/include/qt5/QtCore/qcontainertools_impl.h \
|
||||||
|
/usr/include/qt5/QtCore/qcontiguouscache.h \
|
||||||
|
/usr/include/qt5/QtCore/qcoreapplication.h \
|
||||||
|
/usr/include/qt5/QtCore/qcoreevent.h \
|
||||||
|
/usr/include/qt5/QtCore/qcryptographichash.h \
|
||||||
|
/usr/include/qt5/QtCore/qdatastream.h \
|
||||||
|
/usr/include/qt5/QtCore/qdatetime.h \
|
||||||
|
/usr/include/qt5/QtCore/qdeadlinetimer.h \
|
||||||
|
/usr/include/qt5/QtCore/qdebug.h \
|
||||||
|
/usr/include/qt5/QtCore/qelapsedtimer.h \
|
||||||
|
/usr/include/qt5/QtCore/qeventloop.h \
|
||||||
|
/usr/include/qt5/QtCore/qflags.h \
|
||||||
|
/usr/include/qt5/QtCore/qgenericatomic.h \
|
||||||
|
/usr/include/qt5/QtCore/qglobal.h \
|
||||||
|
/usr/include/qt5/QtCore/qglobalstatic.h \
|
||||||
|
/usr/include/qt5/QtCore/qhash.h \
|
||||||
|
/usr/include/qt5/QtCore/qhashfunctions.h \
|
||||||
|
/usr/include/qt5/QtCore/qiodevice.h \
|
||||||
|
/usr/include/qt5/QtCore/qiterator.h \
|
||||||
|
/usr/include/qt5/QtCore/qline.h \
|
||||||
|
/usr/include/qt5/QtCore/qlist.h \
|
||||||
|
/usr/include/qt5/QtCore/qlocale.h \
|
||||||
|
/usr/include/qt5/QtCore/qlogging.h \
|
||||||
|
/usr/include/qt5/QtCore/qmap.h \
|
||||||
|
/usr/include/qt5/QtCore/qmargins.h \
|
||||||
|
/usr/include/qt5/QtCore/qmetaobject.h \
|
||||||
|
/usr/include/qt5/QtCore/qmetatype.h \
|
||||||
|
/usr/include/qt5/QtCore/qnamespace.h \
|
||||||
|
/usr/include/qt5/QtCore/qnumeric.h \
|
||||||
|
/usr/include/qt5/QtCore/qobject.h \
|
||||||
|
/usr/include/qt5/QtCore/qobject_impl.h \
|
||||||
|
/usr/include/qt5/QtCore/qobjectdefs.h \
|
||||||
|
/usr/include/qt5/QtCore/qobjectdefs_impl.h \
|
||||||
|
/usr/include/qt5/QtCore/qpair.h \
|
||||||
|
/usr/include/qt5/QtCore/qpoint.h \
|
||||||
|
/usr/include/qt5/QtCore/qprocessordetection.h \
|
||||||
|
/usr/include/qt5/QtCore/qrect.h \
|
||||||
|
/usr/include/qt5/QtCore/qrefcount.h \
|
||||||
|
/usr/include/qt5/QtCore/qregexp.h \
|
||||||
|
/usr/include/qt5/QtCore/qregularexpression.h \
|
||||||
|
/usr/include/qt5/QtCore/qscopedpointer.h \
|
||||||
|
/usr/include/qt5/QtCore/qset.h \
|
||||||
|
/usr/include/qt5/QtCore/qshareddata.h \
|
||||||
|
/usr/include/qt5/QtCore/qsharedpointer.h \
|
||||||
|
/usr/include/qt5/QtCore/qsharedpointer_impl.h \
|
||||||
|
/usr/include/qt5/QtCore/qsize.h \
|
||||||
|
/usr/include/qt5/QtCore/qstring.h \
|
||||||
|
/usr/include/qt5/QtCore/qstringalgorithms.h \
|
||||||
|
/usr/include/qt5/QtCore/qstringlist.h \
|
||||||
|
/usr/include/qt5/QtCore/qstringliteral.h \
|
||||||
|
/usr/include/qt5/QtCore/qstringmatcher.h \
|
||||||
|
/usr/include/qt5/QtCore/qstringview.h \
|
||||||
|
/usr/include/qt5/QtCore/qsysinfo.h \
|
||||||
|
/usr/include/qt5/QtCore/qsystemdetection.h \
|
||||||
|
/usr/include/qt5/QtCore/qtcore-config.h \
|
||||||
|
/usr/include/qt5/QtCore/qtextstream.h \
|
||||||
|
/usr/include/qt5/QtCore/qthread.h \
|
||||||
|
/usr/include/qt5/QtCore/qtimer.h \
|
||||||
|
/usr/include/qt5/QtCore/qtypeinfo.h \
|
||||||
|
/usr/include/qt5/QtCore/qurl.h \
|
||||||
|
/usr/include/qt5/QtCore/qvariant.h \
|
||||||
|
/usr/include/qt5/QtCore/qvarlengtharray.h \
|
||||||
|
/usr/include/qt5/QtCore/qvector.h \
|
||||||
|
/usr/include/qt5/QtCore/qversiontagging.h \
|
||||||
|
/usr/include/qt5/QtGui/QImage \
|
||||||
|
/usr/include/qt5/QtGui/QPixmap \
|
||||||
|
/usr/include/qt5/QtGui/qbrush.h \
|
||||||
|
/usr/include/qt5/QtGui/qcolor.h \
|
||||||
|
/usr/include/qt5/QtGui/qcursor.h \
|
||||||
|
/usr/include/qt5/QtGui/qfont.h \
|
||||||
|
/usr/include/qt5/QtGui/qfontinfo.h \
|
||||||
|
/usr/include/qt5/QtGui/qfontmetrics.h \
|
||||||
|
/usr/include/qt5/QtGui/qguiapplication.h \
|
||||||
|
/usr/include/qt5/QtGui/qicon.h \
|
||||||
|
/usr/include/qt5/QtGui/qimage.h \
|
||||||
|
/usr/include/qt5/QtGui/qinputmethod.h \
|
||||||
|
/usr/include/qt5/QtGui/qkeysequence.h \
|
||||||
|
/usr/include/qt5/QtGui/qmatrix.h \
|
||||||
|
/usr/include/qt5/QtGui/qpaintdevice.h \
|
||||||
|
/usr/include/qt5/QtGui/qpalette.h \
|
||||||
|
/usr/include/qt5/QtGui/qpen.h \
|
||||||
|
/usr/include/qt5/QtGui/qpixelformat.h \
|
||||||
|
/usr/include/qt5/QtGui/qpixmap.h \
|
||||||
|
/usr/include/qt5/QtGui/qpolygon.h \
|
||||||
|
/usr/include/qt5/QtGui/qregion.h \
|
||||||
|
/usr/include/qt5/QtGui/qrgb.h \
|
||||||
|
/usr/include/qt5/QtGui/qrgba64.h \
|
||||||
|
/usr/include/qt5/QtGui/qtextcursor.h \
|
||||||
|
/usr/include/qt5/QtGui/qtextdocument.h \
|
||||||
|
/usr/include/qt5/QtGui/qtextformat.h \
|
||||||
|
/usr/include/qt5/QtGui/qtextoption.h \
|
||||||
|
/usr/include/qt5/QtGui/qtgui-config.h \
|
||||||
|
/usr/include/qt5/QtGui/qtguiglobal.h \
|
||||||
|
/usr/include/qt5/QtGui/qtransform.h \
|
||||||
|
/usr/include/qt5/QtGui/qvalidator.h \
|
||||||
|
/usr/include/qt5/QtGui/qwindowdefs.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/QCamera \
|
||||||
|
/usr/include/qt5/QtMultimedia/QCameraInfo \
|
||||||
|
/usr/include/qt5/QtMultimedia/qabstractvideobuffer.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcamera.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcameraexposure.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcamerafocus.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcameraimageprocessing.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcamerainfo.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcameraviewfindersettings.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qmediacontrol.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qmediaenumdebug.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qmediaobject.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qmediaservice.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qmultimedia.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qtmultimedia-config.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qtmultimediaglobal.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qvideoframe.h \
|
||||||
|
/usr/include/qt5/QtNetwork/QHostAddress \
|
||||||
|
/usr/include/qt5/QtNetwork/QSslSocket \
|
||||||
|
/usr/include/qt5/QtNetwork/qabstractsocket.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qhostaddress.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qssl.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qsslcertificate.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qsslerror.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qsslsocket.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qtcpsocket.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qtnetwork-config.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qtnetworkglobal.h \
|
||||||
|
/usr/include/qt5/QtWidgets/QApplication \
|
||||||
|
/usr/include/qt5/QtWidgets/QCheckBox \
|
||||||
|
/usr/include/qt5/QtWidgets/QColorDialog \
|
||||||
|
/usr/include/qt5/QtWidgets/QComboBox \
|
||||||
|
/usr/include/qt5/QtWidgets/QDialog \
|
||||||
|
/usr/include/qt5/QtWidgets/QGridLayout \
|
||||||
|
/usr/include/qt5/QtWidgets/QHBoxLayout \
|
||||||
|
/usr/include/qt5/QtWidgets/QLabel \
|
||||||
|
/usr/include/qt5/QtWidgets/QLineEdit \
|
||||||
|
/usr/include/qt5/QtWidgets/QMainWindow \
|
||||||
|
/usr/include/qt5/QtWidgets/QMessageBox \
|
||||||
|
/usr/include/qt5/QtWidgets/QPushButton \
|
||||||
|
/usr/include/qt5/QtWidgets/QScrollArea \
|
||||||
|
/usr/include/qt5/QtWidgets/QSlider \
|
||||||
|
/usr/include/qt5/QtWidgets/QSpinBox \
|
||||||
|
/usr/include/qt5/QtWidgets/QTabWidget \
|
||||||
|
/usr/include/qt5/QtWidgets/QTextEdit \
|
||||||
|
/usr/include/qt5/QtWidgets/QVBoxLayout \
|
||||||
|
/usr/include/qt5/QtWidgets/QWidget \
|
||||||
|
/usr/include/qt5/QtWidgets/qabstractbutton.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qabstractitemdelegate.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qabstractscrollarea.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qabstractslider.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qabstractspinbox.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qapplication.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qboxlayout.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qcheckbox.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qcolordialog.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qcombobox.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qdialog.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qframe.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qgridlayout.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qlabel.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qlayout.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qlayoutitem.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qlineedit.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qmainwindow.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qmessagebox.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qpushbutton.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qrubberband.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qscrollarea.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qsizepolicy.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qslider.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qspinbox.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qstyle.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qstyleoption.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qtabbar.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qtabwidget.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qtextedit.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qtwidgets-config.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qtwidgetsglobal.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qwidget.h \
|
||||||
|
/usr/include/sched.h \
|
||||||
|
/usr/include/stdc-predef.h \
|
||||||
|
/usr/include/stdio.h \
|
||||||
|
/usr/include/stdlib.h \
|
||||||
|
/usr/include/string.h \
|
||||||
|
/usr/include/strings.h \
|
||||||
|
/usr/include/sys/cdefs.h \
|
||||||
|
/usr/include/sys/select.h \
|
||||||
|
/usr/include/sys/syscall.h \
|
||||||
|
/usr/include/sys/types.h \
|
||||||
|
/usr/include/syscall.h \
|
||||||
|
/usr/include/time.h \
|
||||||
|
/usr/include/unistd.h \
|
||||||
|
/usr/include/wchar.h \
|
||||||
|
/usr/include/wctype.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/algorithm \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/array \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/atomic \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/backward/auto_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/backward/binders.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bit \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/algorithmfwd.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/align.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/alloc_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/allocated_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/allocator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/atomic_base.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/atomic_lockfree_defines.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/atomic_wait.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/basic_ios.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/basic_ios.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/basic_string.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/basic_string.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/c++0x_warning.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/char_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/charconv.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/concept_check.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/cpp_type_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/cxxabi_forced.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/cxxabi_init_exception.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/erase_if.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/exception.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/exception_defines.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/exception_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/formatfwd.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/functexcept.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/functional_hash.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/hash_bytes.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ios_base.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/istream.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/iterator_concepts.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/list.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/locale_classes.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/locale_classes.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/locale_facets.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/locale_facets.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/localefwd.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/max_size_type.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/memory_resource.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/memoryfwd.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/mofunc_impl.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/monostate.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/move.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/move_only_function.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/nested_exception.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/new_allocator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/node_handle.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ostream.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ostream.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ostream_insert.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/out_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/postypes.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/predefined_ops.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ptr_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/range_access.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_algo.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_algobase.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_base.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_cmp.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_uninitialized.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_util.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/refwrap.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/requires_hosted.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/sat_arith.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/shared_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/shared_ptr_atomic.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/shared_ptr_base.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_abs.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_mutex.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_algo.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_algobase.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_bvector.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_construct.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_function.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_heap.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_iterator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_iterator_base_funcs.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_iterator_base_types.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_list.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_map.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_multimap.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_numeric.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_pair.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_raw_storage_iter.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_relops.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_tempbuf.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_tree.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_uninitialized.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_vector.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stream_iterator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/streambuf.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/streambuf_iterator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/string_view.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stringfwd.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/uniform_int_dist.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/unique_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/uses_allocator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/uses_allocator_args.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/utility.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/vector.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/version.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cctype \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cerrno \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/charconv \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/climits \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/clocale \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/compare \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/concepts \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cstddef \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cstdint \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cstdlib \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cwchar \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cwctype \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/debug/assertions.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/debug/debug.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/exception \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/aligned_buffer.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/alloc_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/atomicity.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/concurrence.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/numeric_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/string_conversions.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/type_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/format \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/functional \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/future \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/initializer_list \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ios \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/iosfwd \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/iostream \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/istream \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/iterator \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/limits \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/list \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/map \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/memory \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/mutex \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/new \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/numbers \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/numeric \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/optional \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ostream \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/pstl/execution_defs.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/pstl/glue_numeric_defs.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/stdexcept \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/streambuf \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/string \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/string_view \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/text_encoding \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/tuple \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/type_traits \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/typeinfo \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/unordered_map \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/utility \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/vector \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/atomic_word.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/c++allocator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/c++config.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/c++locale.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/cpu_defines.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/ctype_base.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/ctype_inline.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/error_constants.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/gthr-default.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/gthr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/os_defines.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/stdarg.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/stddef.h \
|
||||||
|
/usr/lib64/cmake/Qt5/Qt5Config.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5/Qt5ConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5/Qt5ModuleLocation.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfigExtras.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfigExtrasMkspecDir.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreMacros.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5GuiConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5GuiConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QComposePlatformInputContextPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QGifPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QGtk3ThemePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QICOPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QJpegPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QLibInputPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QMinimalIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QOffscreenIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QSvgIconPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QSvgPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QWaylandEglPlatformIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QWaylandIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXcbEglIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXcbGlxIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXcbIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXdgDesktopPortalThemePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5MultimediaConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5MultimediaConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_CameraBinServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QAlsaPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QGstreamerAudioDecoderServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QGstreamerCaptureServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QGstreamerPlayerServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QM3uPlaylistPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QPulseAudioPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Network/Qt5NetworkConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Network/Qt5NetworkConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Network/Qt5Network_QGenericEnginePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfigExtras.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsMacros.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeCXXCompiler.cmake.in \
|
||||||
|
/usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp \
|
||||||
|
/usr/share/cmake/Modules/CMakeCXXInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompilerSupport.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineSystem.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeFindBinUtils.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeGenericSystem.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeLanguageInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseArguments.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseLibraryArchitecture.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeSystem.cmake.in \
|
||||||
|
/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeTestCompilerCommon.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeUnixFindMake.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/ARMClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/CrayClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Diab-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU-FindBinUtils.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/HP-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/NVHPC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/OrangeC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Renesas-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/TIClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Tasking-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/XL-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindOpenSSL.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindPackageMessage.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindPkgConfig.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindSQLite3.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeInspectCXXLinker.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/FeatureTesting.cmake \
|
||||||
|
/usr/share/cmake/Modules/Linker/GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Linker/GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linker/GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-Determine-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-Initialize.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/UnixPaths.cmake \
|
||||||
|
/usr/bin/cmake
|
||||||
355
build_qt/chat_client_qt_autogen/include/main.moc
Normal file
355
build_qt/chat_client_qt_autogen/include/main.moc
Normal file
@ -0,0 +1,355 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
** Meta object code from reading C++ file 'main.cpp'
|
||||||
|
**
|
||||||
|
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.18)
|
||||||
|
**
|
||||||
|
** WARNING! All changes made in this file will be lost!
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <QtCore/qbytearray.h>
|
||||||
|
#include <QtCore/qmetatype.h>
|
||||||
|
#include <QtCore/QList>
|
||||||
|
#if !defined(Q_MOC_OUTPUT_REVISION)
|
||||||
|
#error "The header file 'main.cpp' doesn't include <QObject>."
|
||||||
|
#elif Q_MOC_OUTPUT_REVISION != 67
|
||||||
|
#error "This file was generated using the moc from 5.15.18. It"
|
||||||
|
#error "cannot be used with the include files from this version of Qt."
|
||||||
|
#error "(The moc has changed too much.)"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
QT_BEGIN_MOC_NAMESPACE
|
||||||
|
QT_WARNING_PUSH
|
||||||
|
QT_WARNING_DISABLE_DEPRECATED
|
||||||
|
struct qt_meta_stringdata_VideoFeedWidget_t {
|
||||||
|
QByteArrayData data[1];
|
||||||
|
char stringdata0[16];
|
||||||
|
};
|
||||||
|
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||||
|
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||||
|
qptrdiff(offsetof(qt_meta_stringdata_VideoFeedWidget_t, stringdata0) + ofs \
|
||||||
|
- idx * sizeof(QByteArrayData)) \
|
||||||
|
)
|
||||||
|
static const qt_meta_stringdata_VideoFeedWidget_t qt_meta_stringdata_VideoFeedWidget = {
|
||||||
|
{
|
||||||
|
QT_MOC_LITERAL(0, 0, 15) // "VideoFeedWidget"
|
||||||
|
|
||||||
|
},
|
||||||
|
"VideoFeedWidget"
|
||||||
|
};
|
||||||
|
#undef QT_MOC_LITERAL
|
||||||
|
|
||||||
|
static const uint qt_meta_data_VideoFeedWidget[] = {
|
||||||
|
|
||||||
|
// content:
|
||||||
|
8, // revision
|
||||||
|
0, // classname
|
||||||
|
0, 0, // classinfo
|
||||||
|
0, 0, // methods
|
||||||
|
0, 0, // properties
|
||||||
|
0, 0, // enums/sets
|
||||||
|
0, 0, // constructors
|
||||||
|
0, // flags
|
||||||
|
0, // signalCount
|
||||||
|
|
||||||
|
0 // eod
|
||||||
|
};
|
||||||
|
|
||||||
|
void VideoFeedWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
(void)_o;
|
||||||
|
(void)_id;
|
||||||
|
(void)_c;
|
||||||
|
(void)_a;
|
||||||
|
}
|
||||||
|
|
||||||
|
QT_INIT_METAOBJECT const QMetaObject VideoFeedWidget::staticMetaObject = { {
|
||||||
|
QMetaObject::SuperData::link<QWidget::staticMetaObject>(),
|
||||||
|
qt_meta_stringdata_VideoFeedWidget.data,
|
||||||
|
qt_meta_data_VideoFeedWidget,
|
||||||
|
qt_static_metacall,
|
||||||
|
nullptr,
|
||||||
|
nullptr
|
||||||
|
} };
|
||||||
|
|
||||||
|
|
||||||
|
const QMetaObject *VideoFeedWidget::metaObject() const
|
||||||
|
{
|
||||||
|
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *VideoFeedWidget::qt_metacast(const char *_clname)
|
||||||
|
{
|
||||||
|
if (!_clname) return nullptr;
|
||||||
|
if (!strcmp(_clname, qt_meta_stringdata_VideoFeedWidget.stringdata0))
|
||||||
|
return static_cast<void*>(this);
|
||||||
|
return QWidget::qt_metacast(_clname);
|
||||||
|
}
|
||||||
|
|
||||||
|
int VideoFeedWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
_id = QWidget::qt_metacall(_c, _id, _a);
|
||||||
|
return _id;
|
||||||
|
}
|
||||||
|
struct qt_meta_stringdata_LoginDialog_t {
|
||||||
|
QByteArrayData data[1];
|
||||||
|
char stringdata0[12];
|
||||||
|
};
|
||||||
|
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||||
|
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||||
|
qptrdiff(offsetof(qt_meta_stringdata_LoginDialog_t, stringdata0) + ofs \
|
||||||
|
- idx * sizeof(QByteArrayData)) \
|
||||||
|
)
|
||||||
|
static const qt_meta_stringdata_LoginDialog_t qt_meta_stringdata_LoginDialog = {
|
||||||
|
{
|
||||||
|
QT_MOC_LITERAL(0, 0, 11) // "LoginDialog"
|
||||||
|
|
||||||
|
},
|
||||||
|
"LoginDialog"
|
||||||
|
};
|
||||||
|
#undef QT_MOC_LITERAL
|
||||||
|
|
||||||
|
static const uint qt_meta_data_LoginDialog[] = {
|
||||||
|
|
||||||
|
// content:
|
||||||
|
8, // revision
|
||||||
|
0, // classname
|
||||||
|
0, 0, // classinfo
|
||||||
|
0, 0, // methods
|
||||||
|
0, 0, // properties
|
||||||
|
0, 0, // enums/sets
|
||||||
|
0, 0, // constructors
|
||||||
|
0, // flags
|
||||||
|
0, // signalCount
|
||||||
|
|
||||||
|
0 // eod
|
||||||
|
};
|
||||||
|
|
||||||
|
void LoginDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
(void)_o;
|
||||||
|
(void)_id;
|
||||||
|
(void)_c;
|
||||||
|
(void)_a;
|
||||||
|
}
|
||||||
|
|
||||||
|
QT_INIT_METAOBJECT const QMetaObject LoginDialog::staticMetaObject = { {
|
||||||
|
QMetaObject::SuperData::link<QDialog::staticMetaObject>(),
|
||||||
|
qt_meta_stringdata_LoginDialog.data,
|
||||||
|
qt_meta_data_LoginDialog,
|
||||||
|
qt_static_metacall,
|
||||||
|
nullptr,
|
||||||
|
nullptr
|
||||||
|
} };
|
||||||
|
|
||||||
|
|
||||||
|
const QMetaObject *LoginDialog::metaObject() const
|
||||||
|
{
|
||||||
|
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *LoginDialog::qt_metacast(const char *_clname)
|
||||||
|
{
|
||||||
|
if (!_clname) return nullptr;
|
||||||
|
if (!strcmp(_clname, qt_meta_stringdata_LoginDialog.stringdata0))
|
||||||
|
return static_cast<void*>(this);
|
||||||
|
return QDialog::qt_metacast(_clname);
|
||||||
|
}
|
||||||
|
|
||||||
|
int LoginDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
_id = QDialog::qt_metacall(_c, _id, _a);
|
||||||
|
return _id;
|
||||||
|
}
|
||||||
|
struct qt_meta_stringdata_ChatClient_t {
|
||||||
|
QByteArrayData data[27];
|
||||||
|
char stringdata0[377];
|
||||||
|
};
|
||||||
|
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||||
|
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||||
|
qptrdiff(offsetof(qt_meta_stringdata_ChatClient_t, stringdata0) + ofs \
|
||||||
|
- idx * sizeof(QByteArrayData)) \
|
||||||
|
)
|
||||||
|
static const qt_meta_stringdata_ChatClient_t qt_meta_stringdata_ChatClient = {
|
||||||
|
{
|
||||||
|
QT_MOC_LITERAL(0, 0, 10), // "ChatClient"
|
||||||
|
QT_MOC_LITERAL(1, 11, 17), // "show_login_dialog"
|
||||||
|
QT_MOC_LITERAL(2, 29, 0), // ""
|
||||||
|
QT_MOC_LITERAL(3, 30, 16), // "populate_cameras"
|
||||||
|
QT_MOC_LITERAL(4, 47, 17), // "on_camera_changed"
|
||||||
|
QT_MOC_LITERAL(5, 65, 5), // "index"
|
||||||
|
QT_MOC_LITERAL(6, 71, 16), // "on_camera_toggle"
|
||||||
|
QT_MOC_LITERAL(7, 88, 5), // "state"
|
||||||
|
QT_MOC_LITERAL(8, 94, 12), // "start_camera"
|
||||||
|
QT_MOC_LITERAL(9, 107, 11), // "stop_camera"
|
||||||
|
QT_MOC_LITERAL(10, 119, 19), // "on_socket_connected"
|
||||||
|
QT_MOC_LITERAL(11, 139, 22), // "on_socket_disconnected"
|
||||||
|
QT_MOC_LITERAL(12, 162, 14), // "on_socket_read"
|
||||||
|
QT_MOC_LITERAL(13, 177, 15), // "on_socket_error"
|
||||||
|
QT_MOC_LITERAL(14, 193, 28), // "QAbstractSocket::SocketError"
|
||||||
|
QT_MOC_LITERAL(15, 222, 5), // "error"
|
||||||
|
QT_MOC_LITERAL(16, 228, 13), // "on_ssl_errors"
|
||||||
|
QT_MOC_LITERAL(17, 242, 16), // "QList<QSslError>"
|
||||||
|
QT_MOC_LITERAL(18, 259, 6), // "errors"
|
||||||
|
QT_MOC_LITERAL(19, 266, 15), // "on_send_message"
|
||||||
|
QT_MOC_LITERAL(20, 282, 11), // "on_bg_color"
|
||||||
|
QT_MOC_LITERAL(21, 294, 13), // "on_text_color"
|
||||||
|
QT_MOC_LITERAL(22, 308, 23), // "on_transparency_changed"
|
||||||
|
QT_MOC_LITERAL(23, 332, 5), // "value"
|
||||||
|
QT_MOC_LITERAL(24, 338, 15), // "add_remote_user"
|
||||||
|
QT_MOC_LITERAL(25, 354, 8), // "username"
|
||||||
|
QT_MOC_LITERAL(26, 363, 13) // "camera_active"
|
||||||
|
|
||||||
|
},
|
||||||
|
"ChatClient\0show_login_dialog\0\0"
|
||||||
|
"populate_cameras\0on_camera_changed\0"
|
||||||
|
"index\0on_camera_toggle\0state\0start_camera\0"
|
||||||
|
"stop_camera\0on_socket_connected\0"
|
||||||
|
"on_socket_disconnected\0on_socket_read\0"
|
||||||
|
"on_socket_error\0QAbstractSocket::SocketError\0"
|
||||||
|
"error\0on_ssl_errors\0QList<QSslError>\0"
|
||||||
|
"errors\0on_send_message\0on_bg_color\0"
|
||||||
|
"on_text_color\0on_transparency_changed\0"
|
||||||
|
"value\0add_remote_user\0username\0"
|
||||||
|
"camera_active"
|
||||||
|
};
|
||||||
|
#undef QT_MOC_LITERAL
|
||||||
|
|
||||||
|
static const uint qt_meta_data_ChatClient[] = {
|
||||||
|
|
||||||
|
// content:
|
||||||
|
8, // revision
|
||||||
|
0, // classname
|
||||||
|
0, 0, // classinfo
|
||||||
|
16, 14, // methods
|
||||||
|
0, 0, // properties
|
||||||
|
0, 0, // enums/sets
|
||||||
|
0, 0, // constructors
|
||||||
|
0, // flags
|
||||||
|
0, // signalCount
|
||||||
|
|
||||||
|
// slots: name, argc, parameters, tag, flags
|
||||||
|
1, 0, 94, 2, 0x08 /* Private */,
|
||||||
|
3, 0, 95, 2, 0x08 /* Private */,
|
||||||
|
4, 1, 96, 2, 0x08 /* Private */,
|
||||||
|
6, 1, 99, 2, 0x08 /* Private */,
|
||||||
|
8, 0, 102, 2, 0x08 /* Private */,
|
||||||
|
9, 0, 103, 2, 0x08 /* Private */,
|
||||||
|
10, 0, 104, 2, 0x08 /* Private */,
|
||||||
|
11, 0, 105, 2, 0x08 /* Private */,
|
||||||
|
12, 0, 106, 2, 0x08 /* Private */,
|
||||||
|
13, 1, 107, 2, 0x08 /* Private */,
|
||||||
|
16, 1, 110, 2, 0x08 /* Private */,
|
||||||
|
19, 0, 113, 2, 0x08 /* Private */,
|
||||||
|
20, 0, 114, 2, 0x08 /* Private */,
|
||||||
|
21, 0, 115, 2, 0x08 /* Private */,
|
||||||
|
22, 1, 116, 2, 0x08 /* Private */,
|
||||||
|
24, 2, 119, 2, 0x08 /* Private */,
|
||||||
|
|
||||||
|
// slots: parameters
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void, QMetaType::Int, 5,
|
||||||
|
QMetaType::Void, QMetaType::Int, 7,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void, 0x80000000 | 14, 15,
|
||||||
|
QMetaType::Void, 0x80000000 | 17, 18,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void,
|
||||||
|
QMetaType::Void, QMetaType::Int, 23,
|
||||||
|
QMetaType::Void, QMetaType::QString, QMetaType::Bool, 25, 26,
|
||||||
|
|
||||||
|
0 // eod
|
||||||
|
};
|
||||||
|
|
||||||
|
void ChatClient::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||||
|
auto *_t = static_cast<ChatClient *>(_o);
|
||||||
|
(void)_t;
|
||||||
|
switch (_id) {
|
||||||
|
case 0: _t->show_login_dialog(); break;
|
||||||
|
case 1: _t->populate_cameras(); break;
|
||||||
|
case 2: _t->on_camera_changed((*reinterpret_cast< int(*)>(_a[1]))); break;
|
||||||
|
case 3: _t->on_camera_toggle((*reinterpret_cast< int(*)>(_a[1]))); break;
|
||||||
|
case 4: _t->start_camera(); break;
|
||||||
|
case 5: _t->stop_camera(); break;
|
||||||
|
case 6: _t->on_socket_connected(); break;
|
||||||
|
case 7: _t->on_socket_disconnected(); break;
|
||||||
|
case 8: _t->on_socket_read(); break;
|
||||||
|
case 9: _t->on_socket_error((*reinterpret_cast< QAbstractSocket::SocketError(*)>(_a[1]))); break;
|
||||||
|
case 10: _t->on_ssl_errors((*reinterpret_cast< const QList<QSslError>(*)>(_a[1]))); break;
|
||||||
|
case 11: _t->on_send_message(); break;
|
||||||
|
case 12: _t->on_bg_color(); break;
|
||||||
|
case 13: _t->on_text_color(); break;
|
||||||
|
case 14: _t->on_transparency_changed((*reinterpret_cast< int(*)>(_a[1]))); break;
|
||||||
|
case 15: _t->add_remote_user((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
|
||||||
|
default: ;
|
||||||
|
}
|
||||||
|
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||||
|
switch (_id) {
|
||||||
|
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||||
|
case 9:
|
||||||
|
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||||
|
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||||
|
case 0:
|
||||||
|
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QAbstractSocket::SocketError >(); break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
switch (*reinterpret_cast<int*>(_a[1])) {
|
||||||
|
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
|
||||||
|
case 0:
|
||||||
|
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QList<QSslError> >(); break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QT_INIT_METAOBJECT const QMetaObject ChatClient::staticMetaObject = { {
|
||||||
|
QMetaObject::SuperData::link<QMainWindow::staticMetaObject>(),
|
||||||
|
qt_meta_stringdata_ChatClient.data,
|
||||||
|
qt_meta_data_ChatClient,
|
||||||
|
qt_static_metacall,
|
||||||
|
nullptr,
|
||||||
|
nullptr
|
||||||
|
} };
|
||||||
|
|
||||||
|
|
||||||
|
const QMetaObject *ChatClient::metaObject() const
|
||||||
|
{
|
||||||
|
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *ChatClient::qt_metacast(const char *_clname)
|
||||||
|
{
|
||||||
|
if (!_clname) return nullptr;
|
||||||
|
if (!strcmp(_clname, qt_meta_stringdata_ChatClient.stringdata0))
|
||||||
|
return static_cast<void*>(this);
|
||||||
|
return QMainWindow::qt_metacast(_clname);
|
||||||
|
}
|
||||||
|
|
||||||
|
int ChatClient::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||||
|
{
|
||||||
|
_id = QMainWindow::qt_metacall(_c, _id, _a);
|
||||||
|
if (_id < 0)
|
||||||
|
return _id;
|
||||||
|
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||||
|
if (_id < 16)
|
||||||
|
qt_static_metacall(this, _c, _id, _a);
|
||||||
|
_id -= 16;
|
||||||
|
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||||
|
if (_id < 16)
|
||||||
|
qt_static_metacall(this, _c, _id, _a);
|
||||||
|
_id -= 16;
|
||||||
|
}
|
||||||
|
return _id;
|
||||||
|
}
|
||||||
|
QT_WARNING_POP
|
||||||
|
QT_END_MOC_NAMESPACE
|
||||||
486
build_qt/chat_client_qt_autogen/include/main.moc.d
Normal file
486
build_qt/chat_client_qt_autogen/include/main.moc.d
Normal file
@ -0,0 +1,486 @@
|
|||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/build_qt/chat_client_qt_autogen/include/main.moc: /home/ganome/Projects/SCAR-719/repos/scar-chat/src/qt_client/main.cpp \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/build_qt/chat_client_qt_autogen/moc_predefs.h \
|
||||||
|
/usr/include/alloca.h \
|
||||||
|
/usr/include/asm-generic/bitsperlong.h \
|
||||||
|
/usr/include/asm-generic/errno-base.h \
|
||||||
|
/usr/include/asm-generic/errno.h \
|
||||||
|
/usr/include/asm-generic/int-ll64.h \
|
||||||
|
/usr/include/asm-generic/posix_types.h \
|
||||||
|
/usr/include/asm-generic/types.h \
|
||||||
|
/usr/include/asm/bitsperlong.h \
|
||||||
|
/usr/include/asm/errno.h \
|
||||||
|
/usr/include/asm/posix_types.h \
|
||||||
|
/usr/include/asm/posix_types_64.h \
|
||||||
|
/usr/include/asm/types.h \
|
||||||
|
/usr/include/asm/unistd.h \
|
||||||
|
/usr/include/asm/unistd_64.h \
|
||||||
|
/usr/include/assert.h \
|
||||||
|
/usr/include/bits/atomic_wide_counter.h \
|
||||||
|
/usr/include/bits/byteswap.h \
|
||||||
|
/usr/include/bits/confname.h \
|
||||||
|
/usr/include/bits/cpu-set.h \
|
||||||
|
/usr/include/bits/endian.h \
|
||||||
|
/usr/include/bits/endianness.h \
|
||||||
|
/usr/include/bits/environments.h \
|
||||||
|
/usr/include/bits/errno.h \
|
||||||
|
/usr/include/bits/floatn-common.h \
|
||||||
|
/usr/include/bits/floatn.h \
|
||||||
|
/usr/include/bits/getopt_core.h \
|
||||||
|
/usr/include/bits/getopt_posix.h \
|
||||||
|
/usr/include/bits/libc-header-start.h \
|
||||||
|
/usr/include/bits/local_lim.h \
|
||||||
|
/usr/include/bits/locale.h \
|
||||||
|
/usr/include/bits/long-double.h \
|
||||||
|
/usr/include/bits/posix1_lim.h \
|
||||||
|
/usr/include/bits/posix2_lim.h \
|
||||||
|
/usr/include/bits/posix_opt.h \
|
||||||
|
/usr/include/bits/pthread_stack_min-dynamic.h \
|
||||||
|
/usr/include/bits/pthreadtypes-arch.h \
|
||||||
|
/usr/include/bits/pthreadtypes.h \
|
||||||
|
/usr/include/bits/sched.h \
|
||||||
|
/usr/include/bits/select.h \
|
||||||
|
/usr/include/bits/setjmp.h \
|
||||||
|
/usr/include/bits/stdint-intn.h \
|
||||||
|
/usr/include/bits/stdio_lim.h \
|
||||||
|
/usr/include/bits/stdlib-float.h \
|
||||||
|
/usr/include/bits/struct_mutex.h \
|
||||||
|
/usr/include/bits/struct_rwlock.h \
|
||||||
|
/usr/include/bits/syscall.h \
|
||||||
|
/usr/include/bits/thread-shared-types.h \
|
||||||
|
/usr/include/bits/time.h \
|
||||||
|
/usr/include/bits/time64.h \
|
||||||
|
/usr/include/bits/timesize.h \
|
||||||
|
/usr/include/bits/timex.h \
|
||||||
|
/usr/include/bits/types.h \
|
||||||
|
/usr/include/bits/types/FILE.h \
|
||||||
|
/usr/include/bits/types/__FILE.h \
|
||||||
|
/usr/include/bits/types/__fpos64_t.h \
|
||||||
|
/usr/include/bits/types/__fpos_t.h \
|
||||||
|
/usr/include/bits/types/__locale_t.h \
|
||||||
|
/usr/include/bits/types/__mbstate_t.h \
|
||||||
|
/usr/include/bits/types/__sigset_t.h \
|
||||||
|
/usr/include/bits/types/clock_t.h \
|
||||||
|
/usr/include/bits/types/clockid_t.h \
|
||||||
|
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||||
|
/usr/include/bits/types/error_t.h \
|
||||||
|
/usr/include/bits/types/locale_t.h \
|
||||||
|
/usr/include/bits/types/mbstate_t.h \
|
||||||
|
/usr/include/bits/types/sigset_t.h \
|
||||||
|
/usr/include/bits/types/struct_FILE.h \
|
||||||
|
/usr/include/bits/types/struct___jmp_buf_tag.h \
|
||||||
|
/usr/include/bits/types/struct_itimerspec.h \
|
||||||
|
/usr/include/bits/types/struct_sched_param.h \
|
||||||
|
/usr/include/bits/types/struct_timespec.h \
|
||||||
|
/usr/include/bits/types/struct_timeval.h \
|
||||||
|
/usr/include/bits/types/struct_tm.h \
|
||||||
|
/usr/include/bits/types/time_t.h \
|
||||||
|
/usr/include/bits/types/timer_t.h \
|
||||||
|
/usr/include/bits/types/wint_t.h \
|
||||||
|
/usr/include/bits/typesizes.h \
|
||||||
|
/usr/include/bits/uintn-identity.h \
|
||||||
|
/usr/include/bits/uio_lim.h \
|
||||||
|
/usr/include/bits/unistd_ext.h \
|
||||||
|
/usr/include/bits/waitflags.h \
|
||||||
|
/usr/include/bits/waitstatus.h \
|
||||||
|
/usr/include/bits/wchar.h \
|
||||||
|
/usr/include/bits/wctype-wchar.h \
|
||||||
|
/usr/include/bits/wordsize.h \
|
||||||
|
/usr/include/bits/xopen_lim.h \
|
||||||
|
/usr/include/ctype.h \
|
||||||
|
/usr/include/endian.h \
|
||||||
|
/usr/include/errno.h \
|
||||||
|
/usr/include/features-time64.h \
|
||||||
|
/usr/include/features.h \
|
||||||
|
/usr/include/gnu/stubs-64.h \
|
||||||
|
/usr/include/gnu/stubs.h \
|
||||||
|
/usr/include/limits.h \
|
||||||
|
/usr/include/linux/errno.h \
|
||||||
|
/usr/include/linux/limits.h \
|
||||||
|
/usr/include/linux/posix_types.h \
|
||||||
|
/usr/include/linux/stddef.h \
|
||||||
|
/usr/include/linux/types.h \
|
||||||
|
/usr/include/locale.h \
|
||||||
|
/usr/include/pthread.h \
|
||||||
|
/usr/include/qt5/Gentoo/gentoo-qconfig.h \
|
||||||
|
/usr/include/qt5/QtCore/QFlags \
|
||||||
|
/usr/include/qt5/QtCore/QThread \
|
||||||
|
/usr/include/qt5/QtCore/QTimer \
|
||||||
|
/usr/include/qt5/QtCore/qabstractitemmodel.h \
|
||||||
|
/usr/include/qt5/QtCore/qalgorithms.h \
|
||||||
|
/usr/include/qt5/QtCore/qarraydata.h \
|
||||||
|
/usr/include/qt5/QtCore/qatomic.h \
|
||||||
|
/usr/include/qt5/QtCore/qatomic_cxx11.h \
|
||||||
|
/usr/include/qt5/QtCore/qbasicatomic.h \
|
||||||
|
/usr/include/qt5/QtCore/qbasictimer.h \
|
||||||
|
/usr/include/qt5/QtCore/qbytearray.h \
|
||||||
|
/usr/include/qt5/QtCore/qbytearraylist.h \
|
||||||
|
/usr/include/qt5/QtCore/qchar.h \
|
||||||
|
/usr/include/qt5/QtCore/qcompilerdetection.h \
|
||||||
|
/usr/include/qt5/QtCore/qconfig.h \
|
||||||
|
/usr/include/qt5/QtCore/qcontainerfwd.h \
|
||||||
|
/usr/include/qt5/QtCore/qcontainertools_impl.h \
|
||||||
|
/usr/include/qt5/QtCore/qcontiguouscache.h \
|
||||||
|
/usr/include/qt5/QtCore/qcoreapplication.h \
|
||||||
|
/usr/include/qt5/QtCore/qcoreevent.h \
|
||||||
|
/usr/include/qt5/QtCore/qcryptographichash.h \
|
||||||
|
/usr/include/qt5/QtCore/qdatastream.h \
|
||||||
|
/usr/include/qt5/QtCore/qdatetime.h \
|
||||||
|
/usr/include/qt5/QtCore/qdeadlinetimer.h \
|
||||||
|
/usr/include/qt5/QtCore/qdebug.h \
|
||||||
|
/usr/include/qt5/QtCore/qelapsedtimer.h \
|
||||||
|
/usr/include/qt5/QtCore/qeventloop.h \
|
||||||
|
/usr/include/qt5/QtCore/qflags.h \
|
||||||
|
/usr/include/qt5/QtCore/qgenericatomic.h \
|
||||||
|
/usr/include/qt5/QtCore/qglobal.h \
|
||||||
|
/usr/include/qt5/QtCore/qglobalstatic.h \
|
||||||
|
/usr/include/qt5/QtCore/qhash.h \
|
||||||
|
/usr/include/qt5/QtCore/qhashfunctions.h \
|
||||||
|
/usr/include/qt5/QtCore/qiodevice.h \
|
||||||
|
/usr/include/qt5/QtCore/qiterator.h \
|
||||||
|
/usr/include/qt5/QtCore/qline.h \
|
||||||
|
/usr/include/qt5/QtCore/qlist.h \
|
||||||
|
/usr/include/qt5/QtCore/qlocale.h \
|
||||||
|
/usr/include/qt5/QtCore/qlogging.h \
|
||||||
|
/usr/include/qt5/QtCore/qmap.h \
|
||||||
|
/usr/include/qt5/QtCore/qmargins.h \
|
||||||
|
/usr/include/qt5/QtCore/qmetaobject.h \
|
||||||
|
/usr/include/qt5/QtCore/qmetatype.h \
|
||||||
|
/usr/include/qt5/QtCore/qnamespace.h \
|
||||||
|
/usr/include/qt5/QtCore/qnumeric.h \
|
||||||
|
/usr/include/qt5/QtCore/qobject.h \
|
||||||
|
/usr/include/qt5/QtCore/qobject_impl.h \
|
||||||
|
/usr/include/qt5/QtCore/qobjectdefs.h \
|
||||||
|
/usr/include/qt5/QtCore/qobjectdefs_impl.h \
|
||||||
|
/usr/include/qt5/QtCore/qpair.h \
|
||||||
|
/usr/include/qt5/QtCore/qpoint.h \
|
||||||
|
/usr/include/qt5/QtCore/qprocessordetection.h \
|
||||||
|
/usr/include/qt5/QtCore/qrect.h \
|
||||||
|
/usr/include/qt5/QtCore/qrefcount.h \
|
||||||
|
/usr/include/qt5/QtCore/qregexp.h \
|
||||||
|
/usr/include/qt5/QtCore/qregularexpression.h \
|
||||||
|
/usr/include/qt5/QtCore/qscopedpointer.h \
|
||||||
|
/usr/include/qt5/QtCore/qset.h \
|
||||||
|
/usr/include/qt5/QtCore/qshareddata.h \
|
||||||
|
/usr/include/qt5/QtCore/qsharedpointer.h \
|
||||||
|
/usr/include/qt5/QtCore/qsharedpointer_impl.h \
|
||||||
|
/usr/include/qt5/QtCore/qsize.h \
|
||||||
|
/usr/include/qt5/QtCore/qstring.h \
|
||||||
|
/usr/include/qt5/QtCore/qstringalgorithms.h \
|
||||||
|
/usr/include/qt5/QtCore/qstringlist.h \
|
||||||
|
/usr/include/qt5/QtCore/qstringliteral.h \
|
||||||
|
/usr/include/qt5/QtCore/qstringmatcher.h \
|
||||||
|
/usr/include/qt5/QtCore/qstringview.h \
|
||||||
|
/usr/include/qt5/QtCore/qsysinfo.h \
|
||||||
|
/usr/include/qt5/QtCore/qsystemdetection.h \
|
||||||
|
/usr/include/qt5/QtCore/qtcore-config.h \
|
||||||
|
/usr/include/qt5/QtCore/qtextstream.h \
|
||||||
|
/usr/include/qt5/QtCore/qthread.h \
|
||||||
|
/usr/include/qt5/QtCore/qtimer.h \
|
||||||
|
/usr/include/qt5/QtCore/qtypeinfo.h \
|
||||||
|
/usr/include/qt5/QtCore/qurl.h \
|
||||||
|
/usr/include/qt5/QtCore/qvariant.h \
|
||||||
|
/usr/include/qt5/QtCore/qvarlengtharray.h \
|
||||||
|
/usr/include/qt5/QtCore/qvector.h \
|
||||||
|
/usr/include/qt5/QtCore/qversiontagging.h \
|
||||||
|
/usr/include/qt5/QtGui/QImage \
|
||||||
|
/usr/include/qt5/QtGui/QPixmap \
|
||||||
|
/usr/include/qt5/QtGui/qbrush.h \
|
||||||
|
/usr/include/qt5/QtGui/qcolor.h \
|
||||||
|
/usr/include/qt5/QtGui/qcursor.h \
|
||||||
|
/usr/include/qt5/QtGui/qfont.h \
|
||||||
|
/usr/include/qt5/QtGui/qfontinfo.h \
|
||||||
|
/usr/include/qt5/QtGui/qfontmetrics.h \
|
||||||
|
/usr/include/qt5/QtGui/qguiapplication.h \
|
||||||
|
/usr/include/qt5/QtGui/qicon.h \
|
||||||
|
/usr/include/qt5/QtGui/qimage.h \
|
||||||
|
/usr/include/qt5/QtGui/qinputmethod.h \
|
||||||
|
/usr/include/qt5/QtGui/qkeysequence.h \
|
||||||
|
/usr/include/qt5/QtGui/qmatrix.h \
|
||||||
|
/usr/include/qt5/QtGui/qpaintdevice.h \
|
||||||
|
/usr/include/qt5/QtGui/qpalette.h \
|
||||||
|
/usr/include/qt5/QtGui/qpen.h \
|
||||||
|
/usr/include/qt5/QtGui/qpixelformat.h \
|
||||||
|
/usr/include/qt5/QtGui/qpixmap.h \
|
||||||
|
/usr/include/qt5/QtGui/qpolygon.h \
|
||||||
|
/usr/include/qt5/QtGui/qregion.h \
|
||||||
|
/usr/include/qt5/QtGui/qrgb.h \
|
||||||
|
/usr/include/qt5/QtGui/qrgba64.h \
|
||||||
|
/usr/include/qt5/QtGui/qtextcursor.h \
|
||||||
|
/usr/include/qt5/QtGui/qtextdocument.h \
|
||||||
|
/usr/include/qt5/QtGui/qtextformat.h \
|
||||||
|
/usr/include/qt5/QtGui/qtextoption.h \
|
||||||
|
/usr/include/qt5/QtGui/qtgui-config.h \
|
||||||
|
/usr/include/qt5/QtGui/qtguiglobal.h \
|
||||||
|
/usr/include/qt5/QtGui/qtransform.h \
|
||||||
|
/usr/include/qt5/QtGui/qvalidator.h \
|
||||||
|
/usr/include/qt5/QtGui/qwindowdefs.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/QCamera \
|
||||||
|
/usr/include/qt5/QtMultimedia/QCameraInfo \
|
||||||
|
/usr/include/qt5/QtMultimedia/qabstractvideobuffer.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcamera.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcameraexposure.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcamerafocus.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcameraimageprocessing.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcamerainfo.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qcameraviewfindersettings.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qmediacontrol.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qmediaenumdebug.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qmediaobject.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qmediaservice.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qmultimedia.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qtmultimedia-config.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qtmultimediaglobal.h \
|
||||||
|
/usr/include/qt5/QtMultimedia/qvideoframe.h \
|
||||||
|
/usr/include/qt5/QtNetwork/QHostAddress \
|
||||||
|
/usr/include/qt5/QtNetwork/QSslSocket \
|
||||||
|
/usr/include/qt5/QtNetwork/qabstractsocket.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qhostaddress.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qssl.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qsslcertificate.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qsslerror.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qsslsocket.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qtcpsocket.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qtnetwork-config.h \
|
||||||
|
/usr/include/qt5/QtNetwork/qtnetworkglobal.h \
|
||||||
|
/usr/include/qt5/QtWidgets/QApplication \
|
||||||
|
/usr/include/qt5/QtWidgets/QCheckBox \
|
||||||
|
/usr/include/qt5/QtWidgets/QColorDialog \
|
||||||
|
/usr/include/qt5/QtWidgets/QComboBox \
|
||||||
|
/usr/include/qt5/QtWidgets/QDialog \
|
||||||
|
/usr/include/qt5/QtWidgets/QGridLayout \
|
||||||
|
/usr/include/qt5/QtWidgets/QHBoxLayout \
|
||||||
|
/usr/include/qt5/QtWidgets/QLabel \
|
||||||
|
/usr/include/qt5/QtWidgets/QLineEdit \
|
||||||
|
/usr/include/qt5/QtWidgets/QMainWindow \
|
||||||
|
/usr/include/qt5/QtWidgets/QMessageBox \
|
||||||
|
/usr/include/qt5/QtWidgets/QPushButton \
|
||||||
|
/usr/include/qt5/QtWidgets/QScrollArea \
|
||||||
|
/usr/include/qt5/QtWidgets/QSlider \
|
||||||
|
/usr/include/qt5/QtWidgets/QSpinBox \
|
||||||
|
/usr/include/qt5/QtWidgets/QTabWidget \
|
||||||
|
/usr/include/qt5/QtWidgets/QTextEdit \
|
||||||
|
/usr/include/qt5/QtWidgets/QVBoxLayout \
|
||||||
|
/usr/include/qt5/QtWidgets/QWidget \
|
||||||
|
/usr/include/qt5/QtWidgets/qabstractbutton.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qabstractitemdelegate.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qabstractscrollarea.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qabstractslider.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qabstractspinbox.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qapplication.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qboxlayout.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qcheckbox.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qcolordialog.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qcombobox.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qdialog.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qframe.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qgridlayout.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qlabel.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qlayout.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qlayoutitem.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qlineedit.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qmainwindow.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qmessagebox.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qpushbutton.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qrubberband.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qscrollarea.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qsizepolicy.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qslider.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qspinbox.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qstyle.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qstyleoption.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qtabbar.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qtabwidget.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qtextedit.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qtwidgets-config.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qtwidgetsglobal.h \
|
||||||
|
/usr/include/qt5/QtWidgets/qwidget.h \
|
||||||
|
/usr/include/sched.h \
|
||||||
|
/usr/include/stdc-predef.h \
|
||||||
|
/usr/include/stdio.h \
|
||||||
|
/usr/include/stdlib.h \
|
||||||
|
/usr/include/string.h \
|
||||||
|
/usr/include/strings.h \
|
||||||
|
/usr/include/sys/cdefs.h \
|
||||||
|
/usr/include/sys/select.h \
|
||||||
|
/usr/include/sys/syscall.h \
|
||||||
|
/usr/include/sys/types.h \
|
||||||
|
/usr/include/syscall.h \
|
||||||
|
/usr/include/time.h \
|
||||||
|
/usr/include/unistd.h \
|
||||||
|
/usr/include/wchar.h \
|
||||||
|
/usr/include/wctype.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/algorithm \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/array \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/atomic \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/backward/auto_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/backward/binders.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bit \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/algorithmfwd.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/align.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/alloc_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/allocated_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/allocator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/atomic_base.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/atomic_lockfree_defines.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/atomic_wait.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/basic_ios.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/basic_ios.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/basic_string.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/basic_string.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/c++0x_warning.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/char_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/charconv.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/concept_check.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/cpp_type_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/cxxabi_forced.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/cxxabi_init_exception.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/erase_if.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/exception.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/exception_defines.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/exception_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/formatfwd.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/functexcept.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/functional_hash.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/hash_bytes.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ios_base.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/istream.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/iterator_concepts.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/list.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/locale_classes.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/locale_classes.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/locale_facets.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/locale_facets.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/localefwd.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/max_size_type.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/memory_resource.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/memoryfwd.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/mofunc_impl.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/monostate.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/move.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/move_only_function.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/nested_exception.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/new_allocator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/node_handle.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ostream.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ostream.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ostream_insert.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/out_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/postypes.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/predefined_ops.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ptr_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/range_access.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_algo.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_algobase.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_base.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_cmp.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_uninitialized.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/ranges_util.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/refwrap.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/requires_hosted.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/sat_arith.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/shared_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/shared_ptr_atomic.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/shared_ptr_base.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_abs.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_mutex.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_algo.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_algobase.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_bvector.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_construct.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_function.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_heap.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_iterator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_iterator_base_funcs.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_iterator_base_types.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_list.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_map.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_multimap.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_numeric.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_pair.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_raw_storage_iter.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_relops.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_tempbuf.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_tree.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_uninitialized.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stl_vector.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stream_iterator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/streambuf.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/streambuf_iterator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/string_view.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/stringfwd.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/uniform_int_dist.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/unique_ptr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/uses_allocator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/uses_allocator_args.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/utility.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/vector.tcc \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/version.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cctype \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cerrno \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/charconv \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/climits \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/clocale \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/compare \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/concepts \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cstddef \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cstdint \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cstdlib \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cwchar \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/cwctype \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/debug/assertions.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/debug/debug.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/exception \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/aligned_buffer.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/alloc_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/atomicity.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/concurrence.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/numeric_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/string_conversions.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/type_traits.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/format \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/functional \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/future \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/initializer_list \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ios \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/iosfwd \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/iostream \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/istream \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/iterator \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/limits \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/list \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/map \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/memory \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/mutex \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/new \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/numbers \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/numeric \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/optional \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ostream \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/pstl/execution_defs.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/pstl/glue_numeric_defs.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/stdexcept \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/streambuf \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/string \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/string_view \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/text_encoding \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/tuple \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/type_traits \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/typeinfo \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/unordered_map \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/utility \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/vector \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/atomic_word.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/c++allocator.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/c++config.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/c++locale.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/cpu_defines.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/ctype_base.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/ctype_inline.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/error_constants.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/gthr-default.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/gthr.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/x86_64-pc-linux-gnu/bits/os_defines.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/stdarg.h \
|
||||||
|
/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/stddef.h
|
||||||
3
build_qt/chat_client_qt_autogen/mocs_compilation.cpp
Normal file
3
build_qt/chat_client_qt_autogen/mocs_compilation.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// This file is autogenerated. Changes will be overwritten.
|
||||||
|
// No files found that require moc or the moc files are included
|
||||||
|
enum some_compilers { need_more_than_nothing };
|
||||||
0
build_qt/chat_client_qt_autogen/timestamp
Normal file
0
build_qt/chat_client_qt_autogen/timestamp
Normal file
142
build_qt/chat_server_autogen/deps
Normal file
142
build_qt/chat_server_autogen/deps
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
chat_server_autogen/timestamp: \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/CMakeLists.txt \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/build_qt/CMakeFiles/4.1.2/CMakeCXXCompiler.cmake \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/build_qt/CMakeFiles/4.1.2/CMakeSystem.cmake \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/src/server/database.cpp \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/src/server/database.h \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/src/server/server.cpp \
|
||||||
|
/usr/lib64/cmake/Qt5/Qt5Config.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5/Qt5ConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5/Qt5ModuleLocation.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfigExtras.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfigExtrasMkspecDir.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreMacros.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5GuiConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5GuiConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QComposePlatformInputContextPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QGifPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QGtk3ThemePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QICOPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QJpegPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QLibInputPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QMinimalIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QOffscreenIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QSvgIconPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QSvgPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QWaylandEglPlatformIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QWaylandIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXcbEglIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXcbGlxIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXcbIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXdgDesktopPortalThemePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5MultimediaConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5MultimediaConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_CameraBinServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QAlsaPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QGstreamerAudioDecoderServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QGstreamerCaptureServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QGstreamerPlayerServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QM3uPlaylistPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QPulseAudioPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Network/Qt5NetworkConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Network/Qt5NetworkConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Network/Qt5Network_QGenericEnginePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfigExtras.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsMacros.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeCXXCompiler.cmake.in \
|
||||||
|
/usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp \
|
||||||
|
/usr/share/cmake/Modules/CMakeCXXInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompilerSupport.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineSystem.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeFindBinUtils.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeGenericSystem.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeLanguageInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseArguments.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseLibraryArchitecture.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeSystem.cmake.in \
|
||||||
|
/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeTestCompilerCommon.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeUnixFindMake.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/ARMClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/CrayClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Diab-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU-FindBinUtils.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/HP-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/NVHPC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/OrangeC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Renesas-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/TIClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Tasking-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/XL-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindOpenSSL.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindPackageMessage.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindPkgConfig.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindSQLite3.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeInspectCXXLinker.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/FeatureTesting.cmake \
|
||||||
|
/usr/share/cmake/Modules/Linker/GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Linker/GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linker/GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-Determine-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-Initialize.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/UnixPaths.cmake \
|
||||||
|
/usr/bin/cmake
|
||||||
3
build_qt/chat_server_autogen/mocs_compilation.cpp
Normal file
3
build_qt/chat_server_autogen/mocs_compilation.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// This file is autogenerated. Changes will be overwritten.
|
||||||
|
// No files found that require moc or the moc files are included
|
||||||
|
enum some_compilers { need_more_than_nothing };
|
||||||
0
build_qt/chat_server_autogen/timestamp
Normal file
0
build_qt/chat_server_autogen/timestamp
Normal file
142
build_qt/dbmanager_autogen/deps
Normal file
142
build_qt/dbmanager_autogen/deps
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
dbmanager_autogen/timestamp: \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/CMakeLists.txt \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/build_qt/CMakeFiles/4.1.2/CMakeCXXCompiler.cmake \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/build_qt/CMakeFiles/4.1.2/CMakeSystem.cmake \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/src/server/database.cpp \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/src/server/database.h \
|
||||||
|
/home/ganome/Projects/SCAR-719/repos/scar-chat/src/server/dbmanager.cpp \
|
||||||
|
/usr/lib64/cmake/Qt5/Qt5Config.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5/Qt5ConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5/Qt5ModuleLocation.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfigExtras.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfigExtrasMkspecDir.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Core/Qt5CoreMacros.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5GuiConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5GuiConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QComposePlatformInputContextPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QGifPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QGtk3ThemePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QICOPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QJpegPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QLibInputPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QMinimalIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QOffscreenIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QSvgIconPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QSvgPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QWaylandEglPlatformIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QWaylandIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXcbEglIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXcbGlxIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXcbIntegrationPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Gui/Qt5Gui_QXdgDesktopPortalThemePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5MultimediaConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5MultimediaConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_CameraBinServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QAlsaPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QGstreamerAudioDecoderServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QGstreamerCaptureServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QGstreamerPlayerServicePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QM3uPlaylistPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Multimedia/Qt5Multimedia_QPulseAudioPlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Network/Qt5NetworkConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Network/Qt5NetworkConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Network/Qt5Network_QGenericEnginePlugin.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfigExtras.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfigVersion.cmake \
|
||||||
|
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsMacros.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeCXXCompiler.cmake.in \
|
||||||
|
/usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp \
|
||||||
|
/usr/share/cmake/Modules/CMakeCXXInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineCompilerSupport.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeDetermineSystem.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeFindBinUtils.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeGenericSystem.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeLanguageInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseArguments.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeParseLibraryArchitecture.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeSystem.cmake.in \
|
||||||
|
/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeTestCompilerCommon.cmake \
|
||||||
|
/usr/share/cmake/Modules/CMakeUnixFindMake.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/ARMClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/CrayClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Diab-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU-FindBinUtils.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/HP-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/NVHPC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/OrangeC-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Renesas-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/TIClang-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Tasking-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/XL-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindOpenSSL.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindPackageMessage.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindPkgConfig.cmake \
|
||||||
|
/usr/share/cmake/Modules/FindSQLite3.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/CMakeInspectCXXLinker.cmake \
|
||||||
|
/usr/share/cmake/Modules/Internal/FeatureTesting.cmake \
|
||||||
|
/usr/share/cmake/Modules/Linker/GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Linker/GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linker/GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-Determine-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-GNU.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux-Initialize.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/Linux.cmake \
|
||||||
|
/usr/share/cmake/Modules/Platform/UnixPaths.cmake \
|
||||||
|
/usr/bin/cmake
|
||||||
3
build_qt/dbmanager_autogen/mocs_compilation.cpp
Normal file
3
build_qt/dbmanager_autogen/mocs_compilation.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// This file is autogenerated. Changes will be overwritten.
|
||||||
|
// No files found that require moc or the moc files are included
|
||||||
|
enum some_compilers { need_more_than_nothing };
|
||||||
0
build_qt/dbmanager_autogen/timestamp
Normal file
0
build_qt/dbmanager_autogen/timestamp
Normal file
@ -24,6 +24,7 @@
|
|||||||
#include <QImage>
|
#include <QImage>
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
#include <QDialog>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
#include <map>
|
#include <map>
|
||||||
@ -69,12 +70,109 @@ private:
|
|||||||
QLabel *m_video_label;
|
QLabel *m_video_label;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Login dialog for authentication
|
||||||
|
class LoginDialog : public QDialog {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
LoginDialog(QWidget *parent = nullptr) : QDialog(parent) {
|
||||||
|
setWindowTitle("SCAR Chat - Login");
|
||||||
|
setModal(true);
|
||||||
|
setGeometry(100, 100, 400, 300);
|
||||||
|
|
||||||
|
QVBoxLayout *layout = new QVBoxLayout(this);
|
||||||
|
|
||||||
|
// Title
|
||||||
|
QLabel *title = new QLabel("SCAR Chat", this);
|
||||||
|
title->setStyleSheet("font-size: 24px; font-weight: bold;");
|
||||||
|
title->setAlignment(Qt::AlignCenter);
|
||||||
|
layout->addWidget(title);
|
||||||
|
|
||||||
|
layout->addSpacing(20);
|
||||||
|
|
||||||
|
// Server address
|
||||||
|
QHBoxLayout *server_layout = new QHBoxLayout();
|
||||||
|
QLabel *server_label = new QLabel("Server:", this);
|
||||||
|
server_input = new QLineEdit("localhost", this);
|
||||||
|
server_layout->addWidget(server_label);
|
||||||
|
server_layout->addWidget(server_input);
|
||||||
|
layout->addLayout(server_layout);
|
||||||
|
|
||||||
|
// Server port
|
||||||
|
QHBoxLayout *port_layout = new QHBoxLayout();
|
||||||
|
QLabel *port_label = new QLabel("Port:", this);
|
||||||
|
port_input = new QLineEdit("42317", this);
|
||||||
|
port_input->setMaximumWidth(100);
|
||||||
|
port_layout->addWidget(port_label);
|
||||||
|
port_layout->addWidget(port_input);
|
||||||
|
port_layout->addStretch();
|
||||||
|
layout->addLayout(port_layout);
|
||||||
|
|
||||||
|
layout->addSpacing(15);
|
||||||
|
|
||||||
|
// Username
|
||||||
|
QHBoxLayout *user_layout = new QHBoxLayout();
|
||||||
|
QLabel *user_label = new QLabel("Username:", this);
|
||||||
|
username_input = new QLineEdit(this);
|
||||||
|
user_layout->addWidget(user_label);
|
||||||
|
user_layout->addWidget(username_input);
|
||||||
|
layout->addLayout(user_layout);
|
||||||
|
|
||||||
|
// Password
|
||||||
|
QHBoxLayout *pass_layout = new QHBoxLayout();
|
||||||
|
QLabel *pass_label = new QLabel("Password:", this);
|
||||||
|
password_input = new QLineEdit(this);
|
||||||
|
password_input->setEchoMode(QLineEdit::Password);
|
||||||
|
pass_layout->addWidget(pass_label);
|
||||||
|
pass_layout->addWidget(password_input);
|
||||||
|
layout->addLayout(pass_layout);
|
||||||
|
|
||||||
|
layout->addSpacing(15);
|
||||||
|
|
||||||
|
// Status label
|
||||||
|
status_label = new QLabel("", this);
|
||||||
|
status_label->setAlignment(Qt::AlignCenter);
|
||||||
|
status_label->setStyleSheet("color: #666;");
|
||||||
|
layout->addWidget(status_label);
|
||||||
|
|
||||||
|
// Buttons
|
||||||
|
QHBoxLayout *btn_layout = new QHBoxLayout();
|
||||||
|
login_btn = new QPushButton("Login", this);
|
||||||
|
cancel_btn = new QPushButton("Cancel", this);
|
||||||
|
btn_layout->addStretch();
|
||||||
|
btn_layout->addWidget(login_btn);
|
||||||
|
btn_layout->addWidget(cancel_btn);
|
||||||
|
layout->addLayout(btn_layout);
|
||||||
|
|
||||||
|
connect(login_btn, &QPushButton::clicked, this, &LoginDialog::accept);
|
||||||
|
connect(cancel_btn, &QPushButton::clicked, this, &LoginDialog::reject);
|
||||||
|
connect(password_input, &QLineEdit::returnPressed, this, &LoginDialog::accept);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString get_server() const { return server_input->text(); }
|
||||||
|
int get_port() const { return port_input->text().toInt(); }
|
||||||
|
QString get_username() const { return username_input->text(); }
|
||||||
|
QString get_password() const { return password_input->text(); }
|
||||||
|
|
||||||
|
void set_status(const QString &msg) { status_label->setText(msg); }
|
||||||
|
void set_login_enabled(bool enabled) { login_btn->setEnabled(enabled); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
QLineEdit *server_input;
|
||||||
|
QLineEdit *port_input;
|
||||||
|
QLineEdit *username_input;
|
||||||
|
QLineEdit *password_input;
|
||||||
|
QLabel *status_label;
|
||||||
|
QPushButton *login_btn;
|
||||||
|
QPushButton *cancel_btn;
|
||||||
|
};
|
||||||
|
|
||||||
class ChatClient : public QMainWindow {
|
class ChatClient : public QMainWindow {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ChatClient(QWidget *parent = nullptr) : QMainWindow(parent), m_camera(nullptr) {
|
ChatClient(QWidget *parent = nullptr) : QMainWindow(parent), m_camera(nullptr), m_authenticated(false) {
|
||||||
setWindowTitle("SCAR Chat Client - Video Edition");
|
setWindowTitle("SCAR Chat Client");
|
||||||
setGeometry(100, 100, 1000, 700);
|
setGeometry(100, 100, 1000, 700);
|
||||||
|
|
||||||
// Create central widget with tabs
|
// Create central widget with tabs
|
||||||
@ -83,19 +181,10 @@ public:
|
|||||||
|
|
||||||
QVBoxLayout *main_layout = new QVBoxLayout(central);
|
QVBoxLayout *main_layout = new QVBoxLayout(central);
|
||||||
|
|
||||||
// Connection section
|
// Status bar showing logged-in user
|
||||||
QHBoxLayout *conn_layout = new QHBoxLayout();
|
status_label = new QLabel("Not authenticated", this);
|
||||||
QLabel *host_label = new QLabel("Host:", this);
|
status_label->setStyleSheet("font-weight: bold;");
|
||||||
host_input = new QLineEdit("localhost", this);
|
main_layout->addWidget(status_label);
|
||||||
QLabel *port_label = new QLabel("Port:", this);
|
|
||||||
port_input = new QLineEdit("42317", this);
|
|
||||||
connect_btn = new QPushButton("Connect", this);
|
|
||||||
conn_layout->addWidget(host_label);
|
|
||||||
conn_layout->addWidget(host_input);
|
|
||||||
conn_layout->addWidget(port_label);
|
|
||||||
conn_layout->addWidget(port_input);
|
|
||||||
conn_layout->addWidget(connect_btn);
|
|
||||||
main_layout->addLayout(conn_layout);
|
|
||||||
|
|
||||||
// Tab widget for chat and video
|
// Tab widget for chat and video
|
||||||
QTabWidget *tabs = new QTabWidget(this);
|
QTabWidget *tabs = new QTabWidget(this);
|
||||||
@ -184,7 +273,6 @@ public:
|
|||||||
main_layout->addWidget(tabs);
|
main_layout->addWidget(tabs);
|
||||||
|
|
||||||
// Connect signals
|
// Connect signals
|
||||||
connect(connect_btn, &QPushButton::clicked, this, &ChatClient::on_connect);
|
|
||||||
connect(send_btn, &QPushButton::clicked, this, &ChatClient::on_send_message);
|
connect(send_btn, &QPushButton::clicked, this, &ChatClient::on_send_message);
|
||||||
connect(message_input, &QLineEdit::returnPressed, this, &ChatClient::on_send_message);
|
connect(message_input, &QLineEdit::returnPressed, this, &ChatClient::on_send_message);
|
||||||
connect(bg_color_btn, &QPushButton::clicked, this, &ChatClient::on_bg_color);
|
connect(bg_color_btn, &QPushButton::clicked, this, &ChatClient::on_bg_color);
|
||||||
@ -214,6 +302,9 @@ public:
|
|||||||
chat_display->append("[System] SCAR Chat Client started.");
|
chat_display->append("[System] SCAR Chat Client started.");
|
||||||
chat_display->append("[Info] Camera detection active.");
|
chat_display->append("[Info] Camera detection active.");
|
||||||
chat_display->append("[Info] Select a camera and enable it to start video capture.");
|
chat_display->append("[Info] Select a camera and enable it to start video capture.");
|
||||||
|
|
||||||
|
// Show login dialog
|
||||||
|
show_login_dialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
~ChatClient() {
|
~ChatClient() {
|
||||||
@ -224,6 +315,33 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void show_login_dialog() {
|
||||||
|
LoginDialog dialog(this);
|
||||||
|
if (dialog.exec() == QDialog::Accepted) {
|
||||||
|
QString server = dialog.get_server();
|
||||||
|
int port = dialog.get_port();
|
||||||
|
QString username = dialog.get_username();
|
||||||
|
QString password = dialog.get_password();
|
||||||
|
|
||||||
|
if (server.isEmpty() || username.isEmpty() || password.isEmpty()) {
|
||||||
|
QMessageBox::warning(this, "Error", "Please fill in all fields");
|
||||||
|
show_login_dialog();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
chat_display->append("[System] Connecting to " + server + ":" + QString::number(port) + "...");
|
||||||
|
m_current_username = username;
|
||||||
|
m_current_password = password;
|
||||||
|
m_login_dialog_server = server;
|
||||||
|
m_login_dialog_port = port;
|
||||||
|
|
||||||
|
socket->connectToHostEncrypted(server, port);
|
||||||
|
} else {
|
||||||
|
// User cancelled login
|
||||||
|
QApplication::quit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void populate_cameras() {
|
void populate_cameras() {
|
||||||
camera_combo->clear();
|
camera_combo->clear();
|
||||||
const QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
|
const QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
|
||||||
@ -328,40 +446,48 @@ private slots:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void on_connect() {
|
|
||||||
if (socket->state() == QSslSocket::ConnectedState) {
|
|
||||||
socket->disconnectFromHost();
|
|
||||||
connect_btn->setText("Connect");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString host = host_input->text();
|
|
||||||
int port = port_input->text().toInt();
|
|
||||||
|
|
||||||
chat_display->append("[System] Connecting to " + host + ":" + QString::number(port) + "...");
|
|
||||||
socket->connectToHostEncrypted(host, port);
|
|
||||||
}
|
|
||||||
|
|
||||||
void on_socket_connected() {
|
void on_socket_connected() {
|
||||||
chat_display->append("[System] Connected to server!");
|
chat_display->append("[System] Connected to server!");
|
||||||
connect_btn->setText("Disconnect");
|
// Send LOGIN command
|
||||||
|
QString login_cmd = "LOGIN:" + m_current_username + ":" + m_current_password;
|
||||||
|
socket->write(login_cmd.toUtf8() + "\n");
|
||||||
message_input->setFocus();
|
message_input->setFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
void on_socket_disconnected() {
|
void on_socket_disconnected() {
|
||||||
chat_display->append("[System] Disconnected from server");
|
chat_display->append("[System] Disconnected from server");
|
||||||
connect_btn->setText("Connect");
|
|
||||||
if (camera_toggle->isChecked()) {
|
if (camera_toggle->isChecked()) {
|
||||||
camera_toggle->setChecked(false);
|
camera_toggle->setChecked(false);
|
||||||
}
|
}
|
||||||
stop_camera();
|
stop_camera();
|
||||||
|
|
||||||
|
if (m_authenticated) {
|
||||||
|
QMessageBox::information(this, "Disconnected", "You have been disconnected from the server");
|
||||||
|
show_login_dialog();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void on_socket_read() {
|
void on_socket_read() {
|
||||||
while (socket->canReadLine()) {
|
while (socket->canReadLine()) {
|
||||||
QString message = QString::fromUtf8(socket->readLine()).trimmed();
|
QString message = QString::fromUtf8(socket->readLine()).trimmed();
|
||||||
|
|
||||||
if (message.startsWith("USER_CAMERA_ON:")) {
|
// Handle authentication response
|
||||||
|
if (message.startsWith("LOGIN_SUCCESS:")) {
|
||||||
|
QString username = message.mid(14);
|
||||||
|
m_authenticated = true;
|
||||||
|
status_label->setText("Logged in as: " + username);
|
||||||
|
chat_display->append("[System] Successfully logged in as " + username);
|
||||||
|
} else if (message.startsWith("LOGIN_FAILED:")) {
|
||||||
|
QString reason = message.mid(13);
|
||||||
|
m_authenticated = false;
|
||||||
|
chat_display->append("[System] Login failed: " + reason);
|
||||||
|
socket->disconnectFromHost();
|
||||||
|
QMessageBox::critical(this, "Login Failed", "Login failed: " + reason);
|
||||||
|
show_login_dialog();
|
||||||
|
} else if (message.startsWith("ERROR:")) {
|
||||||
|
QString error = message.mid(6);
|
||||||
|
chat_display->append("[Error] " + error);
|
||||||
|
} else if (message.startsWith("USER_CAMERA_ON:")) {
|
||||||
QString username = message.mid(15);
|
QString username = message.mid(15);
|
||||||
add_remote_user(username, true);
|
add_remote_user(username, true);
|
||||||
chat_display->append("[System] " + username + " enabled their camera");
|
chat_display->append("[System] " + username + " enabled their camera");
|
||||||
@ -372,6 +498,7 @@ private slots:
|
|||||||
} else if (message.startsWith("VIDEO_FRAME:")) {
|
} else if (message.startsWith("VIDEO_FRAME:")) {
|
||||||
// Placeholder for future video frame implementation
|
// Placeholder for future video frame implementation
|
||||||
} else {
|
} else {
|
||||||
|
// Regular chat message
|
||||||
chat_display->append("[Server] " + message);
|
chat_display->append("[Server] " + message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -452,9 +579,7 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// Chat UI
|
// Chat UI
|
||||||
QLineEdit *host_input;
|
QLabel *status_label;
|
||||||
QLineEdit *port_input;
|
|
||||||
QPushButton *connect_btn;
|
|
||||||
QTextEdit *chat_display;
|
QTextEdit *chat_display;
|
||||||
QLineEdit *message_input;
|
QLineEdit *message_input;
|
||||||
QPushButton *send_btn;
|
QPushButton *send_btn;
|
||||||
@ -478,6 +603,13 @@ private:
|
|||||||
QSslSocket *socket;
|
QSslSocket *socket;
|
||||||
QColor bg_color;
|
QColor bg_color;
|
||||||
QColor text_color;
|
QColor text_color;
|
||||||
|
|
||||||
|
// Authentication
|
||||||
|
bool m_authenticated;
|
||||||
|
QString m_current_username;
|
||||||
|
QString m_current_password;
|
||||||
|
QString m_login_dialog_server;
|
||||||
|
int m_login_dialog_port;
|
||||||
};
|
};
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
|
|||||||
@ -5,6 +5,10 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <chrono>
|
||||||
|
#include <iomanip>
|
||||||
|
#include <sstream>
|
||||||
|
#include <map>
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
@ -12,6 +16,7 @@
|
|||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include "database.h"
|
||||||
|
|
||||||
#define PORT 42317
|
#define PORT 42317
|
||||||
#define MAX_CLIENTS 100
|
#define MAX_CLIENTS 100
|
||||||
@ -21,7 +26,10 @@
|
|||||||
SSL_CTX *ctx = nullptr;
|
SSL_CTX *ctx = nullptr;
|
||||||
std::vector<SSL*> client_sockets;
|
std::vector<SSL*> client_sockets;
|
||||||
std::mutex clients_mutex;
|
std::mutex clients_mutex;
|
||||||
|
std::map<SSL*, std::string> client_nicknames; // Track client nicknames
|
||||||
|
std::mutex nicknames_mutex;
|
||||||
bool server_running = true;
|
bool server_running = true;
|
||||||
|
Database* global_db = nullptr;
|
||||||
|
|
||||||
void handle_sigint(int sig) {
|
void handle_sigint(int sig) {
|
||||||
(void)sig; // Unused parameter
|
(void)sig; // Unused parameter
|
||||||
@ -63,16 +71,61 @@ bool load_certificates(const char *cert_file, const char *key_file) {
|
|||||||
|
|
||||||
void broadcast_message(const std::string &message, SSL *sender) {
|
void broadcast_message(const std::string &message, SSL *sender) {
|
||||||
std::lock_guard<std::mutex> lock(clients_mutex);
|
std::lock_guard<std::mutex> lock(clients_mutex);
|
||||||
|
std::cout << "Broadcasting to " << client_sockets.size() << " clients (excluding sender): " << message;
|
||||||
for (SSL *client : client_sockets) {
|
for (SSL *client : client_sockets) {
|
||||||
if (client != sender) {
|
if (client != sender) {
|
||||||
SSL_write(client, message.c_str(), message.length());
|
int bytes_written = SSL_write(client, message.c_str(), message.length());
|
||||||
|
if (bytes_written <= 0) {
|
||||||
|
std::cerr << "Failed to write to client: " << SSL_get_error(client, bytes_written) << std::endl;
|
||||||
|
} else {
|
||||||
|
std::cout << " -> Sent " << bytes_written << " bytes to client" << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string get_timestamp() {
|
||||||
|
auto now = std::chrono::system_clock::now();
|
||||||
|
auto time = std::chrono::system_clock::to_time_t(now);
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << std::put_time(std::localtime(&time), "%H:%M:%S");
|
||||||
|
return ss.str();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Trim whitespace from both ends of string
|
||||||
|
std::string trim_string(const std::string &str) {
|
||||||
|
size_t start = str.find_first_not_of(" \t\r\n");
|
||||||
|
if (start == std::string::npos) return "";
|
||||||
|
size_t end = str.find_last_not_of(" \t\r\n");
|
||||||
|
return str.substr(start, end - start + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse message format: LOGIN:username:password or regular message
|
||||||
|
bool parse_login(const std::string &msg, std::string &username, std::string &password) {
|
||||||
|
std::string trimmed = trim_string(msg);
|
||||||
|
|
||||||
|
if (trimmed.substr(0, 6) != "LOGIN:") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t first_colon = 6;
|
||||||
|
size_t second_colon = trimmed.find(':', first_colon);
|
||||||
|
|
||||||
|
if (second_colon == std::string::npos) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
username = trim_string(trimmed.substr(first_colon, second_colon - first_colon));
|
||||||
|
password = trim_string(trimmed.substr(second_colon + 1));
|
||||||
|
|
||||||
|
return !username.empty() && !password.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void handle_client(SSL *ssl, int client_socket) {
|
void handle_client(SSL *ssl, int client_socket) {
|
||||||
char buffer[BUFFER_SIZE];
|
char buffer[BUFFER_SIZE];
|
||||||
int bytes;
|
int bytes;
|
||||||
|
std::string nickname;
|
||||||
|
bool authenticated = false;
|
||||||
|
|
||||||
std::cout << "Client connected (FD: " << client_socket << ")" << std::endl;
|
std::cout << "Client connected (FD: " << client_socket << ")" << std::endl;
|
||||||
|
|
||||||
@ -80,19 +133,52 @@ void handle_client(SSL *ssl, int client_socket) {
|
|||||||
buffer[bytes] = '\0';
|
buffer[bytes] = '\0';
|
||||||
std::string msg_str(buffer);
|
std::string msg_str(buffer);
|
||||||
|
|
||||||
|
// Handle LOGIN message
|
||||||
|
std::string username, password;
|
||||||
|
if (parse_login(msg_str, username, password)) {
|
||||||
|
if (global_db && global_db->authenticate_user(username, password)) {
|
||||||
|
nickname = username;
|
||||||
|
authenticated = true;
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(nicknames_mutex);
|
||||||
|
client_nicknames[ssl] = nickname;
|
||||||
|
}
|
||||||
|
std::string response = "LOGIN_SUCCESS:" + nickname + "\n";
|
||||||
|
SSL_write(ssl, response.c_str(), response.length());
|
||||||
|
std::cout << "User authenticated: " << nickname << " (FD: " << client_socket << ")" << std::endl;
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
std::string response = "LOGIN_FAILED:Invalid credentials\n";
|
||||||
|
SSL_write(ssl, response.c_str(), response.length());
|
||||||
|
std::cout << "Authentication failed for user: " << username << std::endl;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reject messages from unauthenticated clients
|
||||||
|
if (!authenticated) {
|
||||||
|
std::string response = "ERROR:Not authenticated. Send LOGIN:username:password\n";
|
||||||
|
SSL_write(ssl, response.c_str(), response.length());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Handle camera status messages
|
// Handle camera status messages
|
||||||
if (msg_str.find("CAMERA_ENABLE") != std::string::npos) {
|
if (msg_str.find("CAMERA_ENABLE") != std::string::npos) {
|
||||||
std::cout << "User enabled camera" << std::endl;
|
std::cout << "User " << nickname << " enabled camera" << std::endl;
|
||||||
std::string broadcast_msg = "USER_CAMERA_ON: User" + std::to_string(client_socket) + "\n";
|
std::string timestamp = get_timestamp();
|
||||||
|
std::string broadcast_msg = "*{" + timestamp + "}* " + nickname + ": Camera Enabled\n";
|
||||||
broadcast_message(broadcast_msg, ssl);
|
broadcast_message(broadcast_msg, ssl);
|
||||||
} else if (msg_str.find("CAMERA_DISABLE") != std::string::npos) {
|
} else if (msg_str.find("CAMERA_DISABLE") != std::string::npos) {
|
||||||
std::cout << "User disabled camera" << std::endl;
|
std::cout << "User " << nickname << " disabled camera" << std::endl;
|
||||||
std::string broadcast_msg = "USER_CAMERA_OFF: User" + std::to_string(client_socket) + "\n";
|
std::string timestamp = get_timestamp();
|
||||||
|
std::string broadcast_msg = "*{" + timestamp + "}* " + nickname + ": Camera Disabled\n";
|
||||||
broadcast_message(broadcast_msg, ssl);
|
broadcast_message(broadcast_msg, ssl);
|
||||||
} else {
|
} else {
|
||||||
// Regular chat message
|
// Regular chat message - format with timestamp and nickname
|
||||||
std::cout << "Received: " << buffer << std::endl;
|
std::string timestamp = get_timestamp();
|
||||||
broadcast_message(msg_str, ssl);
|
std::string formatted_msg = "*{" + timestamp + "}* " + nickname + ": " + msg_str + "\n";
|
||||||
|
std::cout << "Received: " << formatted_msg;
|
||||||
|
broadcast_message(formatted_msg, ssl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,9 +190,18 @@ void handle_client(SSL *ssl, int client_socket) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(nicknames_mutex);
|
||||||
|
auto it = client_nicknames.find(ssl);
|
||||||
|
if (it != client_nicknames.end()) {
|
||||||
|
std::cout << "User disconnected: " << it->second << std::endl;
|
||||||
|
client_nicknames.erase(it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SSL_free(ssl);
|
SSL_free(ssl);
|
||||||
close(client_socket);
|
close(client_socket);
|
||||||
std::cout << "Client disconnected" << std::endl;
|
std::cout << "Client disconnected (FD: " << client_socket << ")" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
@ -118,6 +213,20 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
signal(SIGINT, handle_sigint);
|
signal(SIGINT, handle_sigint);
|
||||||
|
|
||||||
|
// Initialize database - use path relative to project root
|
||||||
|
std::string db_path = "scar_chat.db";
|
||||||
|
// If running from build directory, look in parent directory
|
||||||
|
if (access(db_path.c_str(), F_OK) == -1 && access("../scar_chat.db", F_OK) == 0) {
|
||||||
|
db_path = "../scar_chat.db";
|
||||||
|
}
|
||||||
|
|
||||||
|
global_db = new Database(db_path);
|
||||||
|
if (!global_db->initialize()) {
|
||||||
|
std::cerr << "Failed to initialize database" << std::endl;
|
||||||
|
delete global_db;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
init_openssl();
|
init_openssl();
|
||||||
|
|
||||||
if (!load_certificates(argv[1], argv[2])) {
|
if (!load_certificates(argv[1], argv[2])) {
|
||||||
@ -198,6 +307,10 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
close(server_fd);
|
close(server_fd);
|
||||||
cleanup_openssl();
|
cleanup_openssl();
|
||||||
|
if (global_db) {
|
||||||
|
global_db->close();
|
||||||
|
delete global_db;
|
||||||
|
}
|
||||||
std::cout << "Server shutdown complete" << std::endl;
|
std::cout << "Server shutdown complete" << std::endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user