MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), timer(new QTimer(this)) { ui->setupUi(this); this->setWindowIcon(QIcon(":/icon.png")); Qt::WindowFlags flags = this->windowFlags(); this->setWindowFlags(flags | Qt::X11BypassWindowManagerHint | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); // this->setAttribute(Qt::WA_TranslucentBackground, true); timer->setTimerType(Qt::PreciseTimer); // fixes subtitle delay connect(timer, SIGNAL(timeout()), this, SLOT(update())); connect(ui->backwardButton, SIGNAL(clicked()), this, SLOT(fastBackward())); connect(ui->forwardButton, SIGNAL(clicked()), this, SLOT(fastForward())); connect(ui->toggleButton, SIGNAL(clicked()), this, SLOT(togglePlay())); connect(ui->loadButton, SIGNAL(clicked()), this, SLOT(openFileDialog())); connect(ui->prefButton, SIGNAL(clicked()), this, SLOT(openSettingsWindow())); connect(ui->quitButton, SIGNAL(clicked()), qApp, SLOT(quit())); connect(ui->horizontalSlider, SIGNAL(sliderMoved(int)), this, SLOT(sliderMoved(int))); if (QSystemTrayIcon::isSystemTrayAvailable()) { trayIcon = new QSystemTrayIcon(); trayIcon->setIcon(QIcon(":/icon.png")); connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason))); menu = new QMenu(); QAction *settings = new QAction("Preferences", 0); connect(settings, SIGNAL(triggered()), this, SLOT(openSettingsWindow())); menu->addAction(settings); QAction *quit = new QAction("Quit", 0); connect(quit, SIGNAL(triggered()), qApp, SLOT(quit())); menu->addAction(quit); trayIcon->setContextMenu(menu); trayIcon->show(); } this->setAttribute(Qt::WA_Hover, true); ui->bottomWidgets->setAttribute(Qt::WA_NoMousePropagation); // fix window disappear problem this->loadPref(); setAcceptDrops(true); }
int main(int argc, char ** argv) { QApplication app( argc, argv ); //MainWindowImpl win; QMainWindow *win = new QMainWindow(0, Qt::Window); PageTemplate tmplt;// = new PageTemplate; book b;// = new book(); tmplt.setBook(&b); QMenu fileMenu("File"); QAction *openBookAction = new QAction(("Open book"), win); QAction *openLibraryAction = new QAction(("Library"), win); fileMenu.addAction(openBookAction); fileMenu.addAction(openLibraryAction); // fileMenu.addAction("Open book", ) fileMenu.addSeparator(); fileMenu.addAction("Quit"); win->connect(openBookAction, SIGNAL(triggered()), &tmplt, SLOT(openBookSlot())); win->connect(openLibraryAction, SIGNAL(triggered()), &tmplt, SLOT(openLibrarySlot())); QMenu prefMenu("Settings"); // prefMenu.addAction("Fonts +"); // prefMenu.addAction("Fonts -"); // prefMenu.addAction("Linespacing +"); // prefMenu.addAction("Linespacing -"); // prefMenu.addSeparator(); // prefMenu.addAction("Settings"); QAction *openSettingsAction = new QAction(("Settings"), win); prefMenu.addAction(openSettingsAction); win->connect(openSettingsAction, SIGNAL(triggered()), &tmplt, SLOT(openSettingsWindow())); QMenu contentsMenu("Contents"); win->menuBar()->addMenu(&fileMenu); win->menuBar()->addMenu(&prefMenu); win->menuBar()->addMenu(&contentsMenu); // win->menuBar()-> addMenu("File")->addSeparator(); // win->menuBar()->addMenu("Settings")->addAction("Preferences"); win->setCentralWidget(&tmplt); tmplt.menuBar = win->menuBar(); tmplt.contentsMenu = &contentsMenu; win->resize(640, 480); //b->loadFB2(); win->show(); app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) ); return app.exec(); }