You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qtmindmap/mainwindow.cpp

128 lines
3.7 KiB

14 years ago
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "aboutdialog.h"
#include <QDebug>
//#include <QLayout>
#include <QFileDialog>
14 years ago
MainWindow::MainWindow(bool isSystemtray, QWidget *parent) :
14 years ago
QMainWindow(parent),
ui(new Ui::MainWindow),
aboutDialog(0)
14 years ago
{
qDebug() << __PRETTY_FUNCTION__;
14 years ago
ui->setupUi(this);
connect(ui->actionNew, SIGNAL(activated()), this, SLOT(klakk()));
connect(ui->actionOpen, SIGNAL(activated()), this, SLOT(klakk()));
connect(ui->actionSave, SIGNAL(activated()), this, SLOT(klakk()));
connect(ui->actionClose, SIGNAL(activated()), this, SLOT(klakk()));
connect(ui->actionExport, SIGNAL(activated()), this, SLOT(exportScene()));
connect(ui->actionQuit, SIGNAL(activated()), QApplication::instance(),
SLOT(quit()));
connect(ui->actionAbout_QtMindMap, SIGNAL(activated()), this,
SLOT(about()));
graphicsView = new GraphWidget(ui->centralWidget);
setCentralWidget(graphicsView);
if (isSystemtray) setupSystemTray();
14 years ago
}
MainWindow::~MainWindow()
{
qDebug() << __PRETTY_FUNCTION__;
14 years ago
delete ui;
if (aboutDialog) delete aboutDialog;
}
void MainWindow::klakk()
{
qDebug() << __PRETTY_FUNCTION__;
}
void MainWindow::exportScene()
{
qDebug() << __PRETTY_FUNCTION__;
QFileDialog dialog(this,
tr("Export MindMap to image"),
"/home/cs0rbagomba",
tr("PNG image file (*.png)"));
dialog.setAcceptMode(QFileDialog::AcceptSave);
dialog.setDefaultSuffix("png");
if (dialog.exec())
{
QStringList fileNames(dialog.selectedFiles());
// start export in a diff thread
QImage img(graphicsView->getScene()->sceneRect().width(),
graphicsView->getScene()->sceneRect().height(),
QImage::Format_ARGB32_Premultiplied);
QPainter painter(&img);
painter.setRenderHint(QPainter::Antialiasing);
graphicsView->getScene()->render(&painter);
painter.end();
img.save(fileNames.first());
ui->statusBar->showMessage(tr("MindMap exported as ") + fileNames.first(),
5000);
}
}
void MainWindow::setupSystemTray()
{
systemTrayIcon = new QSystemTrayIcon(0);
minimizeAction = new QAction(tr("Mi&nimize"), systemTrayIcon);
connect(minimizeAction, SIGNAL(triggered()), this, SLOT(hide()));
maximizeAction = new QAction(tr("Ma&ximize"), systemTrayIcon);
connect(maximizeAction, SIGNAL(triggered()), this, SLOT(showMaximized()));
restoreAction = new QAction(tr("&Restore"), systemTrayIcon);
connect(restoreAction, SIGNAL(triggered()), this, SLOT(showNormal()));
quitAction = new QAction(tr("&Quit"), systemTrayIcon);
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
trayIconMenu = new QMenu(this);
trayIconMenu->addAction(minimizeAction);
trayIconMenu->addAction(maximizeAction);
trayIconMenu->addAction(restoreAction);
trayIconMenu->addSeparator();
trayIconMenu->addAction(quitAction);
systemTrayIcon->setContextMenu(trayIconMenu);
icon = new QIcon(":/heart.svg");
systemTrayIcon->setIcon(QIcon(":/heart.svg"));
}
void MainWindow::about()
{
qDebug() << __PRETTY_FUNCTION__;
setDisabled(true);
if (aboutDialog == 0) aboutDialog = new AboutDialog(this);
aboutDialog->setEnabled(true); // children inherits enabled status
aboutDialog->show();
// aboutDialog->layout()->setSizeConstraint( QLayout::SetFixedSize );
}
void MainWindow::aboutDestroyed()
{
qDebug() << __PRETTY_FUNCTION__;
qDebug() << aboutDialog;
setEnabled(true);
14 years ago
}
void MainWindow::showSysTray()
{
systemTrayIcon->show();
}