Fix build: synchronize Request API, fix GmailSynchronizer, and migrate UI to Qt6 Widgets
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
#pragma once
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QStackedWidget>
|
||||
#include <QListWidget>
|
||||
#include <QSplitter>
|
||||
#include <QTreeView>
|
||||
#include <QStatusBar>
|
||||
#include <QToolBar>
|
||||
#include <QAction>
|
||||
|
||||
#include "ui/readerview.h"
|
||||
#include "ui/maillistview.h"
|
||||
#include "ui/composeview.h"
|
||||
#include "ui/settingsview.h"
|
||||
#include "ui/contactsview.h"
|
||||
#include "ui/calendarview.h"
|
||||
#include "ui/models/FolderListModel.h"
|
||||
#include "ui/models/EmailListModel.h"
|
||||
#include "services/accountservice.h"
|
||||
#include "services/mailservice.h"
|
||||
|
||||
class MainMainWindow : public QMainWindow {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MainMainWindow(QWidget *parent = nullptr);
|
||||
~MainMainWindow() override = default;
|
||||
|
||||
private slots:
|
||||
void onNavChanged(int index);
|
||||
void onFolderSelected(const QModelIndex &index);
|
||||
void onEmailSelected(int mailId);
|
||||
void onComposeRequested();
|
||||
void onReaderReplyRequested(const MailItem *item);
|
||||
void onNewMessage();
|
||||
|
||||
private:
|
||||
void setupUI();
|
||||
void setupSidebar();
|
||||
void setupMailPage();
|
||||
void connectModels();
|
||||
void createToolBar();
|
||||
void switchToPage(int pageIndex);
|
||||
|
||||
// Navigation
|
||||
QListWidget *m_sidebar;
|
||||
QStackedWidget *m_stack;
|
||||
|
||||
enum Page {
|
||||
PageMail = 0,
|
||||
PageCompose,
|
||||
PageSettings,
|
||||
PageContacts,
|
||||
PageCalendar
|
||||
};
|
||||
|
||||
// Mail page widgets
|
||||
QWidget *m_mailPage;
|
||||
QSplitter *m_folderSplitter;
|
||||
QTreeView *m_folderTree;
|
||||
MailListView *m_mailListView;
|
||||
ReaderView *m_emailViewer;
|
||||
|
||||
// Other pages
|
||||
ComposeView *m_composeView;
|
||||
SettingsView *m_settingsView;
|
||||
ContactsView *m_contactsView;
|
||||
CalendarView *m_calendarView;
|
||||
|
||||
// Services & Models
|
||||
FolderListModel *m_folderModel;
|
||||
EmailListModel *m_emailModel;
|
||||
AccountService *m_accountService;
|
||||
MailService *m_mailService;
|
||||
|
||||
QToolBar *m_toolBar;
|
||||
int m_currentFolderId;
|
||||
};
|
||||
Reference in New Issue
Block a user