void PigMover::runRetreat() { // TODO: Is there a better way? static uint8_t retreatCounter = 0; // Still running current behavior if(counter % LEG_RETREAT_PERIOD) return; switch(retreatCounter % 3) { case 0: setMovement(WheelController::STOP); break; case 1: setMovement(WheelController::BACKWARD); break; case 2: setMovement(WheelController::BACKWARD); break; } // Retreat only for a set time if(retreatCounter % 9 == 0) { setBehavior(SEARCH); } retreatCounter++; }
task main() { //time based off ramp initializeAPI(); initializeRobot(); waitForStart(); //driveSeconds(4.0, -40); ClearTimer(T1); int a = time1[T1]; while (time1[T1] < a + 2000) { setMovement(-40, 0); } setMovement(0, 0); }
IGameObject::State ShotEntity::update(sf::Event *event, const sf::Clock &clock, ServerMessage *_recv_msg, ClientMessage *_send_msg) { const static int utilX[] = {48, 12}; const static int utilY[] = {14, 10}; const static float utilSpeed[] = {0.01f, 0.01f}; if (!_recv_msg->has_been_read && _recv_msg->shots[id][TYPE] == -1) toDraw = false; if (!toDraw) { if (_recv_msg->has_been_read || _recv_msg->shots[id][TYPE] == -1) return (IGameObject::Default); toDraw = true; } if (!_recv_msg->has_been_read) { type = _recv_msg->shots[id][TYPE]; realPosX = _recv_msg->shots[id][POS_X]; realPosY = _recv_msg->shots[id][POS_Y]; vectX = _recv_msg->shots[id][DIR_X]; vectY = _recv_msg->shots[id][DIR_Y]; } realPosX += vectX / 1000.f * clock.getElapsedTime().asMicroseconds(); realPosY += vectY / 1000.f * clock.getElapsedTime().asMicroseconds(); setMovement(AMovingObject::Default, realPosX, realPosY); if (type < 0 || type >= sizeof(utilX) / sizeof(*utilX)) return (IGameObject::Default); posX = (posX >= WIDTH - utilX[type]) ? WIDTH - utilX[type] : posX; posY = (posY >= LENGTH - utilY[type]) ? LENGTH - utilY[type] : posY; return (IGameObject::Default); }
MusicToolSetsWidget::MusicToolSetsWidget(QWidget *parent) : QListWidget(parent) { setAttribute(Qt::WA_TranslucentBackground, true); setFrameShape(QFrame::NoFrame);//Set No Border setStyleSheet(MusicUIObject::MScrollBarStyle01); setIconSize(QSize(60, 60)); setViewMode(QListView::IconMode); setMovement(QListView::Static); #ifdef Q_OS_WIN setSpacing(17); addListWidgetItem(); #else setSpacing(16); QTimer::singleShot(1, this, SLOT(addListWidgetItem())); #endif MusicUtils::UWidget::setTransparent(this, 50); connect(this, SIGNAL(itemClicked(QListWidgetItem*)), SLOT(itemHasClicked(QListWidgetItem*))); M_CONNECTION_PTR->setValue(getClassName(), this); M_CONNECTION_PTR->poolConnect(getClassName(), MusicApplication::getClassName()); M_CONNECTION_PTR->poolConnect(getClassName(), MusicLeftAreaWidget::getClassName()); }
ThumbnailView::ThumbnailView( QWidget* parent ) : QListView( parent ) { setMovement( QListView::Static ); setFrameStyle(QFrame::NoFrame); connect( this, SIGNAL(pressed(QModelIndex)), this, SLOT(emitSelected(QModelIndex)) ); }
MusicBackgroundListWidget::MusicBackgroundListWidget(QWidget *parent) : QListWidget(parent) { setFrameShape(QFrame::NoFrame); //Set No Border setStyleSheet(MusicUIObject::MScrollBarStyle01); setIconSize(QSize(100, 80)); setViewMode(QListView::IconMode); setMovement(QListView::Static); }
void PigMover::runFindLine(WheelController::Movement rotation) { static uint8_t findLineCounter = 0; if(counter % LEG_FIND_LINE_PERIOD) return; switch(findLineCounter % 3) { case 0: setMovement(rotation); break; case 1: case 2: setMovement(WheelController::STOP); break; } findLineCounter++; }
PathWindow::PathWindow(QWidget *parent) : QListWidget(parent) { char sz[16]; setViewMode(QListWidget::IconMode); setResizeMode(QListWidget::Adjust); setMovement(QListWidget::Static); connect(this, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(moveClicked(QListWidgetItem*))); }
ThumbnailView::ThumbnailView( QWidget* parent ) : QListView( parent ) { QDesktopWidget *desktop = QApplication::desktop(); resize(desktop->availableGeometry(desktop->screenNumber(this)).width(), height()); //### workaround to make view layout properly on first view. setMovement( QListView::Static ); setFrameStyle(QFrame::NoFrame); connect( this, SIGNAL(pressed(QModelIndex)), this, SLOT(emitSelected(QModelIndex)) ); }
IconPickerDialog::IconPickerDialog(QWidget *parent) : QDialog(parent), ui(new Ui::IconPickerDialog) { MultiMCPlatform::fixWM_CLASS(this); ui->setupUi(this); setWindowModality(Qt::WindowModal); auto contentsWidget = ui->iconView; contentsWidget->setViewMode(QListView::IconMode); contentsWidget->setFlow(QListView::LeftToRight); contentsWidget->setIconSize(QSize(48, 48)); contentsWidget->setMovement(QListView::Static); contentsWidget->setResizeMode(QListView::Adjust); contentsWidget->setSelectionMode(QAbstractItemView::SingleSelection); contentsWidget->setSpacing(5); contentsWidget->setWordWrap(false); contentsWidget->setWrapping(true); contentsWidget->setUniformItemSizes(true); contentsWidget->setTextElideMode(Qt::ElideRight); contentsWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); contentsWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); contentsWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); contentsWidget->setItemDelegate(new ListViewDelegate()); //contentsWidget->setAcceptDrops(true); contentsWidget->setDropIndicatorShown(true); contentsWidget->viewport()->setAcceptDrops(true); contentsWidget->setDragDropMode(QAbstractItemView::DropOnly); contentsWidget->setDefaultDropAction(Qt::CopyAction); contentsWidget->installEventFilter(this); contentsWidget->setModel(MMC->icons().get()); auto buttonAdd = ui->buttonBox->addButton(tr("Add Icon"),QDialogButtonBox::ResetRole); auto buttonRemove = ui->buttonBox->addButton(tr("Remove Icon"),QDialogButtonBox::ResetRole); connect(buttonAdd,SIGNAL(clicked(bool)),SLOT(addNewIcon())); connect(buttonRemove,SIGNAL(clicked(bool)),SLOT(removeSelectedIcon())); connect ( contentsWidget, SIGNAL(doubleClicked(QModelIndex)), SLOT(activated(QModelIndex)) ); connect ( contentsWidget->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(selectionChanged(QItemSelection,QItemSelection)) ); }
TemplateIconView::TemplateIconView(QWidget *parent) : QListWidget(parent), m_templateManager(Q_NULLPTR), m_proc(Q_NULLPTR) { setViewMode(QListView::IconMode); setMovement(QListView::Static); setResizeMode(QListView::Adjust); setSelectionMode(QAbstractItemView::SingleSelection); setFlow(QListView::TopToBottom); setMinimumHeight(100); setIconSize(QSize(48, 48)); }
ChannelView::ChannelView(QWidget *parent) : QListView(parent), showUpdated(false), sortBy(SortByName) { setItemDelegate(new ChannelItemDelegate(this)); setSelectionMode(QAbstractItemView::NoSelection); // layout setSpacing(15); setFlow(QListView::LeftToRight); setWrapping(true); setResizeMode(QListView::Adjust); setMovement(QListView::Static); setUniformItemSizes(true); // cosmetics setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); setFrameShape(QFrame::NoFrame); setAttribute(Qt::WA_MacShowFocusRect, false); QPalette p = palette(); /* p.setColor(QPalette::Base, p.window().color()); p.setColor(QPalette::Text, p.windowText().color()); */ p.setColor(QPalette::Disabled, QPalette::Base, p.base().color()); p.setColor(QPalette::Disabled, QPalette::Text, p.text().color()); setPalette(p); verticalScrollBar()->setPageStep(3); verticalScrollBar()->setSingleStep(1); setMouseTracking(true); connect(this, SIGNAL(clicked(const QModelIndex &)), SLOT(itemActivated(const QModelIndex &))); connect(this, SIGNAL(entered(const QModelIndex &)), SLOT(itemEntered(const QModelIndex &))); channelsModel = new ChannelModel(this); setModel(channelsModel); connect(this, SIGNAL(viewportEntered()), channelsModel, SLOT(clearHover())); setupActions(); connect(ChannelAggregator::instance(), SIGNAL(channelChanged(YTChannel*)), channelsModel, SLOT(updateChannel(YTChannel*))); connect(ChannelAggregator::instance(), SIGNAL(unwatchedCountChanged(int)), SLOT(unwatchedCountChanged(int))); unwatchedCountChanged(ChannelAggregator::instance()->getUnwatchedCount()); }
/* 构造函数 */ FileListWidget::FileListWidget(QListWidget* parent):QListWidget(parent) { setIconSize(QSize(W_ICONSIZE,H_ICONSIZE)); setViewMode(QListView::IconMode); setMovement(QListView::Static); setSpacing(SPACING); // setContextMenuPolicy(Qt::DefaultContextMenu); connect(this,SIGNAL(ShowFilesSig(QStringList)),this,SLOT(ShowFiles(QStringList))); }
CategorizedView::CategorizedView(QWidget *parent) : QListView(parent), m_leftMargin(5), m_rightMargin(5), m_bottomMargin(5), m_categoryMargin(5)//, m_updatesDisabled(false), m_categoryEditor(0), m_editedCategory(0) { setViewMode(IconMode); setMovement(Snap); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); setWordWrap(true); setDragDropMode(QListView::InternalMove); setAcceptDrops(true); setSpacing(10); }
ShotEntity::ShotEntity(int paramId) { setMovement(AMovingObject::Default, 0, 0); texture["Ally"] = NULL; texture["Enemy"] = NULL; inited = false; toDraw = false; id = paramId; type = -1; realPosX = 0; realPosY = 0; vectX = 0; vectY = 0; }
void PigMover::runAvoidLine() { // TODO: Is there a better way? static uint8_t avoidCounter = 0; // Still running current behavior if(counter % LEG_AVOID_PERIOD) return; switch(avoidCounter % 2) { case 0: setMovement(WheelController::STOP); break; case 1: setMovement(WheelController::BACKWARD); break; } // Avoidance goes on until the pig does not see the line. // Thus there is no terminating condition here. See notify() // function for this action. avoidCounter++; }
ThumbnailsView::ThumbnailsView(QWidget *parent) : QListWidget(parent), thumbnailSize(220, 180) { setItemDelegate(new ListItemDelegate(this)); setViewMode(QListWidget::IconMode); setIconSize(thumbnailSize); setResizeMode(QListWidget::Adjust); setMovement(QListWidget::Static); setSpacing(10); setSelectionMode(QAbstractItemView::SingleSelection); setDragDrop(); setContextMenuPolicy(Qt::CustomContextMenu); }
ToolBarList::ToolBarList(QWidget* parent) : QListWidget(parent) { m_toolbar = new QToolBar(this); m_toolbar->setFloatable(false); m_toolbar->setMovable(false); m_toolbar->setToolButtonStyle(Qt::ToolButtonIconOnly); m_toolbar->setStyleSheet("QToolBar { border-top: 1px solid palette(mid); }"); m_toolbar->hide(); setContextMenuPolicy(Qt::ActionsContextMenu); setMovement(QListView::Static); setResizeMode(QListView::Adjust); setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); }
AnimationListWidget::AnimationListWidget(QWidget *parent): ListWidget(parent) { setDropIndicatorShown(false); setMovement(Static); setDefaultDropAction(Qt::IgnoreAction); setEditTriggers(DoubleClicked | EditKeyPressed); setDragDropMode(DragOnly); setDragEnabled(true); setAcceptDrops(false); setSortingEnabled(true); createActions(); connect( m_addToPlaylistAction, &QAction::triggered, this, &AnimationListWidget::addSelectedItemsToPlaylist); }
MusicListView::MusicListView(QWidget *parent) : ListView(parent), d_ptr(new MusicListViewPrivate(this)) { Q_D(MusicListView); DThemeManager::instance()->registerWidget(this); setObjectName("MusicListView"); d->model = new MusiclistModel(0, 1, this); setModel(d->model); d->delegate = new MusicItemDelegate; setItemDelegate(d->delegate); setDragEnabled(true); viewport()->setAcceptDrops(true); setDropIndicatorShown(true); setDragDropOverwriteMode(false); setVerticalScrollMode(QAbstractItemView::ScrollPerItem); setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); setDefaultDropAction(Qt::MoveAction); setDragDropMode(QAbstractItemView::InternalMove); setMovement(QListView::Free); setSelectionMode(QListView::ExtendedSelection); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setEditTriggers(QAbstractItemView::NoEditTriggers); setSelectionBehavior(QAbstractItemView::SelectRows); setContextMenuPolicy(Qt::CustomContextMenu); connect(this, &MusicListView::customContextMenuRequested, this, &MusicListView::requestCustomContextMenu); connect(this, &MusicListView::doubleClicked, this, [ = ](const QModelIndex & index) { MetaPtr meta = d->model->meta(index); Q_EMIT playMedia(meta); }); // For debug // connect(selectionModel(), &QItemSelectionModel::selectionChanged, // this, [ = ](const QItemSelection & /*selected*/, const QItemSelection & deselected) { // if (!deselected.isEmpty()) { // qDebug() << "cancel" << deselected; // } // }); }
MusicWebRadioListView::MusicWebRadioListView(QWidget *parent) : QListWidget(parent), m_radioDialog(NULL) { setAttribute(Qt::WA_TranslucentBackground, true); setFrameShape(QFrame::NoFrame);//Set No Border setStyleSheet(MusicUIObject::MScrollBarStyle01); setIconSize(QSize(60, 60)); setViewMode(QListView::IconMode); setMovement(QListView::Static); setSpacing(20); setTransparent(50); connect(this, SIGNAL(itemClicked(QListWidgetItem*)), SLOT(itemHasClicked(QListWidgetItem*))); addListWidgetItem(); }
//-------------------- FUNCTIONS Start -------------------- void Person::run() { this->stop = false; while(!this->stop) { if( (!this->isWaiting) || this->inCS ){ setMovement(); this->position += movement; emit this->ChangePosition(this->id, movement); QMutex mutex; mutex.lock(); this->msleep(this->speed); mutex.unlock(); } } }
PlIconView::PlIconView( PLModel *model, QWidget *parent ) : QListView( parent ) { PlIconViewItemDelegate *delegate = new PlIconViewItemDelegate( this ); setModel( model ); setViewMode( QListView::IconMode ); setMovement( QListView::Static ); setResizeMode( QListView::Adjust ); setWrapping( true ); setUniformItemSizes( true ); setSelectionMode( QAbstractItemView::ExtendedSelection ); setDragEnabled(true); setAttribute( Qt::WA_MacShowFocusRect, false ); /* dropping in QListView::IconMode does not seem to work */ //setAcceptDrops( true ); //setDropIndicatorShown(true); setItemDelegate( delegate ); }
MusicToolSetsWidget::MusicToolSetsWidget(QWidget *parent) : QListWidget(parent), m_musicSpectrumWidget(NULL), m_wallpaper(NULL), m_process(NULL) { setAttribute(Qt::WA_TranslucentBackground, true); setFrameShape(QFrame::NoFrame);//Set No Border setStyleSheet(MusicUIObject::MScrollBarStyle01); setIconSize(QSize(60, 60)); setViewMode(QListView::IconMode); setMovement(QListView::Static); setSpacing(20); setTransparent(50); connect(this, SIGNAL(itemClicked(QListWidgetItem*)), SLOT(itemHasClicked(QListWidgetItem*))); addListWidgetItem(); M_CONNECTION->setValue("MusicToolSetsWidget", this); M_CONNECTION->connect("MusicToolSetsWidget", "MusicApplication"); }
AppListView::AppListView(QWidget *parent) : QListView(parent), m_dropThresholdTimer(new QTimer(this)) { if (!m_appManager) m_appManager = AppsManager::instance(this); if (!m_calcUtil) m_calcUtil = CalculateUtil::instance(this); m_dropThresholdTimer->setInterval(DLauncher::APP_DRAG_SWAP_THRESHOLD); m_dropThresholdTimer->setSingleShot(true); viewport()->installEventFilter(this); viewport()->setAcceptDrops(true); setUniformItemSizes(true); setMouseTracking(true); setAcceptDrops(true); setDragEnabled(true); setWrapping(true); setFocusPolicy(Qt::NoFocus); setDragDropMode(QAbstractItemView::DragDrop); setMovement(QListView::Free); setFlow(QListView::LeftToRight); setLayoutMode(QListView::Batched); setResizeMode(QListView::Adjust); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setFrameStyle(QFrame::NoFrame); setStyleSheet("background-color:transparent;"); // update item spacing connect(m_calcUtil, &CalculateUtil::layoutChanged, [this] {setSpacing(m_calcUtil->appItemSpacing());}); #ifndef DISABLE_DRAG_ANIMATION connect(m_dropThresholdTimer, &QTimer::timeout, this, &AppListView::prepareDropSwap, Qt::QueuedConnection); #else connect(m_dropThresholdTimer, &QTimer::timeout, this, &AppListView::dropSwap); #endif }
Pageview::Pageview (QWidget *parent) : QListView (parent) { setViewMode (IconMode); setWrapping (true); setFlow (LeftToRight); // the user cannot have free movement, but this makes the destination cursor look nice setMovement (Free); setResizeMode (Adjust); setLayoutMode (SinglePass); setUniformItemSizes (true); setSelectionRectVisible (true); setHorizontalScrollMode (QAbstractItemView::ScrollPerPixel); setVerticalScrollMode (QAbstractItemView::ScrollPerPixel); setEditTriggers (QAbstractItemView::EditKeyPressed); setStyleSheet ("QListView { background : lightgray }"); _autoscroll = true; // the user has not scrolled yet _ignore_scroll = false; }
// ---------------- ActionListView: ActionListView::ActionListView(ActionModel *model, QWidget *parent) : QListView(parent), m_model(model) { setDragEnabled(true); setAcceptDrops(true); setDropIndicatorShown(true); setDragDropMode(DragDrop); setModel(model); setTextElideMode(Qt::ElideMiddle); connect(this, SIGNAL(activated(QModelIndex)), this, SLOT(slotActivated(QModelIndex))); // We actually want 'Static' as the user should be able to // drag away actions only (not to rearrange icons). // We emulate that by not accepting our own // drag data. 'Static' causes the list view to disable drag and drop // on the viewport. setMovement(Snap); setViewMode(IconMode); setIconSize(QSize(iconModeIconSize, iconModeIconSize)); setGridSize(QSize(4 * iconModeIconSize, 2 * iconModeIconSize)); setSpacing(iconModeIconSize / 3); }
TrackListView::TrackListView(QWidget *parent) : QListView(parent) { setWindowTitle(tr("Tracks")); setItemDelegate(new TrackItemDelegate(this)); setSelectionMode(QAbstractItemView::ExtendedSelection); setMouseTracking(true); // layout setResizeMode(QListView::Adjust); setMovement(QListView::Static); setUniformItemSizes(true); // dragndrop setDragEnabled(true); setDragDropMode(QAbstractItemView::DragOnly); // cosmetics setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); setFrameShape(QFrame::NoFrame); setAttribute(Qt::WA_MacShowFocusRect, false); verticalScrollBar()->setPageStep(3); verticalScrollBar()->setSingleStep(1); }
void PigMover::runSearch() { // TODO: Is there a better way? static uint8_t searchCounter = 0; // Still running current behavior if(counter % LEG_SEARCH_PERIOD) return; switch(searchCounter % 6) { case 0: if(rand() % 2) { setMovement(WheelController::ROTATE_CW); } else { setMovement(WheelController::ROTATE_CCW); } break; case 1: // Sometimes stop. Otherwise, keep rotating to the same direction if(rand() % 2) { setMovement(WheelController::STOP); } break; case 2: setMovement(WheelController::FORWARD); break; case 3: setMovement(WheelController::STOP); break; case 4: setMovement(WheelController::FORWARD); break; case 5: setMovement(WheelController::STOP); break; } searchCounter++; }
// Note: the QDesktopViewWidget Class will become it's own widget // so others can easly create there own desktopsor file managers with // only a few lines of code QDesktopViewWidget::QDesktopViewWidget(QWidget *parent) : QListWidget(parent) { // This sets the QDesktopViewWidget(QListWidget) to transparent so that the // desktop wallpaper below it can be seen. Note: the color: white propertiy // needs to be moved to the desktop config file setStyleSheet("QListView {background-color: transparent; color: white;}"); // Note: Need to check if config files exist, if it doesnt we need to // create it. // In the future the below QDesktopViewWidget settings will be wrapped // in this block of code so every aspect of how the desktop looks and feels // can be configured. // Note: Needs to be moved to a class function of it's own //desktopSettings = new QSettings("chipara", "desktop"); //desktopSettings->beginGroup("desktop"); //desktopSettings->endGroup(); // Variouse settings for the QDesktopViewWidget(QListWidget) class setSelectionMode(QAbstractItemView::ExtendedSelection); setViewMode(QListView::IconMode); setSpacing(20); setFlow(QListView::TopToBottom); setMovement(QListView::Snap); setLayoutMode(QListView::Batched); setBatchSize(100); setMovement(QListView::Snap); setIconSize(QSize(48, 48)); setUniformItemSizes(true); setWrapping(true); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setSortingEnabled(true); setLayoutDirection(Qt::LeftToRight); setSelectionRectVisible(true); setTextElideMode(Qt::ElideMiddle); setDragEnabled(true); setFrameStyle(0); setFrameShape(QFrame::NoFrame); setAutoScroll(true); setResizeMode(QListView::Adjust); // Right Click Desktop Menu menu = new QMenu(this); // Create submenu for Create Document QMenu *viewMenu = menu->addMenu(tr("&View")); QActionGroup *viewGroup = new QActionGroup(this); // Large Icons extraLargeIcons = new QAction(QIcon::fromTheme("folder"), "X-Large Icons", this); extraLargeIcons->setCheckable(true); viewGroup->addAction(extraLargeIcons); viewMenu->addAction(extraLargeIcons); connect(extraLargeIcons, SIGNAL(triggered()), this, SLOT(resizeIcons())); // Large Icons largeIcons = new QAction(QIcon::fromTheme("folder"), "Large Icons", this); largeIcons->setCheckable(true); viewGroup->addAction(largeIcons); viewMenu->addAction(largeIcons); connect(largeIcons, SIGNAL(triggered()), this, SLOT(resizeIcons())); // Medium Icons mediumIcons = new QAction(QIcon::fromTheme("folder"), "Medium Icons", this); mediumIcons->setCheckable(true); mediumIcons->setChecked(true); viewGroup->addAction(mediumIcons); viewMenu->addAction(mediumIcons); connect(mediumIcons, SIGNAL(triggered()), this, SLOT(resizeIcons())); // Medium Icons smallIcons = new QAction(QIcon::fromTheme("folder"), "Small Icons", this); smallIcons->setCheckable(true); viewGroup->addAction(smallIcons); viewMenu->addAction(smallIcons); connect(smallIcons, SIGNAL(triggered()), this, SLOT(resizeIcons())); // Add a separator to the menu viewMenu->addSeparator(); QActionGroup *layoutGroup = new QActionGroup(this); // Medium Icons leftToRight = new QAction(QIcon::fromTheme("folder"), "Left To Right", this); leftToRight->setCheckable(true); layoutGroup->addAction(leftToRight); viewMenu->addAction(leftToRight); connect(leftToRight, SIGNAL(triggered()), this, SLOT(layoutDirection())); // Medium Icons rightToLeft = new QAction(QIcon::fromTheme("folder"), "Right To Left", this); rightToLeft->setCheckable(true); layoutGroup->addAction(rightToLeft); viewMenu->addAction(rightToLeft); connect(rightToLeft, SIGNAL(triggered()), this, SLOT(layoutDirection())); // Add a separator to the menu viewMenu->addSeparator(); // Sort By Size showIcons = new QAction(QIcon::fromTheme("folder"), "Show Desktop Icons", this); showIcons->setCheckable(true); showIcons->setChecked(true); viewMenu->addAction(showIcons); connect(showIcons, SIGNAL(triggered()), this, SLOT(showDesktopIcons())); // Create submenu for Create Document QMenu *sortMenu = menu->addMenu(tr("&Sort By")); QActionGroup *sortGroup = new QActionGroup(this); // Sort By Name QAction *nameSort = new QAction(QIcon::fromTheme("folder"), "Name", this); nameSort->setCheckable(true); nameSort->setChecked(true); sortGroup->addAction(nameSort); sortMenu->addAction(nameSort); // Sort By Size QAction *sizeSort = new QAction(QIcon::fromTheme("folder"), "Size", this); sizeSort->setCheckable(true); sizeSort->setDisabled(true); sortGroup->addAction(sizeSort); sortMenu->addAction(sizeSort); // Sort By Size QAction *typeSort = new QAction(QIcon::fromTheme("folder"), "Item Type", this); typeSort->setCheckable(true); typeSort->setDisabled(true); sortGroup->addAction(typeSort); sortMenu->addAction(typeSort); // Sort By Size QAction *dateSort = new QAction(QIcon::fromTheme("folder"), "Date Modified", this); dateSort->setCheckable(true); dateSort->setDisabled(true); sortGroup->addAction(dateSort); sortMenu->addAction(dateSort); // Refresh QAction *refresh = new QAction(QIcon::fromTheme("folder"), "Refresh", this); menu->addAction(refresh); // Add a separator to the menu menu->addSeparator(); // Paste QAction *paste = new QAction(QIcon::fromTheme("folder"), "Paste", this); paste->setEnabled(false); menu->addAction(paste); // Paste Shortcut QAction *pasteShortCut = new QAction(QIcon::fromTheme("folder"), "Paste Shortcut", this); pasteShortCut->setEnabled(false); menu->addAction(pasteShortCut); // Add a separator to the menu menu->addSeparator(); // New Menu QMenu *create = menu->addMenu(tr("&New")); // Create Folder QAction *createFolder = new QAction(QIcon::fromTheme("folder"), tr("&Folder"), this); create->addAction(createFolder); createFolder->setIconVisibleInMenu(true); connect(createFolder, SIGNAL(triggered()), this, SLOT(createFolder())); // Create Launcher QAction *createLauncher = new QAction(QIcon::fromTheme("application-x-desktop"), tr("&Launcher"), this); create->addAction(createLauncher); createLauncher->setIconVisibleInMenu(true); connect(createLauncher, SIGNAL(triggered()), this, SLOT(createLauncher())); // Create Empty File QAction *createEmptyFile = new QAction(QIcon::fromTheme("text-plain"), tr("&Empty File"), this); create->addAction(createEmptyFile); createEmptyFile->setIconVisibleInMenu(true); connect(createEmptyFile, SIGNAL(triggered()), this, SLOT(createEmptyFile())); // Add a separator to the menu menu->addSeparator(); // Paste QAction *desktopSettings = new QAction(QIcon::fromTheme("preferences-desktop"), "Desktop Settings", this); desktopSettings->setIconVisibleInMenu(true); menu->addAction(desktopSettings); connect(desktopSettings, SIGNAL(triggered()), this, SLOT(execDesktopSettings())); // Right Click Desktop Icon Menu iconMenu = new QIconMenu(this); // desktopDir = new QFileSystemWatcher; desktopDir->addPath(QDesktopServices::storageLocation(QDesktopServices::DesktopLocation)); // dSettings = new QSettings("chipara", "desktop"); dSettings->beginGroup("window"); if (dSettings->value("showIcons") == 1) { showIcons->setChecked(true); } else { showIcons->setChecked(false); } // if (dSettings->value("layoutDirection") == 1) { setLayoutDirection(Qt::LeftToRight); leftToRight->setChecked(true); } else { setLayoutDirection(Qt::RightToLeft); rightToLeft->setChecked(true); } // if (dSettings->value("iconSize") == 1) { this->setIconSize(QSize(128, 128)); extraLargeIcons->setChecked(true); } else if (dSettings->value("iconSize") == 2) { this->setIconSize(QSize(64, 64)); largeIcons->setChecked(true); } else if (dSettings->value("iconSize") == 3) { this->setIconSize(QSize(48, 48)); mediumIcons->setChecked(true); } else if (dSettings->value("iconSize") == 4) { this->setIconSize(QSize(36, 36)); smallIcons->setChecked(true); } populatedDesktop(); dSettings->endGroup(); // Desktop Icon Double Click EventexecDesktopSettings connect(this, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(iconClicked(QListWidgetItem*))); connect(desktopDir, SIGNAL(directoryChanged(QString)), this, SLOT(populatedDesktop())); }