Esempio n. 1
0
void QgsBrowserDockWidget::showContextMenu( const QPoint & pt )
{
  QModelIndex idx = mBrowserView->indexAt( pt );
  QgsDataItem* item = mModel->dataItem( idx );
  if ( !item )
    return;

  QMenu* menu = new QMenu( this );

  if ( item->type() == QgsDataItem::Directory )
  {
    QSettings settings;
    QStringList favDirs = settings.value( "/browser/favourites" ).toStringList();
    bool inFavDirs = favDirs.contains( item->path() );

    if ( item->parent() != NULL && !inFavDirs )
    {
      // only non-root directories can be added as favourites
      menu->addAction( tr( "Add as a favourite" ), this, SLOT( addFavourite() ) );
    }
    else if ( inFavDirs )
    {
      // only favourites can be removed
      menu->addAction( tr( "Remove favourite" ), this, SLOT( removeFavourite() ) );
    }
  }

  if ( menu->actions().count() == 0 )
  {
    delete menu;
    return;
  }

  menu->popup( mBrowserView->mapToGlobal( pt ) );
}
void QgsBrowserDockWidget::showContextMenu( const QPoint & pt )
{
  QModelIndex idx = mBrowserView->indexAt( pt );
  QgsDataItem* item = mModel->dataItem( idx );
  if ( !item )
    return;

  QMenu *menu = new QMenu( this );

  if ( item->type() == QgsDataItem::Directory )
  {
    QSettings settings;
    QStringList favDirs = settings.value( "/browser/favourites" ).toStringList();
    bool inFavDirs = favDirs.contains( item->path() );

    if ( item->parent() != NULL && !inFavDirs )
    {
      // only non-root directories can be added as favourites
      menu->addAction( tr( "Add as a favourite" ), this, SLOT( addFavourite() ) );
    }
    else if ( inFavDirs )
    {
      // only favourites can be removed
      menu->addAction( tr( "Remove favourite" ), this, SLOT( removeFavourite() ) );
    }

  }
  else if ( item->type() == QgsDataItem::Layer )
  {
    menu->addAction( tr( "Add Layer" ), this, SLOT( addCurrentLayer( ) ) );
    menu->addAction( tr( "Add Selected Layers" ), this, SLOT( addSelectedLayers() ) );
    menu->addAction( tr( "Properties" ), this, SLOT( showProperties( ) ) );

  }
  else if ( item->type() == QgsDataItem::Favourites )
  {
    menu->addAction( tr( "Add a directory" ), this, SLOT( addFavouriteDirectory() ) );

  }

  QList<QAction*> actions = item->actions();
  if ( !actions.isEmpty() )
  {
    if ( !menu->actions().isEmpty() )
      menu->addSeparator();
    // add action to the menu
    menu->addActions( actions );
  }

  if ( menu->actions().count() == 0 )
  {
    delete menu;
    return;
  }

  menu->popup( mBrowserView->mapToGlobal( pt ) );
}
Esempio n. 3
0
bool FavouriteModCollection::loadFavouritesList(const char * fileName) {
	if(!m_initialized || m_mods == NULL) { return false; }

	QString favouritesListPath(fileName);
	
	QFileInfo favouritesListFileInfo(favouritesListPath);
	if(!favouritesListFileInfo.exists()) { return false; }
	
	QFile input(favouritesListPath);
	if(!input.open(QIODevice::ReadOnly | QIODevice::Text)) { return false; }
	
	clearFavourites();

	QString line;
	ModInformation * newFavourite = NULL;

	while(true) {
		if(input.atEnd()) { break; }
		
		line = input.readLine().trimmed();

		if(line.length() == 0) { continue; }

		const Mod * mod = m_mods->getMod(line);

		if(mod != NULL) {
			newFavourite = new ModInformation(mod->getName(), mod->getLatestVersion());
			if(!addFavourite(newFavourite)) {
				printf("Attempted to add duplicate favourite mod: %s\n", newFavourite->getFullName());

				delete newFavourite;
			}
		}
		else {
			QByteArray lineBytes = line.toLocal8Bit();

			printf("Unknown or missing mod in favourites list: %s\n", lineBytes.data());
		}
	}

	if(m_favourites.size() > 0) {
		printf("%d favourite mod%s loaded.\n", m_favourites.size(), m_favourites.size() == 1 ? "" : "s");
	}

	input.close();

	return true;
}
Esempio n. 4
0
/**
 * @author Macai
 * @connect signal and slot
 * @brief MainWindow::setActions
 */
