/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #include #include #include #include #include #include #include #include #include #include #include "shemov.h" #include "filesystemwidget.h" #include "fileview.h" SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) { mFSWidget = new FilesystemWidget; setWindowTitle(mFSWidget->windowTitle()); mTab = new QTabWidget; mTab->addTab(mFSWidget, tr("Filemanager")); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(mTab); createStatusbar(); createActions(); createMenus(); connect(mFSWidget->fileView()->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(updateSelectionCount(const QItemSelection &, const QItemSelection &))); connect(mFSWidget, SIGNAL(windowTitle(const QString &)), this, SLOT(newWindowTitle(const QString &))); connect(mFSWidget->fileView(), SIGNAL(statusbarMessage(const QString &)), this, SLOT(statusbarMessage(const QString &))); QWidget *centralWidget = new QWidget; centralWidget->setLayout(mainLayout); setCentralWidget(centralWidget); showMaximized(); mFSWidget->fileView()->setFocus(Qt::ActiveWindowFocusReason); } void SheMov::updateSelectionCount(const QItemSelection & /* sel */, const QItemSelection & /* prev */){ mSelectedItems->setText(QString::number(mFSWidget->fileView()->selectionModel()->selectedRows().count())); } void SheMov::newWindowTitle(const QString &title){ setWindowTitle(title); } void SheMov::statusbarMessage(const QString &message){ statusBar()->showMessage(message); } void SheMov::createStatusbar(){ QLabel *selCountL = new QLabel(tr("Sel. Items")); mSelectedItems = new QLabel("0"); mSelectedItems->setFrameStyle(QFrame::Panel | QFrame::Sunken); statusBar()->addPermanentWidget(selCountL); statusBar()->addPermanentWidget(mSelectedItems); } void SheMov::createActions(){ mQuitA = new QAction(tr("Quit"), this); mQuitA->setShortcut(tr("CTRL+q")); connect(mQuitA, SIGNAL(triggered()), qApp, SLOT(quit())); mMarkFilesA = new QAction(tr("Select files..."), this); mMarkFilesA->setShortcut(tr("CTRL++")); mFSWidget->fileView()->addAction(mMarkFilesA); connect(mMarkFilesA, SIGNAL(triggered()), mFSWidget->fileView(), SLOT(markFiles())); mUnmarkFilesA = new QAction(tr("Deselect all files"), this); mUnmarkFilesA->setShortcut(tr("CTRL+-")); mFSWidget->fileView()->addAction(mUnmarkFilesA); connect(mUnmarkFilesA, SIGNAL(triggered()), mFSWidget->fileView(), SLOT(unmarkFiles())); mCreateFolderA = new QAction(tr("Create folder..."), this); mCreateFolderA->setShortcut(tr("CTRL+n")); connect(mCreateFolderA, SIGNAL(triggered()), mFSWidget->fileView(), SLOT(createFolder())); mFSWidget->fileView()->addAction(mCreateFolderA); } void SheMov::createMenus(){ QMenu *fileMenu = new QMenu(tr("&File"), this); fileMenu->addAction(mQuitA); QMenu *editMenu = new QMenu(tr("&Edit"), this); editMenu->addAction(mMarkFilesA); editMenu->addAction(mUnmarkFilesA); editMenu->addSeparator(); editMenu->addAction(mCreateFolderA); editMenu->addSeparator(); menuBar()->addMenu(fileMenu); menuBar()->addMenu(editMenu); }