void MainWindow::setActions()
{
    connect(ui->action_Exit, SIGNAL(triggered()), this, SLOT(close()) );
    connect(ui->action_Add, SIGNAL(triggered()), this, SLOT(showAddContactDlg()) );
    connect(ui->action_Delete, SIGNAL(triggered()),
            this, SLOT(deleteContact()) );
    connect(ui->action_Edit, SIGNAL(triggered()), this, SLOT(showEditContactDlg()) );
    connect(ui->action_Query, SIGNAL(triggered()), this, SLOT(showFindWidget()) );
    connect(ui->action_Favorites, SIGNAL(triggered()), this, SLOT(addFavourite()) );
    connect(ui->action_Details, SIGNAL(triggered()), this, SLOT(showDetailDlg()) );
    connect(ui->action_Settings, SIGNAL(triggered()), this, SLOT(showSettingDlg()) );
    connect(ui->action_About, SIGNAL(triggered()), this, SLOT(showAboutDlg()) );

    connect(ui->menu_Background, SIGNAL(triggered(QAction*)), this, SLOT(backgroundChanged(QAction*)) );
    connect(ui->menu_Backmusic, SIGNAL(triggered(QAction*)), this, SLOT(backmusicChanged(QAction*)) );

    connect(Global::g_settingThemes, SIGNAL(setMainWinBackground(QString)),
            this, SLOT(setBackground(QString)) );
    connect(Global::g_settingThemes, SIGNAL(setMainWinFontColor(int,int,int)),
            this, SLOT(updateFontColor(int,int,int)) );


    connect(ui->btn_findBtn, SIGNAL(clicked(bool)), this, SLOT(findContact(bool)) );

    connect(ui->grouplistWidget, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
            this, SLOT(filterGroup(QListWidgetItem*, QListWidgetItem*)) );
    connect(ui->grouplistWidget, SIGNAL(updateGroupContacts(const QString&)),
            this, SLOT(updateGroupContacts(const QString&)) );

    connect(ui->contactTableView, SIGNAL(clicked(QModelIndex)),
            this, SLOT(showDetail(QModelIndex)) );
    connect(ui->contactTableView, SIGNAL(updateButton(bool)),
            this, SLOT(updateButton(bool)) );

    connect(ui->tabWidget, SIGNAL(currentChanged(int)),
            this, SLOT(tabWidgetChanged(int)) );

    connect(ui->favoritTableView, SIGNAL(clicked(QModelIndex)),
            this, SLOT(showDetail(QModelIndex)) );
    connect(ui->favoritTableView, SIGNAL(updateButton(bool)),
            this, SLOT(updateButton(bool)) );
    connect(ui->favoritTableView, SIGNAL(findContactAct()),
            this, SLOT(showFindWidget()) );
    connect(ui->favoritTableView, SIGNAL(deleteContactAct()),
            this, SLOT(deleteContact()) );
    connect(ui->favoritTableView, SIGNAL(sendMailAct()),
            this, SLOT(showDetailDlg()) );
    connect(ui->favoritTableView, SIGNAL(viewDetailAct()),
            this, SLOT(showDetailDlg()) );

    connect(ui->contactTableView, SIGNAL(addContactAct()),
            this, SLOT(showAddContactDlg()) );
    connect(ui->contactTableView, SIGNAL(editContactAct()),
            this, SLOT(showEditContactDlg()) );
    connect(ui->contactTableView, SIGNAL(findContactAct()),
            this, SLOT(showFindWidget()) );
    connect(ui->contactTableView, SIGNAL(deleteContactAct()),
            this, SLOT(deleteContact()) );
    connect(ui->contactTableView, SIGNAL(addFavouriteAct()),
            this, SLOT(addFavourite()) );
    connect(ui->contactTableView, SIGNAL(sendMailAct()),
            this, SLOT(showDetailDlg()) );
    connect(ui->contactTableView, SIGNAL(viewDetailAct()),
            this, SLOT(showDetailDlg()) );
}
Esempio n. 5
0
bool FavouriteModCollection::loadFavouritesXML(const char * fileName) {
	if(!m_initialized) { return false; }

	if(fileName == NULL || Utilities::stringLength(fileName) == 0) { return false; }

	QString favouritesListPath(fileName);
	
	QFileInfo favouritesListFileInfo(favouritesListPath);
	if(!favouritesListFileInfo.exists()) { return false; }
	
	QFile favouritesListFile(favouritesListPath);
	if(!favouritesListFile.open(QIODevice::ReadOnly | QIODevice::Text)) { return false; }
	
	clearFavourites();

	QXmlStreamReader input(&favouritesListFile);

	QXmlStreamAttributes attributes;
	ModInformation * newFavourite = NULL;
	QString name, version;
	bool foundRootNode = false;

	while(true) {
		if(input.atEnd() || input.hasError()) {
			break;
		}

		if(input.readNext() == QXmlStreamReader::StartDocument) {
			continue;
		}

		if(input.isStartElement()) {
			if(!foundRootNode) {
				if(QString::compare(input.name().toString(), "favourites", Qt::CaseInsensitive) == 0) {
					foundRootNode = true;

					attributes = input.attributes();

					QString game, fileVersion;

					if(attributes.hasAttribute("game")) {
						game = attributes.value("game").toString();
						if(m_mods != NULL && !game.isEmpty() && QString::compare(game, m_mods->getGameName(), Qt::CaseInsensitive) != 0) {
							printf("Attempted to load a favourite mod list for game \"%s\", while mod list is for game \"%s\".\n", game.toLocal8Bit().data(), m_mods->getGameName());
							break;
						}
					}
					else {
						printf("Root mods node missing required game attribute.\n");
						break;
					}

					if(attributes.hasAttribute("favourites_version")) {
						fileVersion = attributes.value("favourites_version").toString();
						if(QString::compare(fileVersion, "1.0", Qt::CaseInsensitive) != 0) {
							printf("Mod list version %s is unsupported.\n", fileVersion.toLocal8Bit().data());
							break;
						}
					}
					else {
						printf("Root mods node missing required mods_version attribute.\n");
						break;
					}
				}
				
				continue;
			}

			if(QString::compare(input.name().toString(), "mod", Qt::CaseInsensitive) == 0) {
				attributes = input.attributes();

				if(attributes.hasAttribute("name")) {
					name = attributes.value("name").toString();
				}
				else {
					printf("Found favourite mod entry missing required name attribute.\n");
					break;
				}

				if(attributes.hasAttribute("version")) {
					version = attributes.value("version").toString();
				}
			}

			if(!name.isEmpty()) {
				newFavourite = new ModInformation(name, version);
				if(!addFavourite(newFavourite)) {
					printf("Attempted to add duplicate favourite mod: %s\n", newFavourite->getFullName());

					delete newFavourite;
				}
			}

			name.clear();
			version.clear();
		}
		else if(input.isEndElement()) {
			if(QString::compare(input.name().toString(), "favourites", Qt::CaseInsensitive) == 0) {
				break;
			}
		}
	}

	favouritesListFile.close();

	return true;
